如何在最新的 python 绑定 (cv2) 中将蒙版应用于彩色图像?在以前的 python 绑定中,最简单的方法是使用 cv.Copy
例如
cv.Copy(dst, src, mask)
但是这个功能在cv2绑定中是不可用的。有没有不使用样板代码的解决方法?
原文由 pzo 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在最新的 python 绑定 (cv2) 中将蒙版应用于彩色图像?在以前的 python 绑定中,最简单的方法是使用 cv.Copy
例如
cv.Copy(dst, src, mask)
但是这个功能在cv2绑定中是不可用的。有没有不使用样板代码的解决方法?
原文由 pzo 发布,翻译遵循 CC BY-SA 4.0 许可协议
在这里,如果您已经有了蒙版图像,则可以使用 cv2.bitwise_and
函数。
检查以下代码:
img = cv2.imread('lena.jpg')
mask = cv2.imread('mask.png',0)
res = cv2.bitwise_and(img,img,mask = mask)
lena 图像和矩形蒙版的输出如下所示。
原文由 Abid Rahman K 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答884 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
此时你有一个彩色和一个灰色图像。我们正在处理
8-bit
,uint8
图片。这意味着图像的像素值可以在[0, 255]
范围内,并且值必须是整数。让我们做一个二进制阈值操作。它创建一个黑白蒙版图像。黑色区域有值
0
和白色区域255
面具可以在下面的左边看到。右边的图像是应用
bitwise_and
灰度图像和蒙版之间的操作的结果。发生的事情是,蒙版的像素值为零(黑色)的空间位置在结果图像中变为像素值零。蒙版像素值为 255(白色)的位置,生成的图像保留其原始灰度值。要将此蒙版应用于我们的原始彩色图像,我们需要将蒙版转换为 3 通道图像,因为原始彩色图像是 3 通道图像。
然后,我们可以使用相同的
bitwise_and
函数将这个 3 通道蒙版应用于我们的彩色图像。mask3
从代码中看左边的图像,im_thresh_color
在它的右边。您可以绘制结果并亲自查看。
原始图像是我在 这里 找到的
lenacolor.png
。