Opencv處理滑鼠事件 OpenCV步步精深

2022-08-19 20:15:08 字數 1556 閱讀 5064

滑鼠事件就是和滑鼠有關的,比如左鍵按下,左鍵鬆開,右鍵按下,右鍵鬆開,雙擊右鍵等等。

我們可以通過滑鼠事件獲得與滑鼠對應的上的座標。我們通過以下函式來呼叫檢視所有滑鼠事件。

events=[i for i in dir(cv2) if 'event'in i]

print events

所有的滑鼠事件

我們來是這寫一下這個函式,第一步還是呼叫庫

import cv2

import  numpy as np

呼叫滑鼠**函式

def draw_circle(event,x,y,flags,param):

這個函式有5個引數:滑鼠事件名稱,座標是雙擊時滑鼠的位置,我沒看懂flags,param是啥意思,不敢誤人子弟。(希望有心人教教我)

if event==cv2.event_lbuttondblclk:

如果這個事件是左鍵雙擊事件

cv2.circle(img,(x,y),100,(255,0,0),-1)

那麼畫乙個圓,昨天說過有關cv2.circle的引數,今天不再贅述。

img=np.zeros((512,512,3),np.uint8)

這是創造乙個空的黑色環境,昨天也講過,記的複習哦!

cv2.namedwindow('shuhangjihuayuan')

命名視窗為shuangjihuayuan

cv2.setmousecallback('shuangjihuayuan',draw_circle)

(建立影象與視窗並將視窗)與**函式繫結

然後就是顯示出來就好啦

while(1):

cv2.imshow('shuangjihuayuan',img)

if cv2.waitkey(20)&0xff==27:

break

然後銷毀視窗

cv2.destroyallwindows()

執行結果

所有**來啦

# -*- coding:utf-8 -*-

"""created on sun dec 31 05:07:11 2016

@author: y

"""import cv2

import numpy as np

def draw_circle(event,x,y,flags,param):

if event==cv2.event_lbuttondblclk:

cv2.circle(img,(x,y),100,(255,0,0),-1)

img=np.zeros((512,512,3),np.uint8)

cv2.namedwindow('shuangjihuayuan')

cv2.setmousecallback('shuangjihuayuan',draw_circle)

while(1):

cv2.imshow('shuangjihuayuan',img)

if cv2.waitkey(20)&0xff==27:

break

cv2.destroyallwindows()

OpenCV滑鼠滑輪事件

滑鼠的滑輪事件實現影象的縮放很方便,具體在 函式中如下寫 其中scale可以在外部定義為全域性變數,通過響應cv event mousewheel滑輪事件獲取scale的具體值。獲取scale值需要關注兩個問題,滑輪滑動的方向和滑動量的大小。滑動方向通過getmousewheeldelta flag...

linux 處理鍵盤 滑鼠事件

linux下滑鼠和鍵盤的模擬控制,也就是為手勢和語音控制滑鼠和鍵盤部分服務的。有關於本系統構建的文章結構都會由三個部分來組織,一是該功能模組的介紹和在linux下簡單應用程式的實現 二是將該功能模組整合到互動系統 先以tld為地基 中去 三是分析目前存在的問題與未來的解決構思。一 input子系統和...

Qt 鍵盤 滑鼠事件的處理

事件是對各種應用程式需要知道的由應用程式內部或者外部產生的事情或者動作的通稱。對於初學者,總會對qt中訊號和事件的概念混淆不清。其實,記住事件比訊號更底層就可以了。比如說,我們用滑鼠按下介面上的乙個按鈕,它會發射clicked 單擊訊號,但是,它怎麼知道自己被按下的呢,那就是通過滑鼠事件處理的。這裡...