使用imagehash做图片识别

使用imagehash做图片识别

需求起因

最近因为需要,得识别不同链接的图片是否是同一张图片,所以开始研究起图像识别。
一开始我并没有想到要用工具,而是简单的使用 rb 的读取方式,读取图片二进制内容。然后对比两张图片是否相等。这个方法是最简单,也是有效果的,但是是最慢的,也是最耗内存的,因为每次对比一张图片,就得对图片库内的所有图片都遍历读入内存与之做对比,于是我在想是否有办法将图片抽象成一段简单的唯一字符串,以供后面的图片进行配对。

调查图片搜索引擎

然后我想到了之前有见过类似的声纹,图纹的图片搜索引擎的报道。于是我去网上搜索了下,发现真有这种方法,大概就是

  • 先将图片压缩成小图片
  • 然后将图片二值化,或者灰度值。
  • 再将其特征串(具体怎么获取特征串,并无研究)保存下来。这就可以解决问题了~

具体实行

我在搜索过程中,无意发现,python的代码库里有一个专门处理图片特征码的第三方库,这就好办了,下面我们开始实施

安装imagehash库的过程
pip install imagehash
// 他会安装以下第三方库
// numpy scipy pillow, PyWavelets, imagehash
进行简单的需求测试
from PIL import Image
import imagehash
path = u"C:/pic.jpg"
path2 = u"C:/pic_2.jpg"
hash = imagehash.average_hash(Image.open(path))
hash2 = imagehash.average_hash(Image.open(path2))
print hash, hash2

具体参考这里imagehash - github


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值