CDD图像修复模型及matlab程序实现

前言

      CDD(Curvature Driven Diffusions)模型是Chan和Shen在TV(Total Variation)模型的基础上引进了曲率驱动而形成的,解决了TV模型不能修复图像视觉连通性的问题要想了解CDD模型,需要先了解TV模型的原理。

TV模型简介

     TV模型最先是由Rudin等人在1992年提出来的,当时是应用于图像的噪声去除处理。Chan等人于2002年首次将该算法引入到图像修复领域,形成了TV 模型图像修复算法。TV 模型涉及数学中的变分法跟泛函的知识,它是依据原始图像的先验知识和不完整的图像数据,建立能量泛函,求解该能量泛函所得到的极值就是修复后的图像。


图1

如图1所示, D 为图像破损区域,ED的边缘已知部分,设Ω=DE则可定义 上的一个能量函数为:


式中,u(x,y)为图像函数u(x,y)的梯度,r为一非负的实函数。在该函数的基础上,考虑图像受到噪声的影响,得到约束式,再通过Lagrange乘子法将问题转化为无约束条件的极值问题,最终得到TV模型的Euler-Lagrange方程(此推导过程不作详解,详细过程可参照网上对于TV模型的介绍)


由于Euler-Lagrange方程是非线性偏微分方程,实际求解时常用近似的数字差分方程代替。采用半点格式进行离散化,采点步长h=1如图2),最终得到原图像uo的迭代求解公式,n代表次数:



CDD模型及数值实现

                                        

图2

       TV修复模型的扩散强度1/u仅依赖于等照度线的梯度值,而不依赖于等照度线的几何信息,总是倾向于用最短的直线来连接断裂的线性结构物体。TV模型不能满足视觉连通性原则。而CDD模型利用曲率来控制扩散强度,当图像修复过程到达(c)状态时,增大扩散强度,从而使图像信息进一步扩散,达到满足连通性效果。

曲率

         

CDD模型的扩散强度

                                   

得到CDD模型方程:

                             

以图2中,CDD模型的数值求解同样是采用半点格式,e点为例

                                      

                          

同理,可以求得其他点的曲率。

实验结果

1.TV模型实验结果:

                                           

2.CDD模型实验结果:

      

                          破损图像                                                                TV修复效果                                                          CDD修复效果 

算法程序:

       由于目前网上能下载的CDD模型的matlab程序中的曲率k求解公式大多是错的,且达不到修复连通性的效果。而本文程序是根据原理编写,能真正达到修复连通性的效果,程序已上传,下载请到

http://download.csdn.net/detail/cs_o_1/9665751(选中,右键打开,如打不开链接,请复制粘贴访问)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章