CV模型的Matlab实现

  • 格式:pdf
  • 大小:213.81 KB
  • 文档页数:2

-70-中国科技信息2008年第24期 CHINA SCIENCE AND TECHNOLOGY INFORMATION Dec.2008信息科技量函数如下: (2)上式中的C是任意闭合活动轮廓线。可看出,当闭合活动轮廓线C没有位于两个同质区域的边界C0时,F (C)不能达到最小值。据此,提出了如下的图像分割能量函数:(3)式中:Length是闭合轮廓线C的长度;Area是C的内部区域面积;λ1,λ2是各个能量项权重系数。设φ0是根据初始轮廓线,即{C0|φ(x,y)=0},并设φ为内正外负型的SDF,即φ[inside (C )]>0,φ[outside (C)]<0。为了将积分区域统一变成图像区域,引入函数H和测度δ0: (4)则F (c1,c2,C)可改写成:(5)对上式求一阶变分得: (6)记h为空间步长,Δt为时间步长。引入记号:上式的离散算法为:CV模型的Matlab实现张晓峰 南通大学计算机科学与技术学院 226019The Realization of CV Model with Matlab Programming LanguageZhang XiaofengSchool of Computer Science and Technology, Nantong University, Nantong 226019, China

引言图像分割是图像处理到图像分析的关键步骤,在数字图像处理中占据重要的位置。MS模型是近年来为人们广为研究的一种较好的图像分割模型。但是由于MS模型理论深刻,在数学处理上有一定的困难,所以,Chan和Vese提出了一种简化的MS模型——CV模型[1]。文献[1]中由于图像和公式不是完全对应的,因此具体到实现CV模型时就会遇到相当的困难。本文将分析CV模型中的各个步骤,并给出matlab的关键代码,为后继的研究工作提供基础。1 CV模型介绍Chan和Vese提出的是一种简化的MS模型。他们假设图像中每个同质区域的灰度值是常数,即: (1)则一种简化的基于MS模型的拟合能(7)2 CV模型的Matlab实现2.1 φ0的初始化符号距离函数(SDF)函数定义为:任意像素点P (x,y)到曲线C的距离d(P,C)=min[d(P,PC)] ,其中PC是C上的点。SDF函数的初始化对于规则初始轮廓线来说是很简单的。一般所取的曲线C是一个规则的圆,圆心(x0,y0),半径为r,则SDF计算公式为: (8)Matlab中计算φ0的方法如下:[X,Y] = meshgrid(1:ncol, 1:nrow);φ0= sqrt((X-jc).^2+(Y-ic).^2)-r;其中,第一步产生的是网格矩阵(ncol,nrow分别是图像的行数和列数),从(1,1),(1,2)一直到(ncol,nrow-1),(ncol,nrow);第二步产生的是一个ncol行nrow列的矩阵,分别计算网格上每个点的SDF。请注意式中所用的乘方运算符号:“.^”,这是针对矩阵中的每一个元素分别用乘方运算的符号,以下的运算符号类同。2.2 偏微分方程的边界式(7)的最后部分是所求偏微分方程的边界条件:诺依曼边界。一般该边界条件要求图像的最边缘和次边缘的像素值相等。然而matlab中的gradient函数求梯度时并不是和我们手工计算完全相同,如:已知矩阵 [ax,ay]=gradient(a),则ax,ay分别x和y方向上的梯度,其值为:所以,其梯度的求法是[(ai-ai-1)+(ai+1-ai)]/2,开头和结尾的由于缺少一部分,在求解时并没有除以2。摘 要CV模型是现在应用较广泛的一种图像分割方法,但是其中涉及较多复杂的概念,使得刚接触该模型的人无从着手研究。本文用matlab实现了CV模型,将原文中的概念部分进行了较详细的解释,为以后进一步研究该模型打下了基础。关键词CV模型;matlab中图分类号:TP391AbstractCV model is a widely used means to segment images.The model has many conceptions hard to understand,so the beginners of researching this model hardly goon with their researches. In this paper , CV model iscorded in matlab programming language and someconceptions in this model are particular explained.These make a fundament for further research of thismodel.Key wordsCV model; matlab-71-因此,matlab中诺依曼边界的设置方法为:φ([1 nrow],[1 ncol]) =? ([3 nrow-2],[3 ncol-2]);φ([1 nrow],2:end-1) =? ([3 nrow-2],2:end-1);φ(2:end-1,[1 ncol]) = ? (2:end-1,[3 ncol-2]);即:将边缘的值设置成第三条边缘的值。2.3 梯度下降法实现的演化式(5)是一个泛函问题,它可以用Euler-Lagrange方法求解得到式(6);式(6)是一个偏微分方程,用梯度下降法来求解就得到式(7)。一般用的函数H为(若用式(4)的话,有可能达不到全局优化):所以函数H的matlab求解方法为:H = 0.5*(1+ (2/pi)*atan(φ./epsilon))而测度δ是H的导数,因此的δ的matlab求法是:δ=(epsilon/pi)./(epsilon^2+ φ.^2)c1,c2分别是两部分的平均值,可以利用函数H求得(其中u是原图像矩阵):a= H.*u;numer_1=sum(a(:));all_1=sum(H (:));c1 = numer_1/all_1;b=(1-H).*u;numer_2=sum(b(:));c=1-H_phi;all_2=sum(c(:));c2 = numer_2/all_2;其它参数的选择一般根据经验选择,比如Δt=0.1;μ=0.001*255*255;λ1=1;λ2=1式(9)整体比较复杂,但是注意了u,φ是矩阵(u是原图像矩阵,φ是SDF函数矩阵),则求解就会比较顺利。3 结论CV模型是能够较精确的分割图像,但是其中涉及较多复杂的概念。本文详细阐述了CV模型的构造过程,给出了关键步骤的matlab代码,为以后进一步研究该模型打下了基础。小,只具有最少的功能。随着在实践中逐渐明确该对象应该提供的功能,再不断实现这些新功能。当实现新的接口时,继续保留原有代码以支旧的接口。四、结论有人特别强调:“若语言不支持多态,则不能称面向对象的”。通过上面的实例可以看出,实际上VB是支持多态性的,是可以实现代码重用的。从某种意义上来讲,VB程序设计语言具有面向对象语言的三种基本特征:封装,继承和多态。虽然和现在的Java、C++等语言比较起来,VB在面向对象方面显得较为渺小,从实现的方法来看,可能更趋向于基于对象的一种程序设计语言。当然,现在我们也没有必要在VB程序语言到底是属于哪个性质的语言上一定要分出个你我来,更重要应该是理解程序设计语言的封装、继承和多态特性给当代程序员带来伟大变革。多态性、封装性与继承性相互作用。精心设计的类的层次结构是程序的基础,封装可以使不破坏依赖类公共接口的代码基础上对程序进行升级迁移,多态性则有助于编写清楚、易懂、易读、易修改的程序。在由多态、封装性与继承性共同组成的编程中可以写出比面向过程模型环境更可靠、扩展性更好的程序。上接第68页上接第69页DOS/DDOS主要攻击方法进行特征分析,写入IPS特征库中,阻断Tribe FloodNetwork(TFN)、Trinoo、SYN Flood等常见的DDoS攻击。(3)、带宽防护-保护网络不受ICMP、TCP或UDP等数据包的洪水攻击,以免耗尽网络带宽和服务资源,进而避免合法数据包的丢失。IPS会制定一个TCP、UDP、ICMP和其它IP协议设定协议流量基线,在流量超出设定的比例时就会利用流量整形(rate-shaping)自动控制流量。带宽滥用防御对P2P软件滥用带宽的问题,传统的方法是限制端口。这种方法在前期一定程度上是可用的,因为各种P2P软件提供了一个默认的监听端口范围。但是,这种方法比较片面,因为通过一定的技术手段可以改变这个端口范围,因此效果不是很好。IPS对带宽滥用防御主要建立在对协议深度分析的基础上的,依靠过滤器实现阻断或者限制带宽:(1).可以通过过滤器阻止下载机器通过HTTP协议发送下载种子文件的请求;(2).可以通过过滤器阻止通过HTTP协议的种子文件下载;(3).可以通过过滤器阻止下载机器和Tracker的连接;(4).可以通过过滤器阻止或者通过相应的措施(CAR)限制对端之间的下载和上传流量。通过以上四个方面,IPS实现内外网络主机资源无法通过P2P建立连接或者对P2P数据流进行限流,保证了带宽的利用率。3 如何选择IPS目前市场上有很多IPS生产厂商,如何选购好的IPS设备呢,笔者认为关键看一下几个指标:1)、高质量特征库和过滤器。IPS对恶意流量的阻断是建立在对2-7层流量深度分析的基础上通过过滤器来完成的。高质量特征库和过滤器必须具备零误报和零漏报的能力,具备在任何情况、任何时刻识别和阻断存在于网络环境中的已知的各种恶意流量的能力;2)、升级响应能力。当一个新的安全漏洞产生时,IPS厂商应当具备即时升级特征库和过滤器的能力,抵御可能产生的新的威胁;3)、高性能处理能力。IPS还必须具有高效处理数据包的能力。处理引擎能够同时执行数千次的数据包过滤检查,并行过滤处理可以确保数据包能够不间断地快速通过系统,不会对速度造成影响。参考文献[1] 北京阿博泰克北大青鸟信息技术有限公司.VB高级编程.2003[2] 刘万军等. Java程序设计实践教程.清华大学出版社. 2006.9[3] 王栋.Visual Basic程序设计实用教程. 清华大学出版社.2004.6[4] 吴绍根. Visual Basic软件开发技术.人民邮电出版社.2006[5] 王泰峰.软件项目开发综合实训——Visual Basic篇. 2005.10[6] 冷英男 等编著.面向对象程序设计教程.2007-6[7] 龙昭华.面向对象程序设计教程.西安电子科技大学出版社.2005-10作者简介周训斌,(1968- ),长沙通信职业技术学院讲师,1992年毕业于南京邮电学院(现南京邮电大学)计算机通信专业,2006获华中科技大学电子与通信工程硕士学位,主要研究方向:通信网、软交换。参考文献[1] Chan TF,Vase LA.Active Contourswithout Edges [J] .IEEE Transactions on ImageProcessing (S1057-7149),2001,10(2):266-277.[2] 胡晓锋,赵辉.VisualC++/MATLAB图像处理与识别实用案例精选[M].人民邮电出版社.2004:101-104.作者简介张晓峰(1979- ),男,讲师,主要研究方向:数字图像处理。