PHP实现图像模糊查询差值哈希dhash算法(一)

本文介绍了如何在PHP中实现图像模糊查询的差值哈希算法(dHash)。通过比较不同图像指纹计算方法的执行时间,dHash算法表现出较高的效率。文章详细讲解了dHash算法的步骤,包括图片缩放、获取灰度值、对比像素并生成64位二进制指纹的过程。
摘要由CSDN通过智能技术生成

常用图片指纹计算方式python版:https://blog.csdn.net/enter89/article/details/90293971
在本地电脑上测试5中不同的指纹计算算法
执行10000次时间(单位分钟):
均值哈希算法aHash:03.556553
差值哈希算法dHash:01.203760
感知哈希算法pHash:01.838117
三直方图算法:43.244584
单通道的直方图:11.793451
1、差值哈希算法
2、将图片缩放为98像素
3、获取像素点的灰度值
4、每行从第二个像素开始和该行的第一个参数对比,如果大于为1,小于为0
5、组成一个8
8=64为的二进制数字,即为该图的指纹

function dHash($src)
    {

        if (empty($src)) {
            return false;
        }
        $w   = 9;  
        $h   = 8;  
        $dst = imagecreatetruecolor($w, $h);
        //如果是图片目录
        $img = imagecreatefromstring(file_get_contents($src));
        //如果是数据库或者下载下来的二进制数据
        $img = imagecreatefromstring($src);
        $img && imagecopyresized($dst, $img, 0, 0, 0, 0, $w, $h, 132, 132);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值