Finding solid circles using imfind circles

조회 수: 3 (최근 30일)
divya r
divya r 2014년 5월 5일
댓글: Image Analyst 2014년 5월 6일
Is there any way to make sure the circles detected by the imfindcircles function is a solid circle and has no black pixels inside of it?

채택된 답변

Image Analyst
Image Analyst 2014년 5월 5일
Make a mask from the circle, then
hasBlackInside = min(grayImage(mask)) == 0;
hasBlackInside will be true if there is at least one black pixel inside the mask.
  댓글 수: 2
divya r
divya r 2014년 5월 6일
I have 2 doubts about this. 1. According to my understanding, by using min on the masked image, it will find is a black pixel is present in every column of the image matrix and not only inside the mask.
2. If I have multiple circles in an image, and want to remove only those which have some black pixels in them, how can I do it?
Image Analyst
Image Analyst 2014년 5월 6일
1. Not true.
2. You can take the mask with all the circles identified, then label it and run it through regionprops() asking for PixelList and PixelIdxList, which is a list of all pixel values in each blob. Have a loop over all regions. Check the min of PixelList for each blob. If the min is zero (or less than some value), then use PixelIdxList to set all those pixels in the binary image to zero (false). Then relabel and call regionprops again to get measurements on just the remaining blobs. Untested code:
[labeledImage, numberOfRegions] = bwlabel(mask);
measurements = regionprops(labeledImage, 'PixelIdxList', 'PixelList');
for k = 1 : numberOfRegions
thisBlobsPixels = grayImage(measurements(k).PixelIdxList);
minGL = min(thisBlobsPixels);
if minGL == 0
binaryImage(thisBlobsPixels) = false; % Erase this blob.
end
end
% binaryImage will not have no circles that had a zero in the gray image.
% Remeasure remaining blobs.
[labeledImage, numberOfRegions] = bwlabel(mask);
% Measure something if you need to.
measurements = regionprops(labeledImage, 'all');

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

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by