0

我正在比较欧几里得距离中两个相似灰度图像的差异。图像为灰色格式。

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]看起来很奇怪。那里索引的目的是什么?

另外,您可能只使用内置 norm 函数,它已经完成了您正在尝试的操作

于 2013-10-17T11:36:27.593 回答