📄 pic.m
字号:
function [r,rx,ry]=pic
%r为圆的半径,【rx,ry】为圆心坐标
f=imread('2ms.bmp');
[M,N]=size(f);
F=fft2(f);
a=20*log(1+abs(fftshift(F)));
figure,imshow(a,[])
sig=10;
H=lpfilter('gaussian',M,N,sig);%生成高斯低通滤波器
G=H.*F;
g=real(ifft2(G));
imshow(g,[])
title('the image after gaussian lp')
h=edge(g);
title('the edge of the image')
figure,imshow(h,[])
h1=im2uint8(h);
hadd=f+h1;
figure,imshow(hadd)
ma=zeros(sum(h(:)),2);%ma用来存放边缘轮廓的点坐标
k=1;
for x=1:480
for y=1:600
if h(x,y)>0
ma(k,:)=[x,y];
k=k+1;
end
end
end
labmax=max(ma);%横纵坐标的最大值
labmin=min(ma);%横纵坐标的最小值
rx=(labmax(1,1)+labmin(1,1))/2;%圆心的横坐标
ry=(labmax(1,2)+labmin(1,2))/2;%圆心的纵坐标
r=zeros(1,length(ma(:,1)));
for m=1:length(ma(:,1))
r(1,m)=sqrt((ma(m,1)-rx)^2+(ma(m,2)-ry)^2);
end
r=sum(r)/length(r);%半径的平均值
p=polyfit(ma(:,1),ma(:,2),2)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -