如果您安装 ImageMagick,您可以使用以下命令来测试某些内容是否为灰度:
$ convert bw.jpg -format "%[colorspace]" info:
Gray
Run Code Online (Sandbox Code Playgroud)
安装:
sudo apt-get install imagemagick
Run Code Online (Sandbox Code Playgroud)
所以要通过它们并移动:
for i in /images/folder ; do
if [ "$(convert $i -format "%[colorspace]" info:)" == "Gray" ]; then
mv "$i" /images/folder/bw
fi
done
Run Code Online (Sandbox Code Playgroud)
但是,此方法仅测试图像使用的色彩空间。图像可能使用完整的 RGB 色彩空间,而实际上仅使用灰度色调(理想情况下,这些将转换为灰度以获得最佳效果)。
为了计算出仅使用灰色调,一种选择是将图像转换为 HSL 颜色,然后计算图像的平均饱和度。对于真正的灰度图像,平均饱和度将为零。对于 jpg 中的灰度图像,由于人工制品,您将与完美的灰度有些偏差,通常它们并不完美,具体取决于它们如何变成黑白。
这张图片例如:

如果我们将其转换为 HSL 并获得平均饱和度:
$ convert black-and-white-comics.jpg -colorspace HSL -channel g \
> -separate +channel -format "%[fx:mean]" info:
0.00781798
Run Code Online (Sandbox Code Playgroud)
图形输出范围为 0-1,因此您必须定义一个阈值,在该阈值下,您认为某些内容是灰度的,具体取决于您的源文件。
| 归档时间: |
|
| 查看次数: |
2559 次 |
| 最近记录: |