Opencv Python 简明教程

OpenCV Python - Draw Shapes and Text

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

Draw Shapes on Images

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

Functions

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

Function

Description

Command

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)

Parameters

以上函数的通用参数如下 −

Sr.No.

Function & Description

1

img 您想绘制形状的图像

2

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

3

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

4

lineType 线型,8 方向连接、抗锯齿线等。

Example

以下示例显示如何在图像上绘制形状。程序如下 −

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

Output

draw shapes

Draw Text

提供 cv2.putText() 函数在图像上写文本。命令如下 −

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

Fonts

OpenCV 支持以下字体 −

Font Name

Font Size

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

Example

以下程序为照片添加文本标题,照片中是著名的足球运动员莱昂内尔·梅西。

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

Output

draw text