내 matlab 코드가 이미지 처리를 수행하고 입력으로 2 개의 이미지가있는 matlab 함수를 만들었습니다 . MATLAB의 imread 기능을 수행하기 위해 별도의 Java 클래스를 작성했습니다. 즉, jpg 이미지를 3D 배열 (RGB 이미지)로 읽습니다.Java 프로젝트에 matlab 코드를 작성한 후 해당 matlab 함수를 호출하는 Java 코드 줄을 실행하는 중에 오류가 발생했습니다
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();
}
}
}
이 오류를 해결하는 방법을 알려주세요. 그것은 내 자바 코드 또는 matlab에 코드의 가져 오기에 문제가 있습니까? 저는 Java에 익숙하지 않아 문제를 파악할 수 없습니다. 감사!
자상 - 인 - 더 - 어둠 완료 : 통화에서 x.encoder_function' '의 인수를 감싸는 경우가 도움이 되나요 'Arrays.asList', iexencoder_function (Arrays.asList (barcode), Arrays.asList (original_photo));'? ('import java.util.Arrays;'가 필요합니다.) –
감사합니다. Luke! 이 코드는 오류를 제거했습니다! 하지만 이제는 Matlab-Java 인터페이스에 문제가 있습니다. 스레드 "main"의 예외 java.lang.UnsatisfiedLinkError : java.library.path에서 MATLAB Builder JA이 필요로하는 라이브러리 mclmcrrt7_15.dll을 찾지 못했습니다. 이 라이브러리는 일반적으로 MATLAB 또는 MCR과 함께 설치됩니다.이 라이브러리는 해당 설치 또는 현재 경로 구성에 문제가 있음을 나타낼 수 있습니다.이 구성 요소가 사용하려고하는 MCR 버전은 다음과 같습니다. 7.15. – user1493972
시스템 설정에서 내 경로를 ... \ Files \ Java \ jdk1.6.0_33 \ bin 으로 변경했습니다. Java 버전 -7이 설치되었으므로 버전 6을 사용하지 않습니다. 문제는 matlab이 버전 6에 연결하고 있으므로 호환되지 않는다는 것입니다. 어떻게 해결할 수 있습니까? – user1493972