首页 > 代码库 > 基于opencv的人脸检测的web应用
基于opencv的人脸检测的web应用
参考资料
https://github.com/bsdnoobz/web-based-face-detect
http://opencv-code.com/projects/web-based-interface-for-face-detection-with-opencv/
http://www.cnblogs.com/findingsea/archive/2012/03/31/2427833.html
流程如下图
背景知识
php调用exe的返回
<html> <body> <?php system("F:\\xampp\\htdocs\\webcam2\\phptest.exe", $info); echo $info; ?> </body></html>
在线人脸检测
- 使用web摄像头
- web-based-face-detect
目录结构
│ face-detect.exe│ haarcascade_frontalface_alt.xml│ shutter.mp3│ test.html│ test.php│ testphp.php│ webcam.js│ webcam.swf│ └─out
test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html lang="en"><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>JPEGCam Test Page</title> <meta name="generator" content="TextMate http://macromates.com/"> <meta name="author" content="Joseph Huckaby"> <!-- Date: 2008-03-15 --></head><body> <table><tr><td valign=top> <h1>JPEGCam Test Page</h1> <h3>Demonstrates a very simple, one-click capture & upload implementation</h3> <!-- First, include the JPEGCam JavaScript Library --> <script type="text/javascript" src="webcam.js"></script> <!-- Configure a few settings --> <script language="JavaScript"> webcam.set_api_url( ‘test.php‘ ); webcam.set_quality( 90 ); // JPEG quality (1 - 100) webcam.set_shutter_sound( true ); // play shutter click sound </script> <!-- Next, write the movie to the page at 320x240 --> <script language="JavaScript"> document.write( webcam.get_html(320, 240) ); </script> <!-- Some buttons for controlling things --> <br/><form> <input type=button value="Configure..." onClick="webcam.configure()"> <input type=button value="Take Snapshot" onClick="webcam.snap()"> </form> <img id="resultimg" src="" /> <script language="JavaScript"> webcam.set_hook( ‘onComplete‘, ‘my_callback_function‘ ); function my_callback_function(response) { // alert("sucess " + response); document.getElementById("resultimg").src=""+response; webcam.reset(); }</script></body></html>
test.php
<?php/* JPEGCam Test Script *//* Receives JPEG webcam submission and saves to local file. *//* Make sure your directory has permission to write files as your web server user! */$filename = date(‘YmdHis‘) . ‘.jpg‘;$result = file_put_contents( $filename, file_get_contents(‘php://input‘) );$cmd = ‘F://xampp//htdocs//face//face-detect//face-detect.exe --input="‘.$filename.‘" --outdir=out"‘;exec($cmd, $info);foreach ($info as $i => $line) { if (preg_match(‘/\d+,\s*([^\s]+)\s+\((\d+)x(\d+)\)/i‘, $line, $m)) { // print ‘http://‘.$_SERVER[‘HTTP_HOST‘].dirname($_SERVER[‘REQUEST_URI‘])."/".$m[1]; // echo "<br>"; // echo $m[2]; // echo $m[3]; } }$url = ‘http://‘ . $_SERVER[‘HTTP_HOST‘] . dirname($_SERVER[‘REQUEST_URI‘]) . ‘/‘ . $filename;print "$url\n";
实验结果
out目录里就有检测的脸了
source code download
http://pan.baidu.com/share/link?shareid=4035488383&uk=792406754
修改人脸检测自带的php文件
<?php $file = ‘uploads/‘.date(‘YmdHis‘).‘.jpg‘;; file_put_contents("$file", file_get_contents("php://input")); $cmd = ‘F://xampp//htdocs//face//face-detect//face-detect.exe --input="‘.$file.‘" --outdir=uploads"‘;// $cmd = ‘F://xampp//htdocs//face//face-detect//face-detect.exe --input=uploads//1.jpg --outdir=uploads‘; // $last = exec($cmd, &$out); $last = exec($cmd, $out); if (strpos($last, ‘Error:‘) === false) { $res = array(‘success‘ => true); foreach ($out as $i => $line) { if (preg_match(‘/\d+,\s*([^\s]+)\s+\((\d+)x(\d+)\)/i‘, $line, $m)) $res[‘images‘][] = array(‘src‘ => $m[1], ‘width‘ => $m[2], ‘height‘ => $m[3]); } } else $res = array(‘success‘ => false, ‘msg‘ => $last); header(‘Content-Type: application/json‘); echo json_encode($res);
效果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。