How manually deselect an object after segmentaion?
1 view (last 30 days)
Show older comments
I have been doing Cell segmentation using circular hough transform. I used imfindcircles to detect cells and RemoveOverLap to remove some unwanted overlaps. everything seems to work fine but i need to give the user the ability to deselect any of cells. i have been playing around and because cell detection is based on the center and radius , if i want to delete any of the cells i need both center and radius, i could manage to get the center but no luck with radius. i need to somehow either get the radius or delete segmented cell some other way. below are the codes i am using:
img1 = imread('Overlap_3.jpg');
img = rgb2gray(img1);
threshold = graythresh(img);
img = im2bw(img,threshold);
img = ~img;
img = imfill(img,'holes');
figure, imshow(img);
img = bwareaopen(img,150);
%figure, imshow(img);
[centers, radii] = imfindcircles(img,[30 50],'Sensitivity',0.95,'Edge',0.8);
%figure, imshow(img);
figure, imshow(img1);
hold on
viscircles(centers, radii,'EdgeColor','g')
[centersNew, radiiNew]=RemoveOverLap(centers,radii,40,2);
figure, imshow(img1);
hold on
viscircles(centersNew, radiiNew,'EdgeColor','g');
length(centersNew)
thank you in advanced
0 Comments
Accepted Answer
Image Analyst
on 17 Nov 2013
If you use ginput, then check which of the centers is closest to that will let you know which circle the user pointed to.
More Answers (1)
Walter Roberson
on 14 Nov 2013
Take your img and bwlabel it. When the user selects a cell using something like ginput(), round the coordinates to the closest integers, index the label image at that coordinate to find the index of the blob it is. Set all pixels with the same label clear. You can then proceed with finding the circles or whatever.
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!