我在试着给彩色图像加上一个彩色蒙版。色板是我要应用于彩色图像的轮廓。除了粉红色的轮廓外,遮罩都是黑色的(BGR=[180, 105,255]
)。奇怪的是,我可以使用以下方法应用青色的轮廓:
让彩色图像为imgColor
,青色轮廓为maskCyan
。{{cd2>所有的像素都是cd2}的轮廓。然后我可以通过做imgColor_with_cyan_outline = cv2.bitwise_or(imgColor, maskCyan)
将其应用到图像上。当我对maskPink
做同样的处理时,它使用imgColor_with_pink_outline = cv2.bitwise_or(imgColor, maskPink)
使用粉色像素而不是青色,然后返回原始图像,而没有对其应用任何遮罩或轮廓。我想我只是误解了cv2.bitwise_or()
是如何工作的,但我不确定。在
有没有其他方法可以将色罩应用于彩色图像?在
我想您误解了按位
OR
操作的属性。cv2.bitwise_or
获取两个源图像和一个可选的掩码。在因此,如果}是:
^{pr2}$src1
有一个值为1的像素,src2
有一个值为2的像素,那么{这使得生成的像素值为3。对于8位无符号字符图像,生成的最大像素值将为255(135 | 235为255)。在
如果您有过滤功能,可以使用
cv2.inrange
函数进行屏蔽。将以下代码修改为您的值。根据opencv版本检查语法欲了解更多信息,请阅读
相关问题 更多 >
编程相关推荐