OpenCV 图像绘制的实现

1. 简介

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它是用C++编写的,并提供了包括Python在内的多种编程语言的接口。在图像处理和计算机视觉领域中有着广泛的应用,包括人脸识别、物体检测、图像分类等。

在OpenCV中,我们可以使用许多功能强大的函数对图像进行各种操作,例如读取图片、图像缩放、旋转等操作。本文将介绍OpenCV中用于图像绘制的函数。

2. 图像绘制函数

2.1 cv2.line()

cv2.line()函数可以在图像上绘制一条直线。

使用方法如下:

import cv2

import numpy as np

# 读取图片

img = cv2.imread('image.jpg')

# 绘制一条蓝色直线,起始点为 (0,0),终止点为 (511,511),线宽为 5

img = cv2.line(img, (0,0), (511, 511), (255, 0, 0), 5)

# 显示图片

cv2.imshow('image', img)

cv2.waitKey(0)

cv2.destroyAllWindows()

参数解释:

- img:要绘制直线的图像;

- (0,0):起始点的坐标;

- (511, 511):终止点的坐标;

- (255, 0, 0):直线的颜色。在OpenCV中,图像是按BGR顺序进行存储的,因此蓝色为(255,0,0);

- 5:直线的宽度。

运行程序后,可以看到绘制了一条从图片左上角到右下角的蓝色直线。

2.2 cv2.rectangle()

cv2.rectangle()函数可以在图像上绘制矩形。

使用方法如下:

import cv2

import numpy as np

# 读取图片

img = cv2.imread('image.jpg')

# 绘制一个绿色的矩形,左上角顶点为(384,0),右下角顶点为(510,128),线宽为 3

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

# 显示图片

cv2.imshow('image', img)

cv2.waitKey(0)

cv2.destroyAllWindows()

参数解释:

- img:要绘制矩形的图像;

- (384,0):矩形左上角顶点的坐标;

- (510, 128):矩形右下角顶点的坐标;

- (0, 255, 0):矩形线条的颜色,绿色为(0,255,0);

- 3:线宽。

运行程序后,可以看到绘制了一个绿色的矩形。

2.3 cv2.circle()

cv2.circle()函数可以在图像上绘制圆形。

使用方法如下:

import cv2

import numpy as np

# 读取图片

img = cv2.imread('image.jpg')

# 绘制一个红色的圆,圆心为(447,63),半径为 63,线宽为 -1,表示填充圆

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

# 显示图片

cv2.imshow('image', img)

cv2.waitKey(0)

cv2.destroyAllWindows()

参数解释:

- img:要绘制圆形的图像;

- (447,63):圆心的坐标;

- 63:圆的半径;

- (0,0,255):圆的颜色(红色为(0,0,255));

- -1:线宽,-1表示填充圆。如果为正整数n,表示圆的边界宽度为n个像素。

运行程序后,可以看到绘制了一个红色的圆。

2.4 cv2.putText()

cv2.putText()函数可以在图像上添加文字。

使用方法如下:

import cv2

import numpy as np

# 读取图片

img = cv2.imread('image.jpg')

# 添加白色的文字 "OpenCV" 在图片的左上角,字体为 Hershey simplex,字号为 4,线宽为 2

font = cv2.FONT_HERSHEY_SIMPLEX

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

# 显示图片

cv2.imshow('image', img)

cv2.waitKey(0)

cv2.destroyAllWindows()

参数解释:

- img:要添加文字的图像;

- 'OpenCV':要添加的文字;

- (10, 500):文字的左下角顶点坐标;

- font:字体类型;

- 4:字号;

- (255,255,255):文字颜色(白色为(255,255,255));

- 2:文字线宽;

- cv2.LINE_AA:字体的线型。

运行程序后,可以看到在图片的左上角添加了一个白色的 "OpenCV"。

3. 总结

本文介绍了OpenCV中用于图像绘制的函数,包括cv2.line()、cv2.rectangle()、cv2.circle()和cv2.putText()。这些函数可以让我们方便地在图像上绘制各种形状和文本,使得我们能够更好地理解和处理图像。

后端开发标签