当前位置: 首页 > news >正文

网站专题页面设计长沙网站排名推广

网站专题页面设计,长沙网站排名推广,谷歌seo零基础教程,网站推广的基本方法是什么这篇文章主要介绍了PHP实现的简易版图片相似度比较,本文直接给出实现代码,使用方法请看代码中的注释,需要的朋友可以参考下由于相似图片搜索的php实现的 API 不怎么符合我的用途,所以我重新定义 API 的架构,改写成比较简单的函数方式,虽然还是…

这篇文章主要介绍了PHP实现的简易版图片相似度比较,本文直接给出实现代码,使用方法请看代码中的注释,需要的朋友可以参考下

由于相似图片搜索的php实现的 API 不怎么符合我的用途,所以我重新定义 API 的架构,改写成比较简单的函数方式,虽然还是用对象的方式包装。

/**

* 图片相似度比较

*

* @version     $Id: ImageHash.php 4429 2012-04-17 13:20:31Z jax $

* @author      jax.hu

*

*

*  //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 = 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

for ($x=0; $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

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);

}

}

http://www.lbrq.cn/news/2693719.html

相关文章:

  • 个人网站毕业设计作品品牌策划方案
  • 报名网站建设费用报价网络黄页推广软件哪个好
  • 安卓手机怎么做网站seo云优化软件
  • 泸州工投建设集团有限公司网站镇江百度推广
  • wordpress站群教程百度seo公司电话
  • 互联网营销师有必要考吗郑州优化网站公司
  • wordpress乐器模版谷歌网站推广优化
  • 拱墅区网站建设台州seo排名公司
  • 雄安做网站公司seo网站诊断方案
  • 优惠券的网站制作seo关键词优化推广价格
  • 高校网站群建设的公司有哪些企业网站设计论文
  • 徐州做网站的公司线上销售渠道有哪几种
  • 推荐网站建设石家庄网络推广
  • 做网站 域名 网站 空间济南最新消息
  • 南京网站制作域名关键词挖掘
  • wordpress软件网站模板下载网络推广平台
  • 为企业提供网站建设服务百度网盘app怎么打开链接
  • 阳谷网站建设公司安徽网站推广
  • php网站建设教程 电子书指数平滑法
  • wordpress 部署关键词推广优化排名品牌
  • 专业的画册设计网站百度长尾关键词挖掘
  • 好的企业型网站模板交换友链是什么意思
  • 问卷调查微信小程序怎么做江门seo
  • 公司品牌网站建设价格糕点烘焙专业培训学校
  • 在百度上做网站seo服务是什么
  • b2c的平台有哪些谷歌搜索优化
  • 最便宜做公司网站广州网站开发多少钱
  • 网站制作 长沙b2b网站平台有哪些
  • 电商网站设计工作内容seo搜索引擎优化到底是什么
  • 成都网站建设推广投放广告的渠道有哪些
  • Java Stream API 中常用方法复习及项目实战示例
  • 一条n8n工作流
  • 药房智能盘库系统:基于CV与时间序列预测的库存革命
  • JDK17下载与安装图文教程(保姆级教程)
  • GPT-o3回归Plus用户,GPT5拆分三种模式,对标Grok
  • MCP协议更新:从HTTP+SSE到Streamable HTTP,大模型通信的进化之路