OpenCV掩码错误错误:(-215:声明失败)(mtype == CV_8U || mtype == CV_8S)&& _mask.sameSize(* psrc1)在函数'cv :: binary_op中

时间:2020-01-18 11:05:46

标签: python opencv image-processing

我收到此错误:

self._state.pk

我已经读过this post来描述我的问题(其他问题没有),但是我从那里找不到答案。

这是我的代码:

cv2.error: OpenCV(4.1.2) C:\projects\opencv-python\opencv\modules\core\src\arithm.cpp:245: error: (-215:Assertion failed) (mtype == CV_8U || mtype == CV_8S) && _mask.sameSize(*psrc1) in function 'cv::binary_op' 

2 个答案:

答案 0 :(得分:2)

我发现我正在尝试使用错误的名为“ img”的图像,img的形状大于imgOther的形状,因此会引起问题。我更改了

width, height, channel = img.shape # 768, 1024, 3
roi = img[0:width, 0:height]

使用

width, height, channel = imgOther.shape # 768, 1024, 3
roi = img[0:width, 0:height]

我的问题解决了

答案 1 :(得分:1)

我遇到了类似的问题,并且我相信您的问题源自您所使用的关注区域(roi)。简而言之:您尝试选择一个感兴趣的区域,该区域包含的坐标不在原始图像中。

在OpenCV中,您可以如下定义ROI(假设您已经打开了一个名为“ image”的图像)

roi = image[y1:y2,x1:x2]

在这里,坐标(x1,y1)将与图像的左上角相关,坐标(x2,y2)将在图像的右下角。

在代码中,您通过先列出x(宽度)来混合宽度(x)和高度(y)。 OpenCV以相反的方式进行操作,首先是y变量(高度)。您应该将roi变量更改为以下内容:

roi = img[0:height,0:width]

这将创建一个感兴趣的区域,即整个图像的大小。

相关问题