我正在比较欧几里得距离中两个相似灰度图像的差异。图像为灰色格式。
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)); 还是不行