OpenCV-Python官方文档三——在OpenCV中绘制函数

版权声明:本文为博主原创文章,如需转载发表其他blog和网站请联系博主,版权所有翻版必究。 https://blog.csdn.net/shaoduo/article/details/81036681

OpenCV中绘制函数

目标

· 学习使用OpenCV绘制不同的几何形状

· 您将学习以下函数:cv2.line()cv2.circle()cv2.rectangle()cv2.ellipse()cv2.putText()等。

代码

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

  •  img:要绘制形状的图像
  • 颜色:形状的颜色。对于BGR,将其作为元组传递,例如:(255,0,0)for blue。对于灰度,只需传递标量值。
  • 厚度:线条或圆形等的厚度。如果对于圆形等闭合数字传递-1,则会填充形状。默认厚度= 1
  • lineType:行的类型,是否为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
img = cv2.line(img,(0,0),(511,511),(255,0,0),5)

绘制矩形

要绘制矩形,您需要矩形的左上角和右下角。这次我们将在图像的右上角绘制一个绿色矩形。

img = cv2.rectangle(img,(384,0),(510,128),(0,255,0),3)

绘图圆

要绘制圆,您需要其中心坐标和半径。我们将在上面绘制的矩形内绘制一个圆。

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

绘制椭圆

要绘制椭圆,我们需要传递几个参数。一个参数是中心位置(x,y)。下一个参数是轴长度(长轴长度,短轴长度)。angle是椭圆在逆时针方向上的旋转角度。startAngle并且endAngle表示从长轴顺时针方向测量的椭圆弧的起点和终点。即给出值0和360给出完整的椭圆。有关更多详细信息,请查看cv2.ellipse()的文档。下面的示例在图像的中心绘制一个半椭圆。

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

绘制多边形

要绘制多边形,首先需要顶点坐标。使这些点成为一个形状数组,ROWSx1x2其中ROWS是顶点数,它应该是类型int32。在这里,我们绘制一个带有四个黄色顶点的小多边形。

pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
img = cv2.polylines(img,[pts],True,(0,255,255))

注意:如果是第三个参数False,您将获得连接所有点的折线,而不是闭合形状。

cv2.polylines()可用于绘制多条线。只需创建要绘制的所有行的列表并将其传递给函数。所有线条都将单独绘制。绘制一组线路比调用cv2.line()每条线路更好更快捷。

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

向图像添加文字:

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

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

 我们将以白色在我们的图像上代码

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

 Drawing Functions in OpenCV

猜你喜欢

转载自blog.csdn.net/shaoduo/article/details/81036681