Удалить все, кроме одного цвета из изображения (командной строки или код)
Я хотел бы извлечь один цвет (например, #a87830) из изображения, изменив все остальные цвета на белый. Вход может быть немного шумным, поэтому рядом пиксели близкого цвета могут быть включены. В идеале все небелые пиксели в конце будут преобразованы в черные (т. е. выходное изображение 1-битной глубины).
возможно, я захочу пакетно обработать это, поэтому я надеюсь на что-то вроде командной строки imagemagick или что-то, что я мог бы закодировать с помощью PHP imagemagick расширение. (Я уверен, что ImageMagick должен быть в состоянии сделать это, если правильные параметры могут быть просто разработаны, поэтому я пометил его, но я открыт для другого программного обеспечения, пока он работает на Linux.)
Справочная информация: Я пытаюсь сделать первый этап предварительной обработки для ContourTrace программа, которая хорошо показана на этом изображении:
2 ответов
вот это попробовать:
convert \
http://i.stack.imgur.com/rK259.png \
-fuzz 33% \
-fill black \
-opaque "#A87830" \
-threshold 12% \
black+white.png
на , и вы будете соответствовать только этим пикселям, которые точно "#A87830"
.
на -threshold
преобразует цветные пиксели в черные или белые, где процент определяет предел: выше становится черным, ниже становится белым.
вы можете изменить команду -opaque "<color-definition>"
в +opaque "<color-definition>"
to инверсия значение выбора цвета: он заменит пиксели, которые не являются этим цветом (на этот раз я пропускаю
не уверен, что это достаточно сложно для вас. Преобразуйте все пиксели, похожие в пределах 30% от вашего заявленного цвета, в черный, а затем сделайте остальные белые.
convert in.png -fuzz 30% -fill black -opaque "#a87830" -threshold 10% out.png
вы можете "добавить в" больше тонов, которые вы хотели бы стать черными, добавив далее -opaque
команды, такой
convert in.jpg -fuzz 20% -fill black \
-opaque "#a87830" \
-opaque "#a6725f" \
-threshold 1% out.png
что может позволить вам уменьшить fuzz
и тем самым удалить другие тона вы не хотите.