硅片计数器
silicon counting
clear all
clc
close all
[inputfilename,dirname] = uigetfile(’.’);
inputfilename = [dirname, inputfilename];
I = imread(inputfilename); % 实例: ‘input.jpg’
I = rgb2gray(I);
% figure(1);
% subplot(2,2,1)
% imshow(I);
% title(‘原始图像’);
%FFT
F_I=fft2(I);
F_I=fftshift(F_I);
f_I=abs(F_I);
f_I=log(1+f_I);
% figure(1);
% subplot(2,2,2);
% imshow(f_I,[]);
% title(‘频谱’);
%倾斜校正
[RotatedImage,theta_Rotating] = RotateToVertical(abs(F_I),I);
% figure(1);
% subplot(2,2,2);
% imshow(RotatedImage,[]);
% title(‘倾斜校正’);
%灰度分布
y=10:10:1901;
SearchingLine=RotatedImage(y,:);
% [row,col]=size(I1);
% figure(1);
% n=1:col;
% for i=1:row
% subplot(4,5,i)
% plot(n,I1(i,:));
% end
% title(‘灰度分布’);
% grid on;
%ROI区域定位
I_ROI=ROI_F(SearchingLine,RotatedImage);
% figure(1);
% subplot(2,2,4);
% imshow(I_ROI);
% title(‘ROI’);
% figure(1);
% subplot(2,2,1);
% imshow(I_ROI);
% title(‘ROI’);
% lambda=16;
% theta=0;
% psi=0;
% gamma=0.5;
% bw=1;
% GaborHF = gaborfilter(lambda,theta,psi,gamma,bw);
GaborHF = gaborfilter(35,0,0,0.5,1);
I_GF=imfilter(I_ROI,GaborHF,‘symmetric’,‘conv’);%滤波,空域卷积
% figure(1);
% subplot(2,2,2);
% imshow(I_GF);
% % imshow(I_GF,[]);
% title(‘Gabor滤波’);
% I_Background1=Background(I_GF,[7,3],‘light’);
% I_Background2=Background(I_GF,[13,15],‘dark’