当前位置:首页 > java知识学习_java技术文章 > 正文

opencv中cvsnakeimage用法案例与函数源码剖析

浏览101+

一、函数介绍

cvsnakeimage用以更改轮廊部位促使它的动能最少,涵数cvsnakeimage升级snake是以便降到最低snake的全部动能,在其中动能是取决于轮廊样子的內部动能(轮廊越光洁,內部动能越小)及其取决于能量场的外界动能总和。

外界动能一般在什么部分动能极值点中做到较小值(这种部分动能极值点与图象系数表达的图象边沿相对性应)。主要参数criteria.epsilon用于界定务必从迭代更新中祛除以确保迭代更新一切正常运作的点的至少数量。

假如在迭代更新中除掉的点数量低于criteria.epsilon或是涵数做到了较大的迭代更新频次criteria.max_iter,则停止涵数,下图是opencv中该函数的全部参数详细介绍:

cvsnakeimage参数详情图

二、cvsnakeimage函数用法案例

opencv事例里沒有出示cvsnakeimage的操作方法,在这里梳理一个能够品牌形象的看一下snake优化算法的結果事例,大概作法如下:

最先设置域值切分,把基础的轮廊找出去,见图中深蓝色中心线,再将轮廊点传到cvsnakeimage涵数,测算出翠绿色的snake中心线,在其中主要参数alpha意味着点互相融入的权值(0-1.0),beta表达弯折动能(越低非常容易弯折)(0-1.0),gamma表达总体动能(0-1.0)。在其中主要参数自己也不确定性实际的范畴,最好是自身变更不一样的范畴试一下。

cvsnakeimage应用用法详细案例代码

扩展阅读:

opencv3.0移植cvSnakeImage

主动轮廓线模型Snake模型简介&openCV

三、Snake轮廓模型详解与cvsnakeimage的关联

Snake模型介绍

Snake实体模型称之为动态性轮廊实体模型(ActiveContourModel)是Kass与1987年明确提出的,它针对在噪音和饱和度不比较敏感,能将总体目标从繁杂背景图中切分出去,能够合理的跟踪目标的变形和非刚体的繁杂健身运动而被普遍用以图像分割和物块追踪等图象处理行业。

Snake工作原理

Snake关键基本原理是先出示待切分图象的一个原始轮廊的部位,并对其界定个动能涵数,是轮廊沿动能减少的方位挨近。

当动能涵数做到最少的情况下,出示的原始轮廊收敛性到图型中总体目标的真正轮廊。Snake动能涵数是有內部动能涵数和外界动能涵数构成,內部动能操纵轮廊的光滑性和持续性,外界动能由图象动能和约束力动能构成,操纵轮廊朝着具体轮廊收敛性,在其中约束力动能可依据实际的目标形状界定,促使snake具备挺大的协调能力。

Snake模型的相关算法

分水岭算法是由S.BeucherF.Meyer最开始导入图像分割行业,它的基础观念是来自测地理学上的侧线重新构建,其內容是把图象看作是测地理学上的拓扑地形地貌。

cvsnakeimage:开展分界点实体模型测算的较为經典的优化算法是LVincent明确提出的,在该优化算法中最先是对每一清晰度的灰度级开展从低到高排列,随后用级别对决仿真模拟吞没,原始时,级别序列中为吞没的原始点,在从低到高保持吞没的全过程中,对每一个部分极小值在H阶高宽比的危害域选用先进先出法(FIFO)构造开展分辨及标明,直至最后一个值被吞没,进而恰当区划每个地区。

Snake模型的改进算法

Cohen明确提出的汽球(balloon)基础理论实体模型:运用工作压力和高斯工作能力一起扩大吸引住范畴的方式,该工作压力可让实体模型扩张或变小,因而已不规定将实体模型复位在所期待的目标界限周边。

在图象的系数力场中累加汽球里,令其中心线做为一个总体开展澎涨或收拢,进而扩张了实体模型找寻图象特证的范畴优点:对原始界限不比较敏感,存有的缺陷:存有弱界限,露出界限空隙等难题。蚁群算法是近期两年有西班牙学家M.Dorigo等初次明确提出的一种新式的仿真模拟进化算法,称之为蚁群系统软件。

cvsnakeimage:蚁群算法根据备选解构成的人群的超进化全过程来寻找最佳解,该全过程包含2个基础环节:融入环节和协调工作环节,优化算法自身选用反馈调节基本原理,加速了超进化全过程,不容易深陷部分最佳解,并且个人中间持续开展交流信息和传送,有益于对解室内空间的进一步探寻,因而有较强的发展趋势解的工作能力。

四、函数源码与代码剖析

由于该函数的源代码比较多,在这里就不在一一的贴出来了,大家可以参考下面这篇文章详细的讲解了该函数的源码剖析:《openCV中cvSnakeImage()函数代码分析》

扩展阅读:

cvsnakeimage 的例子