複数の画像をかさねる

29 views (last 30 days)
RYO ATSUMI
RYO ATSUMI on 22 Jul 2019
Answered: Shunichi Kusano on 22 Jul 2019
平均化を目的に、複数のJPG画像を重ねて表示したいです。
どうしたらできますか?

Answers (1)

Shunichi Kusano
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)

Products

Community Treasure Hunt

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

Start Hunting!