图像七个不变矩提取与形状特征分析系统
项目介绍
本项目是一个基于 MATLAB 开发的图像形状特征提取解决方案。系统通过计算图像的 Hu 不变矩(Hu Invariant Moments),能够从图像目标中提取出对平移、比例缩放及旋转(RST)变化均保持不变量的代数矩特征。这些特征向量深刻反映了图像目标的几何分布信息,是目标识别、图像检索及自动分类等领域的核心技术手段。
功能特性
- 测试场景模拟:系统内置了图像变换模拟模块,通过动态生成原始矩形目标并进行旋转、缩放处理,直观验证特征的不变性。
- 多级矩分析:实现了从零阶到三阶的几何矩计算,并进阶推导出中心矩与归一化中心矩。
- 不变特征提取:精确构建七个 Hu 不变矩,捕捉目标从粗略轮廓到精细结构的完整形状信息。
- 可视化对比分析:系统采用对数域映射技术,将数值差异巨大的矩特征转化至可观测的坐标系下进行柱状图对比。
- 定量误差计算:自动计算变换前后特征值的偏差百分比,量化分析算法的稳定性。
实现逻辑与算法流程
程序由主控流程函数与核心特征提取函数组成,具体逻辑如下:
- 环境初始化与目标建模:
- 清理工作空间并构建一个 300x300 的二值化画布。
- 在画布中心生成一个白色矩形块作为分析对象。
- 应用双线性插值算法对目标进行 45 度旋转及 0.8 倍缩放,模拟实际应用中的几何形变。
- 核心特征提取算法:
-
预处理:将输入图像强制转换为双精度浮点型并进行二值化增强。
-
几何矩计算:通过坐标矩阵和像素值的点乘运算,获取 0 阶矩(面积)和 1 阶矩。
-
中心矩计算:通过计算图像质心(x_bar, y_bar),将坐标系归一化至物体中心,消除平移影响。计算出包括 u11, u20, u02, u30, u03, u12, u21 在内的各阶中心矩。
-
尺度归一化:利用零阶矩对各阶中心矩进行归一化处理,公式中幂次因子设为 (p+q)/2 + 1,从而消除缩放带来的数值变化。
-
Hu不变量构造:基于归一化中心矩,构造七个非线性代数组合。其中 H1 反映目标的紧凑度,其余矩则捕捉目标在不同方向上的对称性与偏移特性。
- 结果展示逻辑:
-
双视图对比:实时显示原始图像与经过旋转、缩放、填充后的变换图像。
-
特征对数映射:由于 Hu 矩的数值量级跨度极大(从 10^-3 到 10^-10 不等),程序采用了
-sign(H) * log10(|H|) 变换,以便在同一柱状图中清晰展现七个维度的特征。
-
终端数据报表:以科学计数法罗列 H1-H7 的具体数值,并实时计算变换前后的百分比误差。
关键技术细节
- 重心计算:利用 1 阶矩与 0 阶矩的比值精确锁定形状中心,这是实现平移不变性的基石。
- 高阶矩敏感度:算法涵盖了三阶矩(u30, u03 等),这使得特征能够识别物体的偏斜度和峰态。
- 数值稳定性处理:在提取函数中加入了空图像检查机制(m00 == 0),增强了代码在处理边缘情况时的鲁棒性。
- 网格化运算:利用 MATLAB 的 meshgrid 机制实现矩阵化坐标运算,大幅提升了矩计算的执行效率。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 必备工具箱:Image Processing Toolbox(图像处理工具箱)。
使用方法
- 在 MATLAB 控制台中将当前工作目录切换至程序所在文件夹。
- 直接运行主入口函数。
- 系统将自动弹出绘图窗口,显示目标图像及特征对比柱状图。
- 在命令行窗口查看详细的不变矩数值及误差分析结果。