1

내 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에 익숙하지 않아 문제를 파악할 수 없습니다. 감사!

+0

자상 - 인 - 더 - 어둠 완료 : 통화에서 x.encoder_function' '의 인수를 감싸는 경우가 도움이 되나요 'Arrays.asList', iexencoder_function (Arrays.asList (barcode), Arrays.asList (original_photo));'? ('import java.util.Arrays;'가 필요합니다.) –

+0

감사합니다. Luke! 이 코드는 오류를 제거했습니다! 하지만 이제는 Matlab-Java 인터페이스에 문제가 있습니다. 스레드 "main"의 예외 java.lang.UnsatisfiedLinkError : java.library.path에서 MATLAB Builder JA이 필요로하는 라이브러리 mclmcrrt7_15.dll을 찾지 못했습니다. 이 라이브러리는 일반적으로 MATLAB 또는 MCR과 함께 설치됩니다.이 라이브러리는 해당 설치 또는 현재 경로 구성에 문제가 있음을 나타낼 수 있습니다.이 구성 요소가 사용하려고하는 MCR 버전은 다음과 같습니다. 7.15. – user1493972

+0

시스템 설정에서 내 경로를 ... \ Files \ Java \ jdk1.6.0_33 \ bin 으로 변경했습니다. Java 버전 -7이 설치되었으므로 버전 6을 사용하지 않습니다. 문제는 matlab이 버전 6에 연결하고 있으므로 호환되지 않는다는 것입니다. 어떻게 해결할 수 있습니까? – user1493972

답변

0

의견으로는 을 인수로 취하는 encoder_function(List, List) 메서드를 정의했습니다. List이 아닌 일부 매개 변수를 사용하여 호출하려고하기 때문에 컴파일러가 불평하는 이유입니다. 이에 따라

또는

  • 은 찾기

    • 변경 encoder_function(List, List) 정의 메소드의 코드를 인수로 barcode_image_class, original_photo_class을 업데이트 할 :

      는이 문제를 해결하려면, 당신도 할 수 있습니다 전환하는 방법 barcode_image_class, original_photo_class ~ List (또는 List 인터페이스를 구현하거나로 변환 두 클래스의 일부 도우미 방법을 제공함으로써 List