在 Python 中将 Numpy 数组另存为图像


在这篇文章中,我们将看到如何在 Python 中将 numpy 数组保存为图像。

numpy在 Python 中将数组另存为图像

Python 提供了广泛的库,可用于有效地读取和处理图像。在执行计算机视觉任务时,图像也会得到有效处理。但是 Python 是如何存储这些图像的呢?

numpy这些图像以数组的形式存储和处理。每个图像在给定位置以特定颜色代码存储一个像素。它们存储为numpy数组,并将图像表示为 3-D 数组中的 [Height, Width, Channel]。

如何numpy在 Python 中将数组保存为图像?

我们现在将讨论numpy在 Python 中将数组保存为图像的不同方法。

在 Python 中使用PIL库将数组另存为图像numpy

Python 图像库是图像处理的标准包之一。对这个包的支持在 2011 年停止,之后,与PIL标准库相同的包的一个分支被添加。

我们可以使用这个库中的函数numpy在 Python 中将数组保存为图像。

首先,我们将定义一个表示图像的数组。然后,我们将使用该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 数组创建的图像。

所有其他方法也将生成相同的图像。

在 Python 中使用matplotlib.image库将数组另存为图像numpy

matplotlib库是用于创建图形图的标准库之一。它基于matlab接口。这个库的matplotlib.image类允许我们读取和处理图像。

numpy在 Python 中将数组保存为图像,我们可以使用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)

在 Python 中使用opencv库将数组另存为图像numpy

opencv库是一个开源库,可用于多种编程语言。它在 Python 中可用,并且有不同的算法可用于帮助计算机视觉任务。我们可以使用这个库非常有效地处理图像。

imwrite()库中的函数可用于numpy在 Python 中将数组保存为图像。它可以将给定的数组导出为图像文件。工作原理类似于imsave()前一种方法的功能。

如果操作成功,则返回 True。

例如,

import cv2
a = np.arange(0, 414720, 1, np.uint8)
a = np.reshape(a, (720, 576))
cv2.imwrite('image.png', a)

输出:

True

在 Python 中使用imageio库将数组另存为图像numpy

imagio库也是一个用于处理图像的跨平台库。它在 Python 3.5 及更高版本中可用。这些功能快速且易于使用。

imwrite()函数可用于numpy在 Python 中将数组保存为图像,类似于前面的方法。

例如,

import imageio
a = np.arange(0, 414720, 1, np.uint8)
a = np.reshape(a, (720, 576))
imageio.imwrite('image.png', a)

在 Python 中使用scipy.misc库将数组另存为图像numpy

imageio是 Python 的一个相对较新的补充,在 2018 年之前它存在于scipy.misc模块中。因此,对于旧版本,我们可以使用模块中的imsave()函数将数组保存为 Python 中的图像。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/