文章目录

  • 前言
  • 一、傅里叶变换:傅里叶频谱图
  • 二、低通滤波
    • 1.理想低通滤波
    • 2.布特沃斯低通滤波
    • 3.高斯低通滤波
    • 4.小结
  • 三、高通滤波
    • 1.理想高通滤波
    • 2.布特沃斯高通滤波
    • 3.高斯高通滤波
    • 4.小结

前言

频率域滤波步骤:


频率域滤波分为低通滤波(平滑)与高通滤波(锐化):
低通滤波={理想低通滤波布特沃斯低通滤波高斯低通滤波低通滤波 = \begin{cases} 理想低通滤波 \\ 布特沃斯低通滤波\\ 高斯低通滤波 \end{cases} 低通滤波=⎩⎪⎨⎪⎧​理想低通滤波布特沃斯低通滤波高斯低通滤波​
高通滤波={理想高通滤波布特沃斯高通滤波高斯高通滤波高通滤波 = \begin{cases} 理想高通滤波 \\ 布特沃斯高通滤波\\ 高斯高通滤波 \end{cases} 高通滤波=⎩⎪⎨⎪⎧​理想高通滤波布特沃斯高通滤波高斯高通滤波​


一、傅里叶变换:傅里叶频谱图

使用下列代码得到图像的频谱图

I=imread('1.jpg');
I=rgb2gray(I);
figure
imshow(I)
I=im2double(I);
F=fft2(I);
F=fftshift(F);
F=abs(F);
T=log(F+1);
figure
imshow(T,[]);

结果:
若仅使用频谱图来进行简单滤波,只需要了解频谱图中心为0频分量,越接近边缘则是高频分量,其中高频分量代表图像中灰度变化较大的信息,如噪声和细节,低频则相反。


比如对上图加入椒盐噪声,得到:
与上面的频谱图比较,发现频谱图外层的亮点明显增多,因为增加了椒盐噪声,高频分量变多。

使用频谱图进行滤波,就是在频谱图中减去低频或高频分量。


二、低通滤波

低通滤波={理想低通滤波布特沃斯低通滤波高斯低通滤波低通滤波 = \begin{cases} 理想低通滤波 \\ 布特沃斯低通滤波\\ 高斯低通滤波 \end{cases} 低通滤波=⎩⎪⎨⎪⎧​理想低通滤波布特沃斯低通滤波高斯低通滤波​


1.理想低通滤波

理想低通滤波是在频谱图中,以0频分量(中心点)为圆心,以r为半径作的圆中,使圆外的所有高频分量置零,即只保留圆内的低频分量,以此去除噪声。

理想低通滤波器函数为:
H(u,v)={1,D<D00,D>D0H(u,v) = \begin{cases} 1 , & \text{D<$D_0$}\\ 0 , & \text{D>$D_0$}\\ \end{cases} H(u,v)={1,0,​D<D0​D>D0​​
式中D为点到中心点的距离,D0D_0D0​为设置半径

函数各种表现形式如下:


以上面加了椒盐噪声的图为例进行理想低通滤波:

代码如下:

im1=imread('椒盐噪声图像.jpg');
im1=rgb2gray(im1);
figure
imshow(im1)r=80;   %设置滤波圆半径参数为80
img_f=fftshift(fft2(double(im1)));  %傅里叶变换得到频谱
[m,n]=size(img_f);
P_x=fix(m/2);
P_y=fix(n/2);  %获取圆心坐标
H=zeros(m,n);
for j=1:nfor i=1:md=sqrt((i-P_x)^2+(j-P_y)^2);   %计算两点之间的距离,判断在圆外还是圆内if d<=rH(i,j)=1;   %圆内数值不变elseH(i,j)=0;   %圆外置零,即滤除高频分量endend
end
img_lpf=H.*img_f;
img_lpf=ifftshift(img_lpf);            %傅里叶反变换
img_lpf=uint8(real(ifft2(img_lpf)));   %取实数部分
figure
imshow(img_lpf)
imwrite(img_lpf,'理想低通滤波.jpg')

滤波前后图像结果如下:


2.布特沃斯低通滤波

与理想低通滤波的“极端”不同,布特沃斯低通滤波器以渐变的方式改变频率的数值大小。

布特沃斯低通滤波函数为:
H(u,v)=11+[D(u,v)/D0]2nH(u,v) =\frac{1}{1+[D(u,v)/D_0]^{2n}} H(u,v)=1+[D(u,v)/D0​]2n1​
式中,D(u,v)为点到中心点的距离,D0D_0D0​为设置的半径

各种表现形式为:


代码如下:

im1=imread('椒盐噪声图像.jpg');
im1=rgb2gray(im1);
figure
imshow(im1)r=80;   %设置滤波圆半径参数为80,可调
img_f=fftshift(fft2(double(im1)));  %傅里叶变换得到频谱
[m,n]=size(img_f);
O_x=fix(m/2);
O_y=fix(n/2);  %获取圆心坐标
img=zeros(m,n);  %提前定义滤波后的频谱,提高运行速度
for j=1:nfor i=1:md=sqrt((i-O_x)^2+(j-O_y)^2);    %计算两点之间的距离H(i,j)=1/((1+d/r)^4);   %布特沃斯滤波器,这里设n=2,即2阶滤波器,n可调end
end
img=H.*img_f; %滤波
img=ifftshift(img);            %傅里叶反变换
img=uint8(real(ifft2(img)));   %取实数部分
figure
imshow(img)

处理前后图像:


3.高斯低通滤波

高斯滤低通波器函数为:
H(u,v)=e−D2(u,v)/2D02H(u,v) =e^{-D^2(u,v)/2D_0^2} H(u,v)=e−D2(u,v)/2D02​

各表现形式如下:


代码如下:

im1=imread('椒盐噪声图像.jpg');
im1=rgb2gray(im1);
figure
imshow(im1)r=80;   %设置滤波圆半径参数为80,可调
img_f=fftshift(fft2(double(im1)));  %傅里叶变换得到频谱
[m,n]=size(img_f);
O_x=fix(m/2);
O_y=fix(n/2);  %获取圆心坐标
img=zeros(m,n);  %提前定义滤波后的频谱,提高运行速度
for j=1:nfor i=1:md=sqrt((i-O_x)^2+(j-O_y)^2);    %计算两点之间的距离H(i,j)=exp((-d.^2)/(2*(r).^2));   %高斯滤波器end
end
img=H.*img_f; %滤波
img=ifftshift(img);            %傅里叶反变换
img=uint8(real(ifft2(img)));   %取实数部分
figure
imshow(img)

滤波前后结果:


4.小结

可以发现,高斯滤波和理想低通滤波程序中,只能调节半径一个参数,属于两个极端,而布特沃斯滤波器不仅可以设置半径,还可以设置阶数,通过调节阶数可以接近理想低通滤波与高斯低通滤波结果,处于两者之间的过渡。


三、高通滤波

低通滤波是减少高频分量,同理,高通滤波则是减少低频分量,并且高通滤波器可以由对应低通滤波器给出:
HHP(u,v)=1−HLP(u,v)H_{HP}(u,v) =1-H_{LP}(u,v) HHP​(u,v)=1−HLP​(u,v)

则对应有三个高通滤波器:
高通滤波={理想高通滤波布特沃斯高通滤波高斯高通滤波高通滤波 = \begin{cases} 理想高通滤波 \\ 布特沃斯高通滤波\\ 高斯高通滤波 \end{cases} 高通滤波=⎩⎪⎨⎪⎧​理想高通滤波布特沃斯高通滤波高斯高通滤波​


1.理想高通滤波

理想高通滤波函数:
H(u,v)={0,D<D01,D>D0H(u,v) = \begin{cases} 0 , & \text{D<$D_0$}\\ 1 , & \text{D>$D_0$}\\ \end{cases} H(u,v)={0,1,​D<D0​D>D0​​
频谱图中心的值与原图像的灰度平均值相关,高通滤波中,将中心点置零,则滤波后的图像平均值变为0,图像表现较暗。


代码如下:

im1=imread('椒盐噪声图像.jpg');
im1=rgb2gray(im1);
figure
imshow(im1)r=80;   %设置滤波圆半径参数为80
img_f=fftshift(fft2(double(im1)));  %傅里叶变换得到频谱
[m,n]=size(img_f);
P_x=fix(m/2);
P_y=fix(n/2);  %获取圆心坐标
img_lpf=zeros(m,n);  %提前定义滤波后的频谱,提高运行速度
for j=1:nfor i=1:md=sqrt((i-P_x)^2+(j-P_y)^2);   %计算两点之间的距离,判断在圆外还是圆内if d<=rH(i,j)=0;   %圆内置零,去除低频分量elseH(i,j)=1;   %圆外不变endimg_lpf(i,j)=H(i,j)*img_f(i,j);end
endimg_lpf=ifftshift(img_lpf);            %傅里叶反变换
img_lpf=uint8(real(ifft2(img_lpf)));   %取实数部分
figure
imshow(img_lpf)
imwrite(img_lpf,'理想高通滤波.jpg')

2.布特沃斯高通滤波

布特沃斯滤波函数为:
H(u,v)=11+[D0/D(u,v)]2nH(u,v) =\frac{1}{1+[D_0/D(u,v)]^{2n}} H(u,v)=1+[D0​/D(u,v)]2n1​


代码如下:

im1=imread('椒盐噪声图像.jpg');
im1=rgb2gray(im1);
figure
imshow(im1)r=80;   %设置滤波圆半径参数为80,可调
img_f=fftshift(fft2(double(im1)));  %傅里叶变换得到频谱
[m,n]=size(img_f);
O_x=fix(m/2);
O_y=fix(n/2);  %获取圆心坐标
img=zeros(m,n);  %提前定义滤波后的频谱,提高运行速度
for j=1:nfor i=1:md=sqrt((i-O_x)^2+(j-O_y)^2);    %计算两点之间的距离H(i,j)=1/((1+r/d)^4);   %布特沃斯高通滤波器,这里设n=2,即2阶滤波器,n可调img(i,j)=H(i,j)*img_f(i,j); %滤波end
end
img=ifftshift(img);            %傅里叶反变换
img=uint8(real(ifft2(img)));   %取实数部分
figure
imshow(img)

3.高斯高通滤波

高斯高通滤波函数:
H(u,v)=1−e−D2(u,v)/2D02H(u,v) =1-e^{-D^2(u,v)/2D_0^2} H(u,v)=1−e−D2(u,v)/2D02​


代码如下:

im1=imread('椒盐噪声图像.jpg');
im1=rgb2gray(im1);
figure
imshow(im1)r=80;   %设置滤波圆半径参数为80,可调
img_f=fftshift(fft2(double(im1)));  %傅里叶变换得到频谱
[m,n]=size(img_f);
O_x=fix(m/2);
O_y=fix(n/2);  %获取圆心坐标
img=zeros(m,n);  %提前定义滤波后的频谱,提高运行速度
for j=1:nfor i=1:md=sqrt((i-O_x)^2+(j-O_y)^2);    %计算两点之间的距离H(i,j)=1-exp((-d.^2)/(2*(r).^2));   %高斯高通滤波器img(i,j)=H(i,j)*img_f(i,j); %滤波end
end
img=ifftshift(img);            %傅里叶反变换
img=uint8(real(ifft2(img)));   %取实数部分
figure
imshow(img)

4.小结

频率域除了上述三种高通滤波外,还有拉普拉斯锐化增强、同态滤波等方法,将在后面给出。


数字图像处理学习笔记5:频率域滤波1(傅里叶频谱图,低通滤波-平滑,高通滤波-锐化)相关推荐

  1. 数字图像处理——第四章 频率域滤波

    数字图像处理--第4章 频率域滤波 文章目录 数字图像处理--第4章 频率域滤波 频率域 1.傅里叶级数原理 1.1.一维傅里叶变换 1.2.二维傅里叶变换 2.python×傅里叶级数 2.1.傅里 ...

  2. 数字图像处理学习笔记(十五)——图像复原与重建

    数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...

  3. 数字图像处理学习笔记(八)——图像增强处理方法之点处理

    数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...

  4. 数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法

    数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法 一.概述: 提到特征点算法,首先就是大名鼎鼎的SIFT算法了.SIFT的全称是Scale Invariant Feature Transf ...

  5. 数字图像处理学习笔记(十)——空间滤波

    数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...

  6. 数字图像处理学习笔记 六 彩色图像处理

    目录 (一)彩色模型介绍 1.1 RGB模型 1.2 CMY.CMYK模型 1.3 HSI彩色模型 1.4 HSV模型 1.5 YCbCr 彩色空间 (二)伪彩色图像处理 (三)全彩色图像处理及彩色变 ...

  7. 数字图像处理学习笔记(三):ORB算法(尺度不变特征变换)Oriented FAST and Rotated BRIEF

    数字图像处理学习笔记(三):ORB算法(尺度不变特征变换)Oriented FAST and Rotated BRIEF 一.概述 参考:特征点匹配+特征检测方法汇总 ORB的全称是Oriented ...

  8. 数字图像处理学习笔记(一):特征检测和匹配概述

    数字图像处理学习笔记(一):特征检测和匹配概述 参考博客: 特征点的匹配 SIFT特征详解 数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法 1.特征点概述 如何高效且准确的匹配出两个不同 ...

  9. 数字图像处理学习笔记(三)——空间分辨率和灰度分辨率、等偏爱曲线

    数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...

最新文章

  1. matlab datetime时间处理、时间转换
  2. vb.net2019-hello,world
  3. MVC架构简介及其测试策略
  4. 使用 SASS Mixin 编写 clean code
  5. c语言程序stm8s,经典STM8s20实用C语言编程大全
  6. Spring : BeanDefinition
  7. SpringRMI解析3-RmiServiceExporter逻辑细节
  8. 修改表名的sql语句_SQL第一关——入门
  9. Anbox之源码编译(一)
  10. Python入门-函数
  11. 图片报错,显示默认图片
  12. SPSS22.0简体中文破解版(32位/64位)使用方法
  13. android开机自动打开微信小程序,Android应用启动微信小程序
  14. qqkey获取原理_QQkey盗号木马原理分析[教程]
  15. 《滕王阁序》在古文中处于什么水平?
  16. JZOJ5773 简单数学题
  17. 面试-数据知识点准备
  18. VS 错误: cout 不明确
  19. 广义相对论与狭义相对论的区别
  20. 【Mixamo】记录mixamo导出动画踩的坑

热门文章

  1. WiFi-802.11 协商速率表
  2. python 爬虫工具爬 取 bing,百度 浏览器 图片
  3. 销售宝:电商crm系统有什么功能优势?
  4. 知乎使用爬虫时报10001:请求参数异常,请升级客户端后重试 怎么搞?
  5. 帕金森定律(Parkinson's Law)亦称“官场病”或“组织麻痹病”
  6. 北京周边旅游之房山石花洞
  7. 计算机系统中定时的方法有几种,电脑怎么定时关机 电脑定时关机有哪些方法...
  8. 南大通用数据库-Gbase-8a-学习-10-Gbase8a通过Dblink访问Oracle
  9. 移动平均函数对 RSI 交叉策略回测结果的显着影响
  10. RedisTemplate使用PipeLine管道命令