前景画像の白い部分に​のみ背景画像を重ね合​わせたいです

13 vues (au cours des 30 derniers jours)
渓太 小野
渓太 小野 le 20 Déc 2022
Commenté : 渓太 le 22 Déc 2022
お世話になります。
前景画像の白色領域に背景画像のRGB値を当てはめることで、2枚の画像を合成したいと考えています。
添付画像のような出力結果を得るにはどうすればよいでしょうか?

Réponse acceptée

Hernia Baby
Hernia Baby le 21 Déc 2022
こちら 参考にしました。
I1 = imread('img1.jpeg');
I2 = imread('img2.jpeg');
白の抜出ですが輝度値245より上のものを白としてとらえました
BW = I1 > 245;
I1 = I1 .* uint8(~BW); % 白以外を表示
I2 = I2 .* uint8(BW); % 白の部分を表示
imshow(I1+I2)
  1 commentaire
渓太
渓太 le 22 Déc 2022
風景画像を使った場合でも正常に処理されました!
回答して頂きありがとうございます!

Connectez-vous pour commenter.

Plus de réponses (1)

Kojiro Saito
Kojiro Saito le 21 Déc 2022
もっとスマートな方法があるかもしれませんが、下記の方法で実現できます。
% 前景画像の読み込み
img1= imread('image1.jpeg');
% グレースケール化
img1Gray = rgb2gray(img1);
% 白黒2値化
img1Bw = imbinarize(img1Gray);
% 背景画像の読み込み
img2 = imread('image2.jpeg');
% 画像の重ね描き
overlayImg = imoverlay(img2, ~img1Bw, [63 71 204]/255);
imshow(overlayImg)
  2 commentaires
Hernia Baby
Hernia Baby le 21 Déc 2022
imoverlayは円の色を青に指定して塗りつぶしている感じですかね?
自分もこの方法考えていたのですが、円が模様を持っていた場合は対応できたりしますかね?
渓太
渓太 le 22 Déc 2022
説明不足で申し訳ありません。円が単色なのはあくまで一例で、実際には普通の画像が入る想定でした。
勉強になりました。回答して頂きありがとうございます!

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!