[英]Applying mask for coloured image in Open cv
我應該在下面的代碼中進行哪些更改,以便如果我知道綠色的HSV值,則應該獲得不包含綠色的圖像段作為輸出?
import cv2
import matplotlib.pyplot as plt
import numpy as np
img = cv2.imread("sun.jpg")
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv, (36, 25, 25), (70, 255,255)) ## mask of green (36,25,25) ~ (86, 255,255)
imask = mask>0 ## slice the green
green = np.zeros_like(img, np.uint8)
green[imask] = img[imask]
cv2.imshow('image ',green)
cv2.waitKey(0)
cv2.imwrite("green1.png", green) ##saving
實際輸出:是唯一的綠色部分
預期輸出:綠色部分除外
你應該換線
green[imask] = img[imask]
與
green = img[!imask] # not of mask to get non-green regions in image
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.