基于Hu七个不变矩的图像特征提取系统
项目介绍
本项目是一个专门用于图像几何形状特征提取的算法系统,基于著名的Hu七个不变矩理论实现。不变矩是由M.K. Hu在1962年提出的理论,通过对图像中目标的各阶几何矩进行非线性组合,构造出一组对目标的平移、缩放(比例)和旋转变换均具有不变性的特征向量。本系统实现了从原始图像输入、二值化分割、形态学优化到最终特征提取与可视化的全流程,旨在为目标识别、机器视觉及图像分析提供稳健的形状指纹。
功能特性
- 自动化预处理:系统支持灰度化转换,并采用Otsu自动阈值法进行二值化分割。
- 形态学优化:内置空洞填充与小噪点去除功能,确保目标区域的完整性和纯净度。
- 目标区域定位:自动提取图像中的感兴趣区域(ROI),将计算聚焦于具体的连通域目标。
- 鲁棒特征计算:实现了从低阶到高阶(零阶至三阶)的几何矩计算。
- 三重变换不变性:通过平移补偿实现平移不变性,利用归一化因子实现比例不变性,通过代数组合实现旋转不变性。
- 特征可视化:提供直观的多图表对比,包括处理中间过程及基于对数幅值的特征分布直方图。
系统要求
- 软件环境:MATLAB R2016a 或更高版本。
- 必备工具箱:MATLAB Image Processing Toolbox (图像处理工具箱)。
- 硬件要求:通用计算机,支持基本图形显示。
使用方法
- 将当前路径切换至程序所在目录。
- 在命令行窗口直接运行主程序脚本。
- 系统将自动加载内置示例图像进行处理。若需处理自定义图像,可根据代码注释修改图像读取路径。
- 程序执行完毕后,控制台将输出七个Hu不变矩的具体数值,并弹出一个包含四个子图的可视化窗口。
实现逻辑与算法细节
#### 1. 图像预处理阶段
程序首先检查输入图像的通道数,若为RGB则转换为灰度图。随后利用 graythresh 函数计算最佳阈值,通过 im2bw 将图像转换为二值图。为了提高特征提取的准确性,程序使用了形态学填充(imfill)来消除目标内部的空洞,并使用面积过滤(bwareaopen)移除面积小于30像素的噪点。
#### 2. 目标ROI提取
系统通过计算连通域属性,提取图像中第一个有效目标的图像矩阵作为计算对象。这一步确保了后续矩计算是基于局部目标而非整张背景图,提高了特征的针对性。
#### 3. 几何矩与质心计算
- 零阶矩 (m00):通过对目标像素求和获得,代表目标的面积。
- 一阶矩 (m10, m01):结合坐标分量进行加权求和,用于确定目标的几何质心坐标 (x_center, y_center)。
#### 4. 中心矩与归一化
- 中心矩 (mu):通过减去质心坐标,消除目标位置(平移)对特征的影响。程序计算了二阶(mu20, mu02, mu11)和三阶(mu30, mu03, mu12, mu21)中心矩。
- 归一化中心矩 (eta):通过公式 eta_pq = mu_pq / (m00 ^ gamma) 计算,其中阶数之和决定了归一化因子。二阶矩的因子为2次幂,三阶矩为2.5次幂。这一步旨在消除目标大小(缩放)对结果的影响。
#### 5. Hu不变矩构造
程序根据Hu定义的经典代数公式,将归一化中心矩组合成七个特征值(Phi 1-7)。这些公式利用了代数不变量理论,抵消了旋转变换产生的变化。例如,Phi(1) 代表目标的离散度,Phi(2) 与目标的对称性相关。
#### 6. 结果呈现与量化分析
由于Hu不变矩的不同分量之间往往存在多个数量级的差异,程序在可视化部分采用了 log10(abs(phi)) 的处理方式。通过取对数幅值,将特征映射到一个易于观察和比较的区间,生成的柱状图能够清晰展示目标的“形状数字指纹”。同时,控制台会以科学计数法格式输出精确的特征向量,方便科研或工程分析使用。