import cv2import numpy as npimg = cv2.imread('image.jpg')res = img.copy()hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)lower_green = np.array([40,50,50])upper_green = np.array([80,255,255])r2, g2, b2 = 255, 0, 0mask = cv2.inRange(hsv, lower_green, upper_green)mask = mask/255mask = mask.astype(np.bool)res[:,:,:3][mask] = [b2, g2, r2] # opencv uses BGRcv2.imshow('image', img)cv2.imshow('Result', res)cv2.waitKey(0)cv2.destroyAllWindows()我想根據照片中的點擊來檢測從低到高的顏色值。例如,在這段代碼中,我使用[40,50,50]了較低的綠色值和[80,255,255]較高的綠色值,但我想使這個過程自動化。例如,您單擊了照片的綠色面,這會返回 [40,50,50]和[80,255,255]
1 回答

翻閱古今
TA貢獻1780條經驗 獲得超5個贊
您可以使用列表或字典來獲取每個陰影(R、G、B)的值,然后通過單擊事件您可以獲得圖片上 BGR 的值(例如:40、50、50)并通過比較每個條件值:
(if valueB > 40 and valueB < 80 and valueG > 50 and valueG < 255 and valueR > 50 and valueR < 255: print("the values of the color are [40,50,50] and [80,255,255]") )
并以這種方式獲得您想要的顏色。
添加回答
舉報
0/150
提交
取消