当前位置:   article > 正文

计算机视觉(二)-matlab之理想低通滤波器,布特沃斯低通、高斯低通,理想高通、布特沃斯高通、高斯高通滤波器_matlab设计高频强调滤波器

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('滤波后的图像');

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

结果:
原图:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

布特沃斯低通滤波器

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('滤波后的图像');

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41

matlab结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

高斯低通滤波器

高斯低通滤波器代码:
H = exp((-D.^2)/(2*(D0).^2));
figure;imshow(H);title('滤波器(D0=100)');
  • 1
  • 2
  • 3

结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

理想高通滤波

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

  • 1
  • 2
  • 3
  • 4

结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

布特沃斯高通滤波器

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

  • 1
  • 2
  • 3
  • 4

结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

高斯高通滤波器

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

  • 1
  • 2
  • 3
  • 4

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('直方图均衡');

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

结果:
原图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
reference:
李卫军,肖宛昂,董肖莉,覃鸿老师《视觉信息处理及FPGA实现》课程等

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/72535
推荐阅读
相关标签
  

闽ICP备14008679号