偏微分方程与图像处理.
- 格式:doc
- 大小:232.00 KB
- 文档页数:11
偏微分方程在图像处理中的应用近年来,随着计算机技术的飞速发展,图像处理技术在各个领域得到了广泛应用。
而偏微分方程作为数学分析中的重要工具,也在图像处理中发挥着重要的作用。
本文将探讨偏微分方程在图像处理中的应用。
一、图像去噪图像去噪是图像处理中的一个重要问题,而偏微分方程可以通过模型来实现图像的去噪。
常见的偏微分方程去噪模型有总变分模型和非局部模型。
总变分模型是一种基于全变分的去噪方法,它通过最小化图像的总变分来实现去噪。
总变分是图像灰度在空间上的变化程度的度量,通过控制总变分的大小,可以实现去除图像中的噪声。
非局部模型则是通过对图像进行非局部相似性的测量,将图像的每个像素点与其周围像素点进行比较,从而实现去噪的效果。
二、图像增强图像增强是指通过一系列的处理方法,改善图像的质量和视觉效果。
偏微分方程可以通过图像的梯度信息来实现图像的增强。
梯度是指图像中像素灰度变化的速率,是图像中最重要的特征之一。
通过计算图像的梯度,可以得到图像中每个像素点的亮度变化情况,从而实现图像的增强。
常见的偏微分方程增强模型有梯度扩散模型和非线性扩散模型。
梯度扩散模型通过对图像的梯度进行扩散,使得图像中的细节信息得到增强。
非线性扩散模型则是通过对图像的梯度进行非线性的处理,进一步增强图像的细节信息。
三、图像分割图像分割是将图像分成若干个具有独立特征的区域的过程。
偏微分方程可以通过对图像的边缘进行检测,实现图像的分割。
边缘是图像中灰度变化突然的地方,是图像分割中最重要的特征之一。
通过对图像的边缘进行检测,可以将图像中的不同区域分割开来。
常见的偏微分方程分割模型有基于水平集的模型和基于变分的模型。
基于水平集的模型通过对图像中的边缘进行演化,实现图像的分割。
基于变分的模型则是通过最小化图像的能量函数,将图像分割成不同的区域。
四、图像恢复图像恢复是指通过一系列的处理方法,从损坏或噪声严重的图像中恢复出原始图像。
偏微分方程可以通过最小化图像的能量函数,实现图像的恢复。
偏微分方程在医学影像处理中的应用研究
偏微分方程是数学中的一种重要分支,广泛用于物理学、工程学、生物学等各个领域。
在医学影像处理中,偏微分方程得到了广泛的应用。
本文将从三个方面探讨偏微分方程在医学影像处理中的应用研究。
一、图像分割
医学影像处理中最基本的问题之一是图像分割,即将影像中不同的组织和器官分割开来。
这种分割是医生进行病变检测和诊断的基础。
偏微分方程方法是图像分割中常用的方法之一,比如曲率流方程和Allen-Cahn方程等。
这些方法可以大大减少计算量和数据噪声的影响,提高图像分割的准确度。
二、三维造影
三维造影是现代医学影像学的重要方法。
偏微分方程方法可以用于三维深度重建,如数字几何处理、曲面参数化、矩形化和网格生成等。
这种方法可以通过三维造影重建获取更真实的图像信息,进一步提高医生的诊断和治疗能力。
三、数字模拟
数字模拟是指将实际的物理过程进行数值计算,得到模拟结果。
在医学影像处理中,数字模拟可以用于评估不同治疗方法和手术的效果。
偏微分方程可以用于模拟许多医学问题,如血液流量计算、血流压力分析、肺泡气体交换模拟和心脏流量计算等。
这些模拟结果可以为医生提供更全面的治疗建议和手术方案。
综上所述,偏微分方程在医学影像处理中的应用研究具有重要的意义。
未来,偏微分方程在医学影像处理领域的应用将会越来越广泛,为医学科技进步和人类健康事业的发展做出更大的贡献。
基于偏微分方程的图像修补方法赵恒军;牛艳霞【摘要】根据最小能量化泛函所建立的图像修补模型可以得到其欧拉方程.把该欧拉方程所对应的梯度下降流作用于需要修补的图像,当偏微分方程的解稳定时,此时的解就是修补后的图像.基于该原理建立了一个图像修补方程,并实现了此图像修补算法.从这个修补方法的修补效果可以看到,修补后的图像具有良好的光滑性.【期刊名称】《河南工程学院学报(自然科学版)》【年(卷),期】2010(022)001【总页数】3页(P60-62)【关键词】图像修补;偏微分方程;变分法;梯度递减【作者】赵恒军;牛艳霞【作者单位】河南工程学院数理科学系,河南,郑州,451191;中原工学院理学院,河南,郑州,450007【正文语种】中文【中图分类】TP391数字图像修补近年来已经成为数字图像处理的研究热点之一.图像修补技术是针对图像中遗失或者损坏的部分,利用未被损坏图像的信息,按照一定的规则填补,使修补后的图像接近或达到原图的视觉效果.图像修补的建模过程一般依赖于Helmholtz最佳猜测原理[1].但从数字角度来看,图像修补是一个病态问题,因为没有足够的信息可以保证能唯一正确地恢复被损坏区域,所以图像修补绝不是简单的图像插值问题.人们从视觉心理学角度进行分析,提出了各种假设限定来解决这个问题.Bertalmio,Sapiro,Caselles Balleste在文献[2]中首先将数字图像修补作为一个研究课题正式提出来.目前所出现的图像修补方法主要有非线性滤波方法,贝叶斯方法,小波和谱分析方法以及主要基于纹理突袭的学习生长方法和统计方法.除了上述提到的经典方法外,近年来很多研究人员将偏微分方程模型和变分模型用于图像修补研究.用变分和偏微分方程方法处理图像使得能够在连续域中分析图像,从而简化问题,否则只能依赖点阵和各向同性算子分析图像.在连续域中,可以将偏微分方程看作是在无限小邻域内迭代的局部滤波器,利用对偏微分方程的这种解释,可以将许多已知的迭代滤波器联合并分类,从而推出新的基于偏微分方程的图像修补模型.变分和偏微分方程方法的另一个优点是能够利用数值偏微分方程获得快速、准确、稳定的解.1 基于偏微分方程的图像修补原理图像处理中的一些重要的偏微分方程大多和热方程以及扩散强度相联系,并且可以利用各种算子建立相应的偏微分方程,比如可以从演化方程(如经典Snake模型[3])的导数中得到,也可以从求解变分问题中获得,此时的基本思想是最小能量化泛函. 大量用于图像处理的偏微分方程都是根据最小能量化泛函得到的,下边先介绍一个关于变分法的经典结果.给定一个一维函数u(x)∶[0,1]→R,并且有边界条件: u(0)=a, u(1)=b,这里又给定另一个函数F∶R2→R.定义能量模E:此时的问题是:求使该能量模最小的u的取值.根据微积分知识,可以得到:(1)该式是能量函数E(u)取得极值的必要条件,此即为一维变分问题的欧拉方程.类似地,对于能量形式:也可以得到其欧拉方程:(2)同样,可得到二维问题的欧拉方程:给定二维函数u(x,y)∶Ω→R, Ω∈R2,以及其能量函数E,这里:则其欧拉方程为:(3)例如,设F=ρ(|u|), 这里ρ(r)∶R→R是给定的函数,u是u的梯度.即:则其欧拉方程为:即:(4)对于特殊情形ρ(r)=r2,因为ρ′(r)=2r,则此时(4)式即为 div(u),即△u=0,这里△表示拉普拉斯算子.由以上可知, 根据最小化能量泛函的思想可以得到其欧拉方程,而此欧拉方程即为能量泛函取得最小值的必要条件.现在的问题是如何求出该欧拉方程的解,也就是如何去求解方程E′(u)=0,从而求得使能量泛函E(u)取得最小值时的u的取值.对于如何求解该方程,一般情况下直接求解是很困难的,甚至可以说是不可能的.现在给出一个比较可行的求解欧拉方程的技巧.首先给定一个初值u0, 再引进一个辅助的时间参数t, 然后来求偏微分方程的数值解.随着t的增长,当该方程达到稳定状态,即时的解u就是我们要找的方程E′(u)=0的解.这个技巧称为梯度递减(Gradient descent).不过在利用这种技巧前,常常需要解决一些问题.例如,这个偏微分方程的解是否唯一?它的解是否依赖于初值条件?当然,在能量非凸的情况下,这个解将会很大程度地地依赖于初值u0.总之,基于偏微分方程的图像修补可以看做是这样一个过程:根据图像修补模型(建立的能量泛函),可以得到其欧拉方程,再把该欧拉方程所对应的梯度下降流作用于需要修补的图像(称它为初始图像u0),此时梯度下降流即为图像修补方程,随着时间参数的增长,图像会一步步地被修补,当偏微分方程的解稳定时的解就是修补后的图像.2 用光滑修补模型建立偏微分方程的图像修补记D为待修补区域,E为待修补区域的外邻域,一般为环状,如图1所示.图1 待修补区域及其外邻域Fig.1 Being patched region and its outer neighborhood记修补前E∪D区域内的图像值为u0,修补后E∪D区域内的图像值为u.光滑的图像修补模型为:u|2dxdy(5)该图像修补模型的几何意义是:在修补的图像中,使沿各水平线的梯度积分最小,所以趋向于得到光滑图像,即该修补模型是为了使待修补区域及其边界尽可能的光滑.由以上介绍的变分问题的欧拉方程的知识可知,该模型的欧拉方程为:△u=0,其对应的梯度下降流(即图像修补方程)为:=△u=uxx2+uyy2(6)该方程是一个各向异性的扩散方程,扩散强度的大小依赖于各点的梯度,即等水平线的强度变化,而不依赖其他几何信息.设(i, j)为目标像素,时间层n=0,1,2…,则un(i, j)表示像素(i, j)在时间层n处的灰度值,uxx(i, j)表示(i, j)处对x的二阶偏导数.那么,该图像修补方程离散化后为:(7)最终的算法步骤如下:先将待修补图像各像素点的灰度值读取出来,判断哪些是待修补区域,哪些是非修补区域.将待修补区域内的像素点记为0,非修补区域内的像素点记为1,再对待修补图像中的像素点逐一进行判断,如果当前像素点的标记为0,就将该点的灰度值按(7)中的第一式进行迭代;如果当前像素点的标记为1,就将该点的灰度值按(7)中的第二式进行迭代,这样就更新了待修补图像各像素点的灰度值.设定N及δ>0,当迭代N次后,计算前后两次迭代的图像距离差,设新旧两幅图像分别为u和v,将新旧两幅图像的距离差定义为:若距离差小于δ,则停止迭代;若距离差大于δ,则增大迭代次数N,继续进行迭代.当前的迭代结果即为修补后图像.图2是用光滑模型对图像修补前后的对比.图2 修补前后图像对比Fig.2 The comparison of the primal image and the patched image3 结语本文基于偏微分方程方法建立了一个光滑图像修补模型,利用该模型修补图像的过程中,使沿各水平线的梯度积分最小,也即是使待修补区域及其边界尽可能光滑,趋向于得到光滑图像.从试验的结果也可以看到,该光滑修补模型使修补后的图像光滑,具有良好的修补效果.但此方法的不足之处是,若修补区域在边缘处时,这种模型的修补结果就模糊了边缘,使得修补的痕迹较为明显,这是有待继续改进的地方.参考文献:【相关文献】[1] GEMAN S,GERMAN D. Stochastic relaxation, Gibbs distribution and the Bayesian restoration images[M]. IEEE Tran PAMI-616,1984.[2] BERTALMIO M,MASELLES G D,BALLESTER C. Image inpainting. proceedings of the 27th international conference on computer graphics and interactive techniques(SIGGRAPH 2000)[M]. New Orleans, LA,ACM Press, New York, 2000.[3] GOLDENBERG R, KIMMEL R, RUDZSKY M. Fast geodestic active contour[J]. IEEE Transactions on Image Processing, 2001, 10(10):1 467-1 475.。
偏微分方程及其在图像处理中的应用模型讨论摘要:偏微分方程是一种重要的数学工具,它在许多领域中的应用广泛。
本文将重点讨论偏微分方程在图像处理中的应用模型,包括图像去噪、图像增强和图像分割等方面的应用。
通过对具体模型的描述和讨论,可以更好地理解偏微分方程在图像处理中的作用,为相关领域的研究和应用提供参考。
引言:图像处理是一门研究如何对图像进行识别、分析和改变的学科。
随着数学和计算机科学的发展,偏微分方程在图像处理中的应用得到了广泛关注。
偏微分方程通过数学模型,可以有效地对图像进行去噪、增强和分割等处理,不仅提高了图像质量,还扩展了图像处理的应用领域。
一、图像去噪图像噪声是指图像中由于各种因素导致的不希望的噪声现象。
为了得到清晰的图像,需要对图像进行去噪。
偏微分方程在图像去噪中有广泛的应用。
例如,经典的热方程可以用来模拟图像中的噪声传播过程。
通过求解热方程,可以将图像噪声在空间上进行平滑,从而得到去噪后的图像。
此外,还可以利用偏微分方程和变分方法来设计去噪模型,如全变分去噪模型和非局部均值去噪模型等。
二、图像增强图像增强是指通过一系列算法和方法,使得图像在视觉上更加清晰、鲜明和具有良好的对比度。
偏微分方程方法在图像增强中也得到了广泛的应用。
例如,非线性扩散方程是一种常用的偏微分方程方法,通过在图像中引入扩散项,可以有效地增强图像的细节和边缘。
此外,还可以利用偏微分方程和变分方法来设计增强模型,如总变分图像增强模型和增强双曲正切模型等。
三、图像分割图像分割是指将图像划分成若干个具有独立意义的区域的过程。
偏微分方程在图像分割中也有重要的应用。
例如,平均演化方程是一种常用的偏微分方程方法,通过在图像中引入演化项,可以实现图像的分割。
此外,还可以利用偏微分方程和变分方法来设计分割模型,如最小变分分割模型和水平集分割模型等。
四、应用实例偏微分方程在图像处理中有许多实际应用。
例如,在医学图像处理中,偏微分方程可以用来对X光、CT和MRI等图像进行去噪和增强,从而提高诊断准确性。
基于偏微分方程的图象处理课程设计(2014年秋季学期)学院专业信息与计算科学班级信计12-1班名称基于Sobel算子的图像锐化组员指导教师2014 年月日一、目的与要求《图像处理》就是信息与计算科学专业一门重要的基础课程之一,它主要应用在医疗、生物等学科的图象处理方面,就是当今社会发展较为迅速的一门技术。
课程设计的一个重要的环节就是实践环节,主要锻炼学生的动手能力,以及团队能力,独立思考能力等。
二、设计的方案2、1模型的建立Sobel算子 (加权平均差分法)Sobel算子就是典型的基于一阶导数的边缘检测算子,由于该算子中引入了类似局部平均的运算,因此对噪声具有平滑作用,能很好的消除噪声的影响。
Sobel算子包含两组3x3的矩阵,分别为横向及纵向模板,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。
实际使用中,常用如下两个模板来检测图像边缘。
-1 0 1与一些传统的图像锐化方法相比,基于sobel 算子的锐化在诸多方面都得到了改进,这些也成了sobel 算子发展的有力保证,sobel 算子的具体定义如下:Dx=[f(x+1,y-1)-f(x-1,y-1)]+2[f(x+1,y)-f(x-1,y)]+[f(x+1,y+1)-f(x-1,y+1)], Dy=[f(x-1,y+1)-f(x-1,y-1)]+2[f(x,y+1)-f(x,y-1)]+[f(x+1,y+1)-f(x+1,y-1)]、 Sobel 算子也可用模版表示,如图2所示,模版中的元素表示算式中相应像素的加权因子。
101202102-⎡⎤⎢⎥-⎢⎥⎢⎥-⎣⎦ 121000121---⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦图22、2模型的实现由于sobel 算子就是相隔两行或两列之差分,故边缘两侧元素得到增强,同时由于sobel 算子引入了平均元素,对图像中的随机噪声有一定的平滑作用,所以离散化采用sobel 算子,同时以sobel 算子较强的锐化作用达到锐化目的三、主要实现程序 ( MATLAB )命令:>> W_H1=[-1,0,1;-2,0,2;-1,0,1];>> W_H2=[-1,-2,-1;0,0,0;1,2,1];>> T=0、165;>> L=imread('1、bmp','bmp');>> %L=imread('1、tif','tif');>> [height,width]=size(L);>> L1=double(L);>> L2=zeros(height+2,width+2);>> L2(2:height+1,2:width+1)=L1;>> for i=2:height+1for j=2:width+1sum1=0;sum2=0;for m=-1:1for n=-1:1sum1=sum1+W_H1(m+2,n+2)*L2(i+m,j+n); endendfor m=-1:1for n=-1:1sum2=sum2+W_H2(m+2,n+2)*L2(i+m,j+n); endendgrey=abs(sum1)+abs(sum2);L1(i-1,j-1)=grey;endend>> big=max(max(L1));>> small=min(min(L1));>> for i=1:heightfor j=1:widthL1(i,j)=(L1(i,j)-small)/(big-small);if(L1(i,j)>T)L1(i,j)=1;elseL1(i,j)=0;endendend>> imshow(L1)四、测试与调试实验结果:1.原图像:2.Sobel算子锐化图像:4、1图像锐化的概念在图像增强过程中,通常利用各类图像平滑算法消除噪声,图像的常见噪声主要有加性噪声、乘性噪声与量化噪声等。
基于偏激分方程(PDE)的图像去噪的方法综述摘要:偏微分方程(PDE)方法,是图像处理中的一种较新的方法,有着很强的数学基础,在图像处理中的应用发展非常快。
本文将近几年应用较多的几种图像去噪方法进行了系统的概括总结,指出了该领域的学者是如何一步步进行改进得到新方法的,并对该领域的发展做了新的展望。
关键词:图像去噪偏微分方程平滑滤波总变差1 引言图像去噪是数字图像处理中的一个经典问题。
随着数字图像处理技术的发展,大量数字图像经由信道传输或通过介质保存。
图像在传输或存储过程中受到外界物理条件的限制,所产生的噪声会影响图像的视觉效果。
而在众多的应用领域中,又需要清晰的、高质量的图像,因此,图像去噪是一类重要的图像处理问题,同时也是其它图像处理的重要预处理过程,对后继处理带来很大的影响。
基于偏微分方程(PDE)的方法进行图像处理因具有各向异性的特性,自适应性强,能够在平滑噪声的同时更好的保持边缘与纹理等细节性息,故在过去的二十几年中获得了巨大的发展。
这个领域的实质性的创始工作归功于和各自独立的研究。
他们严格地介绍了尺度空间理论并指出图像与具有递增方差的高斯函数做卷积实现低通滤波和求解以原图像为初值的热传导方程等价。
然而由于高斯滤波是各向同性扩散,在去除噪音的同时模糊了边界。
改进滤波技术,在去噪的同时能完好的保存边缘等重要信息,一直是这一领域的目标。
本文详细介绍了现存的基于PDE的图像去噪的主要方法,并指出了它们之间的联系。
2 图像去噪模型偏微分方程与图像去噪的结合产生了许多模型,大体上可以分为两大类:一种是基本的迭代格式,随着时间的变化更新,使得图像向所要得到的效果逐步逼近,这种算法的代表为的方程以及对其改进的后续工作。
该方法在前向扩散的同时具有向后扩散的功能,所以具有平滑图像和边缘锐化的能力,并且扩散系数有很大的选择空间。
但是该方法是病态问题,在应用中不稳定。
另一种是基于变分法的思想,确定图像的能量函数,通过求能量函数的最小值,使得图像达到平滑状态,现在得到广泛应用的总变差TV(Total Variation)模型[4]就是这一类。
偏微分方程的起源与发展及其应用研究摘要:偏微分方程起源于17世纪,当时科学家们开始研究如何描述自然界中的各种现象,例如牛顿的万有引力定律、莱布尼茨的微积分等。
这些研究催生了许多科学领域的发展,包括物理学、化学、生物学、经济学等。
本文将介绍偏微分方程的发展历史及其应用领域,旨在为相关学者提供参考。
关键词:偏微分方程;发展过程;应用领域1. 起源与发展偏微分方程的起源可以追溯到17世纪末,法国数学家偏微分方程之父Joseph-Louis Lagrange和英国科学家Isaac Newton提出了许多基本概念,如函数、导数和微分等,为偏微分方程的发展奠定了基础。
18世纪初,瑞士数学家Leonhard Euler开始研究偏微分方程,他引入了函数的概念,并建立了初步的理论体系。
18世纪中叶,法国数学家Alexis Clairaut提出了偏微分方程的一般形式,为后来的研究奠定了基础。
2. 数学物理方法偏微分方程是描述物理、化学等自然现象中的变化和演化的数学工具。
它的基本特点是涉及到的变量不止一个,而且这些变量可以同时在时间和空间上变化。
解决偏微分方程需要掌握其基本原理和解题方法,例如分离变量法、特征线法、格林函数法等。
这些方法在解决实际问题时非常有用。
3. 经典例子偏微分方程有许多经典例子,例如热传导方程、波动方程、泊松方程等。
这些方程在物理学、工程学、经济学等许多领域都有着广泛的应用。
例如,热传导方程可以描述物体的热传递过程,波动方程可以描述波的传播过程,泊松方程可以描述电场和引力场的分布等。
4. 现代应用随着科学技术的发展,偏微分方程在现实生活中的应用越来越广泛。
例如,在物理学中,偏微分方程被用于描述量子力学、相对论力学、流体力学等领域中的问题;在经济学中,偏微分方程被用于描述市场动态、经济增长、金融风险等问题;在图像处理中,偏微分方程被用于图像去噪、图像压缩、图像分割等问题。
5. 数值分析和近似解解决偏微分方程的过程中,数值分析和近似解是非常重要的方法。
偏微分方程在图像处理中的应用研究随着数字图像处理技术的不断发展,越来越多的应用场景需求图像去噪、图像增强等处理。
在数字图像处理领域中,偏微分方程成为了一个非常重要的数学工具,被广泛地运用到图像去噪、分割、形态学等方面的处理中。
偏微分方程是一种解决物理现象中时空变化的方程。
在图像处理中,图像可以看作是一个随时间和空间变化的物理场,直接运用偏微分方程来描述这一过程,可以有效地处理图像。
在图像去噪方面,偏微分方程与总变分能量模型结合可以很好地处理图像数据。
在总变分能量模型中,通过建立图像本质的一些属性,如图像的灰度变化、平滑性等,去噪可以看做是在总变分能量模型中,最小化能量函数,同时去掉图像中噪声的影响。
这个问题可以用偏微分方程进行求解。
在图像增强方面,常常需要对图像进行锐化处理和去除震动。
这时可以使用非线性扩散滤波器,这是一种基于偏微分方程的方法。
非线性扩散滤波器通常通过改变非线性扩散的系数,来达到去除图像中的噪声、增强图像细节的效果。
这种方法被广泛应用在医学图像处理和遥感图像处理等领域中。
偏微分方程在图像分割方面,也被广泛应用。
在传统图像分割技术中,往往只能分割出其中一个前景物体。
而在近年来,通过使用基于偏微分方程的方法,可以更好的实现多目标分割问题。
此外,还可以通过变形模型和演化方程实现图像形态学处理。
这种方法基于偏微分方程的曲线或者表面演化等过程,可以完成图像缩放、旋转、拼接和形状的修复等处理。
总之,偏微分方程作为一种有效的数学方法,对图像处理和分析有很重要的作用。
它可以通过描述时间和空间变化处理图像数据,并且在去噪、增强和分割等方面得到广泛应用。
随着各种场景对图像的处理需求日益增加,偏微分方程在图像处理领域的应用前景也变得非常广泛和多样化。
偏微分方程与图像处理(曲线的演化)实验名称: 平面曲线的演化实验内容:1.用水平集方法对曲线进行演化;2.用离散中值滤波方法进行演化。
理论分析:我们已知道:曲线演化方程式(平均曲率运动方程MCM )ck N t∂=∂; 1. 曲线演化水平集方法平面封闭曲线可以表达为一个二维函数u(x,y)的水平(线)集(,,){(,,):(,,)}c L x y t x y t u x y t c ==这样就可将曲线演化问题嵌入到函u(x,y,t)的演化问题。
即转化为水平集演化问题 曲线演化水平集方法的基本方程式如下:||uk u t∂=∇∂其中,||u ∇=()223/2222xx y x y xy yy x xyu u u u u u u k uu -+=+进而推得:22222xx y x y xy yy xx yu u u u u u u u t u u -+∂=∂+;其中x u ,xy u ,xx u 可采用中心差分近似 ()()1,1,1,,1,21,11,11,11,12(,)22(,)(,)4i j i jx i j i j i jxx i j i j i j i j xy u u u i j xu u u u i j x u u u u u i j x +-+-++--+--+-=∆-+=∆+--=∆对于y u ,yy u 有类似的表达式。
x ∆表示相邻几个点。
从而完整的演化公式为:221,,222xx y x y xy yy x n ni ji j x yu u u u u u u u u tu u +-+=+∆+ (1)其中,t ∆为演化步长,在本程序中取为1。
这样就涉及到两个问题: (1).嵌入函数的选用嵌入函数为—令u(x,y)表示平面上(x,y)点到曲线C 的带有符号的距离(见课本)。
因此研究的曲线总对应于零水平集,这样只要检测过零点条件,1,.0i j i j u u +< 或 ,,1.0i j i j u u +<就可决定曲线C 目前所处的位置,事实上,我们在程序中也是这样做的。
(2).初始化嵌入函数:计算平面上每一网格点到初始曲线0C 的距离,即到曲线各点距离的最小值,再根据此网格点在0C 的内部或外部赋以正号或符号。
只要前两步准备好,再按式(1)对某一闭合曲线进行演化,该曲线就会逐步光滑,转成椭圆,圆,直至点,然后消失。
(见后续的实验结果); 2. 离散中值滤波方法根据课本分析,我们知道,曲线演化方程式对应于离散中值滤波。
因此,利用该方法也可以看到曲线随着时间的演化。
具体利用下式实现:{}{}1{,,#1#,,}2xy M x y x b B x X b B =⊗=≥∈∈ 其中,⊗为“逻辑与”运算,xy B 是将结构元素的中心平移至(),x y 的集合。
实验主程序:1. 嵌入函数初始化程序该函数主要完成嵌入函数(,,)u x y t 的初始化,以便进行后续演化工作。
该函数的输出为嵌入函数(距离)和闭合曲线矩阵。
function [dis_u, fish_line]=fish_initialize()clear;[DataRange,datalen]=data_get(); %获得文本文档kk99.c 中的闭合曲线相应坐标信息。
max_row=max(DataRange(:,1)); %max_row=172 max_column=max(DataRange(:,2));%max_column=305%% -------------------------------------------完成闭合曲线的显示 m=max_row+10; n=max_column+10; fish_line=ones(m,n); for i=6:m-5 for j=6:n-5for k=1:datalenif (i==DataRange(k,1)+5)&&(j==DataRange(k,2)+5)==1 fish_line(i,j)=0; end end end endfigure;imshow(fish_line);f=full_fill(fish_line); figure;imshow(f); %填充闭合曲线,以便将曲线内的距离赋为负值;dis_u=distance(f,DataRange,datalen,5); %计算网格上的每一点到闭合曲线的距离% lever_set_display(dis_u); %4,0,-4 水平集的显示2.水平集演化程序该函数对水平集演化3000次,每300次输出一幅0水平集function yan_hua()clear;[dis_u, fish_line]=fish_initialize();u0=dis_u; det=1;[m,n]=size(u0); u1=ones(m,n);newpic=fish_line; figure;imshow(newpic);for num=1:3000for i=3:m-3for j=3:n-3u_y=(u0(i,j+2)-u0(i,j-2))/4;u_x=(u0(i+2,j)-u0(i-2,j))/4;u_yy=(u0(i,j+2)-2*u0(i,j)+u0(i,j-2))/4;u_xx=(u0(i+2,j)-2*u0(i,j)+u0(i-2,j))/4;u_xy=(u0(i+2,j+2)-u0(i-2,j+2)-u0(i+2,j-2)+u0(i-2,j-2))/16;g=(u_xx*u_y*u_y-2*u_x*u_y*u_xy+u_yy*u_x*u_x)/(u_x*u_x+u_y*u_y+eps);u1(i,j)=u0(i,j)+det*g;endendu0=u1;if mod(num,300)==0 %每300次输出一条0水平集for i=2:m-1for j=2:n-1if (u0(i,j)*u0(i+1,j)<0)|(u0(i,j)*u0(i,j+1)<0)==1newpic(i,j)=0;endendendfigure; imshow(newpic);endend3.离散中值滤波该函数对经过填充的闭合曲线(图像)应用离散中值算子进行滤波。
滤波240次,每30次输出一次图片function mid_smooth()clear;c=imread('w_fish.jpg'); %读入填充好的闭合曲线图像b=rgb2gray(c); %将读入图像转换为灰度图像并二值化,1(white),0(black)[m,n]=size(b);a=im2bw(b);%figure;imshow(a);newpic=ones(m,n); %提取二值化后的图像边缘线,以便嵌套滤波结果边缘线,方便对照for i=1:m-1for j=1:n-1if (a(i,j)+a(i+1,j)==1)|(a(i,j)+a(i,j+1)==1)==1newpic(i,j)=0;endendend% figure; imshow(newpic);for k=1:180 %采用9*9窗口对图像滤波180次,每30次输出一条边缘线c=ones(m,n);for i=5:m-4for j=5:n-4num=0;%----------------------------------------计算9*9窗口中白点的个数ass1=a(i-4,j-4)+a(i-4,j-3)+a(i-4,j-2)+a(i-4,j-1)+a(i-4,j)+a(i-4,j+1)+a(i-4,j+2)+a(i-4,j+3)+a(i-4,j+4); ass2=a(i-3,j-4)+a(i-3,j-3)+a(i-3,j-2)+a(i-3,j-1)+a(i-3,j)+a(i-3,j+1)+a(i-3,j+2)+a(i-3,j+3)+a(i-3,j+4); ass3=a(i-2,j-4)+a(i-2,j-3)+a(i-2,j-2)+a(i-2,j-1)+a(i-2,j)+a(i-2,j+1)+a(i-2,j+2)+a(i-2,j+3)+a(i-2,j+4);ass4=a(i-1,j-4)+a(i-1,j-3)+a(i-1,j-2)+a(i-1,j-1)+a(i-1,j)+a(i-1,j+1)+a(i-1,j+2)+a(i-1,j+3)+a(i-1,j+4); ass5=a(i,j-4)+a(i,j-3)+a(i,j-2)+a(i,j-1)+a(i,j)+a(i,j+1)+a(i,j+2)+a(i,j+3)+a(i,j+4);ass6=a(i+1,j-4)+a(i+1,j-3)+a(i+1,j-2)+a(i+1,j-1)+a(i+1,j)+a(i+1,j+1)+a(i+1,j+2)+a(i+1,j+3)+a(i+1, j+4);ass7=a(i+2,j-4)+a(i+2,j-3)+a(i+2,j-2)+a(i+2,j-1)+a(i+2,j)+a(i+2,j+1)+a(i+2,j+2)+a(i+2,j+3)+a(i+2, j+4);ass8=a(i+3,j-4)+a(i+3,j-3)+a(i+3,j-2)+a(i+3,j-1)+a(i+3,j)+a(i+3,j+1)+a(i+3,j+2)+a(i+3,j+3)+a(i+3, j+4);ass9=a(i+4,j-4)+a(i+4,j-3)+a(i+4,j-2)+a(i+4,j-1)+a(i+4,j)+a(i+4,j+1)+a(i+4,j+2)+a(i+4,j+3)+a(i+4, j+4);num=ass1+ass2+ass3+ass4+ass5+ass6+ass7+ass8+ass9;%----------------------------------------计算9*9窗口中白点的个数% % 滤波过程 if num>=41c(i,j)=1; %曲线回缩 elsec(i,j)=0; %曲线外放 end end end ka=c;%%----------------------------------------每30次提取一次边缘线,并将其套在前面的边缘线中if mod(k,30)==0for i=1:m-1 for j=1:n-1if a(i,j)+a(i+1,j)==1|a(i,j)+a(i,j+1)==1 newpic(i,j)=0; end end end end endfigure; imshow(newpic); %在一幅图newpic 中显示6条滤波曲线实验结果及分析:图1 给定的闭合曲线及填充结果图2 4,0,-4的水平集显示1.用水平集方法演化结果图3 演化3000次,每300次输出一条曲线2.离散中值滤波方法结果图4 滤波180次,每30次输出一次边缘线,第一次为原闭合曲线结果分析:由图3和图4可以看到(1)水平集方法和离散中值滤波方法都可以实现曲线的演化(对后者来讲是图像的轮廓)(2)然而,两者有以下不同:①前者比后者演化推进速度慢得多。