opencv鼠標事件練習:圖片取色器實現

opencv的鼠標事件格式比較固定:調用setMouseCallback函數

setMouseCallback(窗口名, 鼠標事件響應函數, 傳入響應函數的參數)

響應函數格式如下:

functionName(event, x, y, flag, param)
其中event flag 是鼠標事件標誌,詳見官方文檔
(x,y)爲鼠標在窗口中點擊的位置,與數組座標同參考系
param是傳入參數

import cv2 as cv

def tirgger_left_clicked(event, x, y, flags, param):
    if event == cv.EVENT_LBUTTONDOWN:
        print('coordinate is :', (x, y))
        print('In BGR is:' ,param[0][y][x])
        print('In HSV is:' ,param[1][y][x] ,'\n')


if __name__ == '__main__':
    img = cv.imread('test01.jpg')
    img_hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)
    cv.namedWindow('image', cv.WINDOW_AUTOSIZE)

    flag = True
    while(flag):
        cv.imshow('image', img)
        cv.setMouseCallback('image', tirgger_left_clicked, [img ,img_hsv])
        flag = (cv.waitKey(20) & 0xFF != 27)
    cv.destroyWindow('image')

運行結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章