我正在观看使用OpenCV、numpy和PIL进行面部识别项目的教程。 在训练过程中,图像被转换为numpy数组,将其转换为numpy数组的原因是什么?
代码:
PIL_IMAGE = Image.open(path).convert("L")
image_array = np.array(PIL_IMAGE, "uint8")
我正在观看使用OpenCV、numpy和PIL进行面部识别项目的教程。 在训练过程中,图像被转换为numpy数组,将其转换为numpy数组的原因是什么?
代码:
PIL_IMAGE = Image.open(path).convert("L")
image_array = np.array(PIL_IMAGE, "uint8")
简而言之; OpenCV 图像以三维 Numpy 数组的形式存储。
当您使用该库读取数字图像时,它们被表示为 Numpy 数组。数组的矩形形状对应于图像的形状。考虑这张椅子的图片。
这是一个演示,展示了如何使用Numpy数组在OpenCV中存储该图像。 如果我们读入椅子的图像,我们可以使用image.shape
来查看其结构,返回一个元组(高度,宽度,通道数)
。如果是彩色图像,则图像属性将是行数、列数和通道数的元组。如果是灰度图像,则image.shape
仅返回行数和列数。import cv2
image = cv2.imread("chair.jpg")
print(image.shape)
y
坐标,然后是x
坐标。颜色以BGR
值存储,蓝色在第0层,绿色在第1层,红色在第2层。因此,对于这张椅子的图片,它的高度为222,宽度为300,并且有3个通道(表示它是一张彩色图片)。实际上,当库读取任何图像时,它将其以这种格式存储为Numpy数组。