python 图像分割实例_图像处理 Level Set图像分割方法及python实例 _好机友

Level Set 模型介绍

Level Set是基于能量的图像分割方法,通过求解最小能量泛函,得到目标轮廓的表达式。其轮廓表示借鉴了水平集的概念,将低维度的曲线嵌入了高维度的曲面中。

一。能量函数的构造

以下图为例,黑色图形为带分割图形,白色圆为轮廓曲线C,常用的能量方程如下所示,lh5kyqj2vm.png?w=700fh020bdpxc.png?w=700

其中c1,c2,分别为圆圈内/外像素点的平均值。u0为图像的像素值。整个能量项的意义即为:圆圈外像素减去他们均值的平方和加上圆圈内像素减去他们均值的平方和,还有一些规则化项,如曲线的长度,曲线围成的面积等项。u,v 大于等于0,lamda1,lamda2 大于0. 一般规定v=0; lamda1=lamda2=1.一般来说,最小化上述能量方程即可求得轮廓C的方程。

二 . 水平集思想

水平集LevelSet需要给定初始的轮廓曲线,然后根据泛函能量最小化,进行曲线演化,由初始曲线演化到目标轮廓曲线。水平集的方法,用的是一种隐式函数的方法,通过高维空间来表示低位的空间。其更新的不是曲线离散点的坐标(snake算法曲线演化),而是更新整张图片像素点到曲线的有向距离场uodatotkh3.png?w=700

下面用一个实例展示LevelSet方法,源代码:https://github.com/Ramesh-X/Level-Set 通过运行python -m lv_set.Main 即可实现LevelSet目标分割。 下面贴一下主函数:from scipy.misc import imread import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import scipy.ndimag

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值