opencv鼠标绘图

本文将为您详细介绍如何使用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库和鼠标响应事件的使用。

原创文章,作者:TKUIK,如若转载,请注明出处:https://www.506064.com/n/373448.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
TKUIKTKUIK
上一篇 2025-04-27 15:26
下一篇 2025-04-27 15:26

相关推荐

  • 如何在PyCharm中安装OpenCV?

    本文将从以下几个方面详细介绍如何在PyCharm中安装OpenCV。 一、安装Python 在安装OpenCV之前,请确保已经安装了Python。 如果您还没有安装Python,可…

    编程 2025-04-29
  • Python OpenCV 直线检测

    本文将介绍在Python OpenCV中进行直线检测的方法,主要涉及到图像的边缘检测、霍夫变换和绘制直线等操作。 一、边缘检测 由于直线检测是从图像的边缘开始的,因此必须先找到图像…

    编程 2025-04-29
  • Opencv 实现读取 BMP 图片

    Opencv 是一个基于 C/C++ 语言的开源计算机视觉库,可以用于图像处理、特征识别、目标跟踪、机器学习等领域。在图像处理中,读取 BMP 图片是常见操作之一。 一、打开 BM…

    编程 2025-04-27
  • 深入探讨OpenCV版本

    OpenCV是一个用于计算机视觉应用程序的开源库。它是由英特尔公司创建的,现已由Willow Garage管理。OpenCV旨在提供一个易于使用的计算机视觉和机器学习基础架构,以实…

    编程 2025-04-25
  • OpenCV的全面介绍

    OpenCV是一款强大的开源计算机视觉库,它包含了各种用于图像和视频处理,图像识别和机器学习的函数,它可以用于开发实时的计算机视觉软件和系统,特别适用于图像处理、物体识别、人脸识别…

    编程 2025-04-25
  • Opencv CUDA编译用法介绍

    本文将从多个方面对Opencv CUDA编译进行详细的阐述和解读。通过以下小标题,我们将详细介绍如何进行编译。 一、环境搭建 在使用CUDA进行加速之前,需要进行CUDA的环境搭建…

    编程 2025-04-25
  • 详解OpenCV高斯滤波

    一、高斯滤波的介绍 OpenCV高斯滤波是一种平滑图像的处理方法,通常用于去除噪声、模糊化图像等。它的原理是利用高斯函数进行加权平均,从而减少噪声的干扰。 在图像处理中,噪声是一种…

    编程 2025-04-25
  • Clion配置OpenCV

    Clion是一个功能强大的跨平台集成开发环境,但要开发图像处理、计算机视觉等相关领域应用,需要将OpenCV集成到Clion中,才能方便地进行开发。本文将介绍如何在Clion中配置…

    编程 2025-04-24
  • OpenCV之cv2.imshow()

    一、cv2.imshow()介绍 cv2.imshow()是OpenCV中显示图像的主要函数之一。它可以显示传递给它的图像窗口,或者将图像作为选定窗口的内容。cv2.imshow(…

    编程 2025-04-24
  • Opencv图像拼接

    一、拼接方法 Opencv图像拼接方法主要有两种,分别是水平拼接和垂直拼接。 水平拼接是将多张图像在水平方向连接在一起,最终形成一张横向拼接的长图。垂直拼接是将多张图像在垂直方向连…

    编程 2025-04-24

发表回复

登录后才能评论