• OpenCV鼠标事件


     1 # Author:Winter Liu is coming!
     2 import cv2 as cv
     3 import numpy as np
     4 
     5 
     6 # 鼠标回调函数,当发生鼠标事件,调用此函数,传递5个参数
     7 def draw_demo(event, x, y, flags, params):
     8     # 左键、右键、左键双击
     9     # 对应圆、矩形、椭圆形
    10     if event == cv.EVENT_FLAG_LBUTTON:
    11         cv.circle(image, (x, y), 20, (0, 0, 255), -1)
    12     elif event == cv.EVENT_FLAG_RBUTTON:
    13         cv.rectangle(image, (x, y), (x+20, y+20), (0, 255, 0), 2)
    14     elif event == cv.EVENT_LBUTTONDBLCLK:
    15         cv.ellipse(image, (x, y), (50, 30), 45, 0, 360, (255, 0, 0), 2)
    16 
    17 
    18 # 查看OpenCV中可识别事件
    19 events = [i for i in dir(cv) if 'EVENT' in i]
    20 for e in events:
    21     print(e)
    22 # 使用numpy创建纯色图形,全白(全黑)
    23 image = (np.ones((512, 512, 3), np.uint8))*255
    24 # image = np.zeros((512, 512, 3), np.uint8)
    25 cv.namedWindow("PIC")
    26 # 设置鼠标回调
    27 cv.setMouseCallback('PIC', draw_demo)
    28 
    29 while 1:
    30     cv.imshow("PIC", image)
    31     if cv.waitKey(20) == 27:
    32         break
    33 cv.destroyAllWindows()
  • 相关阅读:
    asp.net web生命周期
    图的数据结构1
    最长公共子串
    内部排序

    棋盘覆盖问题
    队列
    矩阵连乘问题
    图的数据结构2
    旅行售货员问题
  • 原文地址:https://www.cnblogs.com/nmucomputer/p/12192307.html
Copyright © 2020-2023  润新知