如何按主色或背景色对图像进行排序
How to sort images by a dominant color, or the background color
我有 8000 张图片,基本上需要删除任何具有白色背景的照片。我希望找到一种方法,可以按主色(希望是白色)或背景色(比如左上角像素)对所有这些图像进行排序。
用imagemagick可以实现吗?
根据我进行 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
您可以计算平均像素值、排序并传输到其他实用程序。
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
您可以使用 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,我们一定是在同一时间发布的。大致相同的解决方案,但您的解决方案在排序方面更彻底。
我有 8000 张图片,基本上需要删除任何具有白色背景的照片。我希望找到一种方法,可以按主色(希望是白色)或背景色(比如左上角像素)对所有这些图像进行排序。
用imagemagick可以实现吗?
根据我进行 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
您可以计算平均像素值、排序并传输到其他实用程序。
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
您可以使用 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,我们一定是在同一时间发布的。大致相同的解决方案,但您的解决方案在排序方面更彻底。