OpenCV鼠标事件

Posted nmucomputer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

以上是关于OpenCV鼠标事件的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV鼠标事件详解-深入理解回调函数

opencv c ++中的鼠标事件

opencv4 鼠标事件 鼠标画线条

opencv4 鼠标事件 鼠标画线条

AI基础python:openCV——处理鼠标事件

OpenCV-Python实战(番外篇)——OpenCV中利用鼠标事件动态绘制图形