【发布时间】:2016-10-01 03:04:33
【问题描述】:
在 OpenCV python 中,假设我们使用 cv2.imread 读取图像并获得 BGR numpy 数组。接下来我们使用 cv2.inRange 命令生成一个掩码。遮罩具有相同的宽度/高度,并且每个遮罩像素是黑色或白色。
我想将蒙版中的一个区域(作为黑白像素的图像)复制到彩色图像的一个区域上。
我该怎么做?这不起作用
img[10:20,10:20] = mask[10:20,10:20]
我必须先将蒙版转换为 BGR 图像吗?如果有怎么办?
编辑:我不想像apply mask to color image 那样将整个蒙版应用于图像。表达我想要的另一种方式:将蒙版视为黑白图像。我想将该图像的一个区域(作为一组黑色或白色像素)复制到另一个图像上。生成的图像将是彩色图像,除了一个仅包含黑色或白色像素的较小矩形区域。结果将类似于我在 Photoshop 中复制黑白图像的矩形区域并通过该矩形区域到彩色图像的区域。
(我是 OpenCV 新手)
【问题讨论】:
-
“从掩码复制区域”是什么意思?你能用一张图片来展示它吗?
-
掩码是二进制的。我想将遮罩区域(坐标)中的每个黑色或白色像素复制到(替换)图像中的相同像素区域。类似于我在 Photoshop 中选择并复制一张图像上的矩形区域并将其粘贴到另一张图像上。
-
如果我正确理解链接的“将蒙版应用于彩色图像”页面,它会将整个蒙版应用于图像。我不要那个。表达我想要的另一种方式:将蒙版视为黑白图像。我想将该图像的一个区域(作为一组黑色或白色像素)复制到另一个图像上。生成的图像将是彩色图像,除了一个仅包含黑色或白色像素的较小矩形区域(与蒙版图像中的图案相同)。
-
好的。在这种情况下,您必须将蒙版视为图像,并将其转换为与
img相同的色彩空间,然后再合并它们。你试过吗?