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

16 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.

Catégories

En savoir plus sur インポート、エクスポートおよび変換 dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!