• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP实现搜索相似图片_PHP

php 搞代码 3年前 (2022-01-25) 35次浏览 已收录 0个评论

感知哈希算法

count < =5 匹配最相似
count > 10 两张不同的图片
var_dump(ImageHash::run(‘./1.png’, ‘./psb.jpg’));

getHashValue($src1);    $hash2 = $self->getHashValue($src2);    if(strlen($hash1) !== strlen($hash2)) return false;    $count = 0;    $len = strlen($hash1);    for($i = 0; $i < $len; $i++) if($hash1[$i] !== $hash2[$i]) $count++;    return $count getImage($file);    imagecopyresampled($img, $src, 0, 0, 0, 0, $w, $h, $src_w, $src_h);    ima<mark>(本文来)源gaodaimacom搞#^代%!码&网(</mark><pre>搞gaodaima代码

gedestroy($src); $total = 0; $array = array(); for( $y = 0; $y < $h; $y++) { for ($x = 0; $x > 8) & 0xFF; if(!isset($array[$y])) $array[$y] = array(); $array[$y][$x] = $gray; $total += $gray; } } imagedestroy($img); $average = intval($total / ($w * $h * 2)); $hash = ”; for($y = 0; $y < $h; $y++) { for($x = 0; $x = $average) ? ‘1’ : ‘0’; } } var_dump($hash); return $hash; }}var_dump(ImageHash::run(‘./1.png’, ‘./psb.jpg’));

方法二:

hash($f); } return $isString ? $result[0] : $result; } public function checkIsSimilarImg($imgHash, $otherImgHash){ if (file_exists($imgHash) && file_exists($otherImgHash)){  $imgHash = $this->run($imgHash);  $otherImgHash = $this->run($otherImgHash); } if (strlen($imgHash) !== strlen($otherImgHash)) return false; $count = 0; $len = strlen($imgHash); for($i=0;$i<$len;$i++){  if ($imgHash{$i} !== $otherImgHash{$i}){  $count++;  } } return $count rate; $width = 8 * $this->rate; $img = imagecreatetruecolor($width, $height); list($w, $h) = getimagesize($file); $source = $this->createImg($file); imagecopyresampled($img, $source, 0, 0, 0, 0, $width, $height, $w, $h); $value = $this->getHashValue($img); imagedestroy($img); return $value; } public function getHashValue($img){ $width = imagesx($img); $height = imagesy($img); $total = 0; $array = array(); for ($y=0;$y<$height;$y++){  for ($x=0;$x> 8 ) & 0xFF;  if (!is_array($array[$y])){   $array[$y] = array();  }  $array[$y][$x] = $gray;  $total += $gray;  } } $average = intval($total / (64 * $this->rate * $this->rate)); $result = ''; for ($y=0;$y<$height;$y++){  for ($x=0;$x= $average){   $result .= '1';  }else{   $result .= '0';  }  } } return $result; } public function createImg($file){ $ext = $this->getFileExt($file); if ($ext === 'jpeg') $ext = 'jpg'; $img = null; switch ($ext){  case 'png' : $img = imagecreatefrompng($file);break;  case 'jpg' : $img = imagecreatefromjpeg($file);break;  case 'gif' : $img = imagecreatefromgif($file); } return $img; } public function getFileExt($file){ $infos = explode('.', $file); $ext = strtolower($infos[count($infos) - 1]); return $ext; }}

调用方式如下:

 require_once "Imghash.class.php";$instance = ImgHash::getInstance();$result = $instance->checkIsSimilarImg('chenyin/IMG_3214.png', 'chenyin/IMG_3212.JPG');

如果$result值为true, 则表明2个图片相似,否则不相似。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP实现搜索相似图片_PHP
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址