iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python OpenCV中如何进行图形绘制
  • 628
分享到

Python OpenCV中如何进行图形绘制

2023-06-22 08:06:26 628人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章将为大家详细讲解有关python OpenCV中如何进行图形绘制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。背景使用OpenCV进行图形绘制是一种必备的技能,在图像的任务

这篇文章将为大家详细讲解有关python OpenCV中如何进行图形绘制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

背景

使用OpenCV进行图形绘制是一种必备的技能,在图像的任务中,不管是图像检测还是图像识别,我们都需要通过绘制图形和绘制文字对处理的结果进行说明,本篇就详细介绍下图形的绘制;

一、画线

line(图像,起始点,终点,颜色,线宽,线形):一般只需要前面四个参数即可;

代码案例:

cv2.line(img, (20, 100), (20, 500), (0,0,255))

画出了一条Y方向上的红色线段;

二、画矩形

这个相对来说是应用最多的一种方法了,往往在检测项目中返回目标的结果就是(x,y,w,h)或者(x1,y1,x2,y2)这两种形式,当然我们这里绘制需要的是第二种形式,而通过左上角点计算右下角也是很简单的;

cv2.rectangle(img, (x1,y1), (x2,y2), (0,0,255), 3)    # 后面两个参数为颜色和线长

简单展示一下我用DeepFashion数据画出矩形框的效果:

Python OpenCV中如何进行图形绘制

三、画圆

画圆在应用的其实并不多,更多的是画点的操作,例如关键点的任务,需要将关键点在目标图像上显示出来;而实际上点就是一个实心圆,这里就介绍画圆和画点的两种形式吧。

# 函数cv2.circle(img, (x,y), 半径长度, (0,0,255), -1)        // 画一个实心圆(点),最后参数设置为负数cv2.circle(img, (x,y), 半径长度, (0,0,255), 4)        // 画一个空心圆

下面还是展示我画出关键点的一个效果:

Python OpenCV中如何进行图形绘制

四、画多边形

绘制多边形在实际应用中也很常见,例如分割以及OCR的任务,往往需要用多个点描述出目标的轮廓。

函数原型如下:

polylines(img,点集,是否闭环,颜色…),注意这里的点集必须是32位的

案例代码:

pot = np.array([(100, 100), (200, 200), (300, 400)], np.int32)cv2.polylines(img, [pot], True, (0, 0, 255))# 如果输出填充的多边形,用以下apicv2.fillPoly(img, [pot], (0, 0, 255))

五、画文本

绘制文本在实际项目中,往往用来标记类别,对于一些结果输出,可以通过文本的方式绘制到图像上,便于观察结果和验证;

函数原型:

putText(img,字符串,起始点,字体,字号…)

案例代码:

cv2.putText(img, "Hello World", (100, 100), 字体, 3, (0,0,255))

六、鼠标绘制

实现功能:

可通过鼠标进行基本图形的绘制:按下l画线,按下r画矩形,按下c画圆;

import cv2import numpy as npstar = (0, 0)select = 0img = np.zeros((480, 640, 3), np.uint8)// 定义鼠标回调函数def mouse_callback(event, x, y, flags, userdata):    global star,select    if (event & cv2.EVENT_LBUTTONDOWN == cv2.EVENT_LBUTTONDOWN):        star = (x, y)    elif (event & cv2.EVENT_LBUTTONUP == cv2.EVENT_LBUTTONUP):        if select == 0:            cv2.line(img, star, (x, y), (0, 0, 255))        elif select == 1:            cv2.rectangle(img, star, (x, y), (0, 0, 255))        elif select == 2:            a = (x - star[0])            b = (y - star[1])            r = int((a**2+b**2)**0.5)            cv2.circle(img, star, r, (0, 0, 255))        else:            print('no shape')            cv2.namedWindow('drawshape', cv2.WINDOW_NORMAL)cv2.setMouseCallback('drawshape', mouse_callback, "111")while True:    cv2.imshow('drawshape', img)    key=cv2.waiTKEy(1) & 0xFF    if key == ord('q'):        break    elif key == ord('l'):        select = 0    elif key == ord('r'):        select = 1    elif key == ord('c'):        select = 2

下图是我自己随意画的结果,大家可以创造出更有趣的图画;

Python OpenCV中如何进行图形绘制

关于Python OpenCV中如何进行图形绘制就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Python OpenCV中如何进行图形绘制

本文链接: https://www.lsjlt.com/news/303604.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python OpenCV中如何进行图形绘制
    这篇文章将为大家详细讲解有关Python OpenCV中如何进行图形绘制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。背景使用OpenCV进行图形绘制是一种必备的技能,在图像的任务...
    99+
    2023-06-22
  • Python OpenCV如何绘制各类几何图形
    这篇文章将为大家详细讲解有关Python OpenCV如何绘制各类几何图形,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一.绘制直线在OpenCV中,绘制直线需要获取直线的起点和终点坐标,调用c...
    99+
    2023-06-29
  • C++ OpenCV绘制几何图形
    本文实例为大家分享了C++ OpenCV绘制几何图形的具体代码,供大家参考,具体内容如下 绘制几何图形 直线 矩形 多边形 圆形 椭圆 ...
    99+
    2024-04-02
  • OpenCV绘制图形功能
    本文实例为大家分享了OpenCV绘制图形功能的具体代码,供大家参考,具体内容如下 1、绘制直线 绘制直线函数是cv::line,函数完整形式如下 void line(InputOut...
    99+
    2024-04-02
  • Python OpenCV实现基本图形绘制
    1.导入模块 import cv2 as cv import numpy as np 2.OpenCV绘图大致步骤 OpenCV 图形绘制步骤 (1)先定义基础画布canv...
    99+
    2024-04-02
  • Python+OpenCV如何实现在图像上绘制矩形
    小编给大家分享一下Python+OpenCV如何实现在图像上绘制矩形,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!代码import copyimport cv2import numpy&nbs...
    99+
    2023-06-29
  • 怎么在python中使用opencv绘制图形
    这篇文章给大家介绍怎么在python中使用opencv绘制图形,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。实现方法1)画线段 cv.line在图片中绘制一段直线# 绘制线段# 参数1:图片#&nb...
    99+
    2023-06-14
  • C++ opencv如何实现几何图形绘制
    这篇“C++ opencv如何实现几何图形绘制”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++ op...
    99+
    2023-06-30
  • C++ opencv实现几何图形绘制
    目录1.矩形 rectangle()2. 圆 circle()3.椭圆 elliple()在学习过程中,我们可以在图像中绘制一些几何图形,比如矩形,椭圆,线段,填充多边形等,这些函数...
    99+
    2024-04-02
  • 怎么用C++ OpenCV绘制几何图形
    本篇内容介绍了“怎么用C++ OpenCV绘制几何图形”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!具体内容如下绘制几何图形直线矩形多边形圆...
    99+
    2023-06-25
  • 如何使用HTML5进行SVG矢量图形绘制
    这篇文章主要介绍了如何使用HTML5进行SVG矢量图形绘制,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。VG 表示可伸缩矢量图形,这是一门用...
    99+
    2024-04-02
  • Python+OpenCV实现在图像上绘制矩形
    话不多说,直接上代码 import copy import cv2 import numpy as np WIN_NAME = 'draw_rect' class Rec...
    99+
    2024-04-02
  • 如何用python绘制柱形图
    这篇文章主要介绍了如何用python绘制柱形图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用python绘制柱形图文章都会有所收获,下面我们一起来看看吧。#柱形图import pandasimp...
    99+
    2023-06-30
  • Python中如何使用Matplotlib库绘制图形
    目录前言一、简单的正弦函数与余弦函数二、进阶版正弦函数与余弦函数1.改变颜色与粗细2.设置图片边界3.设置记号4.设置记号的标签5.设置X,Y轴6.完整代码三、绘制简单的折线图总结前...
    99+
    2024-04-02
  • 怎么用OpenCV绘制图形功能
    这篇文章主要介绍“怎么用OpenCV绘制图形功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用OpenCV绘制图形功能”文章能帮助大家解决问题。1、绘制直线绘制直线函数是cv::line,函数...
    99+
    2023-06-26
  • html5如何绘制图形
    这篇文章主要介绍了html5如何绘制图形,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。html5中是怎么实现绘制图形?html5中可以实现绘...
    99+
    2024-04-02
  • Python matplotlib如何实现图形绘制
    本篇内容主要讲解“Python matplotlib如何实现图形绘制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python matplotlib如何实现图形绘制”吧!1....
    99+
    2023-06-21
  • VB.NET如何绘制图形
    这篇文章主要介绍VB.NET如何绘制图形,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.创建Graphics对象VB.NET绘制图形需要指定绘图表面。其中,窗体和所有具有Text属性的控件都可以作为绘制图形的表面。...
    99+
    2023-06-17
  • OpenCV 基本图形绘制函数详解
    用于绘制直线的line函数; 用于绘制椭圆的ellipse函数; 用于绘制矩形的rectangle函数; 用于绘制圆的circle函数; 用...
    99+
    2024-04-02
  • 如何使用Python Matplotlib绘制条形图
    目录前言一、一般条形图二、横向条形图三、分组条形图的绘制四、堆叠条形图绘制总结 前言 matplotlib是一个非常强大的Python第三方绘图包,可以绘制非常多非常漂亮的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作