Image 使用cli查找所有像素的平均值

Image 使用cli查找所有像素的平均值,image,imagemagick,Image,Imagemagick,是否有一种cli方法可以获取图像中所有像素的平均值 例如,如果我有一个全黑的图像,我想键入: *cmd* black-img.jpg *cmd*black-img.jpg 在shell中,输出将是0,哦,这很简单: convert image.jpg -scale 1x1\! txt:- 该命令使用ImageMagick的convert强制将输入图像缩放到1x1像素的大小。8位RGBA图像的输出如下: # ImageMagick pixel enumeration: 1,1,255,sr

是否有一种cli方法可以获取图像中所有像素的平均值

例如,如果我有一个全黑的图像,我想键入:

*cmd* black-img.jpg *cmd*black-img.jpg 在shell中,输出将是
0

哦,这很简单:

convert  image.jpg  -scale 1x1\!  txt:-
该命令使用ImageMagick的
convert
强制将输入图像缩放到1x1像素的大小。8位RGBA图像的输出如下:

# ImageMagick pixel enumeration: 1,1,255,srgba
0,0: (151,161,212, 92)  #97A1D45C  srgba(151,161,212,0.361928)
或者,对于8位sRGB映像:

# ImageMagick pixel enumeration: 1,1,255,srgb
0,0: (229,226,229)  #E5E2E5  srgb(229,226,229)
它表示生成的单像素图像的颜色值:

  • 0,0:
    是此像素的坐标:第一列中的第一行
  • (151161212,92)
    表示RGBA像素的Red、Green、Blue和Alpha值
  • (2292266229)
    表示sRGB像素的Red、Green和Blue值
  • #97A1D45C
    #E5E2E5
    是各自的十六进制值

现在,如果是黑色像素,您自己的工作就是将此输出计算到shell中的“a
'0'
”。:-)

好的,所以当原始海报询问“获取图像中所有像素的平均值”时,他似乎不想要3或4个颜色通道值。。。他想要一个单独的值,可以先将图像转换为灰度:

convert  image.jpg  -colorspace gray  -scale 1x1\!  txt:-
与另一个答案相同的8位RGBA(带Alpha通道)图像的样本输出:

# ImageMagick pixel enumeration: 1,1,255,graya
0,0: (119,119,119, 92)  #7777775C  graya(119,119,119,0.361928)
以前的8位sRGB图像(无Alpha通道)的输出:

# ImageMagick pixel enumeration: 1,1,255,gray
0,0: (221,221,221)  #DDDDDD  gray(221,221,221)

那太好了!你能不能先把它变成灰度,这样你就不必对它们求平均值了?