save only specefic connected components
古いコメントを表示
Hi, From a gray image , I extract all the connected components using bwconcomp, Then I work on each connected component. I want to draw in a new image with the size of the originam image some specefic connected components. I saw many works based on the area , the biggest component ... but for me I have new parameter that will filter the cinnected components, How can I draw in a new image with the original image size a specific connected component in its original place?? Thank you :)
回答 (1 件)
Image Analyst
2017 年 3 月 1 日
編集済み: Image Analyst
2017 年 3 月 1 日
You can extract any component from your labeled image into a new binary image using ismember:
binaryImage = ismember(labeledImage, index);
This will get only one blob - the one that was labeled with a number of "index".
If you want to mask the image with that blob and get a gray scale image then do this:
maskedImage = grayImage; % Initialize
maskedImage(~binaryImage) = 0; % Do the masking.
7 件のコメント
Flore Massoulié
2017 年 3 月 1 日
編集済み: Flore Massoulié
2017 年 3 月 1 日
Flore Massoulié
2017 年 3 月 1 日
Image Analyst
2017 年 3 月 1 日
index can be an array of indexes if you want to extract several components.
Flore Massoulié
2017 年 3 月 1 日
Image Analyst
2017 年 3 月 1 日
Is "F(i).Image" a scalar integer that contains the ID label of the blob you want to extract? If so, then yes, that should work.
Flore Massoulié
2017 年 3 月 2 日
Image Analyst
2017 年 3 月 2 日
Since you already have the image of the connected component, you can just use it as a mask on the original image:
If you want to mask the image with that blob and get a gray scale image then do this:
maskedImage = grayImage; % Initialize
mask = F(i).Image > 0; % Convert "the image of the connected component" into a logical mask.
maskedImage(~mask) = 0; % Do the masking.
カテゴリ
ヘルプ センター および File Exchange で Region and Image Properties についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!