我有8000张图片,基本上需要删除任何具有白色背景的照片。我希望找到一种方法,我可以通过主色(希望是白色)对所有这些图像进行排序,或者通过背景颜色,让我们说左上角的像素。
这可以通过imagemagick来实现吗?
答案 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