基于MATLAB综合特征的图像检索系统
基于综合特征的图像检索系统
摘要
基于内容的图像检索(CBIR)是一个非常热门的研究领域。本文在对颜色特征、形状特征和纹理特征的研究基础上,将三种特征结合在一起,实现了可以自定义权重的综合特征的图像检索系统,并在平台上实现了这一系统。
图像特征的提取和相似性度量是CBIR的两个关键技术。对于颜色特征,本文采用HSV空间中的颜色矩表示颜色特征;对于形状特征,本文采用图像的不变矩作为形状特征;对于纹理特征,为减少计算量,本文首先对图像进行预分割,提取分割后区域基于傅立叶描述子的纹理特征作为整个图像的纹理特征。在相似性度量方面,采用曼哈顿距离作为度量标准,得到各个特征的相似度向量。
关键词:图像检索,颜色矩,不变矩,傅立叶描述子
1 图像检索的发展历程
从20世纪70年代开始,有关图像检索的研究就已开始,当时主要是基于文本的图像检索技术(Text-based Image Retrieval,简称TBIR),利用文本描述的方式描述图像的特征。到90年代以后,出现了对图像的内容语义,如图像的颜色、纹理、布局等进行分析和检索的图像检索技术,即基于内容的图像检索(Content-based Image Retrieval,简称CBIR)技术。
2 基于内容的图像检索
2.1 基于内容的图像检索的概念
基于内容的图像检索根据图像、图像的内容语义以及上下文联系进行查找,以图像语义特征为线索从图像数据库中检出具有相似特性的其它图像。因为图像的规模一般要大于纯粹的文本信息,因此,基于内容的图像检索在检索的速度和效率上要求更高。
2.2 CBIR的研究现状
在上世纪90年代,随着计算机和网络技术得到广泛应用之后,基于内容的图像检索技术取才得了较大的突破,人们也逐渐地将对基于内容的图像检索技术的研究成果应用到实际的工作和生活中,而对这种技术的需求的日益增长也驱动人们对基于内容的图像检索的技术向更高的层次进行研究。
从当前的CBIR的研究的热点和未来的发展趋势的来看,可大致将其研究分为三层[3]:
1. 最低层次的检索,在这个层次主要是利用全局特征(例如:颜色、纹理、形状等底层特征)去描述图像的内容,进行检索,这也是最直接的层面;
2.较高层次的检索,该层次主要是利用图像对象语义来描述图像的内容,进行检索,这种技术是底层特征的基础上加入了图像语义特征(例如:对象与对象之间的空间关系等);
3.最高层次的检索,该层次是利用图像概念级语义来描述图像的内容,进行检索,该技术是建立在图像对象语义特征提取的基础上加入了图像的概念级语义(例如:用户对图像的理解、情感等高层语义)。
尽管对CBIR技术的研究已经经过了很长时间,但目前较为常用的CBIR技术基本上都是基于底层特征的检索。现有的CBIR底层特征的检索系统主要包括基于颜色的图像检索系统、基于纹理的图像检索系统和基于形状的图像检索系统,下面就对上述三种检索系统进行一下简单的概述。
2.2.1 基于颜色特征的图像检索
颜色是描述图像内容最直接的视觉特性。颜色特征是一种定义比较明确和简单的特征,人的视觉对它的敏感度最大,人眼可以很直观地利用颜色特征区分出两幅图像的不同之处,因此颜色特征成为在CBIR研究中最早被用到的图像特征。
颜色特征的表示方法主要包括颜色索引、颜色矩等。颜色索引是一种以颜色直方图和直方图相交算法为基础的颜色特征表示方法,该方法在上述基础上,首先,将颜色空间划分为多个固定的子空间;其次,统计每个固定的子空间中像素的数目;最后,用直方图相交算法计算图像之间的相似度,按照相似度的大小对检索结果进行输出。
该方法除了具有颜色特征通用的优点外,还有个突出优点是计算简单。但也存在两个不足之处:一是它没有办法反映出颜色的空间分布信息,例如两幅图像中对象空间分布的位置不同时,这两幅图像可能具有几乎完全一致的颜色直方图。二是量化方法的不一样也可能对检索结果也可能产生很大的影响,比如原来两幅图像的颜色直方图很相似,但是由于量化过大,使得某些颜色消失,最终得到的两幅图像的颜色直方图大相径庭,这样造成了图像检索的准确度大大折扣。
由于颜色直方图在空间信息方面的缺失,后来又出现了颜色矩的概念来表示颜色特征,该方法先将图像按照一定的规则进行分块,然后对每一块提取颜色直方图。随后,出现了按物体对象的空间分割法,将图像按照图像中对象的分布进行分割,然后提取每个对象的颜色特征和对象之间的空间信息。上述两种方法都是在颜色整体特征的信息中加入了图像的空间分布信息,但是这两种方法存在的共同的缺陷是对于任意图像,如何对图像进行合适的分割。
除了上述颜色特征的表示方法外,还有颜色相关向量法和颜色聚类法,这两种方法也在颜色的特征中添加了空间信息,在实际的应用中不常见,还处于研究阶段。
2.2.2 基于纹理特征的图像检索
和颜色一样,纹理是也是图像中一种不可或缺的视觉特性。纹理没有统一的定义,一般可以用图像的某种局部性质来对纹理下定义,纹理描述了局部区域中像素之间的关系,同时也描述了图像中的空间分布信息。对纹理可以通过粗糙度、方向性、对比度和规则性四个方面来描述。应用较为广泛的基于纹理特征的图像检索技术包括采用共生矩阵,和基于数学模型如小波变换的纹理特征检索。
2.2.3 基于形状特征的图像检索
形状描述的是图像中各种物体的外在特征,所以基于形状的检索系统中最关键的技术是如何表示图像中物体的特有的外在特征和如何对提取出的形状特征进行特征匹配,目前常用的描述形状特征的方法主要包括:矩描述法、边界描述法和几何参数法。
以前表示形状特征的常用方法有链码、曲线、傅里叶描述子和B样条曲线等[6]。后来又出现了小波描述逼近法和超二次曲线法。
形状特征的提取需要人工对图像进行分割、提取目标,就目前的发展状况,还没有实现对形状特征的自动提取。而人眼对颜色和纹理特征比较敏感,提取方法也相对比较简单,所以在目前的检索系统中使用最多的底层特征是颜色和纹理特征。
3.基于综合特征的CBIR
为了结合各个底层特征的优点,本文同时提取图像的颜色、形状和纹理三种特征结合为一个综合特征,并实现结合权重的自定义。
3.1 颜色特征
在颜色特征方面,为减小运算量,采用颜色矩作为检索的特征,分别提取被检测图像和数据库中图像的一、二、三阶矩。由于HSV颜色空间的色调、饱和度、明度与人眼对颜色的主观认识相对比较符合,与其他颜色空间相比HSV空间能更好的反映人类对颜色的感知,所以本文采用HSV颜色空间下的颜色矩作为颜色特征。使用曼哈顿距离进行颜色矩相似度度量。
颜色信息集中在图像颜色的低阶矩中,主要是每种颜色分量的一阶矩(均值)、二阶矩(方差)、三阶矩(斜度),可以有效地表示图像中的颜色分布。
3.2 形状特征
本文利用形状不变矩作为图像检索的形状特征。利用目标区域所占的区域的矩作为形状描述参数是常用的形状描述方法。
3.3 纹理特征
由于图像检索的数据库一般比较大,如果直接对整幅图的纹理特征进行提取和分析,运算量将会非常大。所以本文先对图像进行分割,然后再对分割后的图像进行基于傅立叶描述子的纹理检测和纹理特征提取,以减少运算量。
3.3.1 图像预分割
为了减小运算量,突出图像的主要部分,我们在进行纹理特征提取之前对图像进行预分割。通常认为,图像特征主要体现在大连通域处,我们基于这个原理进行分割。首先将RGB图像二值化,进行形态学处理包括开运算和闭运算后,进行连通域分析,取最大的连通域作为目标区域进行纹理特征的检测。
3.3.2
在离散情况下,设边界上的点组成的有序点集可表示为一个复数序列
傅立叶描述子将目标放在频域进行分析,得到的目标频谱中低频分量代表物体的宏观形状属性,而高频分量则可以代表物体的细节特征,某些情况下即纹理特征。
3.3.3 纹理特征提取与检索
我们取图像中最大连通区域作为傅立叶描述子处理的目标区域,但是由于二值化后连通域内部的点已经没有频率分析的意义。所以,我们提取最大连通域的边界,只对边界的有序复坐标做傅立叶描述子分析,得到图像的纹理特征。
图1 图像预分割边界纹理
分别对图1的边界进行长度为256点的傅立叶描述后,得到其频谱图如图2。
图2 两纹理图傅立叶描述子比较
可以看出代表形状的低频分量占据了很大的能量,利用这样的特征向量在进行相似度度量时,纹理特征所占的比重会远小于形状特征,而且直观上看,两者的特征很难进行区分。所以我们去除频谱中的低频分量(去掉前15个点),只保留频谱中的高频分量,得到如下图所示的频谱图:
图3两纹理图傅立叶描述子高频分量部分
可见两者的高频纹理特征具有较大的区别性。
同样利用度量,即得到纹理特征的相似性向量。
3.4 综合特征
我们综合颜色特征、形状特征、纹理特征三种特征进行检索,设三种特征的相似性向量分别作为相似度的判据,即可得到图像相似度检索的结果。
4 图像检索系统设计
本文在Matlab平台上设计了基于三种特征综合的图像检索系统,设计界面如图4所示。
图4 检索系统界面
由于采用了三种特征进行综合的图像检索,运算时间较长,所以在655副图像的大数据库中随机抽取了24副图片作为小数据库,存放在程序目录下的Pic文件夹中,
4.1 界面功能介绍
4.1.1 图像文件路径设置
在这一区域输入图像文件的路径,默认路径为程序目录下的“Pic\”文件夹。
图5 设置路径区域
4.1.2 选择待匹配图像
图6 选择待匹配图片
通过“选择待匹配图像”的下拉菜单选择待匹配的图像,选择后即显示在下方区域。
4.1.3 自定义权重
图7 自定义权重区域
在这一区域进行综合特征权重的自定义,可以通过滑动“Slide”进行设置,设置值会显示在后面的矩形框中,也可以在矩形框中输入权值,权值范围为0-1。
图8 自定义权重示意
4.1.4 待匹配图性质检测
图9 待匹配图性质检测
这一区域可以检测待匹配图的一些性质,包括HSV颜色空间三通道的颜色直方图,利用分水岭算法实现的边界检测,以及在纹理特征部分提取的纹理特征傅氏描述。
图10 待匹配图颜色直方图
图11 待匹配图边界图
图12 待匹配图纹理傅氏描述子
4.1.5 检索结果显示
选择好待匹配的图片,并设置好权重后,单击“开始检索”按钮,即开始进行检索。
图13 检索过程示意图
等待
进度结束后即程序运行完毕,得到检索结果如图14所示。由于只是在小数据库内进行检索,因而除了第一相似图外,其他图像相似度并不很高。
图14 检索结果示意图
4.2 检索示例
以下是几个在此系统上进行图像检索的示例。
图15 检索结果示意图1
图16 检索结果示意图2
图17 检索结果示意图3
图18 检索结果示意图4
4.3 检索系统使用说明和注意事项
4.3.1 使用注意事项
1.目前仅支持24副图片下的检索,如果想增加数据库数量,请在对应文件夹内按名称命名顺序依次增加,“25.jpg、26.jpg、……”,并在GUI程序Run.m中“开始检索”按钮的回调函数(即function pushbutton_Start_Callback)中将图片数量变量num的取值进行对应修改。
2.需要先设置图片路径。如果在程序目录下的“Pic\”文件夹下,则无需修改。
3.检索前需选择待匹配图片,否则将会提示:
4.设置三种特征的权重必须为0-1之间的数字,不能超过这个范围或者为其他字符,否则将会提示:
5.进行待匹配图性质显示时,要先选择需要显示的性质,否则将会提示:
4.3.2 子程序说明
1.程序主目录下的“Pic”文件夹存放了24副图片,作为图像检索的数据库;
2.hsvfeature.m ,提取HSV颜色空间的颜色矩特征的子程序;
3.Shape_7_moment.m ,提取图像
不变矩的子程序;
4.Watershed.m ,基于分水岭轮廓检测的图像轮廓特征提取子程序,但是由于检索效果不好,所以没有采用到综合特征中去;
5.Fourier_texture2.m ,基于傅立叶描述子的纹理特征提取子程序。
5 参考文献
[1] 王向阳. 一种基于彩色边缘综合特征的图像检索算法[J]. 模式识别与人工智能, 2010
[2] 纪敏.MPEG-7颜色、纹理和形状描述子[J].计算机工程与应用,2004,40(26):44-47
[3] 李向阳.基于内容的图像检索技术与系统[J].计算机研究与发展2001,3
[4] Rafael C.Gonzalez 阮秋琦译. 数字图像处理(MATLAB版)[M]. 电子工业出版社,2005
[5] Dunlop M.D..Multimedia Information for Retrieval, Ph.D. Thesis. Computing Science Department, University of Glasgow, Report 199l
[6] Ellen M. Voorhees, Yuan-Wang Hou."Vector Expansion in a Large Collection”, First Text REtrieval Conference [TREC-1], 1993.
[7] Frisse M.E.Searching for information in a hypertext medical handbook. Communications of the ACM, 3 I[7], pp.880-886.
[8] R.Price, T.S Chua, and S.Al-Hawamdeh, Applying relevance feedback on a photo archival system. Journal of Information Science, 18:203-215, 1992
[9] 梁艳.基于内容的图像检索技术及应用[J].科技信息(科学教研),2008年,20期.
[10] 田靓.基于颜色内容的图像检索方法的比较[J].包装工程,2019,4.
[11] Petrou.M(英)著.赖剑辉译.数字图像处理疑难解析[M].机械工业出版社,2015.4
[12] 章毓晋.基于内容的视觉信息检索[M].图像图形科学丛书,2013
基于MATLAB综合特征的图像检索系统相关推荐
- 基于颜色特征的图像匹配MATLAB,基于颜色特征的图像检索系统 这是个MATLAB程序 - 下载 - 搜珍网...
压缩包 : 基于颜色特征的图像检索系统.rar 列表 基于颜色特征的图像检索系统\007.bmp 基于颜色特征的图像检索系统\01.bmp 基于颜色特征的图像检索系统\011.BMP 基于颜色特征的图 ...
- 基于MATLAB的人脸考勤识别系统
基于MATLAB的人脸考勤识别系统 摘 要 人脸识别是模式识别和图像处理等学科的一个研究热点,它广泛应用在身份验证.刑侦破案.视频监视.机器人智能化和医学等领域,具有广阔的应用价值和商用价值.人脸特征 ...
- 超详细基于MATLAB的人脸考勤识别系统
基于MATLAB的人脸考勤识别系统 摘 要 人脸识别是模式识别和图像处理等学科的一个研究热点,它广泛应用在身份验证.刑侦破案.视频监视.机器人智能化和医学等领域,具有广阔的应用价值和商用价值.人脸特征 ...
- 基于MATLAB的柑橘等级分类系统
基于MATLAB的柑橘等级分类系统 一.课题介绍 柑橘的识别方法目前主要还是采用劳动强度大.工作效率低.随意性大.客观性不强.不 符合当前标准化要求的人工检测方法a文中运用计算机视觉和模式识别技术,研 ...
- 基于deep learning的快速图像检索系统
深度学习与计算机视觉(11)_基于deep learning的快速图像检索系统 作者:寒小阳 时间:2016年3月. 出处: 声明:版权所有,转载请联系作者并注明出处 1.引言 本系统是基于CV ...
- 基于MATLAB的图像去雾系统
基于MATLAB的图像去雾系统 (一)图像去雾基础原理 1.雾霭的形成机理 雾实际上是由悬浮颗粒在大气中的微小液滴构成的气溶胶,常呈现乳白色,其底部位于地球表面,所以也可以看作是接近地面的云.霭其实跟 ...
- 基于matlab的自动人脸识别系统GUI设计
基于matlab的自动人脸识别系统GUI设计 之前做的一个课设项目半成品,一边网上找资料一边自己瞎捣鼓,完成了GUI界面的设计,实时视频中的人脸检测和追踪,PCA算法训练,单张人脸识别.但是识别率比较 ...
- 基于Matlab的人脸识别登录系统
基于Matlab的人脸识别登录系统 摘 要:人脸识别系统以人脸识别技术为核心,是一项新兴的生物识别技术,是当今比较热门的一项安全认证技术.它涉及人脸图像采集.人脸定位.人脸识别预处理.身份确认以及身份 ...
- matlab演示系统,基于Matlab的通信原理演示系统的设计与应用
基于 Matlab的通信原理演示系统的设计与应用 李 强 , 明 艳 , 吴坤君 (重庆邮电大学 通信学院 , 重庆 400065) 摘 要 : 利用 Matlab图形用户界面的开发环境和强大的通信仿 ...
- 【图像处理】基于matlab GUI多功能图像处理系统【含Matlab源码 1876期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像处理]基于matlab GUI多功能图像处理系统[含Matlab源码 1876期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...
最新文章
- java.lang.OutOfMemoryError: Java heap space错误及...
- linux 下Python调用C模块
- CMake Error include could not find load file: AwsCFlags 解決辦法
- 三种CDN调度系统实现原理详解
- C语言求十个数中最大值
- python 替换文本 通配符_使用通配符搜索和替换文本文件中的字符串
- 线程的3种实现方式并深入源码简单分析实现原理
- 深度学习各场景评估指标总结
- Redis的AOF的配置
- vue 鼠标点击事件_点击鼠标,利用VBA代码实现精准控制触发事件的第二方案
- JavaScript的API设计原则
- ZOOM视频会议共享声音,Zoom共享屏幕播放视频卡顿,你学会了吗?
- 左右广告悬浮框html,js 左右悬浮对联广告特效代码
- 帝国cms支持php多少,帝国cms支持php吗
- 多元线性方程的几种解法
- java 自定义 jpanel_在JList中使用自定义JPanel组件 - java
- K8S 数据卷volumes之Secret
- XML External Entities 攻击(XML外部实体注入)
- eclipse小应用程序||eclipse切换低版本JDK实现JavaAPPlet
- .Net 6.0中的新增特性_.Net 6.0中的新增功能
热门文章
- 记住鲁迅的所有文章,因为他具有深远的意义,在当下意义重大。
- java计算机毕业设计网上拍卖系统源码+数据库+系统+lw文档+mybatis+运行部署
- C语言可变参数问题(va_list,va_start,va_arg,va_end用法及定义)
- 第九课堂:人人都可以当老师
- android调用Camera.open方法报错“Too many cameras already open”
- 抵制微信公众号,从我做起
- Uncaught TypeError: Illegal invocation
- 定格动画运用的计算机技术是,定格动画中材料的运用.pdf
- 11210怎么等于24_算24点
- 学习-Java循环while之求非负数之和