|
以下内容摘自好友lyqmath新浪博客,在此借花献佛。
前言 巴特沃斯滤波器是电子滤波器的一种。巴特沃斯滤波器的特点是通频带的频率响应曲线最平滑。这种滤波器最先由英国工程师斯替芬·巴特沃斯(Stephen Butterworth)在1930年发表在英国《无线电工程》期刊的一篇论文中提出的。巴特沃斯滤波器的特性巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零。在振幅的对数对角频率的波得图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大。利用巴特沃斯(Butterworth)低通滤波器对受噪声干扰的图像进行平滑处理。
实例
- <font size="4">% By lyqmath
- % DLUT School of Mathematical Sciences 2008
- % BLOG:http://blog.sina.com.cn/lyqmath
- clc; clear all; close all;
- I=imread('rice.png');
- figure;
- subplot(2, 2, 1); imshow(I); title('原图像');
- J1 = imnoise(I, 'salt & pepper'); % 叠加椒盐噪声
- subplot(2, 2, 2); imshow(J1); title('加噪声图像');
- g = fft2(double(J1)); % 傅立叶变换
- g = fftshift(g); % 转换数据矩阵
- [M, N]=size(g);
- nn = 2; % 二阶巴特沃斯(Butterworth)低通滤波器
- d0 = 20;
- m = fix(M/2);
- n = fix(N/2);
- for i = 1:M
- for j = 1:N
- d = sqrt((i-m)^2+(j-n)^2);
- h = 1/(1+0.414*(d/d0)^(2*nn)); % 计算低通滤波器传递函数
- result(i,j) = h*g(i,j);
- T(i, j) = h;
- end
- end
- result = ifftshift(result);
- J2 = ifft2(result);
- J3 = uint8(real(J2));
- subplot(2, 2, 3); mesh(T); title('滤波器示意图')
- box on;
- % 显示滤波处理后的图像
- subplot(2, 2, 4); imshow(J3); title('滤波结果')</font>
复制代码 结果
总结 将图像变换到频域,设计相应的滤波器,达到高通/低通滤波等操作。同时也可以结合滤波器本身的特点来进行特定的操作,比如过滤掉特殊的条形纹等。
|
|