数字图像处理学习笔记5:频率域滤波1(傅里叶频谱图,低通滤波 您所在的位置:网站首页 傅里叶频谱图的含义 数字图像处理学习笔记5:频率域滤波1(傅里叶频谱图,低通滤波

数字图像处理学习笔记5:频率域滤波1(傅里叶频谱图,低通滤波

2024-07-07 13:41| 来源: 网络整理| 查看: 265

文章目录 前言一、傅里叶变换:傅里叶频谱图二、低通滤波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< D 0 0 , D> D 0 H(u,v) = \begin{cases} 1 , & \text{D$D_0$}\\ \end{cases} H(u,v)={1,0,​DD0​​ 式中D为点到中心点的距离, D 0 D_0 D0​为设置半径

函数各种表现形式如下: 在这里插入图片描述

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

代码如下:

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:n for i=1:m d=sqrt((i-P_x)^2+(j-P_y)^2); %计算两点之间的距离,判断在圆外还是圆内 if d D 0 H(u,v) = \begin{cases} 0 , & \text{D$D_0$}\\ \end{cases} H(u,v)={0,1,​DD0​​ 频谱图中心的值与原图像的灰度平均值相关,高通滤波中,将中心点置零,则滤波后的图像平均值变为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:n for i=1:m d=sqrt((i-P_x)^2+(j-P_y)^2); %计算两点之间的距离,判断在圆外还是圆内 if d


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有