[英]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.