Python OpenCV学习之图形绘制总结

Python OpenCV学习之图形绘制总结

OpenCV是一个非常强大的计算机视觉库,能够用于各种图像处理任务。在OpenCV中,图形绘制是非常基础的一部分,下面是Python OpenCV图形绘制的总结。

1. 图形绘制函数

OpenCV提供了多种基本的图形绘制函数,包括直线、矩形、圆、多边形等。这些函数都属于cv2模块,下面是一些常用图形绘制函数的代码示例:

1.1 绘制直线

import numpy as np
import cv2

# 创建一个黑色图像
img = np.zeros((512, 512, 3), np.uint8)

# 画一条红色直线,起点为(0,0),终点为(511,511),线宽为5
cv2.line(img, (0,0), (511,511), (0,0,255), 5)

# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

1.2 绘制矩形

import numpy as np
import cv2

# 创建一个黑色图像
img = np.zeros((512, 512, 3), np.uint8)

# 画一个绿色矩形,左上角坐标为(50,50),右下角坐标为(200,200),线宽为3
cv2.rectangle(img,(50,50),(200,200),(0,255,0),3)

# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

1.3 绘制圆

import numpy as np
import cv2

# 创建一个黑色图像
img = np.zeros((512, 512, 3), np.uint8)

# 画一个黄色圆,圆心坐标为(256,256),半径为100,线宽为-1(表示填充)
cv2.circle(img,(256,256), 100, (0,255,255), -1)

# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

2. 从鼠标事件中获取绘图坐标

有时候需要从鼠标事件中获取用户绘图的坐标,以完成动态绘制的效果。下面是一段代码示例,从鼠标事件中获取坐标,并在图像上进行动态绘制:

import numpy as np
import cv2

# 定义回调函数,从事件中获取坐标并进行绘制
def draw_circle(event,x,y,flags,param):
    if event == cv2.EVENT_LBUTTONUP:
        cv2.circle(img,(x,y),50,(255,0,0),-1)

# 创建一个黑色图像
img = np.zeros((512,512,3), np.uint8)
cv2.namedWindow('image')

# 注册回调函数
cv2.setMouseCallback('image',draw_circle)

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

该代码创建了一个黑色图像,并注册了鼠标左键的点击事件。当用户点击鼠标左键时,回调函数将获取到坐标信息并进行绘制,实现了动态绘图的效果。

3. 总结

本文介绍了Python OpenCV图形绘制的基本函数和从鼠标事件中获取绘制坐标的方法。在实际开发中,可以根据需求灵活使用这些函数和方法,完成各种图形绘制任务。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python OpenCV学习之图形绘制总结 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • 讯飞智能办公本Air值得购买吗? 科大讯飞智能办公本评测

    讯飞智能办公本Air值得购买吗?科大讯飞智能办公本评测 首先,让我们了解一下讯飞智能办公本Air 讯飞智能办公本Air是一款基于AI智能算法的商务办公笔记本电脑,采用第十代英特尔酷睿处理器,拥有高性能显示和快速响应的触控屏,配备16G内存、512G SSD超大存储空间,支持人脸识别、指纹识别等多种身份验证方式,还配备了90Wh优质电池,使用时间可达14小时。…

    人工智能概览 2023年5月25日
    00
  • window平台安装MongoDB数据库图文详解

    来为您详细讲解“window平台安装MongoDB数据库图文详解”的完整攻略吧。 前置条件 在开始安装 MongoDB 之前,需要确保满足以下两个前置条件: 你需要一台运行的 Windows 操作系统电脑; 需要下载 MongoDB 的安装文件。 下载 MongoDB 在下载之前,我们需要确认一下系统的位数。请在“计算机”或者“此电脑”的属性中查看系统类型,…

    人工智能概览 2023年5月25日
    00
  • Bootstrap框架建立树形菜单(Tree)的实例代码

    Bootstrap框架提供了用于创建平台可用的用户界面组件的组合工具。其中之一就是树形菜单(Tree)。通过使用Bootstrap,我们可以从头开始创建一个完整的树形菜单,并将其集成到我们的网站或应用程序中。 以下是建立树形菜单的步骤: 1. 引入Bootstrap库和jQuery库 在标签中引入Bootstrap库和jQuery库。 <head&gt…

    人工智能概论 2023年5月25日
    00
  • keras绘制acc和loss曲线图实例

    让我来详细讲解一下“keras绘制acc和loss曲线图实例”的完整攻略。 简介 Keras是一个基于Python的深度学习库,它能够在TensorFlow、Theano、Microsoft Cognitive Toolkit等深度学习框架上提供高层神经网络API。在训练深度学习模型时,我们需要了解模型的训练效果,通常通过监控模型在训练时的准确率(Acc)和…

    人工智能概论 2023年5月25日
    00
  • 使用apt-mirror搭建Ubuntu软件源的实例教程

    下面是使用apt-mirror搭建Ubuntu软件源的实例教程,具体步骤如下: 一、环境准备 操作系统:Ubuntu 18.04 LTS; 安装apt-mirror:在终端中执行sudo apt-get install apt-mirror进行安装。 二、配置apt-mirror 打开源列表文件,执行命令sudo vim /etc/apt/mirror.li…

    人工智能概论 2023年5月24日
    00
  • 使用bandit对目标python代码进行安全函数扫描的案例分析

    使用bandit对目标Python代码进行安全函数扫描的攻略如下: 安装bandit 首先,需要安装bandit。可以通过pip命令安装,如下所示: pip install bandit 扫描代码 安装完成后,就可以对目标Python代码进行扫描了。使用以下命令可以进行扫描: bandit -r [目标代码文件夹名称] 其中,-r表示递归扫描该文件夹下的所有…

    人工智能概论 2023年5月25日
    00
  • Linux系统中设置多版本PHP共存配合Nginx服务器使用

    下面是关于Linux系统中设置多版本PHP共存配合Nginx服务器使用的完整攻略。 准备工作 在进行如下操作之前,需要先在Linux系统上安装好Nginx服务器,以及所需的各版本PHP。 步骤一:安装fastcgi 为了让Nginx能够运行PHP脚本,需要安装fastcgi。在终端执行以下命令: sudo apt-get install fastcgi 步骤…

    人工智能概览 2023年5月25日
    00
  • 分布式医疗挂号系统整合Gateway网关解决跨域问题

    分布式医疗挂号系统整合Gateway网关解决跨域问题教程 一、背景 随着互联网技术的快速发展,越来越多的医院开始接受互联网挂号服务,但是同时也出现了医院之间的系统隔离和跨域问题。针对这个问题,我们可以采用分布式系统架构+Gateway网关的方式进行解决,下面详细讲解。 二、分布式系统架构介绍 分布式系统架构是指采用不同计算机之间的互联网连接以及信息共享、相互…

    人工智能概览 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部