> 毕业设计的系统地址也用 flask、gunicorn、supervior 和 nginx 反向代理部署在服务器了,地址点击这个链接[图像搜索引擎](http://pyimagesearch.chinadream.org)。
# 第 1 章 图像处理与特征检索
```
在构建图像相似度引擎之前,需要先对图像经行处理,以及提取每个图像的特征,其中图像处理也称为定义图像描述符,即通过图像描述符(也称为描述符)提取每个图像的特征。 图像描述符是用于描述图像的算法。 例如,R,G和B颜色通道的平均值和标准偏差,图像特征形状的统计矩以及形状和纹理的梯度和方位。
```
## 1.1 图像处理
```
对于图像初始化过程,有图像的RGB和HSV描述。 关于定义图像描述符选择,将使用HSV来使图像描述更加健壮和强大。
```
### 1.1.1 RGB 与 HSV 色彩空间简述
```
为了使更强大和更准确,这里将使用HSV色彩空间, HSV颜色空间的3D颜色直方图(色调,饱和度,亮度)作为图像描述符。 通常,图像由RGB的元组表示。 将RGB色彩空间作为一个立方体,如图3-1所示。
```
[![](https://www.writebug.com/myres/static/uploads/2021/11/28/086a8a42e69df49720b6ae32947080df.writebug)](https://imgchr.com/i/AtD12D)
图 1-1 RGB 立方体
但是,尽管 RGB 值易于理解,但 RGB 颜色空间无法被人眼所接受。 相反,使用 HSV 颜色空间将像素映射到圆形框(如图 3-2)。
[![](https://www.writebug.com/myres/static/uploads/2021/11/28/c21a735de85108a8431a1c030c96d1a6.writebug)](https://imgchr.com/i/AtDJrd)
图 1-2 HSV 圆 bin 体
### 1.1.2 RGB 转换 HSV 算法研究
对于RGB到HSL或HSV转换,令(r,g,b)分别为颜色的红,绿,蓝坐标,其中(r,g,b)的值为0到1之间的实数。令max作为r中的最大值 ,g和b。 让min等于这些值中的最小值。计算公式如3-1所示为:
| [![](https://www.writebug.com/myres/static/uploads/2021/11/28/806c884286c40c67f98ed36d624a8af6.writebug)](https://imgchr.com/i/AtDl8O) | 3-1 |
| --------------------------------------------------------------------------------------- | --- |
| | |
H的值通常规范化到0到360°之间。而h=0用于max=min的(就是灰色)时候而不是留下h未定义。HSL与HSV有同样的色相定义,但是其他分量不同。HSV的颜色s和v的值定义如公式3-2所示。
| [![](https://www.writebug.com/myres/static/uploads/2021/11/28/a9fd093b8a56addc7e0e5ca5867552ce.writebug)](https://imgchr.com/i/AtDQPK) | 3-2 |
| --------------------------------------------------------------------------------------- | --- |
| | |
### 1.1.3 效果检测
```
RGB转换HSV效果如图3-3所示
```
[![](https://www.writebug.com/myres/static/uploads/2021/11/28/e08f0014e72d0f045d8c9760980ff714.writebug)](https://imgchr.com/i/AtD3xe)
图 1-3 RGB 转换 HSV
## 1.2 图像特征提取
图像处理过后,接着就是根据图像描述符来提取这些图像的特征,将其存储在本地数据库中,这里将采用Opencv的calcHist()函数,能够方便提取图像的像素值。
### 1.2.1 HSV 直方图计算研究
Opencv库有内置函数cv2.calcHist()可以统计一副图像的直方图,其使用的一般形式如下:
cv2.calcHist(images,channels,mask,histSize,ranges[,hist[,accumulate]])
u images: 原图像(图像格式为 uint8 或 oat32)。当传入函数时应该 用中括号[]括起来,例如:[img]。
u channels: 同样需要用中括号括起来,它会告诉函数我们要统计那幅图像的直方图。如果输入图像是灰度图,它的值就是 [0];如果是彩色图像 的话,传入的参数可以是 [0],[1],[2] 它们分别对应着通道 B,G,R。
u mask: 掩模图像。要统计整幅图像的直方图就把它设为 None。但是如 果你想统计图像某一部分的直方图的话,你就需要制作一个掩模图像,并 使用它。(后边有例子)
u histSize:BIN 的数目。也应该用中括号括起来,例如:[256]。 5. ranges: 像素值范围,通常为 [0,256]
### 1.2.2 效果检测
HSV直方图计算结果检测(如图3-4所示):
![](https://www.writebug.com/myres/static/uploads/2021/11/28/4428946203be2eb89efc9ddd20e03744.writebug)
图 1-4 HSV 直方图计算
最后程序运行后在本地得到一个csv格式的文件,用于存储每个图像的hsv特征(如图3-5 所示)。
![](https://www.writebug.com/myres/static/uploads/2021/11/28/d85fbd8d0fe8ae9c696737186daa73d1.writebug)
图 1-5 提取到的各个图像的 hsv 特征值(部分图)
## 1.3 图像特征检索
数据集中的每个图像特征提取之后,接下来需要一个方法来比较这些特征,获取相似度,其中在机器学习中,存在若干种常用的相似度计算方法。
### 1.3.1 相似度算法研究
卡方检验
定义:卡方检验是广泛使用的计数数据的假设检验方法。 它属于非参数检验类别,主要分析两个或更多采样率(组成比)和两个分类变量之间的相关性。 基本思想是比较理论频率和实际频率之间的吻合程度或拟合度。
公式:如公式 3-9 所示。
| [![](https://www.writebug.com/myres/static/uploads/2021/11/28/cb3442e59a08a00b2a4d73c8adee1b9b.writebug)](https://imgchr.com/i/AtDsMQ) | 3-9 |
| --------------------------------------------------------------------------------------- | --- |
| | |
### 1.3.2 相似图像算法实现
由于数据集中的每个图像的直方图是用于与待匹配图像的直方图经行比较的,并且根据概率统计分布,选择卡方检测用来比较相似度是最好的。可知两幅图像卡方值越小,图像之间的差异性就越小,相反的,两幅图像卡方值越大,图像之间的差异性就越大(如图3-6所示)
![](https://www.writebug.com/myres/static/uploads/2021/11/28/494baf4b7e8fb384b89c91c49b4d9d03.writebug)
图 1-6 卡方检验算法实现
### 1.3.3 效果检测
根据上述算法,经过程序运行后,传入一张体育馆侧面图片(如图3-7所示),经过相似度匹配,从图片数据集中返回了一张体育馆正面图片(如图3-8所示)。相似度匹配效果良好。
![](https://www.writebug.com/myres/static/uploads/2021/11/28/39409ea30b7e271d6ccb469059b334c6.writebug)
图 1-7 待匹配图片
![](https://www.writebug.com/myres/static/uploads/2021/11/28/4c7fc80ee8d1e25c570c3f8729492428.writebug)
图 1-8 匹配结果
## 1.4 本章小结
本章介绍到了我们构建图像相利用颜色直方图作为图像描述符,从图像的颜色分布中提取特征是有益的。正因为如此,可以为图像搜索引擎做一个重要的假设,假设如果图像包含相似的颜色分布,则这两个图像被认为是相似的。即使图像的内容是非常不同的,它将被认为是相似的,根据颜色分布。用于图像特征检索,介绍了欧几里得距离、哈曼顿距离等相似度算法,综合考虑选择了卡方检测,经过程序运行后,得到匹配的结果,检索效果良好。
# 第 2 章 系统设计与实现
## 2.1 系统需求分析
建立图像数据集,研究图像机器学习中的表示方法,研究图像相似度算法,利用Python语言建立图像相似度引擎系统。提交系统功能完善,界面人机交互好,操作简单的使用Python机器学习建立图像相似度引擎系统。基本要求如下:
(1) 能够简单提交待匹配图片。
(2) 能够自主选择匹配图片数量。
(3) 返回匹配的图片在界面上完整显示。
(4) 返回的每一�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于python flask 实现图像相似性匹配系统 毕业设计附完整代码+数据.zip 毕业设计的系统地址也用 flask、gunicorn、supervior 和 nginx 反向代理部署在服务器了,图像搜索引擎地址为http://pyimagesearch.chinadream.org。
资源推荐
资源详情
资源评论
收起资源包目录
基于python flask 实现图像相似性匹配系统 毕业设计附完整代码+数据.zip (1053个子文件)
python2.7 3.38MB
easy_install-2.7 271B
pip2.7 253B
activate 2KB
sysconfig.cfg 3KB
distutils.cfg 228B
activate.csh 1KB
whpu.csv 329KB
easy_install 271B
t64.exe 100KB
w64.exe 97KB
t32.exe 91KB
w32.exe 87KB
gui-64.exe 74KB
cli-64.exe 73KB
cli-32.exe 64KB
cli.exe 64KB
gui-32.exe 64KB
gui.exe 64KB
activate.fish 2KB
index.html 7KB
index.html 6KB
INSTALLER 4B
INSTALLER 4B
INSTALLER 4B
INSTALLER 4B
46.jpg 145KB
46.jpg 145KB
45.jpg 130KB
45.jpg 130KB
38.jpg 111KB
38.jpg 111KB
44.jpg 109KB
44.jpg 109KB
24.jpg 108KB
24.jpg 108KB
49.jpg 106KB
49.jpg 106KB
47.jpg 104KB
47.jpg 104KB
39.jpg 103KB
39.jpg 103KB
73.jpg 101KB
73.jpg 101KB
17.jpg 101KB
17.jpg 101KB
8.jpg 99KB
8.jpg 99KB
15.jpg 97KB
15.jpg 97KB
7.jpg 97KB
7.jpg 97KB
23.jpg 96KB
23.jpg 96KB
9.jpg 96KB
9.jpg 96KB
27.jpg 96KB
27.jpg 96KB
35.jpg 95KB
35.jpg 95KB
16.jpg 92KB
16.jpg 92KB
26.jpg 91KB
26.jpg 91KB
40.jpg 91KB
40.jpg 91KB
69.jpg 91KB
69.jpg 91KB
11.jpg 89KB
11.jpg 89KB
11.jpg 89KB
65.jpg 89KB
65.jpg 89KB
34.jpg 88KB
34.jpg 88KB
10.jpg 88KB
10.jpg 88KB
14.jpg 87KB
14.jpg 87KB
19.jpg 87KB
19.jpg 87KB
67.jpg 87KB
67.jpg 87KB
37.jpg 87KB
37.jpg 87KB
30.jpg 87KB
30.jpg 87KB
68.jpg 85KB
68.jpg 85KB
33.jpg 85KB
33.jpg 85KB
66.jpg 85KB
66.jpg 85KB
51.jpg 83KB
51.jpg 83KB
41.jpg 82KB
41.jpg 82KB
42.jpg 81KB
42.jpg 81KB
48.jpg 81KB
共 1053 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
甜辣uu
- 粉丝: 8383
- 资源: 1103
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功