基于DWT与SVD的图像内容检索系统
项目介绍
本项目是一个基于内容的图像检索(CBIR)原型系统,其理论基础源于《The Application of DWT and SVD in Image Retrieval》研究方案。系统通过结合离散小波变换(DWT)的频域分析能力与奇异值分解(SVD)的代数不变特性,实现了对图像深层特征的有效提取。该技术能够从复杂的图像数据中通过低频近似分量提取核心结构信息,并利用奇异值作为紧凑的特征描述符,从而在面对图像旋转、缩放或平移等几何形变时保持较好的检索鲁棒性。
功能特性
- 自动化的模拟数据库构建:系统内置了图像库初始化逻辑,能够自动生成带有特定几何形状和随机噪声的测试图像,通过编程方式快速构建实验环境。
- 双重特征提取机制:结合一阶 Haar 小波变换与奇异值分解,提取能够代表图像能量分布和基本轮廓的代数特征。
- 鲁棒性验证测试:在检索流程中特意加入了对查询图像的旋转和缩放预处理,用以模拟真实场景下的图像畸变,验证系统的匹配强度。
- 相似度量化度量:采用欧氏距离(Euclidean Distance)算法精确计算查询图像与数据库样本之间的特征差异。
- 多维结果展现:系统不仅提供直观的可视化对比界面,展示查询图与前 K 位匹配结果,还会生成详细的数据检索报告,包含文件名和具体的相似度数值。
系统要求
- 软件环境:MATLAB R2016a 或更高版本。
- 工具箱需求:需安装 Image Processing Toolbox(图像处理工具箱)以支持小波变换、图像缩放及旋转等核心函数。
- 硬件建议:标准的桌面计算机即可,内存建议 4GB 以上以确保大批量图像处理的效率。
实现逻辑与详细功能说明
系统的运行流程严格遵循以下逻辑阶段:
1. 环境初始化与数据库模拟
程序开始执行时,首先清理工作空间并检查目标路径。若指定的图像库文件夹不存在,系统会自动创建该目录。随后,系统会生成指定数量(默认为10张)的 256x256 像素图像。为了增加分类差异性,系统根据索引的奇偶性在图像中心绘制不同的灰度矩形块,并叠加强度为 10 的随机噪声。这些图像随后被保存为 JPG 格式,构成检索的基础数据库。
2. 图像库特征索引建立
系统遍历数据库目录中的所有图像文件。对于每一张图像,调用特征提取核心算法,获取其对应的 DWT-SVD 特征向量。这些特征与对应的文件名被封装在元胞数组中,形成一个持久化的特征索引表,供后续匹配使用。
3. 特征提取核心算法分析
该功能位于独立的内部函数中,其处理逻辑如下:
- 颜色空间转换:若输入为彩色图像,系统会先其将其转换为灰度图。
- 尺寸归一化:将所有输入图像统一缩放至 256x256 像素,确保特征向量的长度一致。
- 频率分解:应用一级离散小波变换(Haar小波),将图像分解为低频近似(LL)、水平细节(LH)、垂直细节(HL)和对角细节(HH)四个子带。
- 代数分解:仅针对包含图像主要能量的低频近似(LL)子带执行奇异值分解(SVD)。
- 向量生成:提取 SVD 分解后得到的对角矩阵中的奇异值。这些奇异值反映了图像矩阵的固有属性,且对常见的几何操作具有不敏感性。最终将这些奇异值排列成一个一维向量。
4. 查询图像预处理
为了模拟真实的检索场景,系统选取库中第一张图像作为基准,并对其施加 5 度的旋转(裁剪模式)和 1.1 倍的比例缩放。随后,对这张经过修改的查询图像执行与库图像完全相同的 DWT-SVD 特征提取。
5. 相似度匹配与排序
系统采用欧氏距离作为相似度衡量标准。通过循环计算查询特征向量与数据库中每一个特征向量之间的欧式距离。距离越小,代表两张图像在代数特征空间上的相似度越高。计算完成后,系统对所有距离进行升序排列。
6. 结果可视化与报告输出
- 视图展示:系统弹出一个图形窗口,左侧显示经过偏移处理的查询图像,右侧依次展示前五个最相似的匹配结果。每个结果下方均标注了匹配排名和具体的欧氏距离。
- 文本报告:在控制台同步打印检索数据表,详细列出检索排名、对应的文件名以及高精度的相似度分值,方便用户评估系统的查准率。
使用方法
- 将 main.m 文件放置在 MATLAB 的工作目录下。
- 在 MATLAB 命令行窗口中输入 main 并按回车键。
- 系统将自动执行从库创建到结果展示的全过程。
- 运行结束后,用户可以在工作区的 image_database 文件夹中查看生成的模拟图像,并在弹出的 Figure 窗口中观察检索准确度。