重明鸟计算工作室
重明鸟计算工作室
首页 算法 应用
OpenCV示例-02.鼠标信息
标签:图像编程,OpenCV发布日期:2020-09-05作者:重明鸟计算工作室

在OpenCV里图像处理是它首要任务。而键盘、鼠标这些输入信息处理基本是通过轮询和回调方式访问的。键盘信息就不说了,这是在循环里轮询访问的。鼠标信息则是通过回调函数来调用。我们看个例子。
import cv2

def mouse_fun(event,x,y,flags,prama):
    '''
    def callbackFunc(event,x,y,flags,param): pass

    event:为事件类型,就是我们上面图片中的哪些类型(当然还有别的)

    x, y:为当前鼠标位置坐标

    flags:查看某种键是否被按下,比如按下鼠标键的同时按下Ctrl或者Shift键这种操作。

    param:用户自定义变量    
    '''

    if event == cv2.EVENT_LBUTTONDOWN:
       print("LButton is Down  Cursor Pos:%d,%d"%(x,y),flags,prama)

#============================================ 
if __name__ == '__main__':
    #命名窗口    
    cv2.namedWindow("canvas",0)
     
    #设置程序窗口全屏模式    
    cv2.setWindowProperty("canvas", cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
    
    #加载图片
    bk_img = cv2.imread('bg.jpg')
    
    #鼠标事件的回调函数
    cv2.setMouseCallback("canvas", mouse_fun)  
     
    while(True):
    
        #显示图片
        cv2.imshow("canvas",bk_img)
        
        
        k = cv2.waitKey(100)
         
        if(k==27):
            break
       
    cv2.destroyAllWindows()
这里最重要的是mouse_fun这个回调函数里的一些参数说明
回调函数参数
def callbackFunc(event,x,y,flags,param): pass

#event:为事件类型,就是我们上面图片中的哪些类型(当然还有别的)

#x, y:为当前鼠标位置坐标

#flags:使用event 可以查看鼠标的具体事件,而flag查看某种键是否被按下,比如按下鼠标键的同时按下Ctrl或者Shift键这种操作。

#param:用户自定义变量
回调函数参数值说明
event:
EVENT_LBUTTONDBLCLK = 7         左键双击
EVENT_LBUTTONDOWN = 1           左键点击
EVENT_LBUTTONUP = 4             左键释放
EVENT_MBUTTONDBLCLK = 9         中间释放
EVENT_MBUTTONDOWN = 3           中间点击
EVENT_MBUTTONUP = 6             中间释放
EVENT_MOUSEHWHEEL = 11          滚轮事件
EVENT_MOUSEMOVE = 0             滑动
EVENT_MOUSEWHEEL = 10           滚轮事件
EVENT_RBUTTONDBLCLK = 8         右键双击
EVENT_RBUTTONDOWN = 2           右键点击
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不放事件
桂ICP备11003301号-1 公安备案号:45040302000027 Copyright @ 2011-2020 By Sun zi chao