溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

opencv3/python 鼠標(biāo)響應(yīng)操作詳解

發(fā)布時(shí)間:2020-10-02 13:53:01 來源:腳本之家 閱讀:194 作者:阿卡蒂奧 欄目:開發(fā)技術(shù)

鼠標(biāo)回調(diào)函數(shù):

def setMouseCallback(
windowName,     #窗口名稱
onMouse,      #鼠標(biāo)響應(yīng)處理函數(shù)
param=None)     #處理函數(shù)的ID

event鼠標(biāo)事件:

event:
EVENT_LBUTTONDBLCLK = 7     左鍵雙擊
EVENT_LBUTTONDOWN = 1      左鍵點(diǎn)擊
EVENT_LBUTTONUP = 4       左鍵釋放
EVENT_MBUTTONDBLCLK = 9     中間釋放
EVENT_MBUTTONDOWN = 3      中間點(diǎn)擊
EVENT_MBUTTONUP = 6       中間釋放
EVENT_MOUSEHWHEEL = 11     滾輪事件
EVENT_MOUSEMOVE = 0       滑動(dòng)
EVENT_MOUSEWHEEL = 10      滾輪事件
EVENT_RBUTTONDBLCLK = 8     右鍵雙擊
EVENT_RBUTTONDOWN = 2      右鍵點(diǎn)擊
EVENT_RBUTTONUP = 5       右鍵釋放


flags:
EVENT_FLAG_ALTKEY = 32     按Alt不放事件
EVENT_FLAG_CTRLKEY = 8     按Ctrl不放事件
EVENT_FLAG_LBUTTON = 1     左鍵拖拽
EVENT_FLAG_MBUTTON = 4     中鍵拖拽
EVENT_FLAG_RBUTTON = 2     右鍵拖拽
EVENT_FLAG_SHIFTKEY = 16    按Shift不放事件

示例

在圖像上用鼠標(biāo)點(diǎn)擊左鍵拖拽畫一矩形,并輸出矩形信息:

import cv2
def draw_rectangle(event,x,y,flags,param):
  global ix, iy
  if event==cv2.EVENT_LBUTTONDOWN:
    ix, iy = x, y
    print("point1:=", x, y)
  elif event==cv2.EVENT_LBUTTONUP:
    print("point2:=", x, y)
    print("width=",x-ix)
    print("height=", y - iy)
    cv2.rectangle(img, (ix, iy), (x, y), (0, 255, 0), 2)

img = cv2.imread("max.png") #加載圖片
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw_rectangle)
while(1):
  cv2.imshow('image', img)
  if cv2.waitKey(20) & 0xFF == 27:
    break
cv2.destroyAllWindows()

輸出:

point1:= 254 64
point2:= 708 569
width= 454
height= 505

opencv3/python 鼠標(biāo)響應(yīng)操作詳解

以上這篇opencv3/python 鼠標(biāo)響應(yīng)操作詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI