php实现图片相似度检测识图代码

代码语言:php

所属分类:图片处理

代码描述:php实现图片相似度检测识图代码,可用于寻找相似图片。

代码标签: 相似 检测 识图

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<?php
echo "图1<img width=\"100\" src='/asset/testimg1.png' /></br>";
echo "图2<img width=\"100\" src='/asset/testimg2.png' /></br>";
echo "图3<img width=\"100\" src='/asset/testimg3.png' /></br>";
echo "图1与图2是否相似";
$aHash = ImageHash::hashImageFile('/data/wwwroot/default/asset/testimg1.png');
$bHash = ImageHash::hashImageFile('/data/wwwroot/default/asset/testimg2.png');
var_dump(ImageHash::isHashSimilar($aHash, $bHash));
echo "</br>";

echo "图1与图2是否相似";
$aHash = ImageHash::hashImageFile('/data/wwwroot/default/asset/testimg1.png');
$bHash = ImageHash::hashImageFile('/data/wwwroot/default/asset/testimg3.png');
var_dump(ImageHash::isHashSimilar($aHash, $bHash));


/**
* 图片相似度比较

* //Sample_1
* $aHash = ImageHash::hashImageFile('wsz.11.jpg');
* $bHash = ImageHash::hashImageFile('wsz.12.jpg');
* var_dump(ImageHash::isHashSimilar($aHash, $bHash));

* //Sample_2
* var_dump(ImageHash::isImageFileSimilar('wsz.11.jpg', 'wsz.12.jpg'));
*/
class ImageHash {
    /**取样倍率 1~10  数值越高匹配越准确
    * @access public
    * @staticvar int
    * */
    public static $rate = 2;
    /**相似度允许值 0~64 数值越高 匹配精度越准确
    * @access public
    * @staticvar int
    * */
    public static $similarity = 60;
    /**图片类型对应的开启函数
    * @access private
    * @staticvar string
    * */
    private static $_createFunc = array(
        IMAGETYPE_GIF => 'imageCreateFromGIF',
        IMAGETYPE_JPEG => 'imageCreateFromJPEG',
        IMAGETYPE_PNG => 'imageCreateFromPNG',
        IMAGETYPE_BMP => 'imageCreateFromBMP',
        IMAGETYPE_WBMP => 'imageCreateFromWBMP',
        IMAGETYPE_XBM => 'imageCreateFromXBM',
    );
    /**比较两个图片文件,是不是相似
    * @param string $aHash A图片的路径
    * @param string $bHash B图片的路径
    * @return bool 当图片相似则传递 true,否则是 false
    * */
    public static function isImageFileSimilar($aPath, $bPath) {
        $aHash = ImageHash::hashImageFile($aPath);
        $bHash = ImageHash::hashImageFile($bPath);
        return ImageHash::isHashSimilar($aHash, $bHash);
    }
    /**hash 图片文件
    * @param string $filePath 文件地址路径
    * @return string 图片 hash 值,失败则是 false
    * */
    public static function hashImageFile($filePath) {
        $src = self::createImage($filePath);
        $hashStr = self::hashImage($src);
        imagedestroy($src);
        return $hashStr;
    }
    /**从文件建立图片
    * @param string $filePath 文件地址路径
    * @return resource 当成功开启图片则传递图片 resource ID,失败则是 false
    * */
    public static function createImage($filePath) {
        if (!file_exists($filePath)) {
            return false;
        }
        /*判断文件类型是否可以开启*/
        $type = exif_imagetype($filePath);
        if (!array_key_exists($type, self::$_createFunc)) {
         .........完整代码请登录后点击上方下载按钮下载查看

网友评论0