【跟官网学opencv-python】笔记1.2:opencv基本绘图函数

这篇具有很好参考价值的文章主要介绍了【跟官网学opencv-python】笔记1.2:opencv基本绘图函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

目标

函数详解

1、cv2.line()画线

2、cv2.rectangle()画矩形

3、cv2.circle()画圆

4、cv2.ellipse()画椭圆

5、cv2.polylines()画多边形

6、cv2.putText()绘制文本

代码演示

运行效果

参考


前言

跟着官网学习才是基础入门的最佳选择,下文是opencv-python官网的学习记录及扩展!

目标

掌握基本绘图函数 cv2.line() , cv2.cicle() , cv2.rectangle() , cv2.ellipse() , cv2.putText()的使用。

函数详解

主要参数介绍

color: 形状的颜色,以RGB为例,需要传入的元组,例(255,0,0)代表蓝色,对于灰度图只需传入灰度值
thickness: 线条的粗细,如果给一个闭合图形设置为 -1 ,那么这个图形就会被填充,默认值为1
linetype: 线条的类型: 填充,4连通,8连接,抗锯齿等。默认是8连接。cv2.LINE_AA为抗锯齿,显示线条更平滑(代码演示中有对比)。
cv.FILLED  填充
cv.LINE_4  4连通线
cv.LINE_8  8连通线
cv.LINE_AA  抗锯齿线

1、cv2.line()画线

cv2.line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
img    图像.
pt1    线段的第一个点.
pt2    线段的第二个点.
color    线条颜色.
thickness    线条粗细.
lineType    线条类型.
shift    坐标的小数位数

2、cv2.rectangle()画矩形

cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
img    图像.
pt1    矩形的顶点.
pt2    与pt1相对的矩形顶点.
color    矩形颜色或亮度(灰度图像).
thickness    构成矩形的线条的粗细(如果为正数)。负值(如 FILLED)表示函数必须绘制填充矩形.
lineType    线路类型. See LineTypes
shift    点坐标的小数位数

3、cv2.circle()画圆

cv2.circle(img, center, radius, color, thickness=None, lineType=None, shift=None)
img    图像.
center    圆心.
radius    圆的半径.
color    圆的颜色.
thickness    圆轮廓的粗细(如果为正)。负值,如 FILLED,表示要绘制一个填充的圆.
lineType    圆边界的类型.
shift    圆心坐标和半径值的小数位数

4、cv2.ellipse()画椭圆

cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness=None, lineType=None, shift=None)
img    图像.
center    椭圆的中心.
axes    椭圆主轴尺寸的一半.
angle    椭圆旋转角度(以度为单位).
startAngle    椭圆弧的起始角度(以度为单位).
endAngle    椭圆弧的结束角(以度为单位).
color    椭圆颜色.
thickness    椭圆弧轮廓的厚度(如果为正)。否则,这表示要绘制填充的椭圆扇区.
lineType    椭圆边界的类型. 
shift    中心坐标和轴长的小数位数

5、cv2.polylines()画多边形

cv2.polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)
img    图像.
pts    多边形曲线数组.
isClosed    指示绘制的折线是否闭合的标志。如果它们闭合,则该函数将绘制一条从每条曲线的最后一个顶点到其第一个顶点的线.
color    折线颜色.
thickness    折线边的厚度.
lineType    线段的类型. See LineTypes
shift    顶点坐标中的小数位数.

需要指定每个顶点的坐标,构建一个大小相等于行数*1*2的数组,行数就是点的数目,这个数组必须为int32。
可以用来画很多条线。只要把想画的线放在一个集合中并传给函数就可以了,每条线会独立绘制,会比用 cv2.line() 一条一条的绘制快一些。

6、cv2.putText()绘制文本

cv2.putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)
img    图像.
text    要绘制的文本字符串.
org    图像中文本字符串的左下角.
fontFace    字体类型.
fontScale    字体比例因子乘以特定于字体的基本大小.
color    文本颜色.
thickness    用于绘制文本的线条粗细.
lineType    线型.
bottomLeftOrigin    如果为 true,则文本起点坐标位于左下角。否则,它位于左上角(字体呈现上下翻转).

代码演示

import cv2
import numpy as np
import cv2

winname='example'
cv2.namedWindow(winname)

# Create a black image
img = np.zeros((512,512,3), np.uint8)
# 线,Draw a diagonal blue line with thickness of 5 px
cv2.line(img,(0,0),(511,511),(255,0,0),5)
# 矩形
cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)
# 圆,-1为向内填充
cv2.circle(img,(447,63), 63, (0,0,255), -1)
# 椭圆,
cv2.ellipse(img,(256,256),(100,50),50,0,180,255,-1)
# 多边形
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
cv2.polylines(img,[pts],True,(0,255,255))  # 第3个参数若为False,则结果为不闭合的线
# 文字,
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'A',(10,200), font, 4,(255,255,255),2,cv2.FILLED,False)
cv2.putText(img,'A',(10,300), font, 4,(255,255,255),2,cv2.LINE_4,False)
cv2.putText(img,'A',(10,400), font, 4,(255,255,255),2,cv2.LINE_8,False)
cv2.putText(img,'A',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA,False)
# 显示
cv2.imshow(winname,img)
cv2.waitKey(0)
cv2.destroyWindow(winname)

运行效果

下图为代码运行效果,图中的字母“A”,采用了不同的linetype绘制,可以看出cv2.LINE_AA抗锯齿类型,显示线条更平滑,更常用。

cv2.line_aa,OpenCV-Python,opencv,python,计算机视觉

参考

OpenCV: OpenCV-Python Tutorials

学习、进步、坚持。。。内容不间断更新中。。。文章来源地址https://www.toymoban.com/news/detail-733955.html

到了这里,关于【跟官网学opencv-python】笔记1.2:opencv基本绘图函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决opencv-python 安装报错 Could not build wheels for opencv-python

    但是发现更新完了之后还是没用,因为主要原因是如果直接安装opencv默认安装最新版,此时找一个python3.6支持的版本就行了,如4.3.0.38,使用如下命令即可成功安装

    2024年02月16日
    浏览(65)
  • Python:安装opencv-python出错问题ERROR: Could not build wheels for opencv-python

    笔者在安装opencv-python的过程中遇到了如下错误 在安装opencv-python的过程,笔者直接通过pip命令进行安装,遇到了如下问题 命令 问题 直接使用上述命令安装的是最新版本,挑一个别的版本的opencv-python即可解决上述问题 使用命令如下 问题解决

    2024年02月11日
    浏览(67)
  • opencv-python安装

    OpenCV就是学习计算机视觉的过程中经常用到的工具,opencv降低了计算机视觉的学习门槛。随着机器学习、深度学习等技术的发展,Python庞大的扩展库为Python用户在编程过程中提供了极大的便利,opencv-python便是其中一员。在实际使用opencv-python扩展库的过程中,更多的读者关心

    2024年02月04日
    浏览(90)
  • 安装opencv-python

    1.由于之前pip install --upgrade pip出错了,导致Anaconda中Scripts中pip.exe出错 解决方式:python -m ensurepip --default-pip,获得可行的pip.exe 可行的升级pip的方式:python -m pip install --upgrade pip 2.安装opencv-python 尝试从官网安装,官网提示需要更新pip 但是更新出错了,于是有了1问题,pip.exe不

    2024年02月06日
    浏览(53)
  • opencv-python 降噪

    定义 图像噪声是指存在于图像数据中的 不必要的或多余的干扰信息 。噪声的存在严重影响了图像的质量,因此在图像增强处理和分类处理之前,必须予以纠正。 图像中各种妨碍人们对其信息接受的因素即可称为图像噪声 。噪声在理论上可以定义为“不可预测,只能用概率

    2024年02月03日
    浏览(43)
  • opencv-python版本问题

    opencv库有两种,一种是 opencv-python ,另一种是 opencv-contrib-python 。前者是基础库,后者则是在前者基础上加了一些contrib module(视觉处理一般用这个)。 安装好OpenCV库,想着先在OpenCV的瀚海里扎两个猛子。没成想,一头扎下去便撞到石头上。 如下图,在键入cv2.imread()时,不仅

    2024年02月13日
    浏览(46)
  • OpenCV-Python(21):OPenCV查找及绘制轮廓

    1.1 目标 理解什么是轮廓 学习掌握找轮廓、绘制轮廓等 学习使用cv2.findContours()、cv2.drawContours()函数的用法 1.2 什么是轮廓         在OpenCV中,轮廓是 图像中连续的边界线的曲线,具有相同的颜色或者灰度,用于表示物体的形状 。轮廓在图像处理和计算机视觉中非常重要

    2024年01月18日
    浏览(46)
  • pip安装opencv-python

    OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的I

    2023年04月22日
    浏览(54)
  • opencv-python常用函数汇总

    环境配置地址 Anaconda:https://www.anaconda.com/download/ Python_whl:https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv 代码如下(示例): cv2.VideoCapture可以捕获摄像头,用数字来控制不同的设备,例如0,1。 如果是视频文件,直接指定好路径即可。 BORDER_REPLICATE:复制法,也就是复制最边缘像素。

    2024年02月07日
    浏览(50)
  • openCV-python模板匹配(旋转)

    本文将介绍使用OpenCV实现多角度模板匹配的详细步骤 + 代码。 熟悉OpenCV的朋友肯定都知道OpenCV自带的模板匹配matchTemplate方法是不支持旋转的,也就是说当目标和模板有角度差异时匹配常常会失败,可能目标只是轻微的旋转,匹配分数就会下降很多,导致匹配精度下降甚至匹

    2024年02月01日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包