多相水平集图像分割系统
项目介绍
本系统是一个基于多相水平集(Multiphase Level Set)理论的图像处理工具,专门设计用于同步识别和提取图像中具有不同灰度特性的多个目标区域。与传统的单水平集函数(只能将图像分为目标与背景两部分)不同,本系统采用了 Vese-Chan 模型扩展架构,通过引入两个相互独立且共同演化的水平集函数,能够逻辑化地将图像空间划分为 4 个不同的相位区域。该系统特别适用于灰度分布复杂、目标重叠或边界模糊的视觉场景。
功能特性
- 多区域并行分割:系统能够通过两个水平集函数的线性组合,精准识别并分离出图像中的四个独立灰度层级,有效解决了多目标分割的难题。
- 稳健的抗噪性能:内置高斯噪声处理能力,通过全局能量泛函的优化,在含有随机噪声的图像中依然能保持边缘的平滑性和拓扑结构的完整性。
- 动态演化可视化:系统在计算过程中提供实时反馈,每隔固定的迭代次数会自动更新轮廓演化状态,方便用户观测算法收敛过程。
- 综合结果分析:系统不仅输出最终的分割掩膜,还提供能量收敛曲线、各相二进制分解图以及原始图像与提取轮廓的叠加对比图。
使用方法
- 环境配置:确保计算机已安装 MATLAB 环境。
- 运行计算:在 MATLAB 命令行窗口运行主程序脚本。
- 参数调节:根据需要修改程序顶部的参数设置区。例如,调整 mu(平滑项权重)以控制轮廓的平滑度,或调整 dt(时间步长)以平衡计算速度与稳定性。
- 结果查看:程序运行完成后会自动弹出两个交互窗口,展示迭代过程中的动态效果及最终的多相位分割报告。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 硬件需求:基础运算能力的 CPU 即可满足 2D 图像处理需求。
- 输入限制:系统默认处理灰度格式的图像数据,合成图像建议尺寸为 200x200 或更高级别,以保证收敛精度。
算法实现逻辑与功能细节
本系统严格遵循变分法和偏微分方程(PDE)的演化逻辑,具体步骤如下:
- 图像合成与预处理
系统内置了合成图像生成器,创建了一个包含四个灰度梯度(50、100、150、200)的 200x200 像素图像,并添加了标准差为 5 的高斯噪声,模拟真实的工业或医学成像场景。
- 水平集函数初始化
系统使用正弦波函数(Grid-based Sine Functions)初始化两个水平集函数 phi1 和 phi2。这种初始化方式能够产生遍布全图的网格状初始轮廓,有效缩短演化路径,避免局部最优解。
- 区域特征平均值计算
在每次迭代中,系统利用平滑后的海维赛德(Heaviside)函数将图像分为四个逻辑区域:
- 区域11:phi1 > 0 且 phi2 > 0
- 区域10:phi1 > 0 且 phi2 < 0
- 区域01:phi1 < 0 且 phi2 > 0
- 区域00:phi1 < 0 且 phi2 < 0
系统计算每个区域内像素的平均灰度值(c11, c10, c01, c00),作为演化驱动力的数据项。
- 能量泛函的变分演化
系统通过两个核心偏微分方程驱动 phi1 和 phi2 的演化:
- 长度约束项(Length Term):利用散度算子计算曲率,使轮廓线趋于平滑并尽可能缩短总长度。
- 数据拟合项(Data Fitting Term):通过当前像素灰度与四个区域均值的平方差来调整轮廓位置,使各区域内部的方差最小化。
- 数值离散化方案
梯度计算采用中心差分法,狄拉克(Dirac)函数和海维赛德函数均采用了基于 arctan 的平滑化近似处理,以确保在零水平集附近的取值连续可微,保证数值计算的稳定性。
- 能量监控与终止
系统记录每次迭代的总能量泛函值,该能量由各相内部的拟合误差组成。通过能量曲线的下降斜率,用户可以直观地判断算法是否达到了收敛状态。
关键函数说明
- 曲率计算:通过计算水平集梯度场的散度,获得轮廓的曲率信息,这是实现平滑分割的关键。
- 平滑海维赛德函数:引入 epsilon 参数对跳跃函数进行平滑处理,使得各个相位之间的过渡在数学上可计算。
- 分割掩膜合成:在演化结束后,系统利用逻辑比较操作,将两个浮点型水平集函数转换为 1-4 编号的整型掩膜,生成最终的多相分类图像。