📜  OpenCv |彩色的空白图像(1)

📅  最后修改于: 2023-12-03 15:18:07.287000             🧑  作者: Mango

OpenCV | 彩色的空白图像

在 OpenCV 中,可以使用 cv2.imread() 函数读取已有的图像,但也可以创建一张空白图像来进行后续操作。本文介绍如何创建一张彩色的空白图像。

步骤
  1. 首先,我们需要导入 OpenCV 库:

    import cv2
    
  2. 接下来,我们可以使用 numpy.zeros() 函数创建一张空白图像。这个函数会返回一个由 0 组成的数组,我们需要将它转换成图像格式:

    img = numpy.zeros((height, width, 3), dtype=numpy.uint8)
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    

    其中,

    • heightwidth 分别是图像的高度和宽度,可以根据需要进行调整。
    • 3 表示图像有三个通道,分别代表红色、绿色和蓝色。因此,这是一张彩色图像,而不是灰度图像。
    • dtype 表示数组的数据类型,这里使用 numpy.uint8,即无符号 8 位整数。这个数据类型和图像颜色空间有关,RGB 颜色空间下的像素值范围是 0 到 255。
    • cv2.cvtColor() 函数用于将图像从 BGR 颜色空间转换为 RGB 颜色空间。这是因为 OpenCV 默认读取的图像是 BGR 颜色空间,但 matplot 中使用的是 RGB 颜色空间。
  3. 现在,我们可以对这个空白图像进行操作了,比如绘制图形、添加文本等。下面是一个绘制一个红色长方形的例子:

    cv2.rectangle(img, (x1, y1), (x2, y2), (0, 0, 255), thickness)
    

    其中,

    • (x1, y1)(x2, y2) 分别是长方形的两个对角点的坐标。
    • (0, 0, 255) 表示红色,因为这是一个 BGR 颜色,而且第三个通道的值最大,因此是红色。如果需要使用其他颜色,可以在这里修改。
    • thickness 表示线条的厚度,如果设为 -1,表示填充整个矩形。
  4. 最后,我们可以使用 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()
输出结果

下面是上述代码的输出结果:

image