複数の画像の平均輝度値を取得する方法

11 ビュー (過去 30 日間)
Asaka Masahiro
Asaka Masahiro 2019 年 9 月 11 日
コメント済み: Asaka Masahiro 2019 年 9 月 17 日
複数の画像の平均輝度値を取得したいと思っています。
どのような方法があるでしょうか。ご回答いただけると幸いです。

採用された回答

Kenta
Kenta 2019 年 9 月 11 日
for文で各画像を参照しながら、mean(image, 'all')で平均輝度値を取り出し、さらにそれらの平均をとれば
複数の画像の平均輝度値をとりだすことができます。
  5 件のコメント
Kenta
Kenta 2019 年 9 月 17 日
編集済み: Kenta 2019 年 9 月 17 日
int=zeros(40,1);
for i=1:40
if i<=20
filename=sprintf('A%d.png',i);
I=imread(filename);
int(i)=mean(I,'all');
else
filename=sprintf('B%d.png',i-20);
I=imread(filename);
int(i)=mean(I,'all');
end
end
ave_int=mean(int);
img=ones(size(I,1),size(I,2)).*ave_int;
figure;imshow(uint8(img));
40枚でそれぞれ、全ピクセルの輝度の平均を計算
その輝度の値をもつ1チャンネルの画像を生成
例)全画像の平均輝度が100の場合:画像サイズがAやB画像と同じで、すべてのピクセルの値が100の画像を出力
このような感じですが、質問者さまの意図が正しくくみ取れていますでしょうか。
ちなみに、上では、rgb2grayをしてから平均を計算されていたと思いましたが、
グレースケール化には、以下のような変換式をが使われています。
そのため、厳密にRGBの平均をとって計算しているわけではないので、
注意が必要です。
gray_image=0.2989 * R + 0.5870 * G + 0.1140 * B ;
Asaka Masahiro
Asaka Masahiro 2019 年 9 月 17 日
詳しい回答ありがとうございます。
ほぼ私が求める通りのものです。
非常に助かりました。

サインインしてコメントする。

その他の回答 (0 件)

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!