Очистка отсканированных изображений в градациях серого с помощью ImageMagick - PullRequest
3 голосов
/ 08 марта 2012

У меня есть много сканов текстовых страниц (черный текст на белом фоне).

Мой обычный подход - очистить их в Gimp с помощью диалога кривых, используя довольно простую кривую с четырьмя точками: 0, 0 - 63,0 - 224,255, 255,255

Это делает весь текст сероватого цвета черным, плюс делает текст более резким и превращает большинство беловатых пикселей в чисто белый.

Как мне добитьсятот же эффект в сценарии с использованием ImageMagick или какого-либо другого инструмента Linux, который полностью запускается из командной строки?

-normalize или -contrast-stretch не работают, потому что они работают с количеством пикселей.Мне нужен оператор, который может сделать цвета 0-63 (оттенки серого) черным, все выше 224 чисто белым, а остальные должны быть нормализованы.

Ответы [ 2 ]

4 голосов
/ 12 марта 2012

На странице «Изменение цвета» показано множество алгоритмов манипулирования цветом от ImageMagick.

В данном конкретном случае интересны два алгоритма:

-level дает идеальные черные / белые пиксели вблизи концов кривой и линейное распределение между.

Сигмоидальная опция создает более плавную кривую между крайностями, что лучше подходит для цветных фотографий.

Чтобы получить аналогичный результат, как в GIMP, вы можете попробовать применить одно за другим (сделать текст и черные области действительно черными).

Во всех случаях вам нужно сначала запустить -normalize (или даже -contrast-stretch , чтобы объединить большую часть шума), чтобыубедитесь, что уровни черного / белого не пропадают.Без этого самый темный цвет может быть светлее rgb(0,0,0), а самый яркий цвет может быть ниже чисто белого.

1 голос
/ 10 марта 2012

[magick-users] Curves в ImageMagick

Первая ссылка в этом архивном сообщении - это сценарий оболочки, который, я думаю, выполняет то, что вы ищете.

...