主要類型和公式
1.低通濾波
主要分為理想低通濾波,巴特沃斯低通濾波,高斯低通濾波
理想低通濾波:
其中:對于大小為M*N的圖像,頻率點(u,v)與頻域中心的距離為D(u,v),其表達式為:
下列的D(u,v)都相同
巴特沃斯低通濾波:
高斯低通濾波:
2.高通濾波
理想高通濾波:
巴特沃斯高通濾波:
高斯高通濾波:
主要效果圖
帶傅里葉譜:
不帶傅里葉譜:
各類型的函數(shù)代碼
理想低通濾波:
function out = imidealflpf(I, freq)
% imidealflpf函數(shù) 構(gòu)造理想的頻域低通濾波器
% 參數(shù):I 輸入的灰度圖像
% 參數(shù):freq 低通濾波器的截止頻率
% 返回值:out 指定的理想低通濾波器
[M,N] = size(I);
out = ones(M,N);
for i=1:M
for j=1:N
if (sqrt(((i-M/2)^2+(j-N/2)^2))>freq)
out(i,j)=0;
end
end
end
理想高通濾波:
function out = imidealflpf1(I, freq)
% imidealflpf函數(shù) 構(gòu)造理想的頻域低通濾波器
% 參數(shù):I 輸入的灰度圖像
% 參數(shù):freq 低通濾波器的截止頻率
% 返回值:out 指定的理想低通濾波器
[M,N] = size(I);
out = ones(M,N);
for i=1:M
for j=1:N
if (sqrt(((i-M/2)^2+(j-N/2)^2))<freq)
out(i,j)=0;
end
end
end
巴特沃爾低通濾波:
function out = imgaussflpf4(I,sigma,x)
% imgaussflpf函數(shù) 構(gòu)造頻域高斯低通濾波器
% 參數(shù):I 輸入的灰度圖像
% 參數(shù):sigma 限制圖像D0參數(shù)
% 參數(shù):x 巴特沃爾的階數(shù)
[M,N] = size(I);
out = ones(M,N);
for i=1:M
for j=1:N
distance=sqrt((i-M/2)^2+(j-N/2)^2);
out(i,j) = 1/(1+(distance/sigma).^(2.*x));
end
end
巴特沃爾高通濾波:
function out = imgaussflpf5(I, sigma,n)
% imgaussflpf函數(shù) 構(gòu)造頻域高斯低通濾波器
% 參數(shù):I 輸入的灰度圖像
% 參數(shù):sigma 高斯函數(shù)的Sigma參數(shù)
[M,N] = size(I);
out = ones(M,N);
for i=1:M
for j=1:N
out(i,j) = 1/(1+((sigma/((i-M/2).^2+(j-N/2).^2))).^(2.*n));
end
end
高斯低通濾波:
function out = imgaussflpf2(I, sigma)
% imgaussflpf函數(shù) 構(gòu)造頻域高斯低通濾波器
% 參數(shù):I 輸入的灰度圖像
% 參數(shù):sigma 高斯函數(shù)的Sigma參數(shù)
[M,N] = size(I);
out = ones(M,N);
for i=1:M
for j=1:N
out(i,j) = exp(-((i-M/2)^2+(j-N/2)^2)/2/sigma^2);
end
end
高斯高通濾波:文章來源:http://www.zghlxwxcb.cn/news/detail-714231.html
function out = imgaussflpf3(I, sigma)
% imgaussflpf函數(shù) 構(gòu)造頻域高斯低通濾波器
% 參數(shù):I 輸入的灰度圖像
% 參數(shù):sigma 高斯函數(shù)的Sigma參數(shù)
[M,N] = size(I);
out = ones(M,N);
for i=1:M
for j=1:N
out(i,j) = 1-exp(-((i-M/2)^2+(j-N/2)^2)/2/sigma^2);
end
end
對圖像進行對應并輸出的函數(shù):文章來源地址http://www.zghlxwxcb.cn/news/detail-714231.html
function out = imfreqfilt(I, ff)
% imfreqfilt函數(shù) 對灰度圖像進行頻域濾波
% 參數(shù):I 輸入的空域圖像
% 參數(shù):ff 應用的與原圖像等大的頻域濾波
% 返回值:out 反變換回空域后的圖像
if (ndims(I)==3) && (size(I,3)==3) % RGB圖像
I = rgb2gray(I);
I = double(I);
end
if (size(I) ~= size(ff))
msg1 = sprintf('%s: 濾鏡與原圖像不等大,檢查輸入', mfilename);
msg2 = sprintf('%s: 濾波操作已經(jīng)取消', mfilename);
eid = sprintf('Images:%s:ImageSizeNotEqual',mfilename);
error(eid,'%s %s',msg1,msg2);
end
% 快速傅立葉變換
f = fft2(double(I));
% 移動原點
s = fftshift(f);
% 應用濾鏡及反變換
out = s .* ff; %對應元素相乘實現(xiàn)頻域濾波
out = ifftshift(out);
out = ifft2(out);
% 求模值
out = abs(out);
% 歸一化以便顯示
out = out/max(out(:));
最終比較代碼
%低通|高通頻率域濾波
f=imread('8.jpeg');%原圖
f=im2double(f);
f1=rgb2gray(f);
%低通理想濾波
dt_L=imidealflpf(f1,40);%低通 理想40濾波器
dtL=imfreqfilt(f1,dt_L);%帶入濾波器輸出
dtL1=fft2(dtL);%傅里葉變換
sdtL=fftshift(log(1+abs(dtL1)));% 繪制傅里葉變換對數(shù)譜并將零點移到中心
%高通理想濾波
gt_L=imidealflpf1(f1,60);%高通 理想60濾波器
gtL=imfreqfilt(f1,gt_L);%帶入濾波器輸出
gtL1=fft2(gtL);%傅里葉變換
sgtL=fftshift(log(1+abs(gtL1)));% 繪制傅里葉變換對數(shù)譜并將零點移到中心
%低通巴特沃斯
dt_B=imgaussflpf4(f1,40,2);%巴特沃斯
dtB=imfreqfilt(f1,dt_B);%帶入濾波器輸出
dtB1=fft2(dtB);%傅里葉變換
sdtB=fftshift(log(1+abs(dtB1)));% 繪制傅里葉變換對數(shù)譜并將零點移到中心
%高通巴特沃斯
gt_B=imgaussflpf5(f1,60,2);%巴特沃斯
gtB=imfreqfilt(f1,gt_B);%帶入濾波器輸出
gtB1=fft2(gtB);%傅里葉變換
sgtB=fftshift(log(1+abs(gtB1)));% 繪制傅里葉變換對數(shù)譜并將零點移到中心
%低通高斯濾波
dt_G=imgaussflpf2(f1,40);
dtG=imfreqfilt(f1,dt_G);%帶入濾波器輸出
dtG1=fft2(dtG);%傅里葉變換
sdtG=fftshift(log(1+abs(dtG1)));% 繪制傅里葉變換對數(shù)譜并將零點移到中心
%高通高斯濾波
gt_G=imgaussflpf3(f1,60);
gtG=imfreqfilt(f1,gt_G);%帶入濾波器輸出
gtG1=fft2(gtG);%傅里葉變換
sgtG=fftshift(log(1+abs(gtG1)));% 繪制傅里葉變換對數(shù)譜并將零點移到中心
%輸出不帶傅里葉譜
% subplot(3,3,1);imshow(f1);title('原圖');
% subplot(3,3,4);imshow(dtL);title('低通理想濾波處理后 D0=40');
% subplot(3,3,5);imshow(dtB);title('低通巴特沃斯濾波處理后 D0=40 二階');
% subplot(3,3,6);imshow(dtG);title('低通高斯濾波處理后 D0=40 ');
% subplot(3,3,7);imshow(gtL);title('高通理想濾波處理后 D0=60');
% subplot(3,3,8);imshow(gtB);title('高通巴特沃斯濾波處理后 D0=60 二階');
% subplot(3,3,9);imshow(gtG);title('高通高斯濾波處理后 D0=60');
%輸出帶傅里葉譜
subplot(5,3,1);imshow(f1);title('原圖');
subplot(5,3,4);imshow(dtL);title('低通理想濾波處理后 D0=40');
subplot(5,3,5);imshow(dtB);title('低通巴特沃斯濾波處理后 D0=40 二階');
subplot(5,3,6);imshow(dtG);title('低通高斯濾波處理后 D0=40 ');
subplot(5,3,7);imshow(sdtL,[]);title('低通理想濾波處理后 D0=40 傅里葉譜');
subplot(5,3,8);imshow(sdtB,[]);title('低通巴特沃斯濾波處理后 D0=40 二階 傅里葉譜');
subplot(5,3,9);imshow(sdtG,[]);title('低通高斯濾波處理后 D0=40 傅里葉譜');
subplot(5,3,10);imshow(gtL);title('高通理想濾波處理后 D0=60');
subplot(5,3,11);imshow(gtB);title('高通巴特沃斯濾波處理后 D0=60 二階');
subplot(5,3,12);imshow(gtG);title('高通高斯濾波處理后 D0=60');
subplot(5,3,13);imshow(sgtL,[]);title('高通理想濾波處理后 D0=60 傅里葉譜');
subplot(5,3,14);imshow(sgtB,[]);title('高通巴特沃斯濾波處理后 D0=60 二階 傅里葉譜');
subplot(5,3,15);imshow(sgtG,[]);title('高通高斯濾波處理后 D0=60 傅里葉譜');
到了這里,關(guān)于matalb 圖像處理 低通濾波和高通濾波 (理想,巴特沃斯,高斯 含代碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!