如何通过主色或背景色对图像进行排序

时间:2018-03-05 16:15:40

标签: image image-processing imagemagick imagemagick-convert

我有8000张图片,基本上需要删除任何具有白色背景的照片。我希望找到一种方法,我可以通过主色(希望是白色)对所有这些图像进行排序,或者通过背景颜色,让我们说左上角的像素。

这可以通过imagemagick来实现吗?

3 个答案:

答案 0 :(得分:3)

您可以计算其他实用程序的平均像素值,排序和管道。

for f in *.jpg
do
  identify -format '%[mean] %f\n' "$f"
done | sort -r | cut -d ' ' -f 2
  • identify -format '%[mean] %f\n' "$f"将计算平均像素值(数字随着接近白色而增加)。例如......

    14524.3 output0.jpg
    64246.8 output1.jpg
    34612.2 output2.jpg
    
  • 管道到sort -r以反向排序。

    64246.8 output1.jpg
    34612.2 output2.jpg
    14524.3 output0.jpg
    
  • 并导管cut -d ' ' -f 2以降低计算平均值。

    output1.jpg
    output2.jpg
    output0.jpg
    

答案 1 :(得分:2)

您可以使用ImageMagick计算图像中白色像素的百分比吗?

convert image -fuzz XX% -fill white -opaque white -fill black +opaque white -scale 1x1 -format "%[fx:100*mean]\n" info:


结果将是图像中白色的百分比。

其中XX%是您想要认为白色接近白色的百分比容差。如果您只想要纯白色,则使用0%。如果你想包括近白色,那么增加XX%。

PS抱歉@emcconville,我们必须在同一时间发布。大多数情况下都是相同的解决方案,但你的排序方式更为彻底。

答案 2 :(得分:0)

从我发现进行1分钟的网络研究(实际上是你的工作),这是可能的。

减少加速的颜色数量(如果需要) http://www.imagemagick.org/Usage/quantize/#colors

然后创建直方图以获得颜色频率 http://www.imagemagick.org/Usage/files/#histogram

http://www.imagemagick.org/Usage/quantize/#extract

然后按最主要颜色的频率对输出进行排序

更多信息可以在这里找到: https://superuser.com/questions/576949/getting-the-predominant-colour-in-an-image