在opencv中减去两个相同大小的矩阵时出错,可能是转换错误

时间:2013-10-17 11:21:45

标签: opencv image-processing

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

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 =(mat1.at(i,j) - mat2.at(i,j));仍然无法正常工作

1 个答案:

答案 0 :(得分:0)

mat2[i]看起来很奇怪。那里的指数的目的是什么?

另外,您可以使用builtin norm function,它已经完成了您正在尝试的内容