I new to matlab and image analysis. I want to measure average width (also min and max width) and and area of this probe. can anyone help me how to do this? thanks.
3 views (last 30 days)
Show older comments
I want to measure this Image
0 Comments
Answers (1)
yanqi liu
on 15 Oct 2021
sir,please check the follow code to get some information
clc; clear all; close all;
img = imread('https://ww2.mathworks.cn/matlabcentral/answers/uploaded_files/767536/Diameter21.jpg');
im = rgb2gray(img);
bw = imbinarize(im,'adaptive','ForegroundPolarity','dark','Sensitivity',0.6);
bw = imclose(bw, strel('line', 19, 90));
bw = bwareaopen(bw, 2000);
[L,num]=bwlabel(bw);
stats = regionprops(L);
ar = cat(1, stats.Area);
[~,ind] = sort(ar);
bw = L==ind(1)|L==ind(2);
im1 = im; im2 = im; im3 = im;
im1(bw) = 255; im2(bw) = 0; im3(bw) = 0;
imt = cat(3,im1,im2,im3);
figure; imshow(bw);
figure; imshow(imt);
% width
wid = [];
for i = 1 : size(bw,1)
ri = bw(i,:);
indi = find(ri);
wid(i) = indi(end)-indi(1);
end
% max、min、average
max_width = max(wid)
min_width = min(wid)
average_width = mean(wid)
See Also
Categories
Find more on Read, Write, and Modify Image 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!