需求
我有一个要保存浮点数的ndarray.我想将值保存为浮点型.我发现接受保存浮点数据的唯一格式是tiff.但是不显示实际图像.
from Image import *
from numpy import *
img = random.random((300, 300)) #float numbers, i have actual data in my image though
img = fromarray(img)
img.save('test.tiff')
解决方法:
您的示例正在保存一个浮点TIFF文件.我已经通过检查TIFF标头确认了这一点,并注意到每个像素标签0x153的采样值为3(浮点数据).使用您的示例:
import Image
from numpy import *
data = random.random((2, 2))
img1 = Image.fromarray(data)
img1.save('test.tiff')
img2 = Image.open('test.tiff')
f1 = list(img1.getdata())
f2 = list(img2.getdata())
print f1 == f2
print f1
输出:
True
[0.27724304795265198, 0.12728925049304962, 0.4138914942741394, 0.57919681072235107]
参考:
- 如何保存“ F”模式图像? (Python的/ PIL)
- Details on the TIFF6 file format
-
如何保存浮点型数值的图像? (C++ / OpenCV)