频域滤波之巴特沃斯高通滤波

首先附上MATLAB代码:

% 读入RGB图像并将其转换成灰度图像
I=imread(‘pic12.jpg‘);
I=rgb2gray(I);
subplot(1,2,1);
imshow(I)
title(‘原始图像‘)
% 数据类型转换,MATLAB不支持无符号数学的计算
f=double(I);
 % 傅里叶变换
k=fft2(f);
g=fftshift(k);
[M,N]=size(g);
% 二阶巴特沃思高通滤波器,截止频率为25
nn=2;
d0=25;
m=fix(M/2);
n=fix(N/2);

% 计算传递函数
for i=1:M
    for j=1:N
        d=sqrt((i-m)^2+(j-n)^2);
        if(d==0)
            h=0;
        else
            h=1/(1+0.414*(d0/d)^(2*nn));
        end
        result(i,j)=h*g(i,j);
    end
end

result=ifftshift(result);
J2=ifft2(result);
J3=uint8(real(J2));
subplot(1,2,2);
imshow(J3);
title(‘滤波之后的结果‘)

另外一种指数高通滤波器相关程序如下:

% 读入图像,并将其转换成灰度图像
I=imread(‘pic13.jpg‘);
I=rgb2gray(I);
subplot(1,2,1);
imshow(I),title(‘原始图像‘);
% 数据类型转换,MATLAB不支持无符号整型的数学计算
f=double(I);
% 进行傅里叶变换
k=fft2(f);
g=fftshift(k);
[N1,N2]=size(g);
% 构造一阶截止频率为5的指数高通滤波器
n=1;
d0=5;
u0=round(N1/2);
v0=round(N2/2);
for i=1:N1
    for j=1:N2
        d=sqrt((i-u0)^2+(j-v0)^2);
        h=exp(-(d0/d)^n);
        y(i,j)=h*g(i,j);
    end
end
    % 进行傅里叶逆变换
y=ifftshift(y);
E1=ifft2(y);
% 显示处理结果
E2=uint8(real(E1));
subplot(1,2,2);
imshow(E2),title(‘滤波后的结果‘);
时间: 2024-11-08 20:07:52

频域滤波之巴特沃斯高通滤波的相关文章

图像处理复习2——图像傅立叶变换和频域滤波

图像处理复习 CH4 基本图像变换 4.1 DFT (1)一维DFT 一维DFT: F(u)=1N∑N?1x=0f(x)e?j2πuxN,x=0,1,-,N?1 其逆变换: f(x)=∑N?1u=0F(u)ej2πuxN,u=0,1,-,N?1 (2)二维DFT 二维DFT: F(u,v)=1N∑N?1x=0∑N?1y=0f(x,y)e?j2πux+vyN,u,v=0,1,-,N?1 其逆变换: f(x,y)=1N∑N?1u=0∑N?1v=0F(u,v)ej2πux+vyN,x,y=0,1,-,

6.3.2巴特沃斯(butterworth)低通滤波器

/**************程序说明**************** 在本程序中,共有六个自定义函数,分别是: 1. myMagnitude(Mat & complexImg,Mat & magnitudeImage),在该函数中封装了Opencv中的 magnitude函数,实现对于复数图像的幅值计算.该函数共有两个参数: complexImg--输入的复数阵列,或复数图像 magnitudeImage--输出的幅值阵列,或幅值图像 2. dftshift(Mat& ds),该

傅里叶变换和频域滤波

傅里叶变换 #include "opencv2/opencv.hpp" using namespace cv; #define PI2 2*3.141592654 int main() { Mat image = imread("lena.png"); resize(image, image, Size(100,100)); cvtColor(image,image,CV_RGB2GRAY); imshow("src",image); image

几种滤波器的比较(巴特沃斯、切比雪夫、贝塞尔滤波器)

1数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量.因此,它本身即可以是用数字硬件装配成的一台完成给定运算的专用数字计算机,也可以是将所需运算编成程序,让通用计算机来执行.数字滤波器具有稳定性高.精度高.灵活性大等优点.随着数字技术的发展,用数字技术实现滤波器的功能越来越受到人们的注意和广泛的应用. 2巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零. 在振幅的对数对角

傅里叶变换,频域滤波

#include "opencv2/opencv.hpp" using namespace cv; #define PI2 2*3.141592654 int main() { Mat image = imread("lena.png"); resize(image, image, Size(100,100)); cvtColor(image,image,CV_RGB2GRAY); imshow("src",image); image.conve

Python下opencv使用笔记(十)(图像频域滤波与傅里叶变换)

前面曾经介绍过空间域滤波,空间域滤波就是用各种模板直接与图像进行卷积运算,实现对图像的处理,这种方法直接对图像空间操作,操作简单,所以也是空间域滤波. 频域滤波说到底最终可能是和空间域滤波实现相同的功能,比如实现图像的轮廓提取,在空间域滤波中我们使用一个拉普拉斯模板就可以提取,而在频域内,我们使用一个高通滤波模板(因为轮廓在频域内属于高频信号),可以实现轮廓的提取,后面也会把拉普拉斯模板频域化,会发现拉普拉斯其实在频域来讲就是一个高通滤波器. 既然是频域滤波就涉及到把图像首先变到频域内,那么把图

opencv的频域滤波

频域滤波流程总结如下: 给定一幅大小为M×N的输入图像f(x,y),从式(6.1-25)和式(6.1-26)得到填充参数P和Q.典型地,我们选择P=2M和Q=2N: 对f(x,y)添加必要数量的0,形成大小为P×Q填充后的图像 用(-1)(x+y)乘以fp(x,y),进行频谱中心化的预处理: 计算中心化预处理过的fp(x,y)的傅里叶变换,得到Fp(u,v); 生成一个实的.对称的滤波函数H(u,v),其大小为P×Q,频谱零点位于(P/2,Q/2)处.用阵列相乘形成乘积G(u,v)=F(u,v)

灰度图像--频域滤波 同态滤波

学习DIP第27天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:https://github.com/Tony-Tan/DIPpro

从图像空间域滤波到频域滤波

频域滤波的快速实现是工程领域的里程碑.频域滤波最让工程师兴奋的原因来自于这个公式: f(x)*g(y)<-->F(u)G(v) 这说明空间域中的复杂的卷积算子,变换到频域中就成了简单的乘法,这样不仅计算简单,而且工程上易于实现.在FFT和快速DCT(余弦变换)的数字实现之前,频域变换的计算是很头疼的事情,在计算效率上并不比普通卷积快多少:在FFT和快读DCT实现之后,频域信号处理几乎无处不在. 空间域滤波的算子可以变成频域滤波算子.假设当前图像尺寸为512x512,滤波算子大小为3x3,显然直