📅  最后修改于: 2023-12-03 15:18:07.287000             🧑  作者: Mango
在 OpenCV 中,可以使用 cv2.imread()
函数读取已有的图像,但也可以创建一张空白图像来进行后续操作。本文介绍如何创建一张彩色的空白图像。
首先,我们需要导入 OpenCV 库:
import cv2
接下来,我们可以使用 numpy.zeros()
函数创建一张空白图像。这个函数会返回一个由 0 组成的数组,我们需要将它转换成图像格式:
img = numpy.zeros((height, width, 3), dtype=numpy.uint8)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
其中,
height
和 width
分别是图像的高度和宽度,可以根据需要进行调整。3
表示图像有三个通道,分别代表红色、绿色和蓝色。因此,这是一张彩色图像,而不是灰度图像。dtype
表示数组的数据类型,这里使用 numpy.uint8
,即无符号 8 位整数。这个数据类型和图像颜色空间有关,RGB 颜色空间下的像素值范围是 0 到 255。cv2.cvtColor()
函数用于将图像从 BGR 颜色空间转换为 RGB 颜色空间。这是因为 OpenCV 默认读取的图像是 BGR 颜色空间,但 matplot 中使用的是 RGB 颜色空间。现在,我们可以对这个空白图像进行操作了,比如绘制图形、添加文本等。下面是一个绘制一个红色长方形的例子:
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 0, 255), thickness)
其中,
(x1, y1)
和 (x2, y2)
分别是长方形的两个对角点的坐标。(0, 0, 255)
表示红色,因为这是一个 BGR 颜色,而且第三个通道的值最大,因此是红色。如果需要使用其他颜色,可以在这里修改。thickness
表示线条的厚度,如果设为 -1,表示填充整个矩形。最后,我们可以使用 matplot 显示这个图像:
plt.imshow(img)
plt.show()
这会打开一个窗口,显示我们创建的空白图像,以及在上面绘制的红色长方形。
import cv2
import numpy
import matplotlib.pyplot as plt
height = 500
width = 500
img = numpy.zeros((height, width, 3), dtype=numpy.uint8)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
cv2.rectangle(img, (100, 100), (400, 400), (0, 0, 255), thickness=5)
plt.imshow(img)
plt.show()
下面是上述代码的输出结果: