Как использовать метод PIL Image.point (table) для применения порога к 256 серому изображению?

У меня есть 8-битные изображения TIFF в оттенках серого, которые я хочу преобразовать в монохромный, используя порог белого цвета 75% (десятичный 190). В разделе метода Image.convert (mode) руководство PIL говорит:

«При преобразовании изображения в градациях серого в изображение с битовым уровнем (режим« 1 ») все ненулевые значения устанавливаются на 255 (белый). Чтобы использовать другие пороговые значения, используйте точечный метод».

Метод Image.point (table) говорит, что он отображает каждый пиксель в данной таблице.

im.point (таблица, режим) => изображение
im.point (функция, режим) => изображение

«Сопоставьте изображение с помощью таблицы и конвертируйте его на лету. В текущей версии PIL это можно использовать только для преобразования изображений L и P в 1 за один шаг, например, для порогового значения изображения».

Как мне создать таблицу (или функцию), которая соответствует нужному мне порогу 75%?


person tahoar    schedule 26.06.2011    source источник
comment
Ответ Пайтона - тот, который вам нужен. Вы используете 190, но я бы использовал p > 191 (я знаю, разница незначительна :).   -  person tzot    schedule 26.06.2011
comment
Спасибо за ответы, но на пути к реализации произошла забавная вещь. Мои изображения на самом деле начинаются как TIFF, CCITT group4. Я думал, что легко будет преобразовать в 8-битный серый цвет. Однако PIL сообщает, что группа 4 декодера недоступна. Есть ли еще одна библиотека изображений, поддерживающая group4?   -  person tahoar    schedule 27.06.2011


Ответы (2)



Попробуйте im.point(lambda p: p > 190) и опубликуйте результаты.

person pajton    schedule 26.06.2011
comment
Как сказал тахоар выше, вам, кажется, нужны и 255 - person Ben; 10.05.2012