我的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 回答
从你的评论中,你已经定义了一个方法
encoder_function(List, List)
,它将两个List
作为参数 . 你试图用一些不是List
的参数调用它,这就是编译器抱怨的原因 .要解决此问题,您必须:
encoder_function(List, List)
定义以barcode_image_class
,original_photo_class
作为参数并相应地更新方法的代码要么
barcode_image_class
,original_photo_class
转换为List
(通过实现List
接口或在两个类中提供一些帮助方法将它们转换为List
s