从图像中删除除一种颜色以外的所有颜色(命令行或代码)
Remove all except one colour from an image (commandline or code)
我想从图像中提取单一颜色(例如#a87830),将其他所有颜色更改为白色。输入可能有点嘈杂,因此可以包含接近颜色的 相邻 个像素。理想情况下,最后的所有非白色像素都将转换为黑色(即输出是 1 位深度的图像)。
我可能想批处理这个,所以我希望有类似 imagemagick 命令行的东西,或者我可以使用 PHP imagemagick 扩展编写的代码。 (我确信 ImageMagick 一定能够做到这一点,如果可以计算出正确的参数,这就是我标记它的原因,但我对其他软件持开放态度,只要它适用于 Linux。)
背景: 我正在尝试为 ContourTrace 程序做第一个预处理阶段,这张图很好地展示了这一点:
不确定这对您来说是否足够复杂。将所有相似像素(在您指定颜色的 30% 以内)转换为黑色,然后将其余像素转换为白色。
convert in.png -fuzz 30% -fill black -opaque "#a87830" -threshold 10% out.png
您可以 "add in" 更多您希望通过添加更多 -opaque
命令变成黑色的色调,就像这样
convert in.jpg -fuzz 20% -fill black \
-opaque "#a87830" \
-opaque "#a6725f" \
-threshold 1% out.png
这可能允许您降低 fuzz
从而删除您不想要的其他音调。
这里有一个可以尝试:
convert \
http://i.stack.imgur.com/rK259.png \
-fuzz 33% \
-fill black \
-opaque "#A87830" \
-threshold 12% \
black+white.png
-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
我想从图像中提取单一颜色(例如#a87830),将其他所有颜色更改为白色。输入可能有点嘈杂,因此可以包含接近颜色的 相邻 个像素。理想情况下,最后的所有非白色像素都将转换为黑色(即输出是 1 位深度的图像)。
我可能想批处理这个,所以我希望有类似 imagemagick 命令行的东西,或者我可以使用 PHP imagemagick 扩展编写的代码。 (我确信 ImageMagick 一定能够做到这一点,如果可以计算出正确的参数,这就是我标记它的原因,但我对其他软件持开放态度,只要它适用于 Linux。)
背景: 我正在尝试为 ContourTrace 程序做第一个预处理阶段,这张图很好地展示了这一点:
不确定这对您来说是否足够复杂。将所有相似像素(在您指定颜色的 30% 以内)转换为黑色,然后将其余像素转换为白色。
convert in.png -fuzz 30% -fill black -opaque "#a87830" -threshold 10% out.png
您可以 "add in" 更多您希望通过添加更多 -opaque
命令变成黑色的色调,就像这样
convert in.jpg -fuzz 20% -fill black \
-opaque "#a87830" \
-opaque "#a6725f" \
-threshold 1% out.png
这可能允许您降低 fuzz
从而删除您不想要的其他音调。
这里有一个可以尝试:
convert \
http://i.stack.imgur.com/rK259.png \
-fuzz 33% \
-fill black \
-opaque "#A87830" \
-threshold 12% \
black+white.png
-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