Abstract: 数字图像处理:第31天
Keywords: 锐化
本文最初发表于csdn,于2018年2月17日迁移至此
开篇废话
这篇作为基础篇,所以废话不多,但感觉很多人对锐化有误解,尤其是和边缘提取,其实这两个概念完全是两回事,当然有相关的地方,下面详细说说自己的理解。
锐化的理解
首先说说锐化,锐化是图像增强的一部分,前面说过了,增强的目的是使观察者看起来更容易识别某些模式,要观察的模式从频率域来分就有低频模式和高频模式,低频模式,也就是之前一直在讲的相对变化缓慢的部分,或者根本没有灰度变化的大片区域,高频部分,就是接下来讲的,图像的细节,细节的定义不知道是什么,但边界,轮廓,一些变化强烈的部分算是细节,当然噪声也被归类到了细节,但细节的具体定义我还不知道,是否有相关算法能够对细节进行定义,还不知道。锐化的目的就是在图像中强调这些细节,而不是提取这些细节。也就是说对原图中的细节进行一定的提升,使得图像对于观察者来说更容易识别或者看起来更舒服。
根据上面的解释,我们就能得到图像锐化的一般步骤:
因为要突出细节,所以第一步就是找到细节,至于如何找到细节,冈萨雷斯书中给出了三种方法,一阶微分,二阶微分,非锐化掩蔽(unsharpen mask)。
突出细节的方法:将提取的细节,或细节乘以预定的系数后与原图像相加(或相减)。这样就得到了锐化后的图像。
数学基础
一阶微分
因为图像是离散信号,所以其一阶微分并不像连续函数按照极限方式的定义,而且对数字函数的一阶微分定义有不同理解,但所有的定义都满足一下三点:
- 恒定灰度值区域一阶微分为零
- 灰度台阶或者灰度斜坡起始处一阶微分非零
- 在灰度斜坡上一阶微分非零
对于函数f(x)的一阶微分或导数,将展开为关于x的泰勒级数,令,只保留泰勒级数的线性项结果为数字差分:
使用偏导数是为了与图像函数对应,因为图像函数是二维函数,显然当函数只有一个变量的时候:
于是我们得到一阶微分的基本定义是差值。
二阶微分
对于二阶微分,我们对上面式子关于x再次求导,得到二阶导数表达式:
上面第二行用到了一阶微分的定义,所以得到了二阶微分的表达式。
与一阶微分类似,二阶微分也必须保证下面几点
- 在恒定灰度区域为零
- 在灰度台阶和灰度斜坡起始处为非零
- 沿灰度斜坡微分为零
看一个一维的例子:
上面是一幅图的一行数据,数据中包含了斜坡,孤立点,线条,和台阶,可以看到下面对应的原始数据,一阶导数,二阶导数,一阶导数是原始数据的差,二阶导数是一阶导数的差。当然减数和被减数的顺序可以从左到右也可以从右到左。
可以对照上面的实际数据,证明必须要满足的三点都成立。所以我们可以用此来定义一阶和二阶微分。
上面数据中,我们可以看到在斜坡处,二阶微分会出现一个零交叉,这对于边界定位来说是非常有用的,因为在图像中边缘一般情况下是以斜坡方式存在,所以,一阶微分给出的边缘会相对较粗,二阶微分给出较准确的位置,也正是因为这一点,二阶微分比一阶微分在锐化细节方面表现更好。总结
因为以上为纯理论知识,所以今天做一个简单的总结,相关的实验和图像处理结果会在后面的相关算法介绍中给出。