Использование ImageMagick для удаления всех цветов, кроме черного на изображении?

ситуация такова: у меня много изображений документов от сканирования. Я хочу сохранить основное содержимое документа, которое печатается черным цветом (небольшой диапазон цветов вокруг #000000). Но, знаете, документы всегда пестрят красками: штемпель, фон, украшения, логотипы...так далее.

Я просто хочу сохранить только тексты, которые были напечатаны в черном цвете.

Я пробовал с ImageMagick и эта команда так далеко:

convert X.png -matte (+clone -fuzz 20% -transparent "#000000") -compose DstOut -composite X1.png

но результат был не таким, как ожидалось, текст был очень поврежден, что я не могу прочитать. Кто-то предложил мне увеличить пушок до 70%:

convert X.png -matte (+clone -fuzz 70% -transparent "#000000") -compose DstOut -composite X1.png

затем текст казался более читаемым,но другие цвета тоже оставались.

можете ли вы показать мне лучшее решение для моей ситуации? Каждое предложение будет высоко оценено!

3 ответов


в матче все цвета, кроме черного можно использовать +opaque "#000000".

для того, чтобы включить маленький круг вокруг #000000 вы можете попробовать различные проценты с fuzz оператор:

convert input.png -fill white -fuzz 10% +opaque "#000000" result.png

протестировано с ImageMagick 6.6.0-1 на Windows


я наткнулся на этот вопрос, ища ответ на этот вопрос. Я нашел пару сообщений на форуме imagemagick, которые помогли. Вот что я придумал:

convert input.gif -matte \( +clone -fuzz 1 -transparent black \) -compose DstOut -composite ~/Desktop/output.png

сообщение на форуме: ImageMagick: удаление всех, кроме одного цвета


вы должны попробовать уровень:

convert test.png -level 25%,75% test_level.png