使用的模块:
在本文中,我们将使用Python-openCV(cv2)和NumPy模块。
Python-opencv(cv2):
Python-opencv(cv2)是一个python库,它将帮助我们解决开源计算机视觉问题。
NumPy:
Numpy代表数值Python。该库用于科学计算。在本文中,我们将使用此模块创建空白的黑色图像。
我们如何下载这些模块?
下载这些模块的一般方法:
python-opencv(cv2):pip安装opencv-python
numpy:安装numpy
Pycharm用户:Pycharm用户可以转到项目解释器并从那里安装此模块。
我们将在本文中做什么?
在本文中,我们将检查鼠标单击事件,我们将在NumPy的帮助下创建一个空白图像,此后,当我们单击左侧按钮时,它将在图像上创建一个圆圈,当我们单击右侧按钮时,还将在图像上创建任何颜色的圆圈。这样,我们将检查鼠标的鼠标单击事件。
我们将在本文中使用的重要功能:
np.zeros((<size with layer>),np.uint8):此函数将创建一个空白图像。
cv2.setMouseCallback(<Image Frame>,<Event Capturing Function>): 此函数将检查鼠标单击功能,并根据事件捕获功能执行以下操作。
程序:
# 导入模块 import cv2 ,numpy as np # 设置窗口名称 window="Nhooo.com" # 创建空白图像 # 图像尺寸为(512,512),分为3层 image=np.zeros((512,512,3),np.uint8) # 将名称设置为窗口 cv2.namedWindow(window) # 创建事件捕获功能 def capture_event(event,x,y,flags,params): # event =鼠标单击 # x,y是光标的位置 # 检查事件是否右键单击 if event==cv2.EVENT_RBUTTONDOWN: # 在该位置创建一个圆 # 半径为30,颜色为红色 cv2.circle(image,(x,y),30,(0,0,255),-1) # 检查事件是否被单击 if event==cv2.EVENT_LBUTTONDBLCLK: # 在该位置创建一个圆 # 半径30和颜色的绿色 cv2.circle(image,(x,y),30,(0,255,0),-1) # 检查事件是否正在滚动 if event==cv2.EVENT_MBUTTONDBLCLK: # 在该位置创建一个圆 # 半径为30,颜色为蓝色 cv2.circle(image,(x,y),30,(255,0,0),-1) # 设置鼠标功能 cv2.setMouseCallback(window,capture_event) # 创建一个循环,直到我们按下按钮 while True: cv2.imshow(window,image) if cv2.waitKey(1)==13: break cv2.destroyAllWindows()
输出:
这样,我们可以借助Python-opencv(cv2)捕获鼠标单击事件。