我正在尝试使用带有原始图像像素的蒙版替换我发现的对象。我有一个掩码,显示未检测到物体的黑色,如果检测到则显示白色。然后我在where语句中使用图像
image[np.where((image2 == [255,255,255].any(axis = 2))
我被困在这里,我不知道如何将找到的白色值更改为原始图像(与其他蒙版一起使用)。我试过了image.shape
但这没效果。
感谢。
答案 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)
访问https://docs.opencv.org/3.3.0/d0/d86/tutorial_py_image_arithmetics.html 了解有关按位操作的更多信息