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

六安市住房和城乡建设委员会网站6/自己如何优化网站排名

六安市住房和城乡建设委员会网站6,自己如何优化网站排名,北京seo经理,wordpress 文章内链插件本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加)。 QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv1027&k29LoD19) QQ:1542385235 几天前看到阮一峰的博客里写到关于相似图片搜索的原理, …

本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加)。

QQ群:   281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29LoD19)    QQ:1542385235

 

几天前看到阮一峰的博客里写到关于相似图片搜索的原理, 里面介绍了Google相似图片搜索的大致原理,主要是从Neal Krawetz博士的LOOKS LIKE IT翻译而来。文章详细的介绍了相似图片搜索处理的相关步骤,并且给出了一个python的实现,由于我对PHP比较熟,所以写了个PHP的版本。
 
图片相似搜索的简单原理
 
根据文章里的描述,其实原理比较简单,大致有如下几个步骤:
 
1、缩小尺寸。将图片缩小到8×8的尺寸,总共64个像素。这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。
 
2、简化色彩。将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64种颜色。
 
3、计算平均值。计算所有64个像素的灰度平均值。
 
4、比较像素的灰度。将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。
 
5、计算哈希值。将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序就行了。得到指纹以后,就可以对比不同的图片,看看64位中有多少位是不一样的。
 
这种算法的优点是简单快速,不受图片大小缩放的影响,缺点是图片的内容不能变更。实际应用中,往往采用更强大的pHash算法和SIFT算法,它们能够识别图片的变形。只要变形程度不超过25%,它们就能匹配原图。
 
图片相似搜索的PHP实现
 
原文中给出了一个python版本的实现,代码只有53行。我写了个对应的PHP版本,由于直接是用类写的,所以代码有100行,具体如下:
 
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 <= (5 * $rate * $rate) ? true : false;
}
public function hash($file){
if (!file_exists($file)){
return false;
}
$height = 8 * $this->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<$width;$x++){
$gray = ( imagecolorat($img, $x, $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<$height;$y++){
for ($x=0;$x<$width;$x++){
if ($array[$y][$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个图片相似,否则不相似。
 
 
 
其他
 
在实际的相似图片搜索中,算图片的指纹并不是难点,难点而是在怎么从海量的图片指纹里找出与之相似的指纹。

 

个人公众号谢谢各位老铁支持

本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加)。

QQ群:   281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29LoD19)    QQ:1542385235

 

我的淘宝店,可以进去逛逛噢:https://shop108912636.taobao.com/index.htm?spm=2013.1.w5001-7867000954.3.1d29318dPlLar7&scene=taobao_shop

 

转载于:https://www.cnblogs.com/piwefei/p/5354087.html

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

相关文章:

  • 永久免费域名空间/seo中国是什么
  • 西宁建设网站/智能建站平台
  • 网站开发团队/营销推广是什么意思
  • 今日新闻 最新消息 大事/seo网络营销推广公司
  • 重庆视频制作公司排名/沈阳seo收费
  • 许昌做网站汉狮网络/自己网站怎么推广
  • 广州做网站多少钱/成都网站关键词推广优化
  • 网站的图文链接怎么做的/各种推广平台
  • 做网站广告有哪些职位/seo搜索引擎的优化
  • 上住房和城乡建设部网站/5188关键词平台
  • 深圳网站建设号/模板免费下载网站
  • 哪一个网站做专栏作家好点/网站推广的渠道有哪些
  • 武汉网站建设武汉网络公司/国家免费职业技能培训官网
  • 做网站流量/汕头百度关键词推广
  • 建站资源共享/图片优化
  • iis6.0如何做网站301/网络广告营销案例分析
  • 可以做mv的视频网站/微信营销平台
  • wordpress企业网站seo/今日军事新闻
  • 成都网站设计合理柚v米科技/百度小程序关键词优化
  • 旅游电子商务网站建设的流程/新闻摘抄四年级下册
  • 江西省城乡住房建设厅网站/怎么做百度推广的代理
  • 夜狼seo/seo优化在线诊断
  • 网站标题就一个关键词/seo导航
  • 做水印的网站/网站搭建软件
  • 手机网站工具/有没有永久免费crm
  • 时时彩做号工具网站/域名收录提交入口
  • 福田公司企业文化/湖南seo优化服务
  • 盗号网站怎么做/无锡seo网站管理
  • 自己做的网站访问不了/如何制定会员营销方案
  • 网吧设计公司/杭州百度首页优化
  • SignalR 全解析:核心原理、适用场景与 Vue + .NET Core 实战
  • git 提交时排除一个或多个文件
  • 图像处理:第二篇 —— 选择镜头的基础知识及对图像处理的影响
  • JavaScript数组去重性能优化:Set与Object哈希表为何效率最高
  • 云计算技术之docker build构建错误
  • GMP模型