1

私のmatlabコードは画像処理を行い、入力として2つの画像を持つmatlab関数を作成しました。matlab の imread 関数を実行するため、つまり、jpg 画像を 3D 配列 (RGB 画像) に読み込むために、別の 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();
        }
    }

}

このエラーを修正する方法を教えてください。私の Java コードの問題ですか、それとも matlab コードのインポートの問題ですか? 私はJavaに非常に慣れていないので、問題を理解できません。ありがとう!

4

1 に答える 1

0

あなたのコメントから、引数としてencoder_function(List, List)2 つの s を取るメソッドを定義しました。Listsではないいくつかのパラメーターを使用してそれを呼び出そうとしているListため、コンパイラーは不平を言っています。

これを修正するには、次のいずれかを行う必要があります。

  • 引数として を受け取るようにencoder_function(List, List)定義を変更し、それに応じてメソッドのコードを更新しますbarcode_image_classoriginal_photo_class

また

  • を(インターフェースを実装するか、両方のクラスでそれらをsに変換するヘルパー メソッドを提供することによってbarcode_image_class)に変換する方法を見つけます。original_photo_classListListList
于 2012-07-01T08:28:15.960 に答える