使用OpenCV Python,如何使所有黑色像素透明,然后将其覆盖在原始图像上

jmh*_*ead 15 python opencv computer-vision

我正在尝试制作一个白色的彩色面具.我的想法是:

  • 使黑色像素在面具中透明
  • 合并这两个图像
  • 裁剪图像

那么我原来的蒙​​面区域将是白色的.我需要什么样的OpenCV python代码/方法?

像这样:

原版的

原版的

面具

面具

期望的结果(模拟 - 没有绿色边缘)

期望的结果(模拟 - 没有绿色边缘)

代替

代替

Dsc*_*oni 2

我想做一个颜色阈值来获得面具本身。我在色调 43-81、饱和度 39-197 和亮度 115-255 的第一次快速而肮脏的尝试中得到的结果是: 在此输入图像描述

下一步是一个完整的填充算法来填充掩模的内部。请注意,右侧的一小块区域也被选中。

在此输入图像描述

下一步是两个结果相减(mask-filled_mask):

在此输入图像描述

再次填充整体并通过二进制打开消除噪声像素:

在此输入图像描述

最后使用创建的蒙版对图像进行蒙版。

在此输入图像描述

每个步骤都可以调整以产生最佳结果。一个好主意是尝试这些步骤(例如使用 imageJ)来设置工作流程,然后在 python/openCV 中编写这些步骤的脚本。

另请参阅http://fiji.sc/Segmentation