1. 功能:输入两张图片的图片地址调用 face++ Compare API进行比对,得出相似度。
2. 缺点:未实现图片地址合法性的检测,且暂时不支持本地上传图片(只能先得到本地图片的外链)。
3.主要组成:系统分为三个部分,分别是欢迎界面(z1),后端处理部分(z2),以及图片地址的提示部分(z3)。
4.界面展示:
图4.1 欢迎界面
图4.2 比较结果界面
图4.3 提示界面
5. 各部分代码:
z1.php:
<html>
<head>
<meta charset="utf-8">
<title>人脸比对</title>
</head>
<center>
<body>
<video autoplay muted loop>
<source src="face.mp4">
<style>
body{
margin:0;
}
video {
position: fixed;
right: 0;
bottom: 0;
min-width:100% ;
min-height: 100%;
width: auto;
height: auto;
z-index: -9999;
}
</style>
</video>
<br><br><br><br><br><br><br><br>
<h1><font size="10" >欢迎进入人脸比对界面</font></h1>
<font size="5">此功能基于 <a href="https://www.megvii.com/">Face++</a> Compare API 实现</font>
<br><br><br><br><br><br><br><br>
<form action="z2.php" method="post">
<font size="5" >请输入第一张图片的<a href="z3.php">图片地址</a>:</font><br><br><input type="text" name="p1" style="width:300px;"><br><br>
<font size="5" >请输入第二张图片的<a href="z3.php">图片地址</a>:</font><br><br><input type="text" name="p2" style="width:300px;"><br><br>
<input type="submit" value="开始比对" style="color: blue">
<input type="reset" value="重新输入" style="color: blue"><br>
</body>
</center>
</html>
z2.php:
<body style="background-image: url(backgroud.png);background-size:cover"</body>
<html>
<head>
<meta charset="utf-8">
<title>结果页面</title>
</head>
<center>
<body>
<font color="#ff8c00" size="10">对比结果如下:</font>
<?php
$url1=$_POST["p1"];
$url2=$_POST["p2"];
if($url1==""||$url2=="") {
echo "<font size='10' color='#dc143c'>","ERROR!检测到的图片信息不完整!";
// <meta http-equiv="refresh" content="10; url='z1.php'">
//<a href='z1,php'>点击跳转</a>;
}
else {
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api-cn.faceplusplus.com/facepp/v3/compare",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => array('api_key'=>"iqjWBJGbBkL88VXqNqUYaitc5ihekDr6",'api_secret'=>"iNpO5QCiVlSKdpaMCT47noBwVpLDzpo5",
'image_url1'=>$url1,'image_url2'=>$url2),
CURLOPT_HTTPHEADER => array("cache-control: no-cache",),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
// if ($err) {
// echo "cURL Error #:" . $err;
// } else {
$arr=json_decode($response,true);
echo "<font size='10' color='#ff8c00' >","两张图片的相似度为";
echo "<font size='10' color='#dc143c'>",$arr["confidence"];echo "%";echo "<br>";
echo "<img src=$url1 width=\"300\" height=\"500\">";echo " ";
echo "<img src=$url2 width=\"300\" height=\"500\">";
// }
}
?>
</body>
<center>
</html>
<!--<body>-->
<!--<script>-->
<!-- var t=10;//设定跳转的时间-->
<!-- setInterval("refer()",1000); //启动1秒定时-->
<!-- function refer(){-->
<!-- if(t==0){-->
<!-- location="http://www.baidu.com"; //#设定跳转的链接地址-->
<!-- }-->
<!-- document.getElementById('show').innerHTML=""+t+"秒后跳转到百度"; // 显示倒计时-->
<!-- t--; // 计数器递减-->
<!-- }-->
<!--</script>-->
<!--<span id="show"></span>-->
<!--</body>-->
<!--</html>-->
z3.php:
<title>图片地址teach</title>
<center>
<p><font color="#d2691e" size="6">鼠标右键点击图片,选择“复制图片地址”</p><br>
<p><font color="#d2691e" size="6">本地图片请先上传到<a href="http://www.tietuku.com/contact">贴图库</a>,(其他能产生外链的网站也可以)以获得图片地址</p><br>
<img src="teach.png" alt="图片地址" height="800" width="500" />
</center>
6. 总结
第一次接触网页,对PHP,HTML等语言有初步的认识,学会了简单的调用接口,实现了一脸懵逼向小白的进化。虽然说是站在巨人的肩膀上,但是心中还是有着满满的成就感。