0

ユークリッド距離で 2 つの類似した灰色の画像の違いを比較しています。画像はグレーフォーマットです。

int dis = 0 ; 
for(int i=0;i<mat1.rows;i++)
    for(int j=0;j<mat1.cols;j++)
{
    cout<< mat1.at<unsigned char>(i,j) <<endl;
    int a = (mat1.at<unsigned char>(i,j) - mat2.at<unsigned char>(i,j));
    dis +=  (a*a);
}

dis = sqrt (dis);

しかし、プログラムはエラーを出します。エラーの正確な内容はわかりません。しかし、エラーは変換によるものだと思います - int a = (mat1.at(i,j) - mat2.at(i,j));

int a = (mat1.at(i,j) - mat2.at(i,j)); を試しました。まだ動作しません

4

1 に答える 1

0

mat2[i]奇妙に見えます。そこにあるインデックスの目的は何ですか?

また、組み込みのノルム関数を使用することもできます。これは、すでに試していることを実行します

于 2013-10-17T11:36:27.593 に答える