MATLAB Answers

0

複数の画像をかさねる

Asked by RYO ATSUMI on 22 Jul 2019
Latest activity Answered by Shunichi Kusano on 22 Jul 2019
平均化を目的に、複数のJPG画像を重ねて表示したいです。
どうしたらできますか?

  0 Comments

Sign in to comment.

1 Answer

Answer by Shunichi Kusano on 22 Jul 2019

足して画像の数で割れば平均値になるのですが、データの型に注意が必要です。通常の画像ですとuint8型になっているとおもうのですが、それをそのまま足し合わせると255までしか値がないので、誤った計算結果となります。
もう一点注意としては、画像サイズです。平均をとりたい画像のサイズは揃っていますか?揃っていれば問題ないですが、バラバラですと平均的なサイズに拡大縮小(imresize関数が使えます)するか、切り抜き(imcropが使えます)かパディング(padarrayが使えます)するかになります。
一例として手順は次の通りです。
1.画像サイズを揃える
2.画像をsingleもしくはdouble型に変換
3.平均値をとる
4.uint8型に戻す
% 一例
I1 = imread('peppers.png');
I2 = imread('coloredChips.png');
I1 = imresize(I1, [390 515]); % だいたい中間くらいのサイズにリサイズ
I2 = imresize(I2, [390 515]); % だいたい中間くらいのサイズにリサイズ
Imean = uint8((single(I1)+single(I2))/2);
imshow(Imean)

  0 Comments

Sign in to comment.