文档库 最新最全的文档下载
当前位置:文档库 › gabor滤波程序

gabor滤波程序


%以下是matlab中的gabor滤波,将此程序直接粘贴到matlab的M文件中,执行即可。


clc;clear all;close all;
% I=imread('rice.png');
% % figure;imshow(I);
% % fi=fft2(I);
% % gfi=mat2gray(abs(fi));
% % figure;imshow(gfi);
% %GABOR滤波器
N=256;M=256;
freq=[2 2/(1.5)^7];
partition=[8 8];flag=0;

%for i=1:8
index1=[8 3];
[gr1,gi1]=GABOR(N,M,index1,freq,partition,flag);
% gr1_row=gr1(N/2,:);
% figure;plot(gr1_row)
% title('Gabor滤波器时域x方向一维曲线')
% xlabel('空间像素')
% gr1_column=gr1(:,M/2);
% figure;plot(gr1_column)
% title('Gabor滤波器时域y方向一维曲线')
% xlabel('空间像素')
ggr1=mat2gray(gr1);
figure;imshow(ggr1);
title('Gabor滤波器时域二维灰度图')
figure;mesh(gr1);
title('Gabor滤波器时域三维图')

fgr1=fft2(gr1);
fgr1=fftshift(abs(fgr1));
% fgr1_row=fgr1(N/2,:);fl=2/N*(0:N-1)-1;
% figure;plot(fl,fgr1_row)
% title('Gabor滤波器频域x方向一维曲线')
% xlabel('数字频率(pi为单位)')
% fgr1_column=fgr1(:,M/2);
% figure;plot(fl,fgr1_column)
% title('Gabor滤波器频域y方向一维曲线')
% xlabel('数字频率(pi为单位)')
fgr1=mat2gray(fgr1);
figure;imshow(fgr1);
title('Gabor滤波器频域二维灰度图')
figure;mesh(fgr1);
title('Gabor滤波器频域三维图')
% fgi1=fft2(gi1);
% fgi1=fftshift(abs(fgi1));
% fgi1=mat2gray(fgi1);
% figure;imshow(fgi1);
% gi1=mat2gray(gi1);
% figure;imshow(gi1);
%end
% %
im=0;
for i=1:8
for j=5:8
index2=[j i];
[gr2,gi2]=GABOR(N,M,index2,freq,partition,flag);
%g2=mat2gray(gr2);
%figure;imshow(g2);
im=im+gr2;
end
end
img=mat2gray(im);
figure;imshow(img^2);
fimg=fft2(im);
fimg=fftshift(abs(fimg));
fimg=mat2gray(fimg);
figure;imshow(fimg);
% % fgi2=fft2(gi2);
% % fgi2=fftshift(abs(fgi2));
% % fgi2=mat2gray(fgi2);
% % figure;imshow(fgi2);
% % gi2=mat2gray(gi2);
% % figure;imshow(gi2);
% %高斯滤波器
% % s=128;
% % Gass = fspecial('gaussian',s,10);
% % Gass1=Gass(s/2,:);
% % figure;plot(Gass1)
% % title('Gaussian滤波器时域一维曲线')
% % xlabel('空间像素')
% % gz=mat2gray(Gass);
% % figure;imshow(gz);
% % title('Gaussian滤波器时域二维灰度图')
% % figure;surf(gz);
% % title('Gaussian滤波器时域三维灰度图')
% % fz=fft2(Gass);
% % fz=fftshift(abs(fz));
% % fz1=fz(s/2,:);
% % fl=2/s*(0:s-1)-1;
% % figure;plot(fl,fz1)
% % title('Gaussian滤波器频域一维曲线')
% % xlabel('数字频率(pi为单位)')
% % fgz=mat2gray(fz);
% % figure;imshow(fgz);
% % title('Gaussian滤波器频域二维灰度图')
% % figure;surf(fgz);
% % title('Gaussian滤波器频域三维灰度图')
%
%
% % %滤波
im_out=imfilter(im,gr1,'symmetric','conv');
OUTg=mat2gray(im_out);
figure;imshow(OUTg);
fout=fft2(im_out);
fout=fftshift(abs(fout));
fout=mat2gray(fout);
figure;imshow(fout);

相关文档