Dar*_*ook 6 imagemagick image-processing
我想从图像中提取单一颜色(例如#a87830),将每种其他颜色更改为白色.输入可能有点噪声,因此可以包括近色的相邻像素.理想情况下,末端的所有非白色像素都将转换为黑色(即输出为1位深度图像).
我可能想要批量处理这个,所以我希望像imagemagick命令行之类的东西,或者我可以使用PHP imagemagick扩展编写的东西.(我确信ImageMagick必须能够做到这一点,如果正确的参数可以解决,这就是我标记它的原因,但我对其他软件开放,只要它适用于Linux.)
背景:我正在尝试为ContourTrace程序执行第一个预处理阶段,此图像很好地显示了该阶段:

不确定这是否足够复杂.将所有类似的像素(在您声明的颜色的30%范围内)转换为黑色,然后将其余部分转换为白色.
convert in.png -fuzz 30% -fill black -opaque "#a87830" -threshold 10% out.png
Run Code Online (Sandbox Code Playgroud)

你可以通过添加更多命令来"添加"你想变成黑色的更多音调-opaque,就像这样
convert in.jpg -fuzz 20% -fill black \
-opaque "#a87830" \
-opaque "#a6725f" \
-threshold 1% out.png
Run Code Online (Sandbox Code Playgroud)
这可能会让你减少fuzz,从而删除你不想要的其他音调.
这是一个尝试:
convert \
http://i.stack.imgur.com/rK259.png \
-fuzz 33% \
-fill black \
-opaque "#A87830" \
-threshold 12% \
black+white.png
Run Code Online (Sandbox Code Playgroud)
该-fuzz参数使所有颜色都匹配在定义的颜色的某个接近范围内-opaque.不-fuzz,你只会匹配这些像素"#A87830".
的-threshold转换彩色像素为黑色或白色,其中所述百分比定义了限制:上述变黑,下面变为白色.

您可以修改命令从-opaque "<color-definition>"到 +opaque "<color-definition>"到反转的颜色选择的意义:它将取代不在此颜色(这时候我跳过像素-threshold的参数,以保持颜色):
convert \
http://i.stack.imgur.com/rK259.png \
-fuzz 33% \
-fill black \
+opaque "#FFFFFF" \
other.png
Run Code Online (Sandbox Code Playgroud)
