需要处理的原图片
要求测出上面图片中所有同心圆的半径。(能先确定圆心最好)
增加的:结果要以毫米为单位
这是处理出上面图片的代码
%-----------------------第一部分(读取)---------------------------------
%读取图片
A1=imread('51um.jpg');
figure,imshow(A1),title('原图像');
%真彩转灰度
A2=rgb2gray(A1);
figure,imshow(A2),title('灰度图');
%-----------------------第二部分(增强)---------------------------------
%直方图均衡化
B1=adapthisteq(A2);
figure,imshow(B1),title('图像增强');
%-----------------------第三部分(降噪)---------------------------------
%均值滤波
C1= filter2(fspecial('average',7),B1)/255;%-
C2 = medfilt2(C1);
%中值滤波部分
C3=medfilt2(C2,[7,7]); %--
%低通滤波
[f1,f2] = freqspace(size(C3),'meshgrid'); %生成频率序列矩阵
Hd = ones(size(C3));
r = sqrt(f1.^2 + f2.^2);
Hd(r>0.5) = 0; %构造滤波器
Y=fft2(double(C3));
Y=fftshift(Y);
Ya=Y.*Hd; %滤波
Ya=ifftshift(Ya);
C4=ifft2(Ya);
figure,imshow(C4),title('降噪');
%最大类间方差法分割图像
level=graythresh(C4);
E1=imbinarize(C4,level);
disp(strcat('graythresh 计算灰度阈值1:',num2str(uint8(level*255))));
figure,imshow(E1),title('二值化');
%闭运算
se2=strel('disk',7);
F1=imclose(E1,se2);
%细化
F2 = bwmorph(F1, 'thin', Inf);
figure,imshow(F2),title('ZS细化');
F3=bwmorph(F2,'spur',Inf);
F4=bwmorph(F3,'bridge');
figure,imshow(F4),title('细化后的修补');
F4=bwareaopen(F4,500);
figure,imshow(F4),title('消除无效目标');