一种使用平均哈希算法搜索图片的方法与流程

文档序号:16628922发布日期:2019-01-16 06:22阅读:1108来源:国知局
一种使用平均哈希算法搜索图片的方法与流程

本发明涉及到计算机技术领域,特别涉及一种使用平均哈希算法搜索图片的方法。



背景技术:

随着互联网技术的不断发展,互联网为人们提供了各种搜索以满足人们的需要。人们不仅需要对文本信息进行搜索,而且也需要在互联网上进行图片或局部相似图片的搜索,但由于图片搜索的特殊性,根据图片内容搜索图片是一个在世界范围内难以解决的技术难题。

平均哈希算法,它的作用是对每张图片生成一个″指纹″字符串,然后比较不同图片的指纹。比较结果越接近,就说明图片越相似,要求图片的内容不能变更,如果在图片上加几个文字它就不能被搜索出来。



技术实现要素:

发明的目的在于提供一种使用平均哈希算法搜索图片的方法,以图搜图,可以通过缩略图搜索到原图,可应用于互联网、医学上,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:

一种使用平均哈希算法搜索图片的方法,包括如下步骤:

步骤一:用户选择一张图片进行搜索;

步骤二:缩小尺寸,将图片缩小到8x8的尺寸,总共64个像素;

步骤三:简化图片色彩,将8*8的小图片转换成灰度图片,将64个像素的颜色转换成一种颜色;

步骤四:计算像素平均值,计算所有64个像素的灰度平均值;

步骤五:比较像素的灰度,将每个像素的灰度,与平均值进行比较,大于或等于平均值,记为1;小于平均值,记为0;

步骤六:计算哈希值,将上一步的比较结果,组合在一起,构成一个64位的整数,根据每个像素的灰度平均值生成图片指纹;

步骤七:根据图片指纹到数据库查询;

步骤八:输出查询结果。

进一步地,步骤三中将图片转换为灰度图片可采用浮点算法:gray=r*0.3+g*0.59+b*0.11或整数方法:gray=(r*30+g*59+b*11)/100或移位方法:gray=(r*76+g*151+b*28)>>8或平均值法:gray=(r+g+b)/3或仅取绿色:gray=g中的一种。

进一步地,gray由任一种方法求得后,将原来的rgb(r,g,b)中的r,g,b统一用gray替换,形成新的颜色rgb(gray,gray,gray),用它替换原来的rgb(r,g,b)即为灰度图。

进一步地,步骤三中64个像素的颜色为red、green、blue,转换成的颜色为黑白灰度。

与现有技术相比,本发明的有益效果是:本发明改变传统的图片搜索方式,将图片缩小到8x8的尺寸,总共64个像素,去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异,将8*8的小图片转换成灰度图片,将64个像素的颜色转换成一种颜色,将原来的rgb(r,g,b)中的r,g,b统一用gray替换,形成新的颜色rgb(gray,gray,gray),用它替换原来的rgb(r,g,b)即为灰度图,计算出所有64个像素的灰度平均值,比较像素的灰度,将每个像素的灰度,与平均值进行比较,计算哈希值,将上一步的比较结果,组合在一起,就构成了一个64位的整数,实现了以图搜图,可以通过缩略图搜索到原图,可应用于互联网、医学上。

附图说明

图1为本发明的图片查询处理流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,一种使用平均哈希算法搜索图片的方法,包括如下步骤:

步骤一:用户选择一张图片进行搜索,以此张图片为基础进行搜索;

步骤二:缩小尺寸,将图片缩小到8x8的尺寸,总共64个像素;这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异;

步骤三:简化图片色彩,将8*8的小图片转换成灰度图片,将64个像素的颜色(red,green,blue)转换成一种颜色(黑白灰度);便于后续计算灰度平均值;

对于一幅完整的图片,由红色、绿色、蓝色三个通道组成。红色、绿色、蓝色三个通道的缩览图都是以灰度显示。用不同的灰度色阶来表示“红,绿,蓝”在图片中的比重。通道中的纯白,代表了该色光在此处为最高亮度,亮度级别是255,将图片转换为灰度图片可采用如下方法:

采用浮点算法:gray=r*0.3+g*0.59+b*0.11;

整数方法:gray=(r*30+g*59+b*11)/100;

移位方法:gray=(r*76+g*151+b*28)>>8;

平均值法:gray=(r+g+b)/3

仅取绿色:gray=g。

通过上述任一种方法求得gray后,将原来的rgb(r,g,b)中的r,g,b统一用gray替换,形成新的颜色rgb(gray,gray,gray),用它替换原来的rgb(r,g,b)即为灰度图。

步骤四:计算像素平均值,计算所有64个像素的灰度平均值;

步骤五:比较像素的灰度,将每个像素的灰度,与平均值进行比较,大于或等于平均值,记为1;小于平均值,记为0;便于下一步的组合;

步骤六:计算哈希值,将上一步的比较结果,组合在一起,构成一个64位的整数,根据每个像素的灰度平均值生成图片指纹;

步骤七:根据图片指纹到数据库查询;

步骤八:输出查询结果,可以通过缩略图搜索到原图。

本发明以ios平台图片搜索app为例:

1)用户打开图片搜索app拍照或上传缩略图;

2)用户打开图片搜索app拍照或上传缩略图;

3)app使用计算像素灰度平均值的方法,计算出所有64个像素的灰度平均值;

4)app根据计算到的像素灰度平均值对64个像素分别标记;

5)app根据每个像素的标记计算出图片哈希值,保存为图片指纹;

6)app向服务器提供该图片的指纹,服务器在数据库中查询;

7)app向用户展示搜索结果。

综上所述,本发明提出的使用平均哈希算法搜索图片的方法,本发明改变传统的图片搜索方式,将图片缩小到8x8的尺寸,总共64个像素,去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异,将8*8的小图片转换成灰度图片,将64个像素的颜色转换成一种颜色,将原来的rgb(r,g,b)中的r,g,b统一用gray替换,形成新的颜色rgb(gray,gray,gray),用它替换原来的rgb(r,g,b)即为灰度图,计算出所有64个像素的灰度平均值,比较像素的灰度。将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0,计算哈希值。将上一步的比较结果,组合在一起,就构成了一个64位的整数,实现了以图搜图,可以通过缩略图搜索到原图,可应用于互联网、医学上。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1