|
感知哈希算法
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 getImage($file);
imagecopyresampled($img, $src, 0, 0, 0, 0, $w, $h, $src_w, $src_h);
imagedestroy($src);
$total = 0;
$array = array();
for( $y = 0; $y > 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 = $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($, $otherImgHash){
if (file_exists($) && file_exists($otherImgHash)){
$$this->run($);
$otherImgHash = $this->run($otherImgHash);
}
if (strlen($) !== strlen($otherImgHash)) return false;
$count = 0;
$len = strlen($);
for($i=0;$irate;
$width = 8 * $this->rate;
$($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> 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= $average){
$result .= '1';
}else{
$result .= '0';
}
}
}
return $result;
}
public function createImg($file){
$ext = $this->getFileExt($file);
if ($ext === 'jpeg') $ext = 'jpg';
$;
switch ($ext){
case 'png' : $($file);break;
case 'jpg' : $($file);break;
case 'gif' : $($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/', 'chenyin/');
如果$result值为true, 则表明2个图片相似,否则不相似。
您可能感兴趣的文章:javascript图片相似度算法实现 js实现直方图和向量算法Java基于直方图应用的相似图片识别实例PHP实现的简易版图片相似度比较Python比较两个图片相似度的方法利用Python实现简单的相似图片搜索的教程JAVA比较两张图片相似度的方法
|
|