简介
在本教程中,我们将向你展示如何通过使用cv2.rectangle()函数在OpenCV Python中绘制矩形。矩形通常用于创建物体检测的边界框,因此你应该知道如何在OpenCV Python中创建它们。我们将向你展示cv2.rectangle()的语法和一些例子,以便让初学者更好地理解。
- 还可以阅读 - YOLOv4物体检测教程与图像和视频。初学者指南
- 还可以阅读 - YOLOv5物体检测简介及实例
OpenCV Python中的矩形:cv2.rectangle()
OpenCV Python有一个rectangle()函数,可以很容易地用于在图像上创建矩形形状。让我们看看它的语法如下
语法
cv2.rectangle(image, pt1, pt2, color, thickness)
- image -就是要绘制矩形的图像
- pt1 -矩形的顶点,位于左上角
- pt2 -矩形在右下角的顶点
- color -矩形线的颜色,用RGB表示
- thickness -是线条的厚度
它不返回任何东西,并在原始图像上原地绘制矩形,这意味着在图像上绘制的矩形将是永久性的。
cv2.Rectangle()在Python OpenCV中的例子
导入所需的库
在浏览例子之前,让我们首先导入一些必要的库,如下所示
在[1]中:
import cv2
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
创建空白图像的函数
我们将创建一个实用的函数来创建一个大小为512×512和3个颜色通道的空图像,我们将在上面画矩形作为例子。
在[2]中:
def generate_blank_image():
return np.ones(shape=(512,512,3), dtype=np.int16)
让我们通过下面的调用看到这个函数的作用。
在[3]中:
img = generate_blank_image()
plt.imshow(img)
输出[3]:
<matplotlib.image.AxesImage at 0x1e14d0dc9b0>。
例子 - 1 : 用cv2.rectangle()绘制简单的矩形
在这个例子中,我们要在空白图像上画一个简单的矩形,其线条是红色的,线条的厚度是10。
我们生成一个空图像,并将其与矩形的两个顶点坐标、红色的RGB值(255,0,0)和厚度=10一起传给cv2.rectangle()。
在[4]:
img1 = generate_blank_image()
cv2.rectangle(img1, pt1=(400,200), pt2=(100,50), color=(255,0,0), thickness=10)
plt.imshow(img1)
输出[4]:
<matplotlib.image.AxesImage at 0x1e14d3e0ac8>。
例子 - 2 : 用cv2.rectangle()绘制填充矩形
在这个例子中,我们将在空白图像上画一个矩形,这个矩形被填充为蓝色。
为了填充这个矩形,我们在cv2.rectangle()函数中使用了厚度=-1。
In[5]:
img2 = generate_blank_image()
cv2.rectangle(img2, pt1=(400,300), pt2=(100,100), color=(255,255,0), thickness= -1)
plt.imshow(img2)
输出[5]:
<matplotlib.image.AxesImage at 0x1e14e640ba8>。
例子 - 3 : 用cv2.rectangle()在图像上画矩形
在这个例子中,我们使用了一张真实的猫的图像,并在上面画了一个红色的矩形。我们手动计算了pt1和pt2的值,以便在猫的脸上正确地绘制矩形。
在[6]:
img3 = cv2.imread('cat.jpg')
cv2.rectangle(img3, pt1=(400,100), pt2=(1000,700), color=(255,0,0), thickness=10)
plt.imshow(img3)
输出[6]:
总结
希望你觉得这个关于如何在OpenCV中画矩形的简短教程很有帮助。我们涵盖了cv2 rectangle()函数的语法和不同类型的例子,以便初学者更好地理解。
参考资料 -OpenCV文档