Как сохранить изображение в режиме «F»?(Python / PIL) - PullRequest
7 голосов
/ 24 марта 2011

У меня есть 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')

Ответы [ 2 ]

8 голосов
/ 24 марта 2011

Ваш пример - это сохранение файла 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]

Подробная информация о формате файла TIFF6

Обновлено : Пример изображения 64x64, просматриваемого на рабочем столе Mac: enter image description here

2 голосов
/ 27 января 2012

ImageJ открывает всплывающие изображения Tiff.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...