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可以使用dump
和load
保存和检索文件中的数据。应该使用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文件某一列中所有相同元素的行分别另外以要求的命名格式保存