数字图像处理学习笔记5:频率域滤波1(傅里叶频谱图,低通滤波-平滑,高通滤波-锐化)
文章目录
- 前言
- 一、傅里叶变换:傅里叶频谱图
- 二、低通滤波
- 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<D0D>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<D0D>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(傅里叶频谱图,低通滤波-平滑,高通滤波-锐化)相关推荐
- 数字图像处理——第四章 频率域滤波
数字图像处理--第4章 频率域滤波 文章目录 数字图像处理--第4章 频率域滤波 频率域 1.傅里叶级数原理 1.1.一维傅里叶变换 1.2.二维傅里叶变换 2.python×傅里叶级数 2.1.傅里 ...
- 数字图像处理学习笔记(十五)——图像复原与重建
数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...
- 数字图像处理学习笔记(八)——图像增强处理方法之点处理
数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...
- 数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法
数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法 一.概述: 提到特征点算法,首先就是大名鼎鼎的SIFT算法了.SIFT的全称是Scale Invariant Feature Transf ...
- 数字图像处理学习笔记(十)——空间滤波
数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...
- 数字图像处理学习笔记 六 彩色图像处理
目录 (一)彩色模型介绍 1.1 RGB模型 1.2 CMY.CMYK模型 1.3 HSI彩色模型 1.4 HSV模型 1.5 YCbCr 彩色空间 (二)伪彩色图像处理 (三)全彩色图像处理及彩色变 ...
- 数字图像处理学习笔记(三):ORB算法(尺度不变特征变换)Oriented FAST and Rotated BRIEF
数字图像处理学习笔记(三):ORB算法(尺度不变特征变换)Oriented FAST and Rotated BRIEF 一.概述 参考:特征点匹配+特征检测方法汇总 ORB的全称是Oriented ...
- 数字图像处理学习笔记(一):特征检测和匹配概述
数字图像处理学习笔记(一):特征检测和匹配概述 参考博客: 特征点的匹配 SIFT特征详解 数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法 1.特征点概述 如何高效且准确的匹配出两个不同 ...
- 数字图像处理学习笔记(三)——空间分辨率和灰度分辨率、等偏爱曲线
数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声.增强.复原.分割.提取特征等处理的方法和技术.本专栏将以学习笔记形式对数字图像处理的重点基础知识进行总结 ...
最新文章
- matlab datetime时间处理、时间转换
- vb.net2019-hello,world
- MVC架构简介及其测试策略
- 使用 SASS Mixin 编写 clean code
- c语言程序stm8s,经典STM8s20实用C语言编程大全
- Spring : BeanDefinition
- SpringRMI解析3-RmiServiceExporter逻辑细节
- 修改表名的sql语句_SQL第一关——入门
- Anbox之源码编译(一)
- Python入门-函数
- 图片报错,显示默认图片
- SPSS22.0简体中文破解版(32位/64位)使用方法
- android开机自动打开微信小程序,Android应用启动微信小程序
- qqkey获取原理_QQkey盗号木马原理分析[教程]
- 《滕王阁序》在古文中处于什么水平?
- JZOJ5773 简单数学题
- 面试-数据知识点准备
- VS 错误: cout 不明确
- 广义相对论与狭义相对论的区别
- 【Mixamo】记录mixamo导出动画踩的坑
热门文章
- WiFi-802.11 协商速率表
- python 爬虫工具爬 取 bing,百度 浏览器 图片
- 销售宝:电商crm系统有什么功能优势?
- 知乎使用爬虫时报10001:请求参数异常,请升级客户端后重试 怎么搞?
- 帕金森定律(Parkinson's Law)亦称“官场病”或“组织麻痹病”
- 北京周边旅游之房山石花洞
- 计算机系统中定时的方法有几种,电脑怎么定时关机 电脑定时关机有哪些方法...
- 南大通用数据库-Gbase-8a-学习-10-Gbase8a通过Dblink访问Oracle
- 移动平均函数对 RSI 交叉策略回测结果的显着影响
- RedisTemplate使用PipeLine管道命令