Advertisement

opencv鼠标键盘事件

阅读量:

1、窗口循环读取

复制代码
    import numpy as np
    import cv2
    import matplotlib.pyplot as plt
    
    import os
    from itertools import cycle
    
    filename = os.listdir("../images")
    img_iter = cycle([cv2.imread(os.sep.join(["../images",x]))for x in filename])
    key = 0
    while key != 27:
    cv2.imshow("img",next(img_iter))
    key = cv2.waitKey(42)

2、获取键盘值

复制代码
    import numpy as np
    import cv2
    import matplotlib.pyplot as plt
    
    import os
    from itertools import cycle
    
    img = cv2.imread("../images/img.jpg")
    key = 0
    while key != 27:
    
    cv2.imshow("img",img)
    key = cv2.waitKey()
    msg = "{} if pressed!".format(chr(key) if key < 256 else key)
    print(msg)

3、鼠标

复制代码
    import numpy as np
    import cv2
    import matplotlib.pyplot as plt
    
    import os
    from itertools import cycle
    
    
    def on_mouse(event,x,y,flags,param):
    
    if event == cv2.EVENT_LBUTTONDOWN:
        print("鼠标左键按下,位置({},{})".format(x,y))
    elif event == cv2.EVENT_LBUTTONUP:
        print("鼠标左键抬起,位置({},{})".format(x,y))
    elif event == cv2.EVENT_LBUTTONDBLCLK:
        print("鼠标左键双击,位置({},{})".format(x,y))
    
    
    elif event == cv2.EVENT_RBUTTONDOWN:
        print("鼠标右键按下,位置({},{})".format(x,y))
    elif event == cv2.EVENT_RBUTTONUP:
        print("鼠标右键抬起,位置({},{})".format(x, y))
    elif event == cv2.EVENT_RBUTTONDBLCLK:
        print("鼠标右键双击,位置({},{})".format(x, y))
    
    
    elif event == cv2.EVENT_MBUTTONDOWN:
        print("鼠标滚轮按下,位置({},{})".format(x, y))
    elif event == cv2.EVENT_MBUTTONUP:
        print("鼠标滚轮抬起,位置({},{})".format(x, y))
    elif event == cv2.EVENT_MBUTTONDBLCLK:
        print("鼠标滚轮双击,位置({},{})".format(x, y))
    
    elif event == cv2.EVENT_MOUSEMOVE:
        print("鼠标移动,位置({},{})".format(x, y))
    
    
    cv2.namedWindow("mouse event")
    cv2.setMouseCallback("mouse event",on_mouse)
    cv2.waitKey(0)

全部评论 (0)

还没有任何评论哟~