- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于各向异性扩散的数字图像处理
1 Perona-Malik算法概述
各向异性扩散作为现行的一种非常流行的偏微分方程数字图像处理技术,是由传统的 Gaussian 滤波发展而来的,有着强大的理论基础,并有着传统的数字图像方法无法企及的良好特性,其特点是可以在平滑的同时保持边缘特征。由于这种优良的特性,使其在图像的平滑、去噪、恢复、增强和分割等方面得到了广泛的应用。
Koenderink和 Witkin两位学者把尺度空间的严格理论引入到了数字图像处理之中,而尺度空间理论正是现代偏微分方程数字图像处理的理论基础,他们的工作主要是将多尺度图像表示为 Gaussian 滤波器处理的结果,相当于将原图像输入热传导方程进而得到的序列时间图像。多尺度滤波得到的图像序列,可以看作各向同性热扩散方程的解,这就是用扩散方程的观点来看待高斯滤波:
(1.1)
不仅是热扩散方程可以产生尺度空间,其他的抛物线方程也可以产生尺度空间,进而满足极大值原理的演化方程也能定义一类尺度空间。各向异性扩散方程的提出是这个领域中一个里程碑式的标志,它开辟了数字图像处理中偏微分方程理论和应用的一个新领域,提出了各向异性扩散(Anisotropic Diffusion)方程,一般称为 Perona-Malik(简称 P-M)扩散模型。
(1.2)
其中是散度算子,是图像的梯度,是扩散系数。各向异性扩散是一个能量散发的过程,这个过程与能量曲面的形状有关,从数学上来看,其等价于一个能量最小化问题的求解。
从数学意义上讲Perona-Malik模型是改进的热传导偏微分方程。它是通过函数自适应地控制扩散速度。理论上希望边缘内部的区域,c远离0,图像可以平滑,而在边缘附近,,图像不再平滑。铃铛形的径向函数g(w)可取
(1.3)
或者
(1.4)
当时形成了各向异性的扩散模型:
(1.5)
可以利用Taylor级数展开进行线性近似
(1.6)
由于
(1.7)
所以可以得出P-K模型简化推导:
(1.8)
这样把较长的时间t分割为 ,始终从步计算到步即可
(1.9)
把 改写为,改写为,其中
(1.10)
(1.11)
则
(1.12)
其中
(1.13)
则得到Perona-Malik算法的下述迭代形式
(1.14)
其中,
以Perona-Malik算法为代表的各向异性扩散滤波模型既能有效地去除噪声,又能较好地保持图像的边缘和重要的细节信息。但是考虑到PM模型对小尺度噪声敏感以及部分边缘和细节失真问题的存在,对模型的扩散系数的改进仍然需要进一步的改进。
2算法实现
本算法的实验在VC++6.0环境下实现。先建一个类CDib,用来实现位图的载入以及一些参数的获取。新建一个类CPeronaMalik,类中函数PM( CDib* pDib )用来实现PM算法。
void CPeronaMalik:: PM( CDib* pDib )
{
int i=0,j=0;
int nWidth = pDib-GetWidth();
int nHeight = pDib-GetHeight();
int nWidthBytes = pDib-GetWidth();
unsigned char* pDibBits = pDib-GetpDibBits();
//每行字节数
int lineByte=(bmpWidth*biBitCount/8+3)/4*4;
//循环变量,针对彩色图像,遍历每像素的三个分量
int k;
int n;
double temp1=0;
double temp2=0;
int nn;//迭代次数
double deltat;
double delta;//步长,deltat小于0.25
//c1、c2表示扩散函数
int p;//范数
dou
文档评论(0)