# 一. 系统设计
基于内容的图像检索系统(Content Based Image Retrieval, 以下简称 CBIR),是计算机视 觉领域中关注大规模数字图像内容检索的研究分支。典型的 CBIR 系统,允许用户输入一张图像,在图像数据库(或本地机、或网络)中查找具有相同或相似内容的其它图片。本实训
的基本功能要求是实现基于视觉特征的图像检索。具体包括:
1. 实现基于颜色信息的图像 检索,可通过颜色直方图、颜色矩、颜色一致性矢量等方法来实现。
2. 实现基于纹理特征 的图像检索,可从四个方面进行:统计法、结构法、模型法、频谱法。
3. 实现基于形状特 征的图像检索,可分别从图像的边缘信息和区域信息来实现。
4. 实现基于综合信息的图像检索。
用户通过GUI,选择使用哪一种方法来图像检索,并通过选择文件的方式打开图片,最后在结果界面上显示输入图片,最佳图片,和两张较相似的图片。
# 二. 所采用算法思想
## 1. 基于颜色特征检索
### HSV 中心距法
> colorjuData.txt 保存的是 HSV 中心距法的特征值
颜色矩(color moments)是由Stricker 和Orengo所提出的一种非常简单而有效的颜色特征。这种方法的数学基础在于图像中任何的颜色分布均可以用它的矩来表示。此外,由于颜色分布信息主要集中在低阶矩中,因此仅采用颜色的一阶矩(mean)、二阶矩(variance)和三阶矩(skewness)就足以表达图像的颜色分布。与颜色直方图相比,该方法的另一个好处在于无需对特征进行向量化。因此,图像的颜色矩一共只需要9个分量(3个颜色分量,每个分量上3个低阶矩),与其他的颜色特征相比是非常简洁的。在实际应用中,为避免低次矩较弱的分辨能力,颜色矩常和其它特征结合使用,而且一般在使用其它特征前,起到过滤缩小范围(narrow down)的作用。HSV 中心距法是基于HSV空间的因此需要将RGB空间转换为HSV空间[1]。
### 直方图相交法
> Yansezhifangtu.txt 保存的是直方图相交法的特征值。
利用图像的特征描述图像,可借助特征的统计直方图。图像特征的统计直方图实际是一个1-D的离散函数[2],
上式中k代表图像的特征取值,L是特征可取值个数,是图像中具有特征值为k的像素的个数,N是图像像素的总数,一个示例如下图:其中有8个直方条,对应图像中的8种灰度像素在总像素中的比例。
得到图像特征的统计直方图后,不同图像之间的特征匹配可借助计算直方图间的相似度量来进行,以下介绍几种常见的直方图的相似度量方法:
1. 直方图相交法
另这里写图片描述分别为两幅图像某一特征的统计直方图,则两图像之间的匹配值P(Q, D)可借助直方图相交来实现,
2. 直方图匹配法
直方图间的距离可使用一般的欧式距离函数这里写图片描述来衡量
## 2. 基于纹理特征检索
### 灰度矩阵法
> greymatrixData.txt 保存的是灰度矩阵法的特征值。
灰度共生矩阵法(GLCM, Gray-level co-occurrence matrix),就是通过计算灰度图像得到它的共生矩阵,然后透过计算该共生矩阵得到矩阵的部分特征值,来分别代表图像的某些纹理特征(纹理的定义仍是难点)。灰度共生矩阵能反映图像灰度关于方向、相邻间隔、变化幅度等综合信息,它是分析图像的局部模式和它们排列规则的基础。
对于灰度共生矩阵的理解,需要明确几个概念:方向,偏移量和灰度共生矩阵的阶数[3]。
- 方向:一般计算过程会分别选在几个不同的方向来进行,常规的是水平方向0°,垂直90°,以及45°和135°;
- 步距d:中心像元(在下面的例程中进行说明);
- 灰度共生矩阵的阶数:与灰度图像灰度值的阶数相同,即当灰度图像灰度值阶数为N时,灰度共生矩阵为N × N的矩阵;
灰度共生矩阵(Gray-Level Co-occurrence Matrix,GLCM)统计了灰度图中像素间的灰度值分布规律以区分不同的纹理。
灰度共生矩阵可以定义为一个灰度为[Math Processing Error]的像素点与另一个与之对应位置上的像素点的灰度值为[Math Processing Error]的概率。那么所有估计的值可以表示成一个矩阵的形式,以此被称为灰度共生矩阵。如:根据图像中任意一点 [Math Processing Error] 的灰度值和它所对应的点 [Math Processing Error] 的灰度值可以得到一个灰度值组合 [Math Processing Error]。统计整福图像每一种灰度值组合出现的概率矩阵 [Math Processing Error] 即为灰度共生矩阵。
由于灰度共生矩阵的维度较大,一般不直接作为区分纹理的特征,而是基于它构建的一些统计量作为纹理分类特征。例如[Math Processing Error]曾提出了14种基于灰度共生矩阵计算出来的统计量:能量、熵、对比度、均匀性、相关性、方差、和平均、和方差、和熵、差方差、差平均、差熵、相关信息测度以及最大相关系数[5]。
## 3. 基于形状特征检索
### 形状的不变矩法
> ShapeNchangeData.txt 保存的是基于形状的不变矩法特征值。
几何矩是由Hu(Visual pattern recognition by moment invariants)在1962年提出的,具有平移、旋转和尺度不变性。
由Hu矩组成的特征量对图片进行识别,优点就是速度很快,缺点是识别率比较低,我做过手势识别,对于已经分割好的手势轮廓图,识别率也就30%左右,对于纹理比较丰富的图片,识别率更是不堪入眼,只有10%左右。这一部分原因是由于Hu不变矩只用到低阶矩(最多也就用到三阶矩),对于图像的细节未能很好的描述出来,导致对图像的描述不够完整。
Hu不变矩一般用来识别图像中大的物体,对于物体的形状描述得比较好,图像的纹理特征不能太复杂,像识别水果的形状,或者对于车牌中的简单字符的识别效果会相对好一些[4]。
### 形状边缘直方图法
> shapeHistogramData.txt 保存的是基于形状边缘直方图法特征值。
边缘分布直方图作为一种简单有效的形状表示方法,在目标检测,目标识别等方面一直有着广泛的应用。
边缘检测根本上说就是通过比较图像各点的边缘方向信息来进行识别。
一般我们采用MPEG-7对图像边缘的定义对图像中各点的边缘信息进行分类。
MPEG-7将图像边缘分为五个方向,水平、竖直、斜45度、斜135度和无方向。这五种方向分别对应五个不同的边缘描述子。
这里我们介绍一个分块的边缘直方图匹配方法,该方法适合于在大规模的图象数据中找到需要的结果,搜索速度较快。
首先对图像进行分块,然后使用图1中的五种边缘描述子对各块的边缘方向信息进行提取,并画出直方图,在数据库中搜索与各小块中直方图匹配的数据。该方法运算速度快,适合大规模图像的查找,但是没能考虑图块的位置问题,不适用与精确的图像搜索。
# 三. 详细实现过程
## HSV 中心距法
上文介绍过HSV中心距法的算法,首先就是将RGB空间转换为HSV空间,得到三个通道的值之后进行运算。每张图片获得九维的数据。
```python
# Convert BGR to HSV colorspace
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# Split the channels - h,s,v
h, s, v = cv2.split(hsv)
# Initialize the color feature
color_feature = []
# N = h.shape[0] * h.shape[1]
# The first central moment - average
h_mean = np.mean(h) # np.sum(h)/float(N)
s_mean = np.mean(s) # np.sum(s)/float(N)
v_mean = np.mean(v) # np.sum(v)/float(N)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
<项目介绍> - 基于内容的图像检索系统是计算机视觉领域中关注大规模数字图像内容检索的研究分支。典型的 CBIR 系统,允许用户输入一张图像,在图像数据库(或本地机、或网络)中查找具有相同或相似内容的其它图片。本实训的基本功能要求是实现基于视觉特征的图像检索 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
基于内容的图像检索系统.zip (26个子文件)
基于内容的图像检索系统
Pretreatment
shapeHistogramData.txt 991KB
hsv.py 2KB
ShapeNchange.py 586B
VeinMCM.py 0B
ShapeHistogram.py 6KB
GreyMatrix.py 2KB
Hist.py 3KB
Repository
shapeHistogramData.txt 964KB
Yansezhifangtu.txt 4.83MB
ShapeNchangeData.txt 1.53MB
GreyMatrixData.txt 1001KB
colorjuData.txt 1.34MB
dataset
README.md 103B
.idea
shixun2.iml 398B
vcs.xml 180B
workspace.xml 41KB
misc.xml 254B
modules.xml 266B
note
README.md 23KB
Service
gui.py 1007B
SearchbyShapeHist.py 8KB
SearchbyShapeNchange.py 2KB
SearchbyYansezhifang.py 4KB
SearchbyColorju.py 4KB
SearchbyGreyMatrix.py 4KB
README.md 1KB
共 26 条
- 1
资源评论
- qq_580916982024-05-11资源内容详实,描述详尽,解决了我的问题,受益匪浅,学到了。
- qq_577195752024-06-14这个资源总结的也太全面了吧,内容详实,对我帮助很大。
- 2301_768073662024-06-28总算找到了自己想要的资源,对自己的启发很大,感谢分享~
程序员无锋
- 粉丝: 3679
- 资源: 2233
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- sensors-18-03721.pdf
- Facebook.apk
- 推荐一款JTools的call-this-method插件
- json的合法基色来自红包东i请各位
- 项目采用YOLO V4算法模型进行目标检测,使用Deep SORT目标跟踪算法 .zip
- 针对实时视频流和静态图像实现的对象检测和跟踪算法 .zip
- 部署 yolox 算法使用 deepstream.zip
- 基于webmagic、springboot和mybatis的MagicToe Java爬虫设计源码
- 通过实时流协议 (RTSP) 使用 Yolo、OpenCV 和 Python 进行深度学习的对象检测.zip
- 基于Python和HTML的tb商品列表查询分析设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功