如何使用Mouse Events绘制圆?(OpenCV Python实现)
鼠标事件有不同类型,例如左或右键点击,鼠标移动,左键双击等。 OpenCV为我们提供不同类型的鼠标事件,例如 cv2.EVENT_LBUTTONDOWN 表示鼠标左键按下, cv2.EVENT_RBUTTONDOWN 表示右键按下, cv2.EVENT_LBUTTONDBLCLK 表示左键双击等其他事件。
鼠标事件返回鼠标事件的坐标(x,y)。为了在事件发生时执行动作,我们定义了一个Mouse Callback Function。我们可以使用鼠标事件在图像上绘制圆。
步骤
要使用鼠标事件绘制圆,请按照以下步骤进行:
- 导入所需库 OpenCV 。请确保您已经安装了它。
-
创建一个黑色图像。我们在这个黑色图像上绘制圆。我们还使用 cv2.imread() 方法读取图像以在其上绘制圆。
-
定义Mouse Callback Function来绘制图像上的圆。 当发生鼠标事件时,将执行Mouse Callback Function。鼠标事件会给出鼠标事件的坐标。在这里,我们定义了一个Mouse Callback Function,用于在鼠标左键按下时绘制圆。
-
创建一个窗口,并将Mouse Callback Function绑定到此窗口。
-
显示图像窗口。此窗口打开我们在其上绘制圆的图像。要关闭窗口,按下 ESC 按钮。
让我们查看一些程序示例,以了解其工作原理。
程序示例
在此Python程序中,我们在鼠标左键按下时绘制圆。
当您执行上述Python代码时,它将打开一个名为“圆形窗口”的窗口,显示一张黑色图片。在窗口上单击鼠标左键,将绘制一个半径为100px的圆。如下所示的输出窗口,我们共绘制了五个圆。
输出
示例
在这个Python程序中,我们使用拖动鼠标画圆。绘制的圆有不同的半径。
当您执行上述Python代码时,它将打开一个显示黑色图像的窗口。我们可以通过拖动鼠标在图像上绘制一个圆。绘制圆的过程是先按下左键 (EVENT_LBUTTONDOWN) ,然后移动鼠标 (EVENT_MOUSEMOVE) ,最后释放按钮 (EVENT_LBUTTONUP) 。
输出
示例
在这个Python程序中,我们使用鼠标双击图像来绘制实心圆。
当您执行上述Python代码时,它将打开一个窗口,显示输入图片。在图片中的某点上双击(EVENT_LBUTTONDBLCLK)可画出一个填充的圆。