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