首页 文章

我在一个Java项目中构建了一个matlab代码,现在我在运行调用matlab函数的java代码行时遇到错误

提问于
浏览
1

我的matlab代码进行了图像处理,我制作了matlab函数,它有2个图像作为输入 . 我写了一个单独的java类来执行matlab的imread函数,即将jpg图像读入3D数组(它是一个RGB图像) .

import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import QRcode_java.*;
import com.mathworks.toolbox.javabuilder.*;


public class Driver {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        encoder_class x=null;     //encoder_class is the class built from the  
                                        //matlab function                         

        Object[] barcode2=null;         //output of matlab function
        barcode_image_class barcode;     //class to imread the jpg image input
        barcode= new barcode_image_class();
        original_photo_class original_photo;  
             //class to imread another image input
        original_photo= new original_photo_class();

        try {
            x= new encoder_class();
            barcode2=x.encoder_function(barcode, original_photo); 
//**ERROR!** /*encoder_function is the matlab function written by me. this line gives an //error as the following: 
//"The method encoder_function(List, List) in the type encoder_class 
//is not applicable for the arguments (barcode_image_class, original_photo_class)"*/

        } catch (MWException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

你能告诉我如何解决这个错误吗?这是我的java代码的问题,还是matlab代码的导入?我是Java的新手,所以我无法弄清楚问题 . 谢谢!

1 回答

  • 0

    从你的评论中,你已经定义了一个方法 encoder_function(List, List) ,它将两个 List 作为参数 . 你试图用一些不是 List 的参数调用它,这就是编译器抱怨的原因 .

    要解决此问题,您必须:

    • 更改 encoder_function(List, List) 定义以 barcode_image_classoriginal_photo_class 作为参数并相应地更新方法的代码

    要么

    • 找到一种方法将 barcode_image_classoriginal_photo_class 转换为 List (通过实现 List 接口或在两个类中提供一些帮助方法将它们转换为 List s

相关问题