может ли Python PIL иметь дело с необработанными данными изображения?

У меня есть необработанный файл изображения, который является .bin и состоит из 16-битных беззнаковых интерференций. Может ли библиотека изображений Python взять этот тип файла и обработать его? Мой код работает неправильно и выдает мне неверную ошибку типа файла, но я думаю, что это может быть ошибкой в кодировании, а не просто в том, что он не принимает этот тип файла.

Есть какие-нибудь знания об этом?

 clifgray05 июн. 2012 г., 19:13
они представляют значения серого, а затем я пропускаю их через фильтр Байера для получения цвета. проблема в том, что после фильтра все выходит слегка обесцвеченным, поэтому я хочу немного изменить необработанные данные, чтобы посмотреть, что они делают
 Mark Ransom05 июн. 2012 г., 19:07
Эти 16-разрядные целые числа без знака представляют значения серого или вы берете 3 последовательных, чтобы обеспечить RGB?

Ответы на вопрос(1)

Решение Вопроса

что ваш файл не имеет заголовка и плотно упакован, попробуйте следующее:

with open('filename', 'rb') as f:
    im = Image.fromstring('L;16', (width, height), f.read()) # also try 'L;16B', 'I;16', and 'I;16B'
im.show()

'L' форматы будут обрезаны с 16 бит на пиксель до 8;'I' форматы сохранят его на уровне 16 бит на пиксель, но с ним может быть сложнее работать.

Если ваш необработанный файл кодирован каким-либо образом, вам придется искать документацию по нему, поскольку необработанные форматы вообще не стандартизированы. С.bin Я сомневаюсь, что это так.

 05 июн. 2012 г., 22:08
@clifgray, извините, я должен был понять, что он не будет принимать файл напрямую. Я исправил пример, попробуйте сейчас. Что касается.bin файлы, они также не стандартизированы, но обычно используются для файлов без формата.
 clifgray05 июн. 2012 г., 22:03
он говорит мне, что я не могу использовать метод open с файлом и что мне нужна строка. затем, когда я пытаюсь использовать метод tostring (), он говорит, что tostring () нельзя использовать со строкой. Вы уверены, что .bin-файлы работают, я не могу найти их в документации.
 clifgray05 июн. 2012 г., 22:47
здорово это только что прошло. Спасибо за помощь

Ваш ответ на вопрос