基于颜色特征的图像检索系统
项目介绍
本项目实现了一个基于视觉色彩信息的图像检索方案。系统通过分析图像的色彩分布,将复杂的图像信息转化为多维特征向量,并在图像库中通过数学度两方法寻找视觉相似度最高的匹配项。该系统适用于根据色调、氛围进行图片分类和检索的场景,具备操作便捷、计算高效且结果直观的特点。
功能特性
- 交互式操作:采用图形化用户界面(GUI),支持用户自主选择查询目标及搜索范围。
- 鲁棒的颜色特征提取:采用非均匀量化的HSV直方图,更符合人类视觉系统对色彩的感知。
- 精确的相似度度量:利用巴氏系数(Bhattacharyya Coefficient)衡量图像特征之间的重合程度。
- 动态进度反馈:在处理大规模数据集时提供实时进度条展示。
- 直观的结果展示:自动对检索结果进行降序排列,并以热度图形式集中展示最佳匹配结果。
运行环境要求
- 软件环境:MATLAB R2016b 或更高版本。
- 必备工具箱:图像处理工具箱 (Image Processing Toolbox)。
- 支持格式:支持 .jpg, .png, .jpeg, .bmp 等主流图像格式。
详细功能流程与实现逻辑
1. 任务初始化与数据获取
程序启动后会清理工作空间并关闭历史窗口。通过文件选择对话框获取用户指定的查询原图,随后通过目录选择对话框指定待检索的图像库文件夹。程序具备容错机制,若用户取消选择则会自动终止运行。
2. 非均匀量化特征建模
系统将输入图像由RGB空间映射到HSV空间,以实现色调、饱和度、亮度的分离处理。为了提高检索的鲁棒性,系统对三个分量执行了非均匀量化:
- 色调 (H):考虑到人眼对不同颜色波段的敏感度不同,将360度色阶划分为16个非等分的等级。
- 饱和度 (S):划分为4个等级,用于区分色彩的纯度。
- 亮度 (V):划分为4个等级,用于区分色彩的明暗。
最后通过加权合并公式将三个维度的索引组合成一个介于0-255之间的全量索引,并统计其分布频率形成256维的归一化直方图向量。这种量化方式有效地忽略了细节噪声,提取了图像的宏观色彩特征。
3. 数据库遍历与特征配准
系统逐一读取目标库内的图像文件,并自动排除查询图本身。对库中每一张合法图像执行相同的特征提取算法。利用巴氏系数计算查询直方图与待比对直方图之间的相似性,该系数结果介于0到1之间,数值越接近1表示两张图像的色彩分布规律越趋于一致。
4. 排序与可视化展示
在完成所有比对后,系统根据相似度数值从高到低进行全局排序。最终界面会创建一个可视化窗口,首位展示查询原图,随后依次排列前11位亲和度最高的候选图像。每张结果图下方均标注了相似度百分比及原始文件名,方便用户评估检索效果。
核心算法分析
颜色空间转换
将RGB转换为HSV是为了更贴合人类的视觉感知习惯。在HSV空间中,色彩的种类(H)与颜色的鲜艳度(S)及光照(V)是解耦的,这使得系统对光照变化和色彩偏移具有更好的容忍度。
巴氏系数 (Bhattacharyya Coefficient)
代码中通过 sum(sqrt(queryHist .* currentHist)) 计算相似度。作为一种概率分布重叠度的测量方法,巴氏系数比简单的欧氏距离在处理直方图数据时更具优势,因为它能更好地刻画两个分布样本之间的重叠关系。
特征降维逻辑
通过将 H(16级)、S(4级)、V(4级) 组合,将图像信息压缩为256个特征点。这种降维处理不仅极大提高了计算速度,还通过忽略微小的颜色波动增强了检索的泛化能力,使得系统能够找到“色调相近”而非仅仅“像素相同”的图片。