如何在ImageMagick上过滤4种不同的颜色?

时间:2018-03-19 06:50:59

标签: imagemagick

我正在使用ImageMagick将图像转换为x和y笛卡尔坐标。我在命令行中使用的代码可以很好地使所有行显示为全黑,空格显示为全白。有没有办法过滤更多颜色?例如,如果图像由多种颜色组成,是否有办法使所有红色类型的颜色都为红色,所有蓝色类型的颜色都是蓝色,而其他非白色的颜色是黑色?然后背景将被视为完全白色(我用作白色背景上的图片的大多数图像)。命令行文本为:

将“imagename”转换为.png -white-threshold 50%-black-threshold 50%txt:

使用下面的Mark Setchell代码,我尝试转换我使用paint创建的基本图像来测试IM的能力。

enter image description here

我稍微编辑了代码,以便背景填充为白色而不是黑色;

convert q.png -write MPR:orig -delete 0 -compose lighten ^ ( MPR:orig -fuzz 10% -fill red  -opaque red  -fill white +opaque red  ) ^ ( MPR:orig -fuzz 10% -fill blue -opaque blue -fill white +opaque blue ) -composite ^ ( MPR:orig -fuzz 10% -fill lime -opaque lime -fill white +opaque lime ) -composite ^ f.png

然而,整个图像只显示白色。有什么提示吗?

1 个答案:

答案 0 :(得分:1)

不完全确定你想要什么,但也许这会让我们更接近。所以,我们从这开始:

enter image description here

然后我们这样做,其中"将红色的10%以内的任何东西变成纯红色,25%的蓝色变成纯蓝色,依此类推"

convert start.png  -fuzz 10%  \
   -fill red   -opaque red    \
   -fuzz 25%                  \
   -fill blue  -opaque blue   \
   -fill lime  -opaque lime   \
   -fill white -opaque white result.png

enter image description here

或者更像是这样:

convert start.png -write MPR:orig -delete 0 -compose lighten \
   \( MPR:orig -fuzz 10% -fill red  -opaque red  -fill black +opaque red \) \
   \( MPR:orig -fuzz 20% -fill blue -opaque blue -fill black +opaque blue \) -composite \
   \( MPR:orig -fuzz 30% -fill lime -opaque lime -fill black +opaque lime \) -composite \
   result.png

enter image description here

那说...... "拍摄原始图像并在名为orig的Magick Persistent Register中复制,然后删除原始图像。设置混合模式以选择每个位置的最亮像素,以用于将来的composite命令。现在制作一个新图层,用原始图像填充,将红色的10%内的任何内容制作为红色,并使其他任何内容为黑色。现在对蓝色的20%内的颜色做同样的事情,并采用较轻的层混合 - 所以蓝色和红色显示而不是总是最黑的黑色。对石灰再次做同样的事情 - ImageMagick 指的是纯绿色。""

注意绿色是如何大于蓝色,而蓝色又大于红色,因为我使用了不同的模糊量 - 即30%,20%10%。

认为在Windows风格的引用中看起来像这样:

convert start.png -write MPR:orig -delete 0 -compose lighten ^
( MPR:orig -fuzz 10% -fill red  -opaque red  -fill black +opaque red  ) ^
( MPR:orig -fuzz 20% -fill blue -opaque blue -fill black +opaque blue ) -composite ^
( MPR:orig -fuzz 30% -fill lime -opaque lime -fill black +opaque lime ) -composite ^
result.png