1

私はopencvが初めてなので、この基本的なクエリを解決するのを手伝ってください。私は最大を見つけようとしています。Mat 変数の値。max_element と minMaxLoc を使用しようとしましたが、一致するデータ型が間違っていると関数が言い続けるため、エラーに直面してしまいます。何度も確認しましたが、うまくいきません。これが私のコードです。ABS_DST は MAT 変数です

    double *estimate,*min;
    CvPoint *minLoc,*maxLoc;


    Size s = abs_dst.size();
    int rows = s.height;
    int cols = s.width;
    double imagearray[rows][cols] = abs_dst.data();


    minMaxLoc(imagearray,min,estimate,minLoc,maxLoc);

Mat 変数 abs_dst を直接指定してみました。しかし、成功していません。オプションの入力マスク配列がありますが、必要ないので無視しました。

4

2 に答える 2

1

次の手順:

Point[] Mat_To_Point = Your_Mat_Variable.toArray();

次に、配列を並べ替えることができます

于 2012-12-25T07:53:30.610 に答える
0

答えが出たと思います。ご尽力いただきありがとうございます。問題は、minMaxLoc が 3 チャネルであるため、RGB 画像配列を取らないことです。ABS_DST をグレースケールに変換する必要がありました。

第二に、

そうではない

    CvPoint *minLoc,maxLoc;

それは

    Point *minLoc,*maxLoc;

グレースケールに変換すると、minMaxLoc に十分な 1D チャネルが直接得られるため、配列に変換する必要はありません。私自身の過ちをお詫び申し上げます。また、あなたの努力に感謝します。

于 2012-12-25T08:55:32.127 に答える