Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm OpenCV计算图像平方断言失败错误_Algorithm_Image Processing_Opencv_Face Recognition - Fatal编程技术网

Algorithm OpenCV计算图像平方断言失败错误

Algorithm OpenCV计算图像平方断言失败错误,algorithm,image-processing,opencv,face-recognition,Algorithm,Image Processing,Opencv,Face Recognition,我试图通过使用作为错误度量,将人脸图像与参考人脸图像对齐。基本上,尝试实现cvMatchTemplate函数的类似功能(但是我没有模板图像,只有一个常见的面部表情)。当尝试对差异图像进行平方运算时,我得到一个断言失败错误:-215。我的问题是:我是否必须使用矩阵乘法运算符A*A或每元素乘法A.mul(A)来获得差分图像的平方?(目前我使用A*A) 两幅图像的大小和类型都相同,因为warpAffine工作正常。对于出现此错误的原因或我的实现的正确性的任何建议,我们将不胜感激 我想这方面的问题 Ma

我试图通过使用作为错误度量,将人脸图像与参考人脸图像对齐。基本上,尝试实现cvMatchTemplate函数的类似功能(但是我没有模板图像,只有一个常见的面部表情)。当尝试对差异图像进行平方运算时,我得到一个断言失败错误:-215。我的问题是:我是否必须使用矩阵乘法运算符A*A或每元素乘法A.mul(A)来获得差分图像的平方?(目前我使用A*A)


两幅图像的大小和类型都相同,因为warpAffine工作正常。对于出现此错误的原因或我的实现的正确性的任何建议,我们将不胜感激

我想这方面的问题

Mat map = Mat(2,3,CV_64F, m);
试试这个链接

您想使用元素相乘

squared = result.mul(result);
因为看起来您使用的是浮点图像,所以不必担心饱和度

元素相乘将两个矩阵的各个元素相乘(因此得名),并要求矩阵具有相同的大小。
结果
矩阵中的每个元素表示像素值的差异。每个像素值独立于图像中的任何其他像素值,因此按元素相乘将产生正确的结果


与元素级乘法有显著不同。一个常见的应用是在计算机图形学和计算机视觉中应用变换。矩阵乘法应用于数学构造时有意义,但应用于图像时没有意义。不要认为必须使用矩阵乘法,因为
cv::Mat
也用于存储图像数据。

如果矩阵是方形矩阵(行数=列数),则只能将矩阵与自身相乘。矩阵“result”的大小(行数和列数)是多少?result.cols=302和result.rows=302您能解释一下这两种操作之间的区别吗?我似乎不完全理解它。啊,这是有道理的,我是OpenCV的新手,所以谢谢你的解释!
Mat map = Mat(2,3,CV_64F, m);
squared = result.mul(result);