python以图搜图api_以图搜图(二):python dHash算法

different Hash算法

dHash中文叫差异哈希算法,在对图片进行哈希转换时,通过左右两个像素大小的比较,得到最终哈希序列。相比于aHash算法。dHash速度快,判断效果也要好。

实现过程

缩小尺寸。将图片缩小为9*8大小,此时照片有72个像素点。

灰度化处理。

计算差异值,获得最后哈希值(与aHash主要区别处)。比较每行左右两个像素,如果左边的像素比右边的更亮(左边像素值大于右边像素值),则记录为1,否则为0。因为每行有9个像素,左右两个依次比较可得出8个值,所以8行像素共可以得出64个值,因此此时哈希值为长度是64的0-1序列。

将64位哈希值序列4个4个分割,转为十六进制。

图片配对,计算汉明距离。

python代码实现

from PIL import Image

import numpy as np

# 得到哈希值

def Get_hash(img):

hash = ''

image = Image.open(img)

image = np.array(image.resize((9, 8), Image.ANTIALIAS).convert('L'), 'f') # 9*8缩放,'f'表示整个数组都是float32类型

# 该遍历方法正好是234个像素

for i in range(8):

for j in range(8):

if image[i, j] > image[i, j + 1]:

hash +

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值