在这篇文章中,我们将看到如何在 Python 中将 numpy 数组保存为图像。
Python 提供了广泛的库,可用于有效地读取和处理图像。在执行计算机视觉任务时,图像也会得到有效处理。但是 Python 是如何存储这些图像的呢?
numpy这些图像以数组的形式存储和处理。每个图像在给定位置以特定颜色代码存储一个像素。它们存储为numpy数组,并将图像表示为 3-D 数组中的 [Height, Width, Channel]。
numpy
我们现在将讨论numpy在 Python 中将数组保存为图像的不同方法。
PIL
Python 图像库是图像处理的标准包之一。对这个包的支持在 2011 年停止,之后,与PIL标准库相同的包的一个分支被添加。
我们可以使用这个库中的函数numpy在 Python 中将数组保存为图像。
首先,我们将定义一个表示图像的数组。然后,我们将使用该fromarray()函数将该数组作为图像对象读取。save()该对象将使用该函数导出到外部文件。
fromarray()
save()
请参阅下面的代码。
Using the PIL library import numpy as np from PIL import Image a = np.arange(0, 414720, 1, np.uint8) a = np.reshape(a, (720, 576)) i = Image.fromarray(a) i.save("image.png")
在上面的示例中,我们创建了一个数组并将其导出为图像。文件名和路径在save()函数中指定。 这是从上面的 numpy 数组创建的图像。
所有其他方法也将生成相同的图像。
matplotlib.image
该matplotlib库是用于创建图形图的标准库之一。它基于matlab接口。这个库的matplotlib.image类允许我们读取和处理图像。
matplotlib
matlab
要numpy在 Python 中将数组保存为图像,我们可以使用imsave()该库中的方法。在此函数中,我们可以指定要导出为图像的数组以及带有图像文件名的路径。
imsave()
Using the matplolib.image library import matplotlib.image a = np.arange(0, 414720, 1, np.uint8) a = np.reshape(a, (720, 576)) matplotlib.image.imsave('image.png', a)
opencv
该opencv库是一个开源库,可用于多种编程语言。它在 Python 中可用,并且有不同的算法可用于帮助计算机视觉任务。我们可以使用这个库非常有效地处理图像。
该imwrite()库中的函数可用于numpy在 Python 中将数组保存为图像。它可以将给定的数组导出为图像文件。工作原理类似于imsave()前一种方法的功能。
imwrite()
如果操作成功,则返回 True。
例如,
import cv2 a = np.arange(0, 414720, 1, np.uint8) a = np.reshape(a, (720, 576)) cv2.imwrite('image.png', a)
输出:
True
imageio
该imagio库也是一个用于处理图像的跨平台库。它在 Python 3.5 及更高版本中可用。这些功能快速且易于使用。
imagio
该imwrite()函数可用于numpy在 Python 中将数组保存为图像,类似于前面的方法。
import imageio a = np.arange(0, 414720, 1, np.uint8) a = np.reshape(a, (720, 576)) imageio.imwrite('image.png', a)
scipy.misc
这imageio是 Python 的一个相对较新的补充,在 2018 年之前它存在于scipy.misc模块中。因此,对于旧版本,我们可以使用模块中的imsave()函数将数组保存为 Python 中的图像。scipy.misc``numpy
scipy.misc``numpy
import scipy.misc a = np.arange(0, 414720, 1, np.uint8) a = np.reshape(a, (720, 576)) scipy.misc.imsave('image.png', a)
最后,我们在本文中讨论了如何将numpy数组保存为图像。我们可以为此使用不同的库。
最常用的方法是使用PIL库,它是图像处理的标准库。该matplotlib.image模块也可以用于相同的目的。
该opencv库具有许多计算机视觉任务的功能,并且可以使用该函数将numpy数组保存为 Python 中的图像。imwrite()最后两种方法使用imageio库和scipy.misc模块。
这imageio是 Python 中的最新介绍,之前曾存在于scipy.misc模块中。该scipy.misc模块现已弃用。
这就是如何在 Python 中将 numpy 数组保存为图像。
原文链接:https://codingdict.com/