OpenCV中的绘图函数

目标

  • 学习使用OpenCV绘制不同的几何形状
  • 您将学习以下功能:cv2.line()cv2.circle() , cv2.rectangle()cv2.ellipse()cv2.putText()等等。

Code

在上述所有函数中,您将看到一些常见的参数,如下所示:

  • IMG:要绘制形状的图像
  • 颜色:形状的颜色。对于BGR,以元组的形式传递它,如:(255,0,0)蓝色的。对于灰度,只需传递标量值即可。
  • thickness:线或圆的厚度等。如果-1是像圆圈那样的封闭图形,它会填充形状。 默认thickness = 1
  • 线型:线的类型,不论是8连接,防混线等.默认情况下,它是8连接的。 cv2.LINE_AA给出反别名线,这看起来很适合曲线。

画线

要画一条线,需要传递直线的起始坐标和结束坐标。我们将创建一个黑色图像,并在上面画一条从左上角到右下角的蓝色线。

import numpy as np
import cv2

# 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)

绘图圈

要画一个圆,你需要它的中心坐标和半径。我们将在上面画的矩形内画一个圆圈。

cv2.circle(img,(447,63), 63, (0,0,255), -1)

绘图椭圆

要绘制椭圆,我们需要传递几个参数。一个参数是中心位置(x,y)。下一个参数是轴长(长轴长、短轴长)。夹角椭圆在逆时针方向旋转的角度。起始角和端角表示从主轴顺时针方向测量的椭圆弧的开始和结束,即给出的值0和360表示整个椭圆。下面的例子在图像的中心画一个半椭圆。

cv2.ellipse(img,(256,256),(100,50),0,0,180,255,-1)

绘制多边形

要绘制多边形,首先需要顶点的坐标。把这些点变成一个形状数组ROWSx1x2其中行是顶点的数目,并且应该是类型的。INT 32。在这里,我们画了一个小多边形的四个顶点黄色。

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))

注:如果第三个论点是False,您将得到一个多线连接所有的点,而不是一个封闭的形状。 

cv2.polylines() 可用于绘制多条线。只需创建要绘制的所有线条的列表,并将其传递给函数,所有的线都将单独划出。

向图像添加文本:

要将文本放入图像中,您需要指定以下内容。

  • 要写入的文本数据
  • 要放置它的位置坐标(即数据开始的左下角)。
  • 字体类型(检查)cv2.putText()支持字体的文档)
  • 字体刻度(指定字体大小)
  • 有规律的东西,如颜色,厚度,线条类型等。为了更好地看,lineType = cv2.LINE_AA是推荐的。

我们会写OpenCV在我们白色的图像上。

font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv2.LINE_AA)

结果

所以是时候看看我们画的最后结果了。正如您在前几篇文章中所研究的,显示图像来查看它。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值