Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.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
C++ OpenCV-带遮罩的absdiff_C++_Opencv_Mask_Mat - Fatal编程技术网

C++ OpenCV-带遮罩的absdiff

C++ OpenCV-带遮罩的absdiff,c++,opencv,mask,mat,C++,Opencv,Mask,Mat,我试图用遮罩计算两幅图像的绝对差值,所以在计算差值时只考虑图像的一个区域。但是OpenCV中没有掩码部分。我看到了,但没有为我工作。我试图将结果乘以遮罩,以便只保留指定的区域 代码: Mat region=//一个灰度图像,包含255个区域,其余区域为零 Mat img1,img2=//两个与区域图像大小相同且类型为CV_8UC1的图像 Mat mask=区域/255//制作二进制掩码 Mat difference=Mat::zerosregion.rows,region.cols,CV_8UC

我试图用遮罩计算两幅图像的绝对差值,所以在计算差值时只考虑图像的一个区域。但是OpenCV中没有掩码部分。我看到了,但没有为我工作。我试图将结果乘以遮罩,以便只保留指定的区域

代码: Mat region=//一个灰度图像,包含255个区域,其余区域为零 Mat img1,img2=//两个与区域图像大小相同且类型为CV_8UC1的图像 Mat mask=区域/255//制作二进制掩码 Mat difference=Mat::zerosregion.rows,region.cols,CV_8UC1; cv::absdiffimg1,img2,差; 差异=差异*遮罩; 如果差异,差异,差异; 当我尝试这个时,我得到一个错误

错误: 错误:断言在cv::gemm中的a_size.width==len失败

发生在这里:

内联 Mat&Mat::operator=const MatExpr&e { e、 操作->分配,*此; 归还*这个; } difference*mask表示您正在执行,在这种情况下,差异的高度必须与掩码的宽度相同,如果您要执行差异,则应调用difference.mulmask