基于边缘方向直方图(EOH)的图像检索系统
项目介绍
本项目是一个基于MATLAB开发的图像检索系统,核心技术采用边缘方向直方图(Edge Orientation Histogram, EOH)。该系统专门设计用于检索具有显著形状特征和轮廓信息的图像。与传统的基于色彩或纹理的检索方法不同,EOH通过统计图像边缘在不同角度上的空间分布,能够有效捕捉物体的几何结构。这使得系统在面对光照剧烈变化或色彩波动时,依然能保持高度的鲁棒性和准确性,特别适用于花朵、零件、交通工具等轮廓特征明显的图像类别。
功能特性
- 自动化演示数据库生成:程序内置了模拟数据库构建功能,可自动对基础图像进行旋转、缩放、加噪等处理,生成用于测试的图像集。
- 多级边缘量化:系统将0至180度的方向范围精确划分为8个等分区间,将复杂的图像轮廓转换为精简的8维特征向量。
- 高效特征索引:系统在检索前会对整个数据库进行预处理,建立特征索引库,显著提升大规模数据下的响应速度。
- 鲁棒性预处理:内置灰度化和高斯平滑滤波,剔除背景噪声对边缘提取的干扰。
- 直观的结果展示:系统提供可视化界面,同步展示查询图像、其对应的EOH特征分布图以及相似度排名前五的匹配结果。
使用方法
- 环境准备:确保安装了MATLAB以及图像处理工具箱(Image Processing Toolbox)。
- 运行程序:在MATLAB命令行窗口运行主程序脚本。
- 自动建库:如果是首次运行,程序会自动在当前目录下创建名为图像库的文件夹并生成测试图片。
- 检索流程:程序会自动随机选取一张图像作为查询目标,提取其特征并与数据库进行比对。
- 查看结果:弹出可视化窗口,观察查询图与检索结果的匹配度(距离得分越小表示越相似)。
系统要求
- 软件环境:MATLAB R2016a 或更高版本。
- 依赖工具箱:Image Processing Toolbox(用于图像滤波、边缘算子计算及形态学处理)。
核心实现逻辑
系统的运行遵循以下标准化流程:
- 初始化与环境配置:程序启动后首先清理工作空间,并设定边缘方向量化级别(默认为8个Bin)和相似度过滤阈值。
- 数据库特征提取:遍历指定文件夹下的所有JPG图像。对于每一张图像,执行特征提取函数,并将生成的8维特征向量存储在矩阵中,同时记录文件路径用于后续调用。
- 执行查询请求:从数据库中随机抽取一张图像作为查询输入,或者由用户指定特定图像。
- 相似度度量计算:将查询图像的特征向量与数据库中存储的所有特征向量逐一进行欧氏距离计算。
- 排序与输出:根据计算得到的距离值进行升序排列,距离最近的图像即为结构最相似的项目。
算法细节分析
特征提取实现过程
- 图像预处理:
- 将输入图像统一转换为双精度浮点型的灰度图像。
- 应用高斯滤波器进行平滑处理,减少由于噪声产生的虚假边缘。
- 梯度与方向计算:
- 使用Sobel算子(水平和垂直方向算子)对图像进行卷积得到梯度分量。
- 利用反三角函数计算每个像素点的梯度方向(范围-180到180度)。
- 将双向边缘统一映射到0-180度的无向范围,以增强对旋转和翻转的适应性。
- 量化与统计:
- 设定阈值筛选出梯度幅值较大的显著边缘像素。
- 将0-180度的连续取值量化为8个离散的区间(Bins)。
- 统计落入每个区间的边缘像素数量,形成直方图统计量。
- 特征归一化:
- 将统计得到的频次向量除以其总和,转化为概率分布特征。这种归一化处理消除了图像尺寸大小对检索结果的影响。
相似度计算准则
系统采用欧氏距离作为衡量两张图像几何相似性的标准。通过计算查询向量与库向量在8维空间中的直线距离,能够精确反映图像之间在边缘分布趋势上的差异。分值越接近0,代表两者的几何轮廓结构越一致。