画像内のすべてのピクセルの平均値を取得する方法はありますか
たとえば、すべて黒の画像がある場合は、次のように入力します。
*cmd* 黒-img.jpg
出力は0
シェルになります
画像内のすべてのピクセルの平均値を取得する方法はありますか
たとえば、すべて黒の画像がある場合は、次のように入力します。
*cmd* 黒-img.jpg
出力は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:
は、このピクセルの座標です: 1 列目の 1 行目。(151,161,212, 92)
RGBA ピクセルの R ed、G reen、B lue、および A lpha 値を表します。(229,226,229)
sRGB ピクセルのR ed、G reen、および B lue 値を表します。#97A1D45C
および#E5E2E5
は、それぞれの 16 進数値です。これが黒いピクセルである場合、この出力を ' a '0'
in the shell'に計算するのはあなた自身の仕事です。:-)
わかりましたので、元の投稿者は、「画像内のすべてのピクセルの平均値を取得する」ことについて尋ねると、3 つまたは 4 つのカラーチャネル値ではなく、画像を変換することによって導出できる 1 つの値が必要なようです。最初にグレースケールに:
convert image.jpg -colorspace gray -scale 1x1\! txt:-
他の回答と同じ8ビットRGBA(アルファチャンネル付き)画像のサンプル出力:
# ImageMagick pixel enumeration: 1,1,255,graya
0,0: (119,119,119, 92) #7777775C graya(119,119,119,0.361928)
前の 8 ビット sRGB イメージ (アルファ チャネルなし) の出力:
# ImageMagick pixel enumeration: 1,1,255,gray
0,0: (221,221,221) #DDDDDD gray(221,221,221)