更多代碼盡在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()