图像处理-线性滤波-2 图像微分(1、2阶导数和拉普拉斯算子)
2016-05-19 14:51
246 查看
From:http://www.cnblogs.com/pegasus/archive/2011/05/20/2051780.html
更复杂些的滤波算子一般是先利用高斯滤波来平滑,然后计算其1阶和2阶微分。由于它们滤除高频和低频,因此称为带通滤波器(band-pass filters)。
在介绍具体的带通滤波器前,先介绍必备的图像微分知识。
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201051584350.png)
,或
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201051582922.png)
(1.1)
对于离散情况(图像),其导数必须用差分方差来近似,有
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201051593968.png)
,前向差分
forward differencing (1.2)
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201051598919.png)
,中心差分 central differencing (1.3)
1)前向差分的Matlab实现
2)中心差分的Matlab实现
实例:技术图像x方向导数
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/20110520105201706.png)
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261626257058.png)
原图像 x方向1阶导数
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201052023638.png)
,其幅值为
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/20110520105202574.png)
。出于计算性能考虑,幅值也可用
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201052024968.png)
来近似。
Matlab函数
1)gradient:梯度计算
2)quiver:以箭头形状绘制梯度。注意放大下面最右侧图可看到箭头,由于这里计算横竖两个方向的梯度,因此箭头方向都是水平或垂直的。
实例:仍采用上面的原始图像
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201052036853.png)
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261626301513.png)
梯度幅值 梯度幅值+梯度方向
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201052052752.png)
,即
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201052068192.png)
。它的差分函数为
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201053147439.png)
(3.1)
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617359687.png)
(3.2)
其在二维空间上的公式为:
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201053178156.png)
(3.3)
对于1维离散情况,其二阶导数变为二阶差分
1)首先,其一阶差分为
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617367080.png)
2)因此,二阶差分为
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617386010.png)
3)因此,1维拉普拉斯运算可以通过1维卷积核
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617399291.png)
实现
对于2维离散情况(图像),拉普拉斯算子是2个维上二阶差分的和(见式3.3),其公式为:
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617442384.png)
(3.4)
上式对应的卷积核为
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617441238.png)
常用的拉普拉斯核有:
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617457791.png)
Matlab里有两个函数
1)del2
计算公式:
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201053189518.png)
,
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201053187467.png)
2)fspecial:图像处理中一般利用Matlab函数fspecial
h = fspecial('laplacian', alpha) returns a 3-by-3 filter approximating the shape of the two-dimensional Laplacian operator.
The parameter alpha controls the shape of the Laplacian and must be in the range 0.0 to 1.0. The default value for alpha is 0.2.
http://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htm
更复杂些的滤波算子一般是先利用高斯滤波来平滑,然后计算其1阶和2阶微分。由于它们滤除高频和低频,因此称为带通滤波器(band-pass filters)。
在介绍具体的带通滤波器前,先介绍必备的图像微分知识。
1 一阶导数
连续函数,其微分可表达为![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201051584350.png)
,或
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201051582922.png)
(1.1)
对于离散情况(图像),其导数必须用差分方差来近似,有
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201051593968.png)
,前向差分
forward differencing (1.2)
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201051598919.png)
,中心差分 central differencing (1.3)
1)前向差分的Matlab实现
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/20110520105201706.png)
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261626257058.png)
原图像 x方向1阶导数
2 图像梯度(Image Gradient)
图像I的梯度定义为![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201052023638.png)
,其幅值为
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/20110520105202574.png)
。出于计算性能考虑,幅值也可用
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201052024968.png)
来近似。
Matlab函数
1)gradient:梯度计算
2)quiver:以箭头形状绘制梯度。注意放大下面最右侧图可看到箭头,由于这里计算横竖两个方向的梯度,因此箭头方向都是水平或垂直的。
实例:仍采用上面的原始图像
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201052036853.png)
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261626301513.png)
梯度幅值 梯度幅值+梯度方向
3 二阶导数
对于一维函数,其二阶导数![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201052052752.png)
,即
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201052068192.png)
。它的差分函数为
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201053147439.png)
(3.1)
3.1 普拉斯算子(laplacian operator)
3.1.2 概念
拉普拉斯算子是n维欧式空间的一个二阶微分算子。它定义为两个梯度向量算子的内积![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617359687.png)
(3.2)
其在二维空间上的公式为:
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201053178156.png)
(3.3)
对于1维离散情况,其二阶导数变为二阶差分
1)首先,其一阶差分为
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617367080.png)
2)因此,二阶差分为
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617386010.png)
3)因此,1维拉普拉斯运算可以通过1维卷积核
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617399291.png)
实现
对于2维离散情况(图像),拉普拉斯算子是2个维上二阶差分的和(见式3.3),其公式为:
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617442384.png)
(3.4)
上式对应的卷积核为
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617441238.png)
常用的拉普拉斯核有:
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105261617457791.png)
3.1.2 应用
拉普拉斯算子会突出像素值快速变化的区域,因此常用于边缘检测。Matlab里有两个函数
1)del2
计算公式:
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201053189518.png)
,
![](http://images.cnblogs.com/cnblogs_com/pegasus/201105/201105201053187467.png)
2)fspecial:图像处理中一般利用Matlab函数fspecial
h = fspecial('laplacian', alpha) returns a 3-by-3 filter approximating the shape of the two-dimensional Laplacian operator.
The parameter alpha controls the shape of the Laplacian and must be in the range 0.0 to 1.0. The default value for alpha is 0.2.
3.1.3 资源
http://fourier.eng.hmc.edu/e161/lectures/gradient/node8.html (非常清晰的Laplacian Operator介绍,本文的主要参考)http://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htm
相关文章推荐
- Android开发常见实用API(二)
- treemap
- 快排代码示例
- js中apply()和call()方法的使用
- 深度学习简介(一)——卷积神经网络
- Java_java动态编译整个项目,解决jar包找不到问题
- 使用MD5对明文密码进行加密
- 公司后台商品添加操作流程
- spring boot(4) 权限
- Fiddler(八)| 脚本示例
- 客户端(浏览器)缓存
- c 语言模块接口函数在main之前注册
- 【转】Valid signing identity not found解决办法(原有IDP私钥丢失)及Certificate、App ID、Devices、Provisioning Profiles之间区别--不错
- datastage小结
- JS判断IP地址格式是否正确
- CSS实现三级菜单导航
- 淑梅派树莓派做wifi热点并安装Facebook网络模拟测试工具
- 图像处理-线性滤波-1 基础(相关算子、卷积算子、边缘效应)
- 12 种编程语言的起源故事
- iOS 疑难杂症 — — 推送本地国际化 loc-key 本地化失败的问题