
рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ, рдореИрдВ
рдпрд╣рд╛рдВ рд╡рд╛рд╕рдЧ рдХреЗ рдХреЙрдорд░реЗрдб рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХреА рдЧрдИ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг
рджреВрдВрдЧрд╛ ред рдЬреИрд╕рд╛ рдХрд┐ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдЫрд╡рд┐ рдореЗрдВ рдЧреЛрд▓рд╛рдИ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ MATLAB рдЫрд╡рд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЯреВрд▓рдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ рдерд╛ред MATLAB рдмрд╣реБрдд рд╕рд╛рд░реЗ рджреГрд╢реНрдп рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдмрд╣реБрдд рдордЬрдмреВрдд рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рдкреНрд░рд╕рдиреНрди рдХрд░рддрд╛ рд╣реИ; рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрдо-рднрд╛рд╖рд╛ рдХреА рд╕реБрд╡рд┐рдзрд╛, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдмрд╣реБрдд рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЗрд╕рдХреЗ рдиреБрдХрд╕рд╛рди рднреА рд╣реИрдВ - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ - рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдо-рднрд╛рд╖рд╛ рд╕реЗ рд╕реА-рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдЬреЛ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдореИрдВрдиреЗ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд╕рдорд╕реНрдпрд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдФрд░
рд╡рд╛рд╕рдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдорд┐рдХ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд╕рдорд╕реНрдпрд╛ рдХреА рд╕рд╛рджрдЧреА рдХреЗ рдХрд╛рд░рдг, рд╕рдорд╛рдзрд╛рди рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИрдВред рдЗрдореЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЯреВрд▓рдмреЙрдХреНрд╕ рдкрд░ MATLAB рдХреА рдорджрдж рдореЗрдВ, рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧреЛрд▓ рдЖрдХрд╛рд░ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдбреЗрдореЛ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдерд╛, рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдмрд╣реБрдд рдорджрдж рдХреАред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдо-рднрд╛рд╖рд╛ рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдХреЛрдб рд╣реИ:
img = imread('kkk.jpg');
grayimg = rgb2gray(img);
grayimg = imadjust(grayimg);
bw = edge(grayimg,'canny', 0.15, 2);
bw = imfill(bw,'holes');
se = strel('disk',1);
bw = imopen(bw,se);
[B,L] = bwboundaries(bw);
stats = regionprops(L,'Centroid','EquivDiameter');
figure, imshow(img)
hold on
for k = 1:length(B)
boundary = B{k};
radius = stats(k).EquivDiameter/2;
xc = stats(k).Centroid(1);
yc = stats(k).Centroid(2);
theta = 0:0.01:2*pi;
Xfit = radius*cos(theta) + xc;
Yfit = radius*sin(theta) + yc;
plot(Xfit, Yfit, 'g');
text(boundary(1,2)-15,boundary(1,1)+15, num2str(radius,3),'Color','y',...
'FontSize',8);
end
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ 30 рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдЖрдзреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдПрдХ рд╕реБрдВрджрд░ рдирд┐рд╖реНрдХрд░реНрд╖ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВред рдХреЛрдб рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВред
img = imread ('kkk.jpg'); - рд╣рдорд╛рд░реА рдЫрд╡рд┐ рдЦреЛрд▓реЗрдВред рдореИрдВрдиреЗ
рд╡рд╛рд╕рдЬреА рд▓реЗрдЦ рд╕реЗ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рдЧреНрд░реЗрдЗрдордЧ = rgb2gray (img); - рдЫрд╡рд┐ рдХреЛ рдЧреНрд░реЗ рдХреЗ рд░рдВрдЧреЛрдВ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВред
рдЧреНрд░реЗрдЗрдордЧ = рдЗрдорд╛рдбреЛрд▓ (рдЧреНрд░реЗрдорд┐рдЧ); - рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред
bw = edge (рдЧреНрд░реЗрдорд┐рдЧ, 'рдХреИрдиреА', 0.15, 2); - рдХреИрдиреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдорд╛рдУрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
рдПрдЬ рдлрд╝рдВрдХреНрд╢рди рд╕реЛрдмреЗрд▓, рд░реЙрдмрд░реНрдЯреНрд╕, рдкреНрд░реБрдЗрдЯ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ,
рд╡рд╛рд╕рдЬреА рдХреА рддрд░рд╣, рдХреИрдиреА рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЧрдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИред рдЫрд╡рд┐ рдореЗрдВ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рднреЗрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЕрдиреБрднрд╡рдЬрдиреНрдп рд░реВрдк рд╕реЗ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
bw = imfill (рдмреАрдбрдмреНрд▓реНрдпреВ, 'рд╣реЛрд▓'); - рдЫрд╡рд┐ рдореЗрдВ рдмрдВрдж рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рднрд░реЗрдВред
рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдкрддрд▓реА рд░реЗрдЦрд╛рдУрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
se = strel ('рдбрд┐рд╕реНрдХ', 1); - рд╣рдо рдПрдХ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рддрддреНрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ, рдПрдХ 3 рдмрд╛рдп 3 рдХреНрд░реЙрд╕ред
bw = imopen (bw, se); - рд░реВрдкрд╛рддреНрдордХ рдЦреЛрдЬ, рдкрддрд▓реА рд░реЗрдЦрд╛рдПрдВ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред
[рдмреА, рдПрд▓] = рдмреАрдмрд╛рдЙрдВрдбреНрд░реАрдЬрд╝ (рдмреАрдбрдмреНрд▓реНрдпреВ); - рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рджреЛ рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
B , P x 1 рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рд╕реЗрд▓ рдРрд░реЗ рд╣реИ, рдЬрд╣рд╛рдБ P рдЗрдореЗрдЬ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рд╕рд░рдгреА B рдХреЗ рддрддреНрд╡ Q x 2 рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИрдВ, рдЬрд╣рд╛рдВ Q рд╕рдВрдмрдВрдзрд┐рдд рдкрд┐рдВрдб рдХреА рд╕реАрдорд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдореИрдЯреНрд░рд┐рдХреНрд╕ Q рдХреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЗрди рд╕реАрдорд╛ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реИрдВред
рдПрд▓ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ рдЫрд╡рд┐ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЧреИрд░-рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдмрдВрдж рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред рдореИрдЯреНрд░рд┐рдХреНрд╕ L рдкрд░ рд╕рдВрдЦреНрдпрд╛ k рдХреЗ рд╕рд╛рде рдХреНрд╖реЗрддреНрд░ рдХреЛ рдорд╛рди k рдХреЗ рд╕рд╛рде рддрддреНрд╡реЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреГрд╖реНрдарднреВрдорд┐ 0 рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред
рдЖрдБрдХрдбрд╝реЗ = рд░реАрдЬрдирдкреНрд░реЙрдкреНрд╕ (рдПрд▓, 'рд╕реЗрдВрдЯреНрд░реЛрдЗрдб', 'рдЗрдХреНрд╡рд┐рдбреАрдореАрдЯрд░'); - рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЙрди
рдЖрдВрдХрдбрд╝реЛрдВ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ
рддрддреНрд╡ рдХреНрд░рдорд╢рдГ рд╕реЗрдВрдЯреНрд░реЛрдЗрдб рдФрд░
рдЗрдХреНрд╡рд┐рдбреАрдореАрдЯрд░ рдХреЛ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╡реНрдпрд╛рд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЧреБрдгрд╛рдВрдХреЛрдВ рддрдХ
рд╡рд╛рд╕рдЧ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рд╕рдордп рдХрд╛ рд▓рдЧрднрдЧ рдПрдХ рдШрдВрдЯреЗ рдХрд╛ рд╕рдордп рдерд╛ред
рд╡рд╛рд╕рдЧ , рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд▓реЗрдЦ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдкрд░рд┐рдорд╛рдг рдХрд╛ рдХреНрд░рдо рдмрд┐рддрд╛рдпрд╛ред рдореБрдЭреЗ MATLAB рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рдЕрдиреБрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд▓реЗ рд╣реА рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдПрдо-рднрд╛рд╖рд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЖрдк рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдХрд╛рд░реНрдп рджрд┐рд╡рд╕ рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, MATLAB рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд▓рд╛рдЧреВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдПрдХ рдЙрдЪреНрдЪ рдЧрддрд┐ рд╣реИред рдореИрдВ
рд╡рд╛рд╕рдЧ рдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛
рд╣реВрдВ , рд╕рд╛рде рд╣реА рдЕрдиреНрдп рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдХреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ MATLAB рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП!
рдпреБрдкреАрдбреАред Imerode + imdilate рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЛ imopen рдХреЗ рд╕рд╛рде рдмрджрд▓рд╛ред рдзрдиреНрдпрд╡рд╛рдж
ScayTrase ред