【OpenCV】拾色器,拾取圖片中某個像素點的顏色(BGR、HSV、GRAY)

更多代碼盡在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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章