基于水平集的gac模型的图像分割报告
- 格式:doc
- 大小:299.50 KB
- 文档页数:7
偏微分方程与图像处理(GAC的水平集方法)实验二 GAC 的水平集方法一 实验目的采用GAC 模型的水平集方法检测图像中对象的轮廓,以便有效地进行分割。
二 原理分析推广GAC 模型的水平集方法对应的PDE 为:u gc u g u gk u t∂=∇+∇•∇+∇∂ (3.31) 按照上式,曲线运动将受两种“力”的支配,第一种力来自于曲率几何形变—曲率运动(gc u gk u ∇+∇),不过它的强弱还要受到因子()g I ∇的影响。
I ∇为图象I(x,y)的梯度模值,函数g (r) 是可以是任何具有单调减性的函数。
因为图象梯度模值I ∇在图象的边缘附近有较大值,从而使g(I ∇)取极小的值,故在图象边缘附近,该作用力将会变的很小,因此有时将边缘函数()g I ∇称之为边缘停止函数。
常数c 的作用是加速曲线向内部收缩。
第二种力来自于g 的梯度(1,2)g αα∇=,它是一种不论当前C 的局部是在对象内部或外部,都能将曲线引向边界的“吸引力”。
从而g u ∇•∇总是使曲线向着更接近于边界线的方向运动,最终达到贴近对象边界的稳定状态。
由于这两种作用使曲线演化可最终达到紧靠轮廓这一稳定状态而不再继续演化。
采用单边迎风方案,根据(1.76)式的数值方案实现上式:考虑到 0g >,0c >可得:(1)()(){n n ij ij ij u u t g c +-=+∆∇()()()()max(1,0)min(1,0)max(2,0)min(2,0)x ij x ij y ij y ij D u D u D u D u αααα-+-+++++ (0)2(0)212[()()]}n ij ij x ij y ij g k D u D u ++ (2.1)其中()2222[(max(,0))(min(,0))(max(,0))(min(,0))]x ij x ij y ij y ij D u D u D u D u -+-+-∇=+++ (2.3),1,1(0)2i j i j x ij u u D u +--= 中心差分 (2.2),1,x ij i j i j D u u u ++=- 向前单边差分 (2.3),,1x ij i j i j D u u u --=- 向后单边差分 (2.4)三 编程过程1 准备工作1)读入图像I ,将其转化为灰度图象,重新调整图象的大小为[100,100]。
基于水平集方法的图像分割研究的开题报告一、研究背景图像分割是数字图像处理中的基本任务之一,目的是将一幅含有多种不同物体的图像分割为多个互不重叠的物体区域。
在计算机视觉、图像识别和医学影像等领域中,图像分割是前提和基础,对研究和应用具有重要意义。
目前,图像分割方法可以归为两大类:基于阈值的方法和基于边缘的方法。
基于水平集方法的图像分割是基于业内最新的图像分割算法,它是一种具有前沿性和高效性的方法,受到越来越多研究者的关注。
二、研究意义随着图像技术的应用不断推进,图像分割的需求越来越大,尤其是在医疗和机器视觉等领域。
由于水平集算法具有较好的收敛性、自适应性和几乎无需预处理等优势,可以准确地分割出图像中的边缘和区域,并能够有效地克服一系列传统算法的固有问题,因此,基于水平集方法的图像分割研究实现了图像分割的快速准确,为相关领域提供了强有力的支持。
三、研究内容1. 论文综述:介绍水平集方法的发展历程、目前的研究现状和存在的问题。
2. 基于水平集方法的图像分割算法:总结和归纳目前比较成熟的水平集算法,包括水平集方程、噪声和漏斗问题处理、初始轮廓和耦合问题等。
3. 算法实现:根据以上算法,设计并实现基于水平集方法的图像分割算法。
4. 实验评估:使用不同的数据集和评价指标,对算法进行实验评估,比较其准确性、效率和实用性。
五、研究方案1. 文献调研:收集和阅读相关领域的文献,深入了解图像分割和水平集算法的理论与应用。
2. 算法设计:结合实际应用需求,设计并实现基于水平集方法的图像分割算法,并根据数据特点进行优化。
3. 实验评估:采用公开数据集和评价标准进行算法评估,并与其他算法进行比较。
4. 论文撰写:总结研究成果,撰写开题报告和论文。
六、存在问题1. 数学理论难度较大,需要深刻理解和掌握相关理论知识。
2. 水平集方法在一些情况下存在数值不稳定和收敛速度慢等问题,需要解决。
3. 实验评估需要充分考虑算法的准确性、可靠性和实用性,在评价指标的选择和分析上需要严谨。
基于改进测地线模型的医学图像分割郑伟;孙淳晔;张晓丹;马泽鹏【期刊名称】《计算机工程与应用》【年(卷),期】2011(047)022【摘要】Spectral graph theory is introduced into the field of image retricval.The image is divided to sub-images according to gray levels, and adaptive cut algorithm is proposed to solve the difference of gray levels among images.Each cut is viewed as a sub-image, and the Normalized cut can be calculated among the sub-images via spectral graph theory and a Ncut matrix is made.The similarity is calculated between one sub-image and others and the eigenvector of the image is got using the Ncut matrix,achieving the purpose of image retrieval.%提出了一种由测地线活动轮廓模型GAC(Geodesic Active Contour)和局部区域信息相结合的图像分割新方法LGAC(Local Geodesic Active Contour).构造了基于图像局部信息的演化曲线符号压力函数和演化模型,用水平集方法演化实现,零水平集能准确地在目标边缘收敛,对目标背景对比度较低的图像的分割达到理想效果.利用高斯核函数对水平集函数平滑处理以维持演化稳定,节省了计算时间.实验结果证明了该方法的可行性.【总页数】3页(P180-182)【作者】郑伟;孙淳晔;张晓丹;马泽鹏【作者单位】河北大学电子信息T程学院,河北保定071002;河北大学电子信息T 程学院,河北保定071002;河北大学医学部,河北保定071002;河北大学医学部,河北保定071002【正文语种】中文【中图分类】TN911.73【相关文献】1.基于改进粗糙集概率模型的鲁棒医学图像分割算法 [J], 吴方;何尾莲2.基于改进测地线轮廓模型的图像分割算法 [J], 许亚军;韩应征3.基于改进测地线模型的前列腺超声图像分割 [J], 杨振森;李传富;周康源;张开华;贺礼4.基于改进GVF-测地线模型的颈动脉斑块的分割算法 [J], 吴学咏; 陶进绪; 连娟; 贾浩; 徐明才; 李昕5.基于改进GVF-测地线模型的颈动脉斑块的分割算法 [J], 吴学咏; 陶进绪; 连娟; 贾浩; 徐明才; 李昕因版权原因,仅展示原文概要,查看原文内容请购买。
基于水平集方法的图像分割关键技术研究的开题报告一、研究背景及意义随着数字图像处理技术的发展,图像分割已经成为图像处理领域中的重要研究方向之一。
图像分割将图像中不同区域进行分割和分类,是实现图像识别、图像检索、虚拟现实等应用的关键技术之一。
因此,图像分割技术的研究受到了广泛关注。
水平集方法是一种基于变分法的图像分割方法,它将图像中不同区域作为不同的水平集,通过优化水平集函数使得不同水平集之间具有较大的分界,从而实现图像分割。
水平集方法在图像分割领域具有较高的精度和鲁棒性,能够有效地处理各种形状和纹理复杂的图像。
因此,在图像分割领域,水平集方法得到了广泛的应用。
二、研究内容本文主要研究基于水平集方法的图像分割关键技术。
具体研究内容如下:1. 水平集方法原理:介绍水平集方法的基本原理,分析水平集函数的构造方式和优化方法,探讨不同水平集之间的分界方法。
2. 水平集方法改进:分析现有水平集方法存在的问题,探究改进方法,如曲线演化方法、形态学方法等,提高水平集方法的精度和鲁棒性。
3. 实验设计:基于公开数据集,设计实验方案,比较不同水平集方法的分割效果,分析各方法的优缺点。
4. 分析总结:总结不同水平集方法的适用范围和局限性,为未来的研究提供指导和参考。
三、研究方法本文采用文献调研、实验研究和数据分析等方法。
首先,对现有水平集方法进行系统的文献调研,深入理解其原理和应用范围。
其次,结合公开数据集,设计实验方案,比较不同水平集方法的分割效果。
最后,通过数据分析,总结不同方法的优缺点,为未来的研究提供指导和建议。
四、进度安排本研究计划于2021年6月开始,预计2022年6月完成。
具体进度安排如下:1. 2021年6月-2021年8月:文献调研,研究水平集方法的理论基础。
2. 2021年9月-2022年1月:实验研究,设计实验方案,比较不同水平集方法的分割效果。
3. 2022年2月-2022年4月:数据分析,总结不同方法的优缺点,提出改进和优化建议。
基于水平集的局部自适应图像分割方法
王君伟;刘利雄
【期刊名称】《中国科技论文》
【年(卷),期】2017(012)008
【摘要】针对传统水平集图像分割模型无法准确分割灰度不均匀及多目标图像的问题,提出了1种改进的基于水平集的局部自适应图像分割模型.该模型在CV模型(Chan和Vese提出的模型)和LAW(local adaptive weighting)模型水平集演化方程的基础上,重新定义了1个局部自适应权重函数来表示像素点所在邻域的偏差信息,并约束该偏差信息与图像的局部灰度不均匀信息之间的差异为最小,以得到精确分割结果.将模型应用于多相位水平集中,实现了对多目标图像的分割.实验结果表明,该模型对灰度不均匀图像及多目标图像分割更准确,且对初始轮廓的位置更鲁棒.【总页数】5页(P895-899)
【作者】王君伟;刘利雄
【作者单位】北京理工大学计算机科学技术学院, 北京 100081;北京理工大学计算机科学技术学院, 北京 100081
【正文语种】中文
【中图分类】TP391.4
【相关文献】
1.一种基于图割优化的局部水平集图像分割方法 [J], 王提;童莉;李中国;陈健;曾磊;闫镔
2.基于局部和全局信息的自适应水平集图像分割 [J], 蔡青;刘慧英;周三平;孙景峰
3.基于局部区域信息的水平集医学图像分割方法 [J], 郑伟;陈彦江
4.非线性自适应水平集的图像分割方法 [J], 周凤丽;于海平;龚江河
5.基于水平集的局部自适应图像分割方法 [J], 王君伟;刘利雄;
因版权原因,仅展示原文概要,查看原文内容请购买。
基于水平集的图像分割方法研究及其在医学图像中的应用共3篇基于水平集的图像分割方法研究及其在医学图像中的应用1随着现代医学技术的不断发展,医学影像数据的获取和处理变得越来越重要。
其中,图像分割是处理医学影像数据的一个重要步骤,其目的是将图像中的不同区域分离出来,以便进行进一步的处理和分析。
在医学图像分割中,基于水平集的方法是一种常用的技术,本文将对该方法进行研究,并探讨其在医学图像中的应用。
基于水平集的图像分割方法是一种常用的表面演化技术,其基本思想是将图像中的不同区域看作不同的曲面,通过对这些曲面进行演化,最终将它们分离出来。
该方法采用的是黎曼几何中的水平集函数,即定义一个标量函数,使得每个像素点的函数值表示该点所处的曲面距离。
然后通过对该函数进行迭代计算,不断演化曲面,直到达到稳定状态,从而实现图像分割的目标。
在医学图像中,基于水平集的方法具有广泛的应用。
例如,在MRI图像处理中,可以将MRI图像中的肿瘤分割出来,以便进行诊断和治疗。
在CT图像处理中,可以将CT图像中的器官分割出来,以便进行手术规划和治疗。
此外,基于水平集的方法还可以应用于血管分割、病变分割、组织分割等多个医学领域。
然而,基于水平集的方法也存在一些问题和挑战。
首先,该方法对初始曲面的选取非常敏感,不同的初始曲面可能导致不同的结果。
其次,该方法需要进行大量的计算,耗费时间和计算资源。
此外,该方法还存在过度分割和欠分割等现象,在实际应用中需要进行进一步的改进和优化。
为了解决这些问题,目前研究者们提出了许多改进和优化方法。
例如,一些研究采用机器学习算法,通过对训练数据的学习,自动选择合适的初始曲面和参数,从而得到更好的分割结果。
另一些研究提出了高效的算法和优化策略,能够有效减少计算量和提高分割精度。
此外,一些研究还将基于水平集的方法与其他图像分割方法结合起来,从而得到更好的分割效果。
综上所述,基于水平集的图像分割方法是一种重要的医学图像分割技术,其在医学图像分析和诊断中具有广泛的应用。
一种新的水平集图像分割方法
任继军;何明一
【期刊名称】《计算机工程与应用》
【年(卷),期】2007(043)019
【摘要】对Chan-Vese提出的基于简化Mumford-Shah区域最优划分模型和测地线主动轮廓模型在水平集框架下的物理机理进行了分析,在充分考虑其模型优点的基础上,通过构造新的能够整合局部边缘信息和全局区域信息的演化函数对上述模型所存在问题进行了针对性处理,得到了一种新的水平集图像分割模型.人工合成图像和红外光学图像的仿真结果表明,在同样的模型参数条件下,该文模型具有比传统CV模型和GAC模型更高的演化效率和分割质量.
【总页数】4页(P16-18,52)
【作者】任继军;何明一
【作者单位】西北工业大学,电子信息学院,陕西省信息获取与处理重点实验室,西安,710072;西北工业大学,电子信息学院,陕西省信息获取与处理重点实验室,西安,710072
【正文语种】中文
【中图分类】TP911.73
【相关文献】
1.一种新的水平集图像分割模型 [J], 王卫卫;杨塨鹏;吕畅;杨艳琦
2.一种新的基于水平集方法的SAR图像分割算法 [J], 刘光明;孟祥伟;陈振林
3.一种新的窄带快速区域水平集C-V模型图像分割方法 [J], 李传龙;李颖;兰国新
4.一种新的基于区域竞争模型的水平集医学图像分割方法 [J], 陈湘文;赵卫东;李吉超
5.一种新的基于snake模型的水平集图像分割方法 [J], 王志豪;汪继文
因版权原因,仅展示原文概要,查看原文内容请购买。
基于测地线活动轮廓模型的图像联合分割算法佚名【摘要】为了辅助医生对肿瘤治疗方案和靶区形状的设计,我们研究了PET/CT 图像联合自动分割,将计算机自动分割的结果作为一个较客观的依据.传统的测地线活动轮廓模型( GAC)具有边缘演化迅速,对弱边界也能准确分割的优点,但是该算法只能利用一种模态的图像信息进行分割.本研究算法在传统的测地线活动轮廓模型基础上进行改进,重新设计其边缘函数,综合利用了CT信息与PET信息,使算法利用两种模态的医学图像信息进行联合分割.由于边缘函数中结合了两种信息,所以算法的演化收敛速度有一定的提升,分割出的边缘也更加合理,较单一PET图像分割算法具有更准确的边界.【期刊名称】《生物医学工程研究》【年(卷),期】2018(037)004【总页数】6页(P398-403)【关键词】PET/CT;测地线活动轮廓模型;边缘函数;水平集方法;图像分割【正文语种】中文【中图分类】R3181 引言对PET/CT图像分割,可辅助医生制定准确的放疗靶区,用以治疗肺癌。
实际上,现阶段数字图像处理技术已经相当成熟,完全可以依靠计算机来进行多模态肿瘤图像的融合和靶区分割,从而辅助医生确定肿瘤的位置和大小,更好的制定放疗计划,提高患者的治疗成效。
活动轮廓模型是图像分割中的经典算法[1],主要分为两大类:基于区域的活动轮廓分割模型和基于边缘的活动轮廓分割模型。
基于区域的活动轮廓分割模型中最常用的是Chan-Vese (CV)模型[2]和Regionscalable Fitting(RSF)[3]模型。
CV模型利用的是图像的全局信息,算法收敛速度快,但是不适用于灰度不均的图像。
RSF模型在CV的基础上进行改进,同时结合了图像的全局和局部能量,解决了对灰度不均图像分割效果不好的问题,但其缺点是由于局部项的影响,算法不易找到全局最优解[4-5]。
基于边缘的活动轮廓模型中最常见的是测地线活动轮廓[6](geodesic active contour,GAC) 模型,其优点是对复杂图像的分割效果较好,但是分割结果会出现边界泄漏的问题[7-8]。
推广GAC模型在运动目标分割中的应用陈颖;吴亚鹏;王宾【摘要】针对视频序列运动目标的分割,研究了传统的运动目标检测算法和基于推广GAC模型的图像分割算法的优势和缺陷,并将二者进行系统的结合,由"粗"到"细"地实现了对运动目标边缘的精确分割.实验表明,算法简单有效,在保证目标分割实时性的前提下,发挥了推广GAC模型在目标分割中的优势.【期刊名称】《计算机工程与应用》【年(卷),期】2010(046)005【总页数】3页(P145-147)【关键词】推广的GAC模型;运动目标分割;运动目标检测【作者】陈颖;吴亚鹏;王宾【作者单位】西北大学,信息科学与技术学院,西安,710127;中科院上海光学精密机械研究所,信息光学实验室,上海,201800;西北大学,信息科学与技术学院,西安,710127【正文语种】中文【中图分类】TP3911 引言视频序列中运动目标的检测与分割处于视频监控系统的最底层,是各种后续高级应用如目标跟踪、目标分类、目标行为理解等的基础。
能否实时有效地检测运动目标并完整精确地分割目标边缘,直接关系着整个系统的优劣和实用性。
传统的运动目标检测算法有背景差分法[1]、帧间差分法[2-3]、光流法[4]以及将背景差分与帧间差分相结合的算法[5-6]等,但实践表明:这些算法在实际应用中尽管实时性好,但大都存在目标分割不完整、边缘信息不连续等缺点。
图像分割是计算机视觉的另一个重要内容。
同传统的方法相比,由于基于偏微分方程和水平集相结合的分割方法能够闭合、完整地提取目标边缘,从而成为近年来研究的热点[7-13]。
常用的水平集分割模型有GAC模型、C-V模型、M-S模型等。
其中,C-V模型、M-S模型依赖于全局信息,且算法复杂、计算量大[11],不适合用于对实时性要求较高的动目标检测方面;尽管GAC全局分割效果不如前两者,但其算法简单,计算量小,在局部图像处理中能够实时有效地分割目标。
两类基于水平集方法的分割模型的开题报告
一、基于水平集方法的分割模型
随着计算机技术的不断进步,图像分割技术也不断被发展和改进。
水平集方法是一种
较为经典的图像分割方法,它通过不断改变水平集函数来实现分割,具有计算量小、
适用范围广和分割结果优良等优点,在医学影像分析、计算机视觉和机器人视觉等领
域得到了广泛的应用。
二、双重水平集模型
双重水平集模型是基于水平集方法的分割模型之一,其基本思想是通过两个水平集函
数的相互作用,实现对图像的精确分割。
其中,一个水平集函数表示对象的内部信息,另一个水平集函数表示对象的外部信息。
通过不断迭代这两个水平集函数,达到分割
区域的变化,最终实现对图像的分割。
三、变分水平集模型
变分水平集模型是另一种基于水平集方法的分割模型,也称为能量水平集模型。
它采
用了一种新的能量函数形式,即将水平集函数看作一个能量函数,通过优化该能量函
数来实现图像的分割。
该模型通过优化能量函数,使得水平集函数在区域内的值相似,而在不同区域的值差异较大,从而实现图像的分割。
四、研究意义和目的
针对目前基于水平集方法的分割模型仍存在的一些问题,如边界处理不精确、分割结
果精度不高等,本文打算研究分割模型的改进方法。
具体地,将探讨基于双重水平集
模型和变分水平集模型的优化策略,以提高分割模型的精度和鲁棒性,同时通过实验
验证改进方法的有效性和可行性。
图像分割算法研究综述一、本文概述随着计算机视觉技术的飞速发展,图像分割作为其中的一项关键任务,日益受到研究者的关注。
图像分割是指将数字图像细分为多个图像子区域的过程,这些子区域在某种特性或计算上呈现出一致性,如颜色、纹理、形状或空间关系等。
这些被分割的子区域能够显著简化或改变图像的表示形式,使其更适合于进行高级的图像分析和理解任务,如目标识别、场景理解等。
本文旨在全面综述近年来图像分割算法的研究进展,分析和评价各类算法的性能与特点。
我们将对图像分割的基本概念和常用方法进行介绍,包括基于阈值的分割、基于边缘的分割、基于区域的分割以及基于深度学习的分割等。
接着,我们将对各类算法的优缺点进行深入探讨,并结合实际应用场景,分析其在不同任务中的表现。
本文还将关注图像分割领域的发展趋势,如多模态图像分割、弱监督学习在图像分割中的应用等。
我们期望通过本文的综述,能够为读者提供一个清晰、全面的图像分割算法知识框架,并为未来的研究提供有益的参考和启示。
二、图像分割算法分类图像分割是计算机视觉领域的一项关键任务,旨在将图像划分为具有相似性质的区域。
根据不同的原理和方法,图像分割算法可以大致分为以下几类:基于阈值的分割方法:这是最简单的一类图像分割方法,它根据像素值的差异来设置阈值,从而将图像分为不同的区域。
这种方法对于背景与前景有明显对比的简单图像效果较好,但对于复杂场景或光照不均的图像则可能效果不佳。
基于边缘的分割方法:边缘分割方法主要依赖于检测图像中的边缘信息,即像素值发生剧烈变化的区域。
常用的边缘检测算子有Sobel、Canny等。
这类方法对于具有明显边缘特征的图像效果较好,但容易受到噪声的影响。
基于区域的分割方法:基于区域的分割方法是根据像素的相似性将图像划分为不同的区域。
典型的算法有区域生长和分裂合并。
这类方法对于具有均匀纹理和颜色的图像效果较好,但对于边界模糊或复杂纹理的图像可能效果不佳。
基于深度学习的分割方法:随着深度学习技术的发展,基于卷积神经网络(CNN)的图像分割方法取得了显著的进展。
偏微分方程与图像处理(GAC的水平集方法)实验二 GAC 的水平集方法一 实验目的采用GAC 模型的水平集方法检测图像中对象的轮廓,以便有效地进行分割。
二 原理分析推广GAC 模型的水平集方法对应的PDE 为:u gc u g u gk u t∂=∇+∇•∇+∇∂ (3.31) 按照上式,曲线运动将受两种“力”的支配,第一种力来自于曲率几何形变—曲率运动(gc u gk u ∇+∇),不过它的强弱还要受到因子()g I ∇的影响。
I ∇为图象I(x,y)的梯度模值,函数g (r) 是可以是任何具有单调减性的函数。
因为图象梯度模值I ∇在图象的边缘附近有较大值,从而使g(I ∇)取极小的值,故在图象边缘附近,该作用力将会变的很小,因此有时将边缘函数()g I ∇称之为边缘停止函数。
常数c 的作用是加速曲线向内部收缩。
第二种力来自于g 的梯度(1,2)g αα∇=,它是一种不论当前C 的局部是在对象内部或外部,都能将曲线引向边界的“吸引力”。
从而g u ∇•∇总是使曲线向着更接近于边界线的方向运动,最终达到贴近对象边界的稳定状态。
由于这两种作用使曲线演化可最终达到紧靠轮廓这一稳定状态而不再继续演化。
采用单边迎风方案,根据(1.76)式的数值方案实现上式:考虑到 0g >,0c >可得:(1)()(){n n ij ij ij u u t g c +-=+∆∇()()()()max(1,0)min(1,0)max(2,0)min(2,0)x ij x ij y ij y ij D u D u D u D u αααα-+-+++++ (0)2(0)212[()()]}n ij ij x ij y ij g k D u D u ++ (2.1)其中()2222[(max(,0))(min(,0))(max(,0))(min(,0))]x ij x ij y ij y ij D u D u D u D u -+-+-∇=+++ (2.3),1,1(0)2i j i j x ij u u D u +--= 中心差分 (2.2),1,x ij i j i j D u u u ++=- 向前单边差分 (2.3),,1x ij i j i j D u u u --=- 向后单边差分 (2.4)三 编程过程1 准备工作1)读入图像I ,将其转化为灰度图象,重新调整图象的大小为[100,100]。
2)进行预平滑,即对图象进行高斯卷积滤波。
3)计算图像梯度模值I ∇,r I =∇,代入函数exp()g r k =-计算()g I ∇,然后计算g 的梯度(1,2)g αα∇=。
4)选取初始封闭曲线0C ,使其从外部全部包住对象,简单起见这里将0C 选取为以图像中心为圆心的封闭圆。
5)根据0C 初始化水平集0u 。
2 迭代运算1)根据(2.1)式进行迭代运算,由()n ij u 计算(1)n ij u +。
2)每迭代5次,进行一次重新初始化,以免累计误差。
具体的方法是根据当前演化得到的u 检测零水平集则为当前C ,根据当前C 重新初始化水平集u 。
3)每10次观察一次零水平集,当演化曲线迭代400次,则停止迭代。
3 参数取值:c=3~4, t ∆=0.05~0.1, N=3~5, k=1~2.四 程序1、主程序:% 用GAC 水平集演化方法检测图像轮廓close all;clear all;a=imread('3.bmp');% figure;imshow(a);a=rgb2gray(a);im=imresize(a,[100 100]);% figure;imshow(im);imsize=size(im);im_1=double(im);% 对图像进行高斯滤波sigma=2;gauss_filter =fspecial('gaussian',3,sigma); %默认值3*3,SIGMA=0.5b=imfilter(im_1, gauss_filter ,'conv');% 计算图像梯度[Ix,Iy]和梯度模值deltI[I x, I y]=gradient(b);deltI=abs(sqrt(I x.^2+I y.^2));k=2;g=exp(-deltI./k);[gx,gy]=gradient(g);% 初始化圆,定义中心和半径center=[floor(size(im)/2)];radius = min(center)-8;u = init_u( imsize, center, radius);% 调用迭代函数filename = '3.bmp';m_name = filename( 1 : strfind( filename, '.' ) - 1 );num=400;u_new=die_dai(im,u,g,num,m_name);2、主要子程序(1)初始化水平集函数:function u = init_u( imsize, center, radius )% 初始化水平集m = imsize( 1 ); n = imsize( 2 );u = zeros( imsize );for i = 1 : m;for j = 1 : n;distance = sqrt( sum( ( center - [ i, j ] ).^2 ) );u( i, j ) = distance - radius;endend(2)迭代计算函数:function u=die_dai(im,u,g,num,m_name)[m,n]=size(u);[gx,gy]=gradient(g);u1=u;newpic=im;for i=2:m-1for j=2:n-1if (u(i,j)*u(i+1,j)<0)|(u(i,j)*u(i,j+1)<0)==1 newpic(i,j)=0;endendendfigure;imshow(newpic);[gx,gy]=gradient(g);det=0.05;c=3;dx=1;dy=1;display_it=10;for k=1:numif mod(k,5)==0u=re_init_u( u );end%x和y方向的前向差分和后向差分diff_x_backward=( u - circshift( u, [ 0, 1 ] ) );diff_x_forward=( circshift( u, [ 0, -1 ] ) - u );diff_y_backward=( u - circshift( u, [ 1, 0 ] ) );diff_y_forward=( circshift( u, [ -1, 0 ] ) - u );du_1=g.*c.* ( (max( diff_x_forward,0 )).^2 + (min( diff_x_backward,0 )).^2+(max( diff_y_forward,0 )).^2 + (min( diff_y_backward,0 )).^2);%计算更新u的第二部分du_2=max(gx,0) .* diff_x_backward + min(gx,0) .* diff_x_forward + max(gy,0) .*diff_y_backward + min(gy,0) .* diff_y_forward ;%--------%计算更新u的第三部分%中心差分diff_y_central=( circshift( u, [ 0, -1 ] ) - circshift( u, [ 0, 1 ] ) ) / 2;diff_x_central=( circshift( u, [ -1, 0 ] ) - circshift( u, [ 1, 0 ] ) ) / 2;diff_yy_central=( circshift( u, [ 0, -1 ] ) - 2*u + circshift( u, [ 0, 1 ] ) )/1; diff_xx_central=( circshift( u, [ -1, 0 ] ) - 2*u + circshift( u, [ 1, 0 ] ) )/1; diff_xy_central=(circshift( u, [ -1, -1 ] ) + circshift( u, [ 1, 1] ) -circshift( u, [ -1, 1 ] )-circshift( u, [ 1, -1 ] ) )/4;du_3=g.*( (diff_xx_central).*((diff_y_central).^2)-(2*(diff_x_central).*(diff_y_cen tral).*(diff_xy_central))+((diff_yy_central).*((diff_x_central).^2)))./((diff_ x_central).^2 +(diff_y_central).^2 + eps);%计算更新的u1u1=u1 + det.*( du_1 + du_2 + du_3 );u=u1;%每隔10次,显示一幅演化图片,并编号,存入当前路径if mod(k,display_it)==0fprintf( 1, '%d\n', k );disp( 'Displaying segmented image' );newpic=im;for i=1:m-1for j=1:n-1if (u(i,j)*u(i+1,j)<0)|(u(i,j)*u(i,j+1)<0)==1newpic(i,j)=0;endendendimshow( newpic ); drawnow;filename = strcat( m_name, sprintf( '%06d', ( k / d_it ) + 1 ), '.jpg' );imwrite( newpic, filename );endend(3)重新初始化水平集函数:function u = re_init_u( u )[M,N] = size (u);[x,y] = find( isfront( u ) ); %找出边缘位置,放在x,y矩阵内;L = length ( x ); %x,y是对应的坐标,两者成对出现;所以只需求x长度;for i = 1 : Mfor j = 1 : Nfor k=1:Ldist(1,k)=sqrt((i-x(k)).^2+(j-y(k)).^2);endif u(i,j)>0u(i,j)=min(dist);elseu(i,j)=-min(dist);endendend五实验结果分析以下为实验结果:Fig.1 Fig.2 Fig.3 Fig.4Fig.5 Fig.6 Fig.7 Fig.8Fig.9 Fig.10 Fig.11上面的图是每迭代40次选取一副图象,直至演化至稳态的结果(Fig.1为调整大小并滤波后的图)。