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

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

Réponse acceptée

Atsushi Ueno
Atsushi Ueno le 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 commentaires
Hernia Baby
Hernia Baby le 3 Mar 2022
Modifié(e) : Hernia Baby le 3 Mar 2022
masked_rgb = rgb .* uint8(msk);
ここ天才的ですね
境界の部分だけ 0 なので必然的に黒になるんですね
mushi77
mushi77 le 4 Mar 2022
2値化して積とすると色部分は1の積でそのまま、境界部は0との積で0となるということですが。
こんな簡単にできるとは。。。ありがとうございました。

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!