作为我正在开展的项目的一部分,我需要使用CLI Linux应用程序简单地分析图片并确定其是否为暗图像(高对比度,低亮度)。
到目前为止,我发现我可以使用ImageMagick来获取图像的详细信息,但不确定如何使用该数据......还是有更简单的解决方案?
答案 0 :(得分:17)
您可以将图像缩放到非常小的图像 - 尺寸为1x1像素的图像,并表示"平均颜色"原始图片:
convert original.jpeg -resize 1x1 1pixel-original.jpeg
然后调查单个像素的颜色,第一个
convert 1pixel-original.jpeg 1pixel-jpeg.txt
然后
cat 1pixel-jpeg.txt
# ImageMagick pixel enumeration: 1,1,255,srgb
0,0: (130,113,108) #82716C srgb(130,113,108)
您也可以一次性获得相同的结果:
convert original.jpeg -resize 1x1 txt:-
# ImageMagick pixel enumeration: 1,1,255,srgb
0,0: (130,113,108) #82716C srgb(130,113,108)
通过这种方式,您可以获得" avarage像素的值#34;在输入图像的原始色彩空间中,您可以评估其亮度' (但是你定义了这个。)
您可以将图像转换为灰度,然后调整大小。通过这种方式,您可以获得灰度值作为亮度的衡量标准'
convert original.jpeg -colorspace gray -resize 1x1 txt:-
# ImageMagick pixel enumeration: 1,1,255,gray
0,0: (117,117,117) #757575 gray(117,117,117)
您还可以将图像转换为HSB空间(色调,饱和度,亮度)并执行相同的操作:
convert original.jpeg -colorspace hsb -resize 1x1 txt:-
# ImageMagick pixel enumeration: 1,1,255,hsb
0,0: ( 61, 62,134) #3D3E86 hsb(24.1138%,24.1764%,52.4941%)
亮度'您在此处看到的值(134
,#86
或52.4941%
)可能是您想知道的。