是否有获取图像中所有像素平均值的cli方法
例如- 如果我有一个全黑的图像,我想输入:
*cmd* black-img.jpg
,shell中的输出为0
答案 0 :(得分:4)
哦,这很简单:
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:
是此像素的坐标:第1列中的第1行。(151,161,212, 92)
代表 R ed, G reen, B lue和 A lpha值RGBA像素。(229,226,229)
代表sRGB像素的 R ed, G reen和 B lue值。#97A1D45C
和#E5E2E5
分别是十六进制值。现在,如果它是一个黑色像素,那么将此输出计算到' a '0'
在shell'中是你自己的工作。 : - )
答案 1 :(得分:1)
好的,原来的海报似乎不想要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)