Python 3.x 为什么使用opencv进行图像掩蔽会返回“;输入参数的大小不匹配";?

Python 3.x 为什么使用opencv进行图像掩蔽会返回“;输入参数的大小不匹配";?,python-3.x,opencv,mask,Python 3.x,Opencv,Mask,我试图用两个图像互相遮掩。第一个是常规RGB图像,第二个是单通道二值图像 我将二值图像堆叠起来,使其与第一个图像一样为3通道,然后使用按位_和。我仍然得到错误 (-209:输入参数的大小不匹配)该操作既不是“array op array”(其中数组具有相同的大小和类型),也不是“array op scalar”,也不是函数“cv::binary_op”中的“scalar op array” 在计算输出之前,我检查了掩模的形状和输入,它们的大小和类型都相同。有人知道问题出在哪里吗?这是否有效(用于

我试图用两个图像互相遮掩。第一个是常规RGB图像,第二个是单通道二值图像

我将二值图像堆叠起来,使其与第一个图像一样为3通道,然后使用按位_和。我仍然得到错误

(-209:输入参数的大小不匹配)该操作既不是“array op array”(其中数组具有相同的大小和类型),也不是“array op scalar”,也不是函数“cv::binary_op”中的“scalar op array”


在计算输出之前,我检查了掩模的形状和输入,它们的大小和类型都相同。有人知道问题出在哪里吗?

这是否有效(用于测试):testout1=cv2。按位_和(掩码,掩码)和testout2=cv2。按位_和(im,im)有效。这是否有效(用于测试):testout1=cv2。按位_和(掩码,掩码)和testout2=cv2。按位_和(im,im)有效。
im = cv2.imread(image_name) # shape : (1280, 960, 3)

h, w = im.shape[:2]

mask = predict[0] #output of some network with shape of (256, 256, 1) and type of numpy.ndarray


mask = cv2.resize(mask, (w, h)) # resizing mask to the same shape if input

mask = np.stack((mask,)*3, axis=-1) # make it 3 channel, shape : (1280, 960, 3)

output = cv2.bitwise_and(im, mask)