图像处理之理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器的matlab简单实现
一、前言
高通滤波器的功能是让高频率通过而滤掉或衰减低频,其作用是使图像得到锐化处理,突出图像的边界。经理想高频滤波后的图像把信息丰富的低频去掉了,丢失了许多必要的信息**。一般情况下,高通滤波对噪声没有任何抑制作用**,若简单的使用高通滤波,图像质量可能由于噪声严重而难以达到满意的改善效果。为了既加强图像的细节又抑制噪声,可采用高频加强滤波。这种滤波器实际上是由一个高通滤波器和一个全通滤波器构成的,这样便能在高通滤波的基础上保留低频信息。
高通滤波可以分为理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器。对于大小为M*N的图像,频率点(u,v)与频域中心的距离为D(u,v),其表达式为:
二、理想高通滤波器(IHPF)
1、基本定义
理想高通滤波器的产生公式为:
其中D0为理想高通滤波器的截止频率,注意与理想高通滤波器的表达式区别在于将0和1交换而条件不变。
2、matlab实现理想高通滤波器
(1)实现代码:
close all;
clear all;
clc;
I = imread('coins.png');subplot(121),imshow(I);
title('原始图像');% 函数fft2()用于计算二维傅立叶变换
% 函数fftshift()是对函数fft2()作傅里叶变换后得到的频谱进行平移,将变换后的图像频谱中心从矩阵的原点移到矩阵的中心
% 作二维傅里叶变换前一定要用函数im2double()把原始图像的数据类型由uint8转化为double类型
% 否则会因为unit8数据类型只能表示0-255的整数而出现数据截断,进而出现错误结果
s=fftshift(fft2(im2double(I)));
[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);
d0=50; % 将理想高通滤波器的截止频率D0设置为50
for i=1:a %双重for循环计算频率点(i,j)与频域中心的距离D(i,j)=sqrt((i-round(a/2)^2+(j-round(b/2)^2))for j=1:b distance=sqrt((i-a0)^2+(j-b0)^2);if distance<=d0 % 根据理想高通滤波器产生公式,当D(i,j)<=D0,置为0h=0;elseh=1; % 根据理想高通滤波器产生公式,当D(i,j)>D0,置为1ends(i,j)=h*s(i,j);% 频域图像乘以滤波器的系数end
end
% real函数取元素的实部
s=real(ifft2(ifftshift(s)));% 最后进行二维傅里叶反变换转换为时域图像
subplot(122),imshow(s,[]);
title('理想高通滤波所得图像');
(2)实现效果:
三、巴特沃斯高通滤波器(BHPF)
1、基本定义
巴特沃斯高通滤波器的产生公式为:
其中D0为巴特沃斯高通滤波器的截止频率,注意与巴特沃斯低通滤波器的表达式区别在于将分母的D0和D(u,v)交换位置。
2、matlab实现巴特沃斯高通滤波器
(1)实现代码:
close all;
clear all;
clc;
I = imread('coins.png');subplot(121),imshow(I);
title('原始图像');% 函数fft2()用于计算二维傅立叶变换
% 函数fftshift()是对函数fft2()作傅里叶变换后得到的频谱进行平移,将变换后的图像频谱中心从矩阵的原点移到矩阵的中心
% 作二维傅里叶变换前一定要用函数im2double()把原始图像的数据类型由uint8转化为double类型
% 否则会因为unit8数据类型只能表示0-255的整数而出现数据截断,进而出现错误结果
s=fftshift(fft2(im2double(I)));
[N1,N2]=size(s);%求二维傅里叶变换后图像大小
n=2; % 将巴特沃斯高通滤波器的阶数n设置为2
d0=30; % 将巴特沃斯高通滤波器的截止频率D0设置为30
n1=round(N1/2);
n2=round(N2/2);
for i=1:N1 %双重for循环计算频率点(i,j)与频域中心的距离D(i,j)=sqrt((i-round(N1/2)^2+(j-round(N2/2)^2))for j=1:N2 distance=sqrt((i-n1)^2+(j-n2)^2);if distance==0 h=0; elseh=1/(1+(d0/distance)^(2*n));% 根据巴特沃斯高通滤波器公式为1/(1+[D0/D(i,j)]^2n)ends(i,j)=h*s(i,j);% 频域图像乘以滤波器的系数end
end
% real函数取元素的实部
s=real(ifft2(ifftshift(s)));% 最后进行二维傅里叶反变换转换为时域图像
subplot(122),imshow(s,[]);
title('Butterworth高通滤波图像');
(2)实现效果:
四、高斯高通滤波器(GHPF)
1、基本定义
高斯高通滤波器的产生公式为:
其中D0为高斯高通滤波器的截止频率,注意与高斯低通滤波器的表达式区别在于使用1减去表达式。
2、matlab实现高斯高通滤波器
(1)实现代码:
close all;
clear all;
clc;
I = imread('coins.png');subplot(121),imshow(I);
title('原始图像');% 函数fft2()用于计算二维傅立叶变换
% 函数fftshift()是对函数fft2()作傅里叶变换后得到的频谱进行平移,将变换后的图像频谱中心从矩阵的原点移到矩阵的中心
% 作二维傅里叶变换前一定要用函数im2double()把原始图像的数据类型由uint8转化为double类型
% 否则会因为unit8数据类型只能表示0-255的整数而出现数据截断,进而出现错误结果
s=fftshift(fft2(im2double(I)));
[a,b]=size(s);
d0=10; % 将高斯高通滤波器的截止频率D0设置为10
a0=round(a/2);
b0=round(b/2);
for i=1:afor j=1:bdistance=sqrt((i-a0)^2+(j-b0)^2); % 根据高斯高通滤波器公式H(u,v)=e^-[D^2(u,v)/2*D0^2] h=1-(exp(-(distance^2)/(2*(d0^2)))); % exp表示以e为底的指数函数s(i,j)=h*s(i,j);% 频域图像乘以滤波器的系数end
ends=real(ifft2(ifftshift(s)));% 最后进行二维傅里叶反变换转换为时域图像
subplot(122),imshow(s,[]);
title('高斯高通滤波图像');
(2)实现效果:
由于刚刚开始学习图像处理,对于很多知识理解不到位。如有错误,恳请指正,任重而道远,慢慢加油!
图像处理之理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器的matlab简单实现相关推荐
- 图像处理频域锐化(理想和巴特沃斯)
图像频域平滑(锐化):选择一幅图像,例如rice.png,分别使用理想高通滤波器.巴特沃斯高通滤波器.指数高通滤波器和梯形高通滤波器(至少使用两种高通滤波器),显示滤波前后的频域能量分布图,空间图像. ...
- matalb 图像处理 低通滤波和高通滤波 (理想,巴特沃斯,高斯 含代码)
低通滤波和高通滤波 主要类型和公式 主要效果图 各类型的函数代码 最终比较代码 主要类型和公式 1.低通滤波 主要分为理想低通滤波,巴特沃斯低通滤波,高斯低通滤波 理想低通滤波: 其中:对于大小为M* ...
- 5.6.3 高通滤波(理想高通滤波+巴特沃斯高通滤波)
1.理想高通滤波器 高通滤波与低通滤波正好相反,是频域图像的高频部分通过而抑制低频部分.在图像中图像的边缘对应高频分量,因此高通滤波的效果是图像锐化.同样最简单的高通滤波器是理想高通滤波器.通过设置一 ...
- 理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器
低通滤波器 1.理想的低通滤波器 其中,D0表示通带的半径.D(u,v)的计算方式也就是两点间的距离,很简单就能得到. 使用低通滤波器所得到的结果如下所示.低通滤波器滤除了高频成分,所以使得图像模糊. ...
- IIR滤波器设计代码(巴特沃斯+脉冲响应不变法/双线性变换法) Matlab代码
引言 说实话我感觉自己滤波器不算学到位了,一般来说我是需要把整个过程都弄得非常清楚,但是这个模拟滤波器设计是真的麻烦,至少我现在不确定以后会从事DSP相关的内容,就没有对细节考量,但或许也没谁会对它去 ...
- Matlab高频强调滤波增强,高斯高通滤波器,巴特沃斯高通滤波器图像处理
一.目标: 对lena图像采用高频强调滤波增强方法,并分析方法的效果.(理想.巴特沃斯.高斯).其结果好不好?能否有改善的方法? 二.函数分析: 1.高斯高通滤波器 传递函数: 高斯低通滤波器 传递函 ...
- 巴特沃斯滤波器、切比雪夫、椭圆滤波
滤波器概述 滤波器的作用就是过滤波形,过滤掉不需要的波形成分,与在时间上截取某一部分波形相区别,这个波形成分一般用频率来描述,也可以用模拟角频率核数字角频率来描述.从滤波器的通带范围可以分为低通.高通 ...
- 【老生谈算法】matlab实现巴特沃斯IIR滤波器程序设计源码
matlab巴特沃斯IIR滤波器程序设计 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]matlab巴特沃斯IIR滤波器程序 ...
- 第4章 Python 数字图像处理(DIP) - 频率域滤波10 - 使用低通频率域滤波器平滑图像 - 理想、高斯、巴特沃斯低通滤波器
目录 使用低通频率域滤波器平滑图像 理想低通滤波器(ILPF) 高斯低通滤波器(GLPF) 巴特沃斯低通滤波器 低通滤波的例子 使用低通频率域滤波器平滑图像 理想低通滤波器(ILPF) 在以原点为中心 ...
最新文章
- 为什么双层循环 冒泡排序_冒泡排序的双重循环理解
- Spring Boot 2.0 新特性和发展方向
- android面试题总结加强版
- 法学教授:洋文凭情结是对教育体制的嘲弄
- windows和linux主机名,windows和linux下如何远程获取操作系统版本和主机名
- Kotlin实战指南十六:Synchronized、Volatile
- pop3 postfix 命令_Email基础知识: SMTP/POP3 命令简介
- Redis安装与配置( Windows10 )
- 【Python】ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve...
- arguments.callee 调用自身
- R语言使用aggregate函数和median函数计算每个分组数据的中位数
- Windows 7 Service Pack 1已发布:但是您应该安装它吗?
- APP+spring boot校园购物网站 毕业设计-附源码041037
- Cocos Creator 基于 Spine 动画的 AVATAR 换装系统优化
- 电脑定时关机、取消定时关机、滑动关机
- Pytorch:torch.ge()、torch.gt()、torch.le()、torch.lt()
- DC EP要统一“ 世界度量衡”,数字货币打开财富大门
- [转载]家庭剧院音效再升级HDMI eARC相容未来效能
- 《率土之滨》高流水的背后秘诀:商业模式与系统分析
- 06.RPA uipath stadio 使用教程【excel操作】