Python:如何以通道,行,cols格式保存图像?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python:如何以通道,行,cols格式保存图像?相关的知识,希望对你有一定的参考价值。

我有一个(通道,行,列)格式的图像。

这是一个numpy数组。

如何以这种格式保存?

似乎大多数库(OpenCV,imageio等)都希望它(行,列)或(行,列,通道)。

注意:我不是在寻找如何重塑image / numpy数组并保存它。

答案

如果您想保留numpy数组,可以使用pickle。 (我认为这就是你要问的。)Pickle是一个python模块,它允许你将变量或对象保存到文件中并在以后检索它。假设您的numpy数组名为image,以下代码应该可以正常工作。

import pickle

image = []  # just using an empty list as an example, any object should work
file = open("img.dat", "wb")
pickle.dump(image, file)
file.close()

file = open("img.dat", "rb")
retrieved = pickle.load(file)
file.close()

print(image, retrieved)

Pickle可以使用dumpload保存和检索文件中的数据。应该使用python的文件打开函数open()中的读写二进制文件加载文件。如果在加载或转储数据时在同一行中打开文件,则可以缩短上面的代码。

import pickle

image = []
pickle.dump(image, open("img.dat", "wb"))
retrieved = pickle.load(open("img.dat", "rb"))
print(image, retrieved)
另一答案

您可以使用PIL执行此操作。

from PIL import Image
# image_array is of shape (3, height, width) with the 3 channels in order as R, G, B
im = Image.fromarray(image_array, mode="RGB")
im.size # (height, width)
# Save the image
im.save("name_of_file")

以上是关于Python:如何以通道,行,cols格式保存图像?的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何将csv文件某一列中所有相同元素的行分别另外以要求的命名格式保存

Python:如何将csv文件某一列中所有相同元素的行分别另外以要求的命名格式保存

如何以原始格式保存图像?

[opencv] 图像保存格式的小问题

在先通道和最后通道之间更改图像通道顺序的正确方法是啥?

跟我学Python图像处理丨获取图像属性兴趣ROI区域及通道处理