【发布时间】:2012-07-01 07:38:43
【问题描述】:
我的 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很陌生,所以我无法弄清楚问题所在。谢谢!
【问题讨论】:
-
Complete stab-in-the-dark:如果您在对
Arrays.asList的调用中将参数包装到x.encoder_function是否有帮助,即 x.encoder_function(Arrays.asList(barcode), Arrays.asList (original_photo));? (You'll need toimport java.util.Arrays;`.) -
谢谢卢克!此代码删除了错误!但是现在我在使用 Matlab-Java 接口时遇到了一些问题:线程“主”java.lang.UnsatisfiedLinkError 中的异常:无法在 java.library.path 上找到 MATLAB Builder JA 所需的库 mclmcrrt7_15.dll。此库通常与 MATLAB 或 MCR 一起安装,它的缺失可能表明该安装或当前路径配置存在问题。此组件尝试使用的 MCR 版本是:7.15。
-
我将系统设置中的路径更改为 ...\Files\Java\jdk1.6.0_33\bin 但由于我安装了 Java 版本 7,它没有使用版本 6。问题是 matlab 正在连接到版本 6,因此存在不兼容问题。我该如何解决这个问题?
标签: java matlab image-processing matlab-deployment matlab-compiler