Gre*_*ano 4 graphics image imagemagick image-processing
作为我正在研究的项目的一部分,我需要使用CLI Linux应用程序简单地分析图片并确定其是否为暗图像(高对比度,低亮度).
到目前为止,我发现我可以使用ImageMagick来获取图像的详细信息,但不确定如何使用该数据......还是有更简单的解决方案?
Kur*_*fle 17
您可以将图像缩放为非常小的图像 - 尺寸为1x1像素并表示原始图像的"平均颜色":
convert original.jpeg -resize 1x1 1pixel-original.jpeg
Run Code Online (Sandbox Code Playgroud)
然后首先研究单个像素的颜色
convert 1pixel-original.jpeg 1pixel-jpeg.txt
Run Code Online (Sandbox Code Playgroud)
然后
cat 1pixel-jpeg.txt
# ImageMagick pixel enumeration: 1,1,255,srgb
0,0: (130,113,108) #82716C srgb(130,113,108)
Run Code Online (Sandbox Code Playgroud)
您也可以一次性获得相同的结果:
convert original.jpeg -resize 1x1 txt:-
# ImageMagick pixel enumeration: 1,1,255,srgb
0,0: (130,113,108) #82716C srgb(130,113,108)
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以在输入图像的原始颜色空间中获得"avarage像素"的值,您可以根据其"亮度"对其进行评估(但是您可以对其进行定义).
您可以将图像转换为灰度,然后调整大小.这样你就可以得到灰度值来衡量"亮度":
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)
Run Code Online (Sandbox Code Playgroud)
您还可以将图像转换为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%)
Run Code Online (Sandbox Code Playgroud)
您在此处看到的"亮度"值(或者134
,#86
或者52.4941%
)可能是您想要了解的.
归档时间: |
|
查看次数: |
5512 次 |
最近记录: |