OpenCV Python - 绘制形状和文本


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

在图像上绘制形状

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

功能

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

功能 描述 命令
CV2.line() 绘制连接两点的线段。 cv2.line(img, pt1, pt2, 颜色, 粗细)
cv2.circle() 以给定点为圆心绘制给定半径的圆 cv2.circle(img,中心,半径,颜色,厚度)
cv2.矩形 以给定点作为左上角和右下角绘制一个矩形。 cv2.rectangle(img, pt1, pt2, 颜色, 厚度)
cv2.椭圆() 绘制简单或粗的椭圆弧或填充椭圆扇形。 cv2.ellipse(img, 中心, 轴, 角度, startAngle, endAngle, 颜色, 厚度)

参数

上述函数的通用参数如下 -

先生。 功能说明
1

图像

您要在其中绘制形状的图像

2

颜色

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

3

厚度

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

4

线型

线路类型,是否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)

字体

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
斜体字体 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()

输出

绘制文字