首页 > 编程知识 正文

opencv鼠标绘图

时间:2023-11-20 09:40:01 阅读:291427 作者:OAXD

本文将为您详细介绍如何使用opencv在原始图片上进行鼠标绘图。

一、准备工作

在开始绘制之前,您需要先准备好以下的工作:

1、安装opencv库,可以通过pip install opencv-python命令进行安装。

2、导入opencv库和matplotlib库,以实现在图片中实时绘制。

import cv2
import matplotlib.pyplot as plt

二、鼠标响应事件

当我们在图片上点击鼠标时,需要响应该事件来实现绘图操作。

def draw(event, x, y, flags, params):
    if event == cv2.EVENT_LBUTTONDOWN:
        cv2.circle(img,(x,y),5,(255,0,0),-1)

该函数为鼠标响应函数,当检测到鼠标左键按下并释放时,即为鼠标绘图操作。

参数说明:

event:检测到的鼠标事件类型。

x,y:鼠标点击的位置坐标。

flags:附加的鼠标事件信息。

params:传递给鼠标事件处理函数的参数。

三、绘制

在完成鼠标响应事件后,我们需要开辟一个窗口来显示图片,并在其中响应绘图操作。

img = cv2.imread('img.jpg')
cv2.namedWindow('image')
cv2.setMouseCallback('image', draw)

while(1):
    cv2.imshow('image',img)
    k = cv2.waitKey(1) & 0xFF
    if k == 27:
        break

cv2.destroyAllWindows()

该代码段实现以下操作:

1、读入图片。

2、创建一个窗口并绑定响应函数。

3、显示图片并等待鼠标响应。

4、按下ESC键退出程序。

注意:

由于cv2.imshow函数的不易适用性,我们在使用matplotlib.pyplot的imshow函数实现等同的功能。

img = cv2.imread('img.jpg')
plt.imshow(img)
plt.setMouseCallback('image', draw)

while(1):
    plt.imshow(img)
    plt.show(block=False)
    plt.pause(0.001)

plt.close()

四、小结

本文介绍了如何通过opencv在原始图片上进行鼠标绘图,并提供了完整的代码示例。

对于读者们,建议多尝试不同的对象绘制方式和参数,从而更好的理解opencv库和鼠标响应事件的使用。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。