基于张量投票算法的断裂线段修复与特征提取系统
项目介绍
本项目是一个基于张量投票(Tensor Voting)理论的图像处理系统,旨在解决复杂背景下线状结构的非连续性修复问题。系统通过模拟人类视觉系统的感知组织特性,利用二阶对称张量来编码像素点的几何结构信息。该方法能够从零散、且带有噪声的数据点中提取出潜在的曲线结构,实现断裂线段的逻辑闭合,并能精确计算线段的切向与法向特征。在裂纹检测、指纹增强以及医学影像提取等领域具有广泛的应用价值。
功能特性
- 断裂自动修复:利用棒状投票(Stick Voting)机制,根据曲率一致性原则,自动填补直线或曲线运动路径中的空隙。
- 鲁棒噪声抑制:通过计算张量场中的显著性测度,能够有效识别并过滤掉随机分布的孤立噪声点。
- 几何特征量化:通过对合成张量进行特征分解,能够提取出每个像素点的显著性强度以及精确的切向量方向。
- 自适应显著性映射:生成全局显著性热力图,以直观展示算法对图像深层几何结构的感知能力。
使用方法
- 环境准备:确保已安装 MATLAB 软件。
- 运行程序:直接在 MATLAB 命令行窗口运行该脚本。
- 参数调节:
- 修改 sigma 值可调整投票的传播距离(sigma 越大,修复断裂的能力越强,但细节会模糊)。
- 修改 threshold 值可调整修复结果的筛选阈值。
- 修改 noise_ratio 可测试系统在不同噪声水平下的稳定性。
- 结果查看:程序运行结束后将自动弹出三个对比窗口,分别显示原始断裂图像、张量显著性分布图以及最终修复后的线段矢量场。
系统要求
- MATLAB R2016b 或更高版本。
- 图像处理工具箱(Image Processing Toolbox)。
详细实现逻辑
系统在 main.m 中通过以下五个核心步骤实现完整的功能闭环:
1. 模拟环境构建
系统首先构造一个 200x200 像素的二值图像。在该图像中人为设计了两类断裂场景:一是垂直线段的中断,二是圆弧路径的部分缺失。随后,系统向图像引入随机的二值脉冲噪声,用于模拟实际工程中传感器产生的干扰背景。
2. 初始张量场初始化
系统对输入像素进行初步预处理,首先通过高斯滤波平滑图像,并利用梯度算子(gradient)计算每个数据点的初始法方向。对于图像中所有非零点,将其包装为二阶对称张量(Stick Tensor),即通过法向量与其转置的乘积形成初始张量场。
3. 棒状投票(Stick Voting)扩散逻辑
这是系统的核心算法逻辑。程序遍历图像中的每一个具有结构的“投票者”点,并根据预设的尺度参数 sigma 在其邻域内传播信息:
- 密切圆约束(Osculating Circle):系统根据投票者与受票者之间的相对位置,计算连接两者的唯一平滑圆弧路径。
- 曲率与路径计算:通过几何关系推导出弧长(s)和曲率(kappa)。
- 能量衰减:投票强度随弧长和曲率的增加呈指数级衰减,确保只有符合平滑性约束的点能获得高分。
- 张量累加:受票点会接收到由投票者诱导产生的法线方向,并将这些贡献以二阶张量的形式累加到全局场中。
4. 特征提取与分解
在所有点完成投票投影后,系统对产生的混合张量场进行特征值分解:
- 显著性计算:通过两个特征值之差(lambda1 - lambda2)定义棒状显著性。差值越大,代表该点属于线状结构的概率越高。
- 切向探测:较小特征值对应的特征向量方向即为曲线的切线方向,反映了线段的延伸趋势。
5. 逻辑闭合与可视化
最后,系统对显著性图进行归一化处理,并结合设定的阈值提取出修复后的连续线段。可视化模块负责将原始噪声图、显著性强度热力图以及带有切向矢量场的修复图进行分屏对比展示,从而直观验证修复效果。
关键实现细节分析
- 各向异性扩散:算法并非简单的各向同性模糊,而是沿着结构的法向量方向进行有针对性的投影,这保证了线段在修复的同时不会发生侧向加粗。
- 零特征值处理:在特征分解中引入 eps 常数,确保了在数学计算上处理背景区域时的稳定性,避免了零向量导致的计算错误。
- 归一化投影:在最终修复图展示时,系统通过对方向矢量进行抽样显示(Quiver 图),清晰地勾勒出了断裂间隙处逻辑上存在的几何流场。