У моего друга есть цветное изображение с китайским почерком (в основном, фотографируя или сканируя то, что он написал на листе белой бумаги), и он хотел бы, чтобы я преобразовал его в черно-белое двоичное изображение. Есть ли приложения под Ubuntu, которые могут это сделать?
Вот пример изображения:
Ответы:
То, что вы хотите, называется «порогом» в обработке изображений. По сути, он принимает изображение в качестве входных данных и выводит изображение, которое имеет все пиксели со значением ниже заданного порогового значения, установленного на черный, и все пиксели, значение которого выше порогового значения, установлено на белый. В результате получается черно-белое изображение из произвольного входного изображения.
Как правило, вы хотите сначала преобразовать в оттенки серого для получения более предсказуемых результатов, но можно также ограничить полноцветное изображение.
Вы можете использовать графический инструмент, такой как GIMP, чтобы сделать это в интерактивном режиме (вы найдете инструмент через главное меню -> Цвета -> Порог), или вы можете использовать ImageMagick что-то вроде этого:
Выполнение вышеупомянутой команды на примере изображения приводит к результату, показанному ниже.
Поскольку пороговая обработка часто является своего рода методом проб и ошибок, чтобы получить результат, которым вы довольны, особенно если исходное изображение уже не очень близко к черно-белому, я рекомендую подход с графическим интерфейсом, если это возможно, но если это не вариант по какой-либо причине, вы можете сделать это через командную строку. Для более точного управления выводом можно использовать такие инструменты, как цветовые кривые, уровни и контрастность, чтобы лучше изолировать светлые и темные участки изображения перед установкой порога. (На самом деле, порог можно рассматривать как крайний случай использования инструмента цветовых кривых.)
источник
-channel
опцию преобразования ImageMagick ) будет применено к некоторому «значению» пикселя, которое вычисляется со всех каналов. Вот почему я сказал, что вы можете сначала преобразовать в оттенки серого для более предсказуемых результатов. (Также см. Мое редактирование.)-lat
что выполняет локальный адаптивный порог с учетом окружающих пикселей.Вы можете использовать Imagemagick:
От сюда .
Вот что я получил после применения к вашему изображению:
источник
-monochrome из ImageMagick - это опция, которая использует умное сглаживание и делает вывод намного более заметным, чем
-threshold
если бы вы предназначали его для потребления человеком:Не имеет большого значения для такого простого изображения, но для больших, это поразительно.
источник
Вы также можете легко сделать это с помощью
netpbm
инструментария:ppmtopgm
преобразуется в изображение в градациях серого,pgmtopbm
преобразуется в черно-белое изображение, а затем мы перенаправляем вывод в файл. Это будет в формате pbm; если вы хотите что-то более общее, вам нужно будет добавить конвертер вывода (например,pnmtopng
или что-то подобное)источник