在OpenCV Python中,假设我们使用cv2.imread读取图像并得到一个BGR的numpy数组。接下来,我们使用cv2.inRange命令生成一个掩膜(mask)。该掩膜具有相同的宽度/高度,并且每个掩膜像素要么是黑色要么是白色。
我想从掩膜中复制一个区域(作为黑白像素图像)到彩色图像的一个区域上。
如何实现?以下方式无法实现:
我需要先将掩码转换为BGR图像吗?如果需要,应该如何操作?
编辑:我不想像将掩码应用于彩色图像中所示的那样将整个掩码应用于图像。换句话说,我希望将掩码视为黑白图像。我想要复制该图像的一个区域(作为一组黑色或白色像素)到另一个图像上。结果图像将是一个彩色图像,除了一个只包含黑色或白色像素的较小矩形区域。结果将类似于在Photoshop中将黑白图像的矩形区域复制并粘贴到彩色图像的区域中。
(我对OpenCV很新)
我想从掩膜中复制一个区域(作为黑白像素图像)到彩色图像的一个区域上。
如何实现?以下方式无法实现:
img[10:20,10:20] = mask[10:20,10:20]
我需要先将掩码转换为BGR图像吗?如果需要,应该如何操作?
编辑:我不想像将掩码应用于彩色图像中所示的那样将整个掩码应用于图像。换句话说,我希望将掩码视为黑白图像。我想要复制该图像的一个区域(作为一组黑色或白色像素)到另一个图像上。结果图像将是一个彩色图像,除了一个只包含黑色或白色像素的较小矩形区域。结果将类似于在Photoshop中将黑白图像的矩形区域复制并粘贴到彩色图像的区域中。
(我对OpenCV很新)
COLOR_GRAY2BGR
应该可以工作,假设掩码是一个标准的单通道图像。 - Håken Lid