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

14 次查看(过去 30 天)
渓太 小野
渓太 小野 2022-12-20
评论: 渓太 2022-12-22
お世話になります。
前景画像の白色領域に背景画像のRGB値を当てはめることで、2枚の画像を合成したいと考えています。
添付画像のような出力結果を得るにはどうすればよいでしょうか?

采纳的回答

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

请先登录,再进行评论。

更多回答(1 个)

Kojiro Saito
Kojiro Saito 2022-12-21
もっとスマートな方法があるかもしれませんが、下記の方法で実現できます。
% 前景画像の読み込み
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 个评论
Hernia Baby
Hernia Baby 2022-12-21
imoverlayは円の色を青に指定して塗りつぶしている感じですかね?
自分もこの方法考えていたのですが、円が模様を持っていた場合は対応できたりしますかね?
渓太
渓太 2022-12-22
説明不足で申し訳ありません。円が単色なのはあくまで一例で、実際には普通の画像が入る想定でした。
勉強になりました。回答して頂きありがとうございます!

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!