用原始图像opencv Python替换掩码

时间:2017-11-01 19:23:28

标签: python image opencv where bit-masks

我正在尝试使用带有原始图像像素的蒙版替换我发现的对象。我有一个掩码,显示未检测到物体的黑色,如果检测到则显示白色。然后我在where语句中使用图像

image[np.where((image2 == [255,255,255].any(axis = 2)) 

我被困在这里,我不知道如何将找到的白色值更改为原始图像(与其他蒙版一起使用)。我试过了image.shape但这没效果。

感谢。

2 个答案:

答案 0 :(得分:1)

制作蒙版的副本,然后从白色像素坐标在蒙版的白色像素上绘制原始图像。您还可以检查mask == 255以进行元素比较。你不需要np.where,因为你可以通过mask == 255创建的布尔掩码来索引数组。

out = mask.copy()
out[mask == 255] = original_image[mask == 255]

答案 1 :(得分:1)

您可以使用按位运算。试试这个:

replaced_image = cv2.bitwise_and(original_image,original_image,mask = your_mask)

Example 访问https://docs.opencv.org/3.3.0/d0/d86/tutorial_py_image_arithmetics.html 了解有关按位操作的更多信息