当前位置:首页 » 编程语言 » php图片搜索

php图片搜索

发布时间: 2023-04-30 03:10:16

php+vue.js怎么用照片搜索相似照片

需要工具:电脑、桥慧浏览器、搜索引擎



一、首先选择任意浏览器,点击打开。



二、然后打开搜索,可以看到搜索框有一个照相机的小图标。



三、点一下相机的小图标,会提示拖拽一张照片或者上传一张照片,这段坦个根据自己的情况选择。



四、这里我们选择上传,选一握消桐张自己想找相似的图片,双击图片。



五、好了,这个时候就搜索出了图片的来源和出处,还有类似的图片。

Ⅱ php怎么实现根据图片搜索图片功能

php爱好者 们很对php开发的追求是永不止步的,今天偶然想起来了 发下
php怎么实现相似图片的搜索呢?
其中的原理来解释下
1、缩小尺寸。将图片缩小到8×8的尺寸,总共64个像素。这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。
2、简化色彩。将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64种颜色。
3、计算平均值。计算所有64个像素的灰度平均值。
4、比较像素的灰度。将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。
5、计算哈希值。将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序就行了。得到指纹以后,就可以对比不同的图片,看看64位中有多少位是不一样的。
使用代码
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);
imageresampled($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个图片相似,否则不相似。

Ⅲ 求助,请给我一个基于PHP的图片搜索网站的源码,做毕业设计用,万分感谢!

给你个思路,抓取下面的URL即可,把phpha换成你的搜索词。
http://image..com/i?tn=image&word=phpha
抓取过来后正则分析下即可。

Ⅳ php有没有简单的方法识别两张图片是否相似/相同

理论上肯定是可以的。扮举不过这应该是一个很高深的东西。所以,我只能给你我很粗浅的方法:

一:写个函数,这个函数的主要功能是找出一张图片上的主要颜色(代码在最后面)

二:把一张图片有GD库分成9份(3*3)或更多薯备份,然后用第一个函数来取得每一份小图的主要颜色。

三:比对这几份小图的颜色,看哪一份的颜色是你需要的。

如果你原数缺毁意,你也可以切很多份,比如10000份(100*100),然后计算这10000个颜色的中你需要的颜色的分布,找出你需要的区域。

$i=("image.jpg");

for($x=0;$x

for($y=0;$y

$rgb=($i,$x,$y);

$r=($rgb<<16)&0xFF;

$g=($rgb<<&0xFF;

$b=$rgb&0xFF;

$rTotal=$r;

$gTotal=$g;

$bTotal=$b;

$total;

}

}

$rAverage=round($rTotal/$total);

$gAverage=round($gTotal/$total);

$bAverage=round($bTotal/$total);

Ⅳ PHP 通过图片ID,查询图片对应的url并反馈页面

具体报什么错配灶能提供一下吗?建议看一稿卖哗下你的表feelback有没有你要查询的这些字段,没有的话是会报错的键行。

Ⅵ PHP网页图片搜索显示

你这个问题是早族类似的文件遍历问题;
实现思路:
1,建立你的表单
2,当表单提交后,使用对文件遍历的相关函数,对纯睁轿你要做肆搜索的文件名进行显示既可。

Ⅶ 用php 如何把某个盘中的所有图片检索出来

使用opendir递归打开根目录已链槐碰经下面的子目录,然明睁后棚谈使用 glob函数直接glob("*.jpg") 枚举.jpg这样格式的文件,直接到数组里面,很省事,思路如此!

Ⅷ 用PHP获取HTML中的图片地址并全部列出

<?php
$test = '<p>444<img height="768" width="1024" alt="带老亮" src="/uploadfiles/28/Tree.jpg" /></p><p>444<img height="768" width="1024" alt="" src="含空/uploadfiles/sf/Tree.jpg" /></p>
fsdafasdfasdfasdf
<p>444<img height="768" width="1024" alt="" src="/uploadfiles/28/elm.jpg" /></p><img height="768" width="1024" src="/uploadfiles/40/Tree.jpg" />
sdfasdfasdf<p>
<p>444<img height="768" width="1024" alt="" src="/uploadfiles/28/maple.jpg" /></p>
<img height="768" width="1024" src="/uploadfiles/40/Tree.jpg" />

sdf32414撒旦发是否
<p>444<img height="768" width="1024" alt="" src="/蠢宽uploadfiles/40/Tree.jpg" /><img height="768" src="/uploadfiles/40/Tree.jpg" /></p><img height="768" src="/uploadfiles/40/Tree.jpg" />tttt<img height="768" src="/uploadfiles/40/Tree.jpg" />';

preg_match_all("<img.*?src=\"(.*?.*?)\".*?>",$test,$match); //这里是关键

foreach($match[1] as $val){
echo basename($val);
echo "<br />";
}
?>

Ⅸ php 按条件搜索图片,服务器更新图片后。客户看到的还是更新前的

浏览器缓存的原因,可以通过在图片地址后附加一个随机值,每次加载图片时,浏览器就会认为这是蔽凯一个新的请求而去服务区上读取图片,示做悄例:

<img src="纯并渣path/to/pic.jpg?r=<?php echo rand(1, 10000)" />

Ⅹ PHP如何实现搜索结果(或分类)下的图片滚动浏览(如百度图片一样)

哈哈,你这个需求大部分都是javascript来完成的.

关于图一的列表样式,无非就是瀑布流滚动配合ajax到php后台取数据实现无限加载而已

插件都是现成的

http://www.17sucai.com/pins/4714.html

至于图二就更简单.无非是一个javascript的相册插件,也用现成的,php就是按照插件的格式把数据循环出来即可

鉴于你可能比较菜,给你推荐这款插件吧 比较简单 配置也有详细说明

http://www.helloweba.com/view-blog-61.html

热点内容
明日之后如何扫码登服务器 发布:2025-07-19 20:36:26 浏览:240
ftp搜索引擎工作原理 发布:2025-07-19 20:31:25 浏览:371
景物视频脚本 发布:2025-07-19 20:30:33 浏览:180
hadoop查看文件夹 发布:2025-07-19 20:19:12 浏览:22
安卓手机的旁白在哪里 发布:2025-07-19 20:09:40 浏览:741
身份证注册借书卡的密码是什么 发布:2025-07-19 19:44:39 浏览:76
玩梦幻西游哪个配置好 发布:2025-07-19 19:44:37 浏览:753
php数组大小排序 发布:2025-07-19 19:27:51 浏览:647
linux查找并删除 发布:2025-07-19 19:25:14 浏览:936
linux实验环境 发布:2025-07-19 19:15:09 浏览:412