How to find the internal and external radius of a ring using matlab image processing toolbox
13 views (last 30 days)
Show older comments
Accepted Answer
Akira Agata
on 13 Nov 2017
By measuring the 'equivalent diameter' for each region, you can obtain the inner and outer radius. Here is an example.
% Read your image and binarize it
I = imread('Oil_Seal_Top_370003A__34285.1413827494.1280.1280.jpg');
Igray = rgb2gray(I);
BW = imbinarize(Igray);
% Measure the outer radius
BWout = ~BW;
BWout = imfill(BWout,'holes');
statOuter = regionprops(BWout,{'EquivDiameter','Centroid'});
outerRadius = statOuter.EquivDiameter/2;
% Measure the inner radius
BWin = imclearborder(BW);
BWin = imopen(BWin, strel('disk',5)); % Remove noise
statInner = regionprops(BWin,{'EquivDiameter','Centroid'})
innerRadius = statInner.EquivDiameter/2;
% Show the result
figure
imshow(I)
hold on
viscircles(statOuter.Centroid, outerRadius,'Color','r')
viscircles(statInner.Centroid, innerRadius,'Color','r')
The result is:
>> innerRadius
innerRadius =
278.8980
>> outerRadius
outerRadius =
374.5866

More Answers (0)
See Also
Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!