使用imagemagick检测大多数空图像

时间:2014-11-24 15:07:05

标签: image imagemagick graphicsmagick

我想使用imagemagick或graphicsmagick来检测图像是否基本没有内容。

以下是一个例子:

example

https://s3-us-west-2.amazonaws.com/idelog/token_page_images/120c6af0-73eb-11e4-9483-4d4827589112_embed.png

我已经浏览了Fred的imagemagick脚本,但我无法弄清楚是否有办法做到这一点:

http://www.fmwconcepts.com/imagemagick/

2 个答案:

答案 0 :(得分:2)

最简单的方法是使用-edge检测,然后histogram:& text:。这将生成一个大的像素信息列表,可以传递给另一个进程进行评估。

convert 120c6af0-73eb-11e4-9483-4d4827589112_embed.png \
        -edge 1 histogram:text:- | cut -d ' ' -f 4 | sort | uniq -c

以上示例将生成一个很好的报告:

50999 #000000
  201 #FFFFFF

由于白色像素的数量小于黑色像素的1%,我可以说图像是空的。

通过将-fx信息传递给实用程序,可以简化这一过程。

convert 120c6af0-73eb-11e4-9483-4d4827589112_embed.png \
        -format '%[mean] %[max]' info:- | awk '{print $1/$2}'
#=> 0.00684814

答案 1 :(得分:0)

如果你在谈论不透明像素的数量与透明像素的数量,那么下面将告诉你不透明像素的百分比。

convert test.png -alpha extract -format "%[fx:100*mean]\n" info:

39.0626

或者,如果您想要透明像素的百分比,请使用

convert test.png -alpha extract -format "%[fx:100*(1-mean)]\n" info:

60.9374