青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 298  文章 - 377  trackbacks - 0
<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

常用鏈接

留言簿(34)

隨筆分類

隨筆檔案

文章檔案

相冊

收藏夾

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

<?php    
/**   
* 圖片相似度比較   
*   
* @version     $Id: ImageHash.php 4429 2012-04-17 13:20:31Z jax $   
* @author      jax.hu   
*   
* <code>   
*  //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'));   
* </code>   
*/    
    
class ImageHash {    
    
   /**取樣倍率 1~10   
    * @access public   
    * @staticvar int   
    * 
*/    
   public static $rate = 2;    
    
   /**相似度允許值 0~64   
    * @access public   
    * @staticvar int   
    * 
*/    
   public static $similarity = 80;    
    
   /**圖片類型對應的開啟函數   
    * @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 $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)){ return false; }    
    
       $func = self::$_createFunc[$type];    
       if(!function_exists($func)){ return false; }    
    
       return $func($filePath);    
   }    
    
    
   /**hash 圖片   
    * @param resource $src 圖片 resource ID   
    * @return string 圖片 hash 值,失敗則是 false   
    * 
*/    
   public static function hashImage($src){    
       if(!$src){ return false; }    
    
       /*縮小圖片尺寸*/    
       $delta = 8 * self::$rate;    
       $img = imageCreateTrueColor($delta,$delta);    
       imageCopyResized($img,$src, 0,0,0,0, $delta,$delta,imagesX($src),imagesY($src));    
    
       /*計算圖片灰階值*/    
       $grayArray = array();    
       for ($y=0; $y<$delta$y++){    
           for ($x=0; $x<$delta$x++){    
               $rgb = imagecolorat($img,$x,$y);    
               $col = imagecolorsforindex($img$rgb);    
               $gray = intval(($col['red']+$col['green']+$col['blue'])/3)& 0xFF;    
    
               $grayArray[] = $gray;    
           }    
       }    
       imagedestroy($img);    
    
       /*計算所有像素的灰階平均值*/    
       $average = array_sum($grayArray)/count($grayArray);    
    
       /*計算 hash 值*/    
       $hashStr = '';    
       foreach ($grayArray as $gray){    
           $hashStr .= ($gray>=$average) ? '1' : '0';    
       }    
    
       return $hashStr;    
   }    
    
    
   /**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;    
   }    
    
    
   /**比較兩個 hash 值,是不是相似   
    * @param string $aHash A圖片的 hash 值   
    * @param string $bHash B圖片的 hash 值   
    * @return bool 當圖片相似則傳遞 true,否則是 false   
    * 
*/    
   public static function isHashSimilar($aHash$bHash){    
       $aL = strlen($aHash); $bL = strlen($bHash);    
       if ($aL !== $bL){ return false; }    
    
       /*計算容許落差的數量*/    
       $allowGap = $aL*(100-self::$similarity)/100;    
    
       /*計算兩個 hash 值的漢明距離*/    
       $distance = 0;    
       for($i=0; $i<$aL$i++){    
           if ($aHash{$i} !== $bHash{$i}){ $distance++; }    
       }    
    
       return ($distance<=$allowGap) ? true : false;    
   }    
    
    
   /**比較兩個圖片文件,是不是相似   
    * @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);    
   }    
    
}  
posted on 2016-09-22 11:20 聶文龍 閱讀(1347) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线综合亚洲欧美在线视频| 亚洲综合日本| 亚洲一区二区三区777| 最新69国产成人精品视频免费| 国产自产2019最新不卡| 国产一区二区在线观看免费播放 | 欧美大片免费观看在线观看网站推荐| 久久精品91久久久久久再现| 久久经典综合| 久久综合给合久久狠狠色| 麻豆久久久9性大片| 欧美成人一区二区| 欧美视频一区二区在线观看| 国产欧美一区二区在线观看| 红桃视频欧美| 99热免费精品在线观看| 亚洲欧美日韩精品综合在线观看 | 一区二区电影免费观看| 欧美一区二区免费| 欧美激情第10页| 免费成人高清| 先锋影院在线亚洲| 久久久一二三| 欧美日韩一级黄| 国产精品一区二区久久久| 狠狠色狠狠色综合日日91app| a4yy欧美一区二区三区| 久久香蕉国产线看观看网| 亚洲欧洲日本一区二区三区| 日韩视频久久| 久久久亚洲国产天美传媒修理工| 免费在线日韩av| 国产免费成人av| 亚洲日韩欧美视频| 久久久久国产精品午夜一区| 亚洲精品免费看| 久久精品在线观看| 欧美午夜精品久久久久久超碰| 韩国成人精品a∨在线观看| 一本色道久久综合狠狠躁的推荐| 美女尤物久久精品| 欧美一区在线直播| 国产精品久久一区主播| 亚洲精品视频一区| 鲁鲁狠狠狠7777一区二区| 亚洲深夜av| 欧美三级乱码| 中文久久精品| 亚洲精品视频一区| 欧美大尺度在线观看| 在线 亚洲欧美在线综合一区| 小嫩嫩精品导航| 日韩亚洲视频在线| 欧美日韩国产123区| 亚洲免费精彩视频| 欧美国产先锋| 久久综合影音| 伊人狠狠色j香婷婷综合| 欧美中文字幕第一页| 亚洲欧美日韩国产一区二区三区 | 亚洲香蕉伊综合在人在线视看| 欧美激情国产日韩| 亚洲开发第一视频在线播放| 欧美激情精品久久久| 久久综合五月天婷婷伊人| 在线看不卡av| 女人香蕉久久**毛片精品| 久久在线观看视频| 亚洲丶国产丶欧美一区二区三区| 媚黑女一区二区| 欧美激情视频一区二区三区免费| 亚洲精品久久久久久久久久久久久 | 欧美日韩日本国产亚洲在线| 欧美激情一区二区三区成人| 亚洲丰满少妇videoshd| 欧美激情精品| 欧美日韩在线影院| 销魂美女一区二区三区视频在线| 欧美一级大片在线观看| 激情欧美日韩一区| 欧美激情影音先锋| 男女激情视频一区| 一区二区三区高清不卡| 亚洲香蕉网站| 红桃av永久久久| 亚洲国产成人一区| 欧美日韩亚洲成人| 欧美永久精品| 欧美成人午夜激情在线| 亚洲一区网站| 久久av二区| 亚洲日本一区二区| 亚洲影音一区| 1024日韩| 在线中文字幕日韩| 极品少妇一区二区三区精品视频| 亚洲国产va精品久久久不卡综合| 欧美日韩亚洲网| 久久久久久亚洲精品杨幂换脸| 欧美大成色www永久网站婷| 亚洲欧美日韩国产精品| 美国成人直播| 久久成人免费网| 欧美激情视频在线播放| 久久久久久久久伊人| 欧美日韩不卡| 欧美国产日韩在线| 国语自产精品视频在线看抢先版结局 | 久久精品人人做人人综合| 99国产欧美久久久精品| 午夜天堂精品久久久久| 日韩午夜精品视频| 久久久久国产精品一区| 亚洲永久网站| 欧美肥婆在线| 裸体歌舞表演一区二区| 国产精品99免费看 | 欧美日韩在线播| 美女主播精品视频一二三四| 国产精品美女一区二区| 91久久国产综合久久| 在线精品视频一区二区三四| 国产精品99久久久久久久久| 亚洲精品久久久久久久久久久| 亚洲精品资源美女情侣酒店| 性欧美8khd高清极品| 欧美在线国产| 亚洲天堂av高清| 香蕉av福利精品导航| 亚洲精品偷拍| 久久久噜噜噜久久| 久久精品一区二区三区不卡牛牛 | 亚洲美女色禁图| 狼人天天伊人久久| 欧美成人福利视频| 亚洲高清在线视频| 久久xxxx精品视频| 久久国产精彩视频| 国产精品中文字幕欧美| 亚洲一级网站| 欧美一区日韩一区| 国产色视频一区| 亚洲综合精品一区二区| 翔田千里一区二区| 国产中文一区| 久久免费的精品国产v∧| 久热爱精品视频线路一| 精品av久久久久电影| 美女视频黄免费的久久| 欧美国产专区| 日韩亚洲精品在线| 欧美日韩国产一区二区三区| 一本一本久久a久久精品综合妖精| 亚洲午夜女主播在线直播| 国产精品videosex极品| 亚洲综合日韩中文字幕v在线| 久久久久久91香蕉国产| 亚洲激情社区| 欧美日韩一区二区三区四区五区 | 亚洲电影天堂av| 美女国产一区| 亚洲日本欧美日韩高观看| 一本久道久久久| 国产精品欧美日韩久久| 久久久久久欧美| 亚洲精品国偷自产在线99热| 欧美一区二区三区日韩| 亚洲激情视频网站| 国产女人精品视频| 欧美.com| 欧美一区二区三区免费观看| 亚洲第一在线视频| 欧美一区日韩一区| 亚洲国产精品一区制服丝袜 | 国产亚洲第一区| 美女黄毛**国产精品啪啪| 日韩一区二区电影网| 久久精品视频在线看| 亚洲日本aⅴ片在线观看香蕉| 国产精品久久国产愉拍| 美女亚洲精品| 性欧美超级视频| 亚洲美女中文字幕| 久久久久欧美精品| 日韩一级视频免费观看在线| 国产日产欧产精品推荐色| 欧美日韩国产精品| 久久夜色精品国产亚洲aⅴ| 国产精品综合视频| 欧美一区不卡| 亚洲伦理在线免费看| 亚洲一区精品电影| 激情成人中文字幕| 99re热精品| 亚洲国产日韩精品| 久久www免费人成看片高清| 亚洲永久视频| 国产日韩精品入口| 久久久国产精品亚洲一区 | 国产精品久久久久久久久久ktv|