简单多边形中轴变换的MATLAB实现
项目介绍
本项目实现了一种基于几何分解与距离变换的简单多边形(无自相交边界)中轴计算方法。中轴(Medial Axis)是多边形内部所有到边界距离相等点的集合,能够有效反映多边形的骨架结构,在图像处理、几何建模和路径规划等领域具有重要应用价值。
功能特性
- 通用多边形处理:支持任意简单多边形的中轴计算,自动处理凸多边形和凹多边形
- 双算法融合:结合几何三角剖分和距离变换方法,确保中轴提取的准确性和完整性
- 参数可调:提供离散化精度和平滑系数等参数调节,适应不同精度需求
- 可视化展示:实时显示原始多边形与计算结果的对比图形,直观呈现中轴结构
- 数据输出:输出结构化数据,便于后续分析和应用
使用方法
基本调用
% 定义多边形顶点(按顺序排列)
vertices = [0,0; 2,0; 2,1; 1,2; 0,1];
% 基本调用(使用默认参数)
result = main(vertices);
参数调节
% 高级调用(自定义参数)
result = main(vertices, 'discretization_step', 0.05, 'smoothing_factor', 0.02);
输入参数说明
vertices:N×2数值矩阵,按顺时针或逆时针顺序排列的多边形顶点坐标discretization_step:离散化精度阈值(默认0.1),值越小精度越高smoothing_factor:平滑系数(默认0.01),控制中轴光滑程度
输出结果
- 坐标数据:M×2矩阵形式的中轴线离散点坐标
- 可视化图形:左右对比子图显示原始多边形和叠加中轴的结果
- 结构体数据:包含完整计算信息和参数的标准化数据结构
系统要求
- MATLAB R2018b或更高版本
- 需要安装Image Processing Toolbox
- 建议内存4GB以上,处理复杂多边形时需更大内存
文件说明
主程序文件实现了多边形边界数据的预处理与校验、基于离散点采样的边界离散化处理、距离变换场的计算与中轴点提取、骨架分支的连接与优化整理、结果数据的结构化输出与图形化展示等核心功能模块,构成了完整的中轴计算流程。