如何将图像转换为NumPy数组
图像是表示工作模型的一种更简单的方式。在机器学习中,Python使用高度、宽度、通道格式的图像数据,即图像被转换为高度、宽度、通道格式的Numpy数组。在这篇文章中,我们将看到如何将图像转换成NumPy数组?
需要的模块:
- NumPy:在Python的较高版本中,如3.x以后,默认情况下,NumPy是可用的,如果没有(在较低的版本中),可以通过以下方式安装
通过Pillow Library加载图片
让我们检查一个PNG或JPEG格式的图像。图像可以通过它的路径被引用。图像类是PIL的核心。它有open()函数,可以打开一个图像,数字文件格式和像素格式都可以被检索到。
使用的图片:
输出 :
将图像转换为NumPy数组
Python提供了许多模块和API用于将图像转换为NumPy数组。让我们来讨论如何在Python中把图像转换成NumPy数组。
使用NumPy模块将图像转换为NumPy数组
Numpy模块本身就提供了各种方法来做同样的事情。这些方法是 –
例子1:使用asarray()函数
asarray()函数用于将PIL图像转换成NumPy数组。这个函数将输入的数据转换为数组
输出 :
例子2:使用numpy.array()函数
通过使用numpy.array()函数,该函数将图像作为参数并转换为NumPy数组。
输出 :
为了得到NumPy数组图像的每个像素的值,我们需要打印从asarray()函数或array()函数中得到的检索数据。
输出 :
从转换后的Numpy数组中取回图像
Image.fromarray()函数帮助我们从转换后的numpy数组中取回图像。来回转换后,我们得到的像素也是一样的。因此,这是很有效的
输出 :
使用Keras API将图像转换为NumPy数组
Keras API提供了加载、转换和保存图像数据的功能。Keras可以在TensorFlow框架的基础上运行,因此,这是必须要有的。深度学习计算机视觉图像需要Keras API。要安装它,请在终端键入以下命令
pip install keras
因为Keras需要TensorFlow 2.2或更高版本。如果没有,需要安装它。为了安装它,在终端键入以下命令。
pip install tensorflow
输出 :
使用Keras API,将图像转换为Numpy数组,并将图像从Numpy数组中还原。
输出 :
从上面的输出,我们可以检查出源图像PIL.Image.Image和目标图像类型是相同的。
使用OpenCV库将图像转换为NumPy数组
OpenCV 3.x版本有DNN和Caffe框架,它们对解决深度学习问题很有帮助。它可以通过以下方式安装
cv2软件包有以下方法
- imread()函数用于加载图像,它还以NumPy数组格式读取给定的图像(PIL图像)。
- 然后我们需要将图像颜色从BGR转换为RGB。
- imwrite()用于在文件中保存图像。
输出 :
总结
Python是一个非常灵活的工具,我们已经看到了将图像转换为Numpy数组的方法,同样也看到了使用不同的API将图像转换回来。操作转换后的数组并形成不同的图像数据,就可以将其送入深度学习神经网络。