計算機視覺(二)-matlab之理想低通濾波器,布特沃斯低通、高斯低通,理想高通、布特沃斯高通、高斯高通濾波器


未整理完!
在濾波器之前,先講解傅里葉變換
在這里插入圖片描述

理想低通濾波器

f = imread('Fig0441.tif');
f = im2double(f);
 
% 計算填充圖像大小
[M,N] = size(f);
M2 = 2*M;
N2 = 2*N;
 
% 傅里葉變換
F = fftshift(fft2(f,M2,N2));
figure;imshow(mat2gray(log(1+abs(F))));title('傅里葉頻譜');
 
% 設計濾波器
% 生成網格坐標
u = -N:N-1;
v = -M:M-1;
[U,V] = meshgrid(u,v);
 
% 設計濾波器
D = hypot(U,V);
D0 = 30; % 截止頻率[10 30 60 160 460]
 
H = mat2gray( D <= D0 );% 理想低通濾波器
figure;imshow(H);title('理想低通濾波器');
 
% 頻域濾波
G = F.*H;
figure;imshow(mat2gray(log(1+abs(G))));title('頻域濾波');
 
1-sum(sum(abs(G).^2))/sum(sum(abs(F).^2))
 
g0 = ifft2(fftshift(G));
g = g0(1:M,1:N);
g = real(g);
figure;imshow(g);title('濾波后的圖像');
 
 
figure;
subplot(121);imshow(f);title('原圖');
subplot(122);imshow(g);title('濾波后的圖像');

結果:
原圖:
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

布特沃斯低通濾波器

f = imread('Fig0441.tif');
f = im2double(f);
 
% 計算填充圖像大小
[M,N] = size(f);
M2 = 2*M;
N2 = 2*N;
 
% 傅里葉變換
F = fftshift(fft2(f,M2,N2));
figure;imshow(mat2gray(log(1+abs(F))));title('傅里葉頻譜');
 
% 設計濾波器
% 生成網格坐標
u = -N:N-1;
v = -M:M-1;
[U,V] = meshgrid(u,v);
 
% 設計濾波器
D = hypot(U,V);
D0 = 30; % 截止頻率[10 30 60 160 460]
 
H = mat2gray(1./(1+((D./D0).^4)));
figure;imshow(H);title('布特沃斯低通濾波器(n=2)');
 
% 頻域濾波
G = F.*H;
figure;imshow(mat2gray(log(1+abs(G))));title('頻域濾波');
 
1-sum(sum(abs(G).^2))/sum(sum(abs(F).^2))
 
g0 = ifft2(fftshift(G));
g = g0(1:M,1:N);
g = real(g);
figure;imshow(g);title('濾波后的圖像');
 
 
figure;
subplot(121);imshow(f);title('原圖');
subplot(122);imshow(g);title('濾波后的圖像');

matlab結果:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

高斯低通濾波器

高斯低通濾波器代碼:
H = exp((-D.^2)/(2*(D0).^2));
figure;imshow(H);title('濾波器(D0=100)');

結果:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

理想高通濾波器

理想高通濾波器代碼:
H = mat2gray( D >= D0 );%理想高通濾波器
figure;imshow(H);title('濾波器()');

結果:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

布特沃斯高通濾波器

布特沃斯高通濾波器代碼:
H = 1./(1+((D0./D).^4));%布特沃斯高通濾波器
figure;imshow(H);title('濾波器(n=2)');

結果:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

高斯高通濾波器

高斯高通濾波器代碼:
H = 1-exp((-D.^2)/(2*(D0).^2));%高斯高通濾波器
figure;imshow(H);title('濾波器');

matlab結果:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

混合高頻強調濾波

[file,path] = uigetfile({'*.png';'*.jpg';},'選擇圖片');
f = imread([path,file]);
f = im2double(f);
%計算填充圖像大小
[M,N] = size(f);
M2 = 2*M;
N2 = 2*N;
 
% 傅里葉變換
F = fftshift(fft2(f,M2,N2));
figure;imshow(mat2gray(log(1+abs(F))));title('傅里葉頻譜');
 
% 設計濾波器
% 生成網格坐標
u = -N:N-1;
v = -M:M-1;
[U,V] = meshgrid(u,v);
 
% 設計濾波器
D = hypot(U,V);
D0 = 40; %截至頻率[10 30 60 160 460]
H = 1-exp((-D.^2)/(2*(D0).^2));%¸高斯高通濾波
G = (F.^(-1)).*((0.5+0.75.*H).*F);%
figure;imshow(H);title('濾波器');
figure;imshow(mat2gray(log(1+abs(G))));title('頻率濾波');
 
% 傅里葉逆變換
g0 = ifft2(fftshift(G));
g = g0(1:M,1:N);
g = real(g);
i=histeq(g);
figure;imshow(g);title('濾波后的圖像');
figure;imshow(i);title('直方圖均衡');

結果:
原圖:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
reference:
李衛軍,肖宛昂,董肖莉,覃鴻老師《視覺信息處理及FPGA實現》課程等

越是憧憬,越要風雨兼程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM