通过GraphicsMagic查找图像中的颜色百分比



所以我所有的图像都是pdf和tiff,并保存在数据库中。我想接受只有浅色的图片,比如红色/蓝色的签名,但没有彩色的标志或类似的东西。我可以离Imagemagick更近一点。

为了提高转换速度并避免错误,我想将以下ImageMagick命令转换为GraphicsMagick命令。

convert filename.pdf -colorspace HSI -channel g +channel -format "%[fx:mean.g]" info:

我注意到我们在graphicsmagick中没有类似的均值函数。但我们能通过图形魔术做一些类似的事情吗?TIA。

我想你正试图在HSI色彩空间中找到图像的平均饱和度。

如果是这样,则ImageMagick命令不必要地冗长,您只需要:

magick INPUTIMAGE -colorspace HSL -format "%[fx:mean.g]" info:

无需使用-channel g选择第二个绿色/饱和通道,因为您已经使用[fx:mean.g]运算符选择了该通道,并且无需在使用+channel之后恢复到默认通道,因为无论如何您都不关心它们。


转到GraphicsMagick版本-这是不可能的,因为GM不支持HSI颜色空间,只支持HSL。因此,让我们假设你对HSL图像的平均饱和度足够满意,相反,你可以用GraphicsMagick做一些可怕的事情来获得它:

{ echo convert INPUTIMAGE -colorspace HSL -channel green MPR:x; echo identify -verbose MPR:x ; } | gm batch -prompt off | grep -i mean
Mean:                    14329.41 (0.2187)

或者,替代语法:

cat <<EOF | gm batch -prompt off | grep -i mean
convert a.jpg -colorspace HSL -channel green MPR:x
identify -verbose MPR:x
EOF

可能有更简单、不那么神秘的方法可以做到这一点,我真的不太了解GraphicsMagick

最新更新