Skip to content

Latest commit

 

History

History
 
 

readme.md

计算机视觉python

一下是用python做计算机视觉的一些程序

imageSearch 进行图像检索

图像搜索原理:

提取图像特征 : 如采用SIFT、指纹算法函数、哈希函数、bundling features算法等也可以针对特定的图像集群采用特定的模式设计算法

图像特征的存储 : 一般将图像特征量化为数据存放于索引表中,并存储在外部存储介质中,搜索图片时仅搜索索引表中的图像特征,按匹配程度从高到低查找类似图像。

相似度匹配

相似度匹配。如存储的是特征向量,则比较特征向量之间的加权后的平方距离。如存储的是散列码,则比较Hamming距离。初筛后,还可以进一步筛选最佳图像集。

图片搜索引擎算法及框架设计

基本步骤: 采用颜色空间特征提取器和构图空间特征提取器提取图像特征。图像索引表构建驱动程序生成待搜索图像库的图像特征索引表。图像搜索引擎驱动程序执行搜索命令,生成原图图像特征并传入图片搜索匹配器。图片搜索匹配内核执行搜索匹配任务。返回前limit个最佳匹配图像。

定义图像描述符

虽然RGB值很容易理解,但RGB色彩空间无法模拟人眼接受到的色彩。取而代之,我们使用HSV色彩空间将像素点的映射到圆bin体上。 这个图像描述符是HSV颜色空间的3D颜色直方图(色相、饱和度、明度)。

我认为解释3D直方图最好的方式是用连接词AND。一个3D HSV颜色描述符将查找指定图像中1号bin有多少像素含有色相值,AND有多少像素有饱和度值,AND有多少像素有明度值。计算出符合条件的像素值。虽然需要对每个bin重复这个操作,但可以非常高效的完成这个任务。所以是乘法

对于我们的假期照片图像搜索引擎,将在HSV色彩空间中使用3D颜色直方图,8个bin用于色相通道、12个bin用于饱和度通道、3个bin用于明度通道,总共的特征向量有8 × 12 × 3=288。这意味着数据集中的每幅图像,无论其像素数目是36 × 36,还是2000 × 1800。最终都会用288个浮点数构成的列表抽象并量化表示。

这里不计算整个图像的3D HSV颜色直方图,而是计算图像中不同区域的3D HSV颜色直方图。使用基于区域的直方图,而不是全局直方图的好处是:这样我们可以模拟各个区域的颜色分布

CalcHist计算一个图像的颜色直方图

参考资料

OpenCV实现图像搜索引擎

用Python和OpenCV创建一个图片搜索引擎的完整指南

一个外国大牛的图像搜索博客The 3 Types of Image Search Engines