有several examples将图像文件加载到numpy数组中,但我在本地文件系统的文件中没有图像。相反,我有一个字符串变量img
,其中包含组成图像的数据。例如:
# Currently here:
with open("imageFile.png") as f:
img = f.read()
# Would like to accomplish this:
npArray = loadStringToArray(img)
将此文件写回磁盘并调用一个更常见的加载函数似乎不切实际,那么如何将此图像作为字符串“加载”到一个numpy数组中呢?
一些背景知识 - 在我的应用程序中,这个图像作为字符串是通过python套接字从客户端传递的。图像不在本地机器上;上面的例子只是一个例子。在将文件写入本地文件系统并将然后读回来时,可能 如果可以,我想避免这样做。
答案 0 :(得分:0)
我认为您要做的是将字符串转换为numpy数组,因为您已将图像作为字符串。
您可以使用numpy.fromstring()执行该任务。
示例: -
np.fromstring('\x01\x02', dtype=np.uint8)
----->数组([1,2],dtype = uint8)
np.fromstring('1 2', dtype=int, sep=' ')
----->数组([1,2])
np.fromstring('1, 2', dtype=int, sep=',')
----->数组([1,2])
np.fromstring('\x01\x02\x03\x04\x05', dtype=np.uint8, count=3)
----->数组([1,2,3],dtype = uint8)
答案 1 :(得分:0)
io
模块没有详细介绍,提供“类文件”对象,特别是StringIO
和BytesIO
,它们配备内存中的对象,例如带有文件的字符串 - 喜欢界面。许多期望文件参数的函数都会很乐意接受StringIO
或BytesIO
。