如何将颜色转换为列表?作为 numpy 数组从低到高的值

import cv2

import numpy as np


img = 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, 0


mask = cv2.inRange(hsv, lower_green, upper_green)


mask = mask/255

mask = mask.astype(np.bool)

res[:,:,:3][mask] = [b2, g2, r2] # opencv uses BGR


cv2.imshow('image', img)

cv2.imshow('Result', res)

cv2.waitKey(0)

cv2.destroyAllWindows()

我想根据照片中的点击来检测从低到高的颜色值。例如,在这段代码中,我使用[40,50,50]了较低的绿色值和[80,255,255]较高的绿色值,但我想使这个过程自动化。例如,您单击了照片的绿色面,这会返回 [40,50,50]和[80,255,255]


蝴蝶不菲
浏览 102回答 1
1回答

翻阅古今

您可以使用列表或字典来获取每个阴影(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]") )并以这种方式获得您想要的颜色。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python