繁体   English   中英

如何将 OpenCV 中的两个位掩码与不同的 colors 合并

[英]How to merge two bitmasks in OpenCV with different colors

我必须戴口罩,例如这些:

在此处输入图像描述 在此处输入图像描述

我想将它们合并到一个图像中,但是第一个和第二个掩码必须具有不同的 colors,因此所需的结果是:

在此处输入图像描述

我知道我可以将它们都转换为 BGR 颜色空间,然后替换 colors 并像这样合并它们:

img1 = cv2.cvtColor(mask1, cv2.COLOR_GRAY2BGR)
img1[np.where((img1==[255, 255, 255]).all(axis=2))] = [0, 0, 255]
img2 = cv2.cvtColor(mask2, cv2.COLOR_GRAY2BGR)
img2[np.where((img2==[255, 255, 255]).all(axis=2))] = [0, 255, 0]
img = cv2.bitwise_or(img1, img2)

但似乎应该有一种更简单、更优化的方法来做到这一点。 有没有这样的方法?

希望对你有帮助。

img1[img1[:,:,0]==255]=[0,255,0]
img2[img2[:,:,0]==255]=[0,0,255]
img1[img2[:,:,2]==255]=[0,0,255]

cv2.imshow('img1',img1)
cv2.waitKey(0)
cv2.destroyAllWindows()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM