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
提交
取消