📌  相关文章
📜  如何将图像转换为 NumPy 数组?(1)

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

如何将图像转换为 NumPy 数组?

在进行机器学习和计算机视觉方面的任务时,经常涉及图像与 NumPy 数组(或其他数组格式)之间的转换。本文将提供一些实用的方法来将图像转换为 NumPy 数组。

方法一:使用 OpenCV 库

OpenCV 是一种广泛使用的计算机视觉库,它提供了各种操作图像和视频的函数。我们可以利用它来将图像转换为 NumPy 数组。

首先,我们需要在 Python 中安装 OpenCV 库:

!pip install opencv-python

接下来,我们可以使用以下代码将图像读入为 NumPy 数组:

import cv2

img_path = 'example.jpg'
img = cv2.imread(img_path)

print(type(img))    # <class 'numpy.ndarray'>

此时,我们已经成功地将图像转换为 NumPy 数组。可以通过访问数组的形状和像素值来进一步操作它。

print("Array shape:", img.shape)    # Array shape: (360, 640, 3)
print("Pixel values:", img[0, 0])   # Pixel values: [197 201 196]
方法二:使用 PIL 库

PIL(Python Imaging Library)是一种支持多种图像格式的 Python 库,可用于从不同的文件格式中读取图像并进行处理。我们可以使用它来将图像转换为 NumPy 数组。

首先,我们需要在 Python 中安装 PIL 库:

!pip install pillow

接下来,我们可以使用以下代码将图像读入为 NumPy 数组:

from PIL import Image
import numpy as np

img_path = 'example.jpg'
img = Image.open(img_path)

img_arr = np.array(img)
print(type(img_arr))    # <class 'numpy.ndarray'>

此时,我们同样将图像成功地转换为了 NumPy 数组。可以通过访问数组的形状和像素值来进一步操作它。

print("Array shape:", img_arr.shape)    # Array shape: (360, 640, 3)
print("Pixel values:", img_arr[0, 0])   # Pixel values: [197 201 196]
方法三:使用 matplotlib 库

matplotlib 是一种用于绘制多种类型图表的 Python 库,它也提供了将图像读取为 NumPy 数组的函数。

首先,我们需要在 Python 中安装 matplotlib 库:

!pip install matplotlib

接下来,我们可以使用以下代码将图像读入为 NumPy 数组:

import matplotlib.pyplot as plt
import numpy as np

img_path = 'example.jpg'
img = plt.imread(img_path)

img_arr = np.array(img)
print(type(img_arr))    # <class 'numpy.ndarray'>

此时,我们同样将图像成功地转换为了 NumPy 数组。可以通过访问数组的形状和像素值来进一步操作它。

print("Array shape:", img_arr.shape)    # Array shape: (360, 640, 3)
print("Pixel values:", img_arr[0, 0])   # Pixel values: [197 201 196]

以上便是三种常见的将图像转换为 NumPy 数组的方法,你可以根据自己的需求选择最适合的方法。