更多代码尽在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 = img
if out == 'gray':
color = gray
if out == 'hsv':
color = hsv
cv2.namedWindow("Color Picker")
cv2.setMouseCallback("Color Picker", mouseColor)
cv2.imshow("Color Picker", img)
if cv2.waitKey(0):
cv2.destroyAllWindows()