MATLAB Image processing filtering
2 ビュー (過去 30 日間)
表示 古いコメント
One sample image is http://goo.gl/0IOkBZy .Download the file and name it as

My code is
Now here , I am getting two regions, one the small area (1) and the other as the big one (2)
0 件のコメント
採用された回答
Walter Roberson
2016 年 1 月 15 日
bwareafilt() if you have a newer MATLAB. If not then regionprops() 'Area' and select only the smaller of the two regions.
その他の回答 (2 件)
Image Analyst
2016 年 1 月 15 日
For that particular image, you can use
labeledImage = bwlabel(binaryImage);
smallBlob = ismember(labeledImage, 2) > 0;
In general somehow you have to identify the blob you want, then use ismember() to extract it. For this one, I know that you have only 2 blobs and that the small inside one will be blob #2 because of the way it does labeling. But in general (like your second image), you may have to use regionprops() to get other measurements to identify the particular blob(s) you want, and then use ismember(). See my Image Segmentation Tutorial http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862 for examples of that where I pick out different coins in the image.
You may also want to learn about bwareafilt() or bwselect().
harjeet singh
2016 年 1 月 16 日
try to use this code for these type of image, but not for every slice


clear all
close all
clc
img=imread('ok2.jpg');
img=rgb2gray(img);
img1=img>mean(img(:));
img2=imfill(img1,'holes');
se=strel('disk',2);
img2=imdilate(img2,se);
img3=img2 & ~img1;
img4=imfill(img3,'holes');
img5=img4 & ~img3;
img6=bwareaopen(img5,100);
figure(7)
imshow(img6)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!