[英]OpenCV & Python: Cover a colored mask over a image
现在,在我处理了所有这些 Python、OpenCV、Numpy 的事情一段时间后,我发现用代码实现它非常简单:
image[mask] = (0, 0, 255)
-------------- 原来的答案 --------------
我通过以下代码解决了这个问题:
redImg = np.zeros(image.shape, image.dtype)
redImg[:,:] = (0, 0, 255)
redMask = cv2.bitwise_and(redImg, redImg, mask=mask)
cv2.addWeighted(redMask, 1, image, 1, 0, image)
这个想法是将掩码转换为像素为0
(黑色)或255
(白色)的二进制格式。 白色像素代表保留的部分,而黑色部分被丢弃。 然后将蒙版上的所有白色像素设置为所需的BGR
颜色。
输入图像和蒙版
结果
代码
import cv2
image = cv2.imread('1.jpg')
mask = cv2.imread('mask.jpg', 0)
mask = cv2.threshold(mask, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
image[mask==255] = (36,255,12)
cv2.imshow('image', image)
cv2.imshow('mask', mask)
cv2.waitKey()
这对我有用:
red = np.ones(mask.shape)
red = red*255
img[:,:,0][tmask>0] = red[mask>0]
所以我制作了一个具有 255 个实心值的二维数组,并将其替换为我的图像的红色带(以像素为单位),我的掩码不为零。 红面具
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.