OpenCV Python - 绘制形状和文本

在本章中,我们将学习如何借助 OpenCV-Python 在图像上绘制形状和文本。 让我们从了解在图像上绘制形状开始。


在图像上绘制形状

我们需要了解 OpenCV-Python 中所需的函数,这些函数可以帮助我们在图像上绘制形状。

函数

OpenCV-Python 包(称为 cv2)包含以下绘制相应形状的函数。

函数 说明 命令
cv2.line() 绘制连接两点的线段。 cv2.line(img, pt1, pt2, color, thickness)
cv2.circle() 以给定点为中心绘制给定半径的圆 cv2.circle(img, center, radius, color, thickness)
cv2.rectangle 绘制一个矩形,给定点为左上角和右下角。 cv2.rectangle(img, pt1, pt2, color, thickness)
cv2.ellipse() 绘制简单的粗椭圆弧或填充椭圆扇区。 cv2.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness)

参数

上述函数的常用参数如下 −

序号 功能与说明
1

img

要绘制形状的图像

2

color

形状的颜色。 对于 BGR,将其作为元组传递。 对于灰度,只需传递标量值。

3

thickness

线或圆的粗细。如果为圆或封闭图形,传递-1,它将填充形状。

4

lineType

线类型,是否8连线,抗锯齿线等。

示例

下面的例子展示了如何在图像上绘制形状。 同样的程序如下 −

import numpy as np
import cv2
img = cv2.imread('LENA.JPG',1)
cv2.line(img,(20,400),(400,20),(255,255,255),3)
cv2.rectangle(img,(200,100),(400,400),(0,255,0),5)
cv2.circle(img,(80,80), 55, (255,255,0), -1)
cv2.ellipse(img, (300,425), (80, 20), 5, 0, 360, (0,0,255), -1)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出

绘制形状

绘制文字

cv2.putText() 函数用于在图像上写入文本。 其命令如下 −

img, text, org, fontFace, fontScale, color, thickness)

Fonts

OpenCV 支持以下字体−

字体名称 字体大小
FONT_HERSHEY_SIMPLEX 0
FONT_HERSHEY_PLAIN 1
FONT_HERSHEY_DUPLEX 2
FONT_HERSHEY_COMPLEX 3
FONT_HERSHEY_TRIPLEX 4
FONT_HERSHEY_COMPLEX_SMALL 5
FONT_HERSHEY_SCRIPT_SIMPLEX 6
FONT_HERSHEY_SCRIPT_COMPLEX 7
FONT_ITALIC 16

示例

以下程序将文本标题添加到一张展示著名足球运动员莱昂内尔·梅西的照片中。

import numpy as np
import cv2
img = cv2.imread('messi.JPG',1)
txt="Lionel Messi"
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,txt,(10,100), font, 2,(255,255,255),2,cv2.LINE_AA)

cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出

绘制文本