2値化画像(バイナリ​イメージ)のオブジェ​クトの輪郭を切り取る​。

細胞1つ1つをトリミングしたいのですが、正方形でトリミングを行うと境界面に他の細胞が映り込んできてします(画像①)。
そこで、「目的の細胞部分だけをトリミング」してから、「他の画像(背景)に張り付ける」という事を考えています。
「目的の細胞部分だけをトリミング」の方法としては以下の図のように、2値化して目的の細胞部分だけ残し(画像②)、その輪郭元画像(画像①)に反映させて切り取るといった流れです
2値化画像で目的の細胞を残すところまでは出来ているのですが、
2値化画像の白い部分の輪郭で元画像(画像①)を切り取って別紙に張り付ける箇所で難航しています。
何か良い案がありますでしょうか、よろしくお願いします。画像①、画像②、背景の画像を添付しておきます。
また、他にも細胞1つ1つを抽出する案がございましたら、ご提案頂けると幸いです。

 채택된 답변

Atsushi Ueno
Atsushi Ueno 2021년 11월 10일
편집: Atsushi Ueno 2021년 11월 10일

1 개 추천

org = imread('original_image.jpg');
bin = imread('binary_image.jpg') > 128; % 0-255なのでFalse/Trueのマスクにする
bgd = imread('background.jpg');
masked_org = org .* uint8(repmat(bin,[1 1 3])); % 元画像とマスクのANDを取る
masked_bgd = bgd .* uint8(repmat(~bin,[1 1 3])); % 背景画像と反転したマスクのANDを取る
final_image = masked_org + masked_bgd; % 最終的に得たい画像
montage({org, bgd, bin, masked_org, masked_bgd, final_image},'Size', [2 3], 'BorderSize', [50 50], 'BackgroundColor', 'white');

댓글 수: 1

HIGUCHI 樋口
HIGUCHI 樋口 2022년 3월 11일
大変参考になりました。ありがとうございます。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 グラフィックス オブジェクトの識別에 대해 자세히 알아보기

제품

릴리스

R2021a

질문:

2021년 11월 10일

댓글:

2022년 3월 11일

Community Treasure Hunt

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

Start Hunting!