开发者

How do I save a mode 'F' image? (Python/PIL)

开发者 https://www.devze.com 2023-02-19 14:40 出处:网络
I have a ndarray with floats in it I want to save. I would like to keep the values as float though. The only format I found that accepts saving flo开发者_如何转开发at data is tiff. Doesn\'t show the a

I have a ndarray with floats in it I want to save. I would like to keep the values as float though. The only format I found that accepts saving flo开发者_如何转开发at data is tiff. Doesn't show the actual image however.

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')


Your example is saving a floating-point TIFF file. I've confirmed by examining the TIFF header, noting that the samples per pixel tag 0x153 has a value of 3 (floating point data). Using your example:

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

Output:

True
[0.27724304795265198, 0.12728925049304962, 0.4138914942741394, 0.57919681072235107]

Details on the TIFF6 file format

Updated: Example 64x64 image viewed on Mac desktop:

How do I save a mode 'F' image? (Python/PIL)


ImageJ opens float Tiff images.

0

精彩评论

暂无评论...
验证码 换一张
取 消