我有一个目录,其中包含大量 JPG 图像(纸质文档的扫描件),目前这些图像都是 sRGB。

许多但不是全部实际上没有颜色,或者仅将颜色作为背景(例如,彩色纸或略带灰白色的扫描件)。

我想将这些图像(但不是具有真实颜色的图像)批量转换为灰度,以节省磁盘空间。

我猜测 ImageMagick 有某种方法可以做到这一点,但我不知道如何做。建议?

有帮助吗?

解决方案

图像魔法的 mogrify 实用程序将是最简单的解决方案。

mogrify -path /path/to/output/dir/ -colorspace Gray /path/to/source/files

识别哪个文档符合真实颜色的能力可能是非常本地化的。我建议评估每个图像的颜色计数,并且仅转换低于给定阈值的图像。

THRESHOLD=1024
FILES=`ls /path/to/source/files`
for FILE in ${FILES}; do
COLORS=`identify -format %k "$FILE"`
if [[ $COLORS -lt $THRESHOLD ]]; then
  mogrify -path /path/to/output/dir/ -colorspace Gray "$FILE"
fi

评估预处理选项以减少噪音也可能是明智的。 单色 是最容易申请的,但是 其他很棒的解决方案 存在。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top