画像の白を透明にして別の画像と重ね合わせる方法

61 views (last 30 days)
mushi77
mushi77 on 3 Mar 2022
Commented: mushi77 on 4 Mar 2022
添付しました画像でカラーのみの画像1と境界のみの画像2の画像を重ね合わせてて画像3のようなものを作成したいです。
画像2の白情報が残っているため、白を透明にしたうえで画像2を上位とした重ね合わせをしたいのですが、どうしたらできますでしょうか。
Image Processing Toolbox以外のツールボックスの使用があっても構いません。
よろしくおねがいします。
+=

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 3 Mar 2022
>画像2の白を透明にしたうえで画像2を上位とした重ね合わせをしたいのですが、どうしたらできますでしょうか。
画像2を二値化(反転)してANDを取りました。今回は窓を残し窓枠を黒(0)にするためマスクしただけで目的の画像データになりました。もし窓枠の画像と合わせるのであれば、窓のマスク画像と窓枠のマスク画像を加算する事で目的の画像データになります。詳細は類似の質問→2値化画像(バイナリイメージ)のオブジェクトの輪郭を切り取る。 - (mathworks.com)
rgb = imread('1_testRGB.png');
msk = imread('2_testG.png') > 128;
masked_rgb = rgb .* uint8(msk); % 元画像とマスクのANDを取る
imshow(masked_rgb)
  2 Comments
Hernia Baby
Hernia Baby on 3 Mar 2022
Edited: Hernia Baby on 3 Mar 2022
masked_rgb = rgb .* uint8(msk);
ここ天才的ですね
境界の部分だけ 0 なので必然的に黒になるんですね
mushi77
mushi77 on 4 Mar 2022
2値化して積とすると色部分は1の積でそのまま、境界部は0との積で0となるということですが。
こんな簡単にできるとは。。。ありがとうございました。

Sign in to comment.

More Answers (0)

Categories

Find more on Modify Image Colors in Help Center and File Exchange

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!