更多代码尽在Github
1、无交互版
输出固定图片的HSV值,鼠标点击就能输出
import cv2# 定义鼠标交互函数def mouseColor(event, x, y, flags, param):if event == cv2.EVENT_LBUTTONDOWN:print('HSV:', hsv[y, x]) #输出图像坐标(x,y)处的HSV的值img = cv2.imread('0.jpg') #读进来是BGR格式hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) #变成HSV格式cv2.namedWindow("Color Picker")cv2.setMouseCallback("Color Picker", mouseColor)cv2.imshow("Color Picker", img)if cv2.waitKey(0):cv2.destroyAllWindows()
2、交互版
运行程序后,按提示进行输入,鼠标点击就能输出
import cv2# 定义鼠标交互函数def mouseColor(event, x, y, flags, param):if event == cv2.EVENT_LBUTTONDOWN:print(str.upper(out), color[y, x]) #输出图像坐标(x,y)处的HSV的值path, out = input('请输入图片名称或路径,再空格输入选择的颜色格式(bgr/gray/hsv)\n').split()img = cv2.imread(path) #读进来是BGR格式# 进行颜色格式的转换gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #变成灰度图hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) #变成HSV格式if out == 'bgr':color = imgif out == 'gray':color = grayif out == 'hsv':color = hsvcv2.namedWindow("Color Picker")cv2.setMouseCallback("Color Picker", mouseColor)cv2.imshow("Color Picker", img)if cv2.waitKey(0):cv2.destroyAllWindows()