主动轮廓模型snake
原理概述
snake模型将图像分割问题转换为求解能量泛函最小值的问题。主要思路是构造能量函数进行迭代后,轮廓曲线由初始位置逐渐向使能量函数最小(局部极小)的图像边缘逼近,最终分割出目标。
曲线理论
假设一条光滑封闭曲线 C=C(p)C(p)C(p),则在点p处有切向量T(p)T(p)T(p)和法向量N(p)N(p)N(p)相互垂直:
且有dCdp=T(p)\frac{dC}{dp}=T(p)dpdC=T(p), d2Cdp2=kN(p)\frac{d^2C}{dp^2}=kN(p)dp2d2C=kN(p), 其中k是曲率。曲线在p处有近似的二阶展开:
C(p)=C(p0)+k1dCdp0+k2d2Cdp02C(p)=C(p_0)+k_1\frac{dC}{dp_0}+k_2\frac{d^2C}{dp_0^2}C(p)=C(p0)+k1dp0dC+k2dp02d2C
即:
C(p)=C(p0)+αT(p0)+βN(P0)C(p)=C(p_0)+\alpha T(p_0)+\beta N(P_0)C(p)=C(p0)+αT(p0)+βN(P0)
其中法向量决定了曲线的弯曲方向,
算法原理
首先需要人为在图像上给出一组用于控制曲线形状的控制点:v(s)=[x,y]v(s)=[x,y]v(s)=[x,y],这些首尾相连的点构成一个封闭的轮廓线。v是当前最小能量的位置,在迭代过程中,v会移向下一次能量最小的v’位置。
Snake曲线的能量函数表示为:
Esnake=Eint+EextE _{snake}=E _{int}+E _{ext}Esnake=Eint+Eext
EintE _{int}Eint是内部能量函数,依赖于轮廓形状:
Eint=∫12×(α(s)∣c′(s)∣2+β(s)∣c′′(s)∣2)dsE _{int}=∫{\frac{1}{2} \times (α(s)∣c'(s)∣^2+β(s)∣c''(s)∣^2)ds}Eint=∫21×(α(s)∣c′(s)∣2+β(s)∣c′′(s)∣2)ds
由之前的曲线理论我们知道,式中两项的作用
法向量:推动轮廓形状的改变,决定轮廓平滑度
切向量:保持轮廓点的间离
EextE _{ext}Eext是外部能量函数,依赖于图像的性质:
Eext=−(Emag+Eext)E _{ext}=-(E _{mag}+E _{ext})Eext=−(Emag+Eext)
EimageE _{image}Eimage:灰度能量,决定将轮廓吸引到 暗/亮 的区域
EmagE _{mag}Emag:梯度能量,将图像推向边缘特征
主动轮廓模型snake相关推荐
- Active Contour Models 主动轮廓模型(snake模型)
主动轮廓模型主要用于解决图像中目标物体的分割操作.理论上是可以解决二维乃至多维的情况,不过最初的模型是在二维图像上建立的. 主动轮廓模型(Active Contour Model),又被称为Snake ...
- 主动轮廓模型 matlab,主动轮廓模型的功能.ppt
主动轮廓模型的功能 Amelioration d'images ultrasonores via alignement de vasculature - Julien Jomier - UNC - 2 ...
- 离散化-利用计算机求解y=x,基于边缘的主动轮廓模型——从零到一用python实现snake...
从零到一实现snake算法 1.Snake算法原理 Kass等人最早于1988年提出了主动轮廓模型,该方法通过构造能量函数,从而将图像分割转化为求解能量泛函极值的问题,其核心思想在于,作者认为和之前的 ...
- Active Contour Models 主动轮廓模型
参考博客: https://www.mathworks.com/matlabcentral/fileexchange/19567-active-contour-segmentation 数字图像处理- ...
- 图像分割之主动轮廓线模型Snake
基本概念 1987年由 Kass 等人提出的主动轮廓模型即蛇模型(snake 模型).活动轮廓模型可以用在图像分割和理解中,也适用于分析动态图像或三维图像.Snake定义为最小的能量样条曲线.下面重点 ...
- 《Matlab图像处理》part1 Snakes:Active Contour Models 主动轮廓模型
<Matlab图像处理>part1 Snakes:Active Contour Models 主动轮廓模型 参考博客: 数字图像处理-图像分割:Snake主动轮廓模型 Matlab代码及运 ...
- 水平集方法引入主动轮廓模型算法中的两种方法
水平集方法引入主动轮廓模型算法中的两种方法 1.传统的基于主动轮廓模型和水平集理论的方法 2.变分水平集方法 在讲解水平集理论在主动轮廓模型中的应用前,我们先用流程图说明一下常见的处理主动轮廓模型的流 ...
- 基于带有信息熵和联合矢量的LBF主动轮廓模型的PET-CT成像中对静脉血管肺结节分割 (笔记四)
-----------------------------------------------------------------SUV 标准吸收值-------------------------- ...
- OpenCV学习笔记(Python)———— 主动轮廓模型
本文包含主动轮廓模型代码以及实例分割代码 原图: 效果图: 主动轮廓模型: morphsnakes.py # -*- coding: utf-8 -*- """ ==== ...
- 【肺实质分割】基于主动轮廓模型和贝叶斯方法识别实现胸膜旁肺实质分割附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.
最新文章
- liunx系统mysql全量备份和增量备份
- win7删除桌面文件需要刷新才会消失(2种解决方法)
- 【iOS】图片缩放动画
- little problem
- 净化网络环境!可信数字内容版权服务解决方案发布
- tcga数据下载_TCGA数据下载(mRNA)
- Regex pattern in openresty
- android通过adb shell播放音乐
- 生成chm文档工具- Sandcastle -摘自网络
- 我见过不少赚了钱,投资孵化一堆店铺的,一般而言后续发展都会出问题的
- 基于Matlab----MSK调制与解调
- 记录并分析一些软件,以便以后换电脑重新安装(不定时更新)
- C++中的iostream和iostream.h
- EasyX实现按钮效果
- 如何使用Java计算闰年?
- 利用TLF给文本加样式
- 2019软考总结-UML
- 高考加油别学计算机图片,高考加油图片励志壁纸图片欣赏
- js逆向 事件点击找加密位置
- 微信公众号怎么清缓存
热门文章
- 项目管理工具与技术---项目风险管理中的工具与技术
- 配置mysql环境变量之后,仍然无法打开mysql的解决方法
- 前端H5面试题CSS:如何解决 margin“塌陷”?
- 华为LTC/IPD/ITR三大核心流程变革看一篇文章就全明白啦!
- SQL Server 数据库之数据约束
- Centos系统安装踩坑
- Spring 注解的原理
- Notepad ++ 汉化版
- (附源码)Springboot通用办事流程管理软件 毕业设计 211819
- oppor17刷鸿蒙系统,OPPO R17 Pro手机6G+128GB版本上线