2値化画像(バイナリイメージ)のオブジェクトの輪郭を切り取る。
조회 수: 23 (최근 30일)
이전 댓글 표시
細胞1つ1つをトリミングしたいのですが、正方形でトリミングを行うと境界面に他の細胞が映り込んできてします(画像①)。
そこで、「目的の細胞部分だけをトリミング」してから、「他の画像(背景)に張り付ける」という事を考えています。
「目的の細胞部分だけをトリミング」の方法としては以下の図のように、2値化して目的の細胞部分だけ残し(画像②)、その輪郭を元画像(画像①)に反映させて切り取るといった流れです。
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/796049/image.png)
2値化画像で目的の細胞を残すところまでは出来ているのですが、
2値化画像の白い部分の輪郭で元画像(画像①)を切り取って別紙に張り付ける箇所で難航しています。
何か良い案がありますでしょうか、よろしくお願いします。画像①、画像②、背景の画像を添付しておきます。
また、他にも細胞1つ1つを抽出する案がございましたら、ご提案頂けると幸いです。
댓글 수: 0
채택된 답변
Atsushi Ueno
2021년 11월 10일
편집: Atsushi Ueno
2021년 11월 10일
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');
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 イメージを使用した深層学習에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!