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

输出

Draw Shapes

绘制文本

cv2.putText() 函数用于在图像上写入文本。相应的命令如下:

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

字体

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

输出

Draw Text
广告

© . All rights reserved.