几何活动轮廓(GAC)算法MATLAB实现
项目介绍
本项目实现了一个基于几何活动轮廓(Geodesic Active Contours, GAC)模型的图像分割MATLAB解决方案。核心创新点在于同时实现了Upwind差分格式和ENO(Essentially Non-Oscillatory)两种数值方法用于水平集方程的离散求解,提供了完整的曲线演化框架。系统能够自动检测二维图像中的物体边界,适用于医学影像、计算机视觉等领域的图像分割任务。
功能特性
- 双数值方法支持:集成Upwind和ENO两种高精度数值求解方案
- 交互式初始化:支持鼠标交互绘制初始轮廓与预设坐标点两种初始化方式
- 参数可配置:灵活调整时间步长、迭代次数、正则化系数等关键参数
- 多模态输出:
- 分割结果可视化(轮廓叠加显示)
- 水平集演化过程动画
- 定量评估指标(Dice系数、Hausdorff距离)
- 能量收敛曲线分析
- 数值方法性能对比报告
使用方法
- 准备输入图像:载入待分割的二维灰度图像(JPG、PNG、BMP等格式)
- 设置初始轮廓:通过图形界面交互绘制或输入预设轮廓坐标
- 配置算法参数:调整时间步长、迭代次数、边缘检测阈值等参数
- 选择数值方法:指定使用Upwind或ENO离散化方案
- 执行分割算法:运行主程序开始曲线演化过程
- 查看输出结果:分析分割效果、演化动画和性能指标
系统要求
- MATLAB R2018b或更高版本
- Image Processing Toolbox
- 至少4GB内存(推荐8GB以上)
- 支持图形显示功能
文件说明
主程序文件整合了算法完整流程,包含图像读取与预处理、水平集函数初始化、速度场构建、曲率正则化计算、基于双数值方法的偏微分方程求解、演化过程可视化、分割精度量化评估以及性能对比分析等核心功能模块,实现了从数据输入到结果输出的端到端处理流水线。