matlab用傅里叶变换实现图像的低通滤波 您所在的位置:网站首页 傅立叶变换低通滤波 matlab用傅里叶变换实现图像的低通滤波

matlab用傅里叶变换实现图像的低通滤波

2024-06-17 18:21| 来源: 网络整理| 查看: 265

要求 

可以使用 MATLAB 的傅里叶变换函数和反变换函数。

原理部分

 

低通滤波器指去除图像中的高频成分,而低通滤波器指去除图像中的高频成分。考虑的有三种低通滤波器:理想滤波器、布特沃斯滤波器和高斯滤波器。理想低通滤波器:以原点为圆心,D为半径的圆内, 无衰减地通过所有频率,在圆外截断所有频率。由下面函数确定:具体参见下图:

 

Matlab函数介绍

 

 

Fft2:二维快速傅里叶变换Fftshift:移动零频点到频谱中间Ifft2: 二维快速反傅里叶变换 

 

算法思路

对图像进行傅里叶变换(FFT),得到频谱;用理想低通滤波器对频谱滤波;对滤波后的频谱进行反傅里叶变换(IFFT),得到滤波后图像。见下图:

 

具体编程流程

 

1) 原始正常的图像,加噪处理,得到img_noise;

2) img_noise图像进行傅里叶变换,得到频谱;

3) 对得到的频谱进行理想低通滤波;

4) 对滤波后的频谱进行反傅里叶变换,得到滤波后图像

源码

 

%傅里叶变换的低通滤波 %低通滤波选用理想低通滤波方式 % d0 是阈值,可以修改,初步设定为50 % clear all; close all; clc; img_origin=imread('C:\Users\yytang\Desktop\lena.jpg'); img_origin=rgb2gray(img_origin); d0=50; %阈值 img_noise=imnoise(img_origin,'salt'); % 加椒盐噪声 %img_noise=imnoise(img_origin,'gaussian'); % 加高斯噪声 img_f=fftshift(fft2(double(img_noise))); %傅里叶变换得到频谱 [m n]=size(img_f); m_mid=fix(m/2); %是不是可以有其他取整方式? n_mid=fix(n/2); img_lpf=zeros(m,n); for i=1:m for j=1:n d=sqrt((i-m_mid)^2+(j-n_mid)^2); %理想低通滤波,求距离 if d


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

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