zoukankan      html  css  js  c++  java
  • 基于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>

    在线人脸检测

    目录结构

    │  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 &amp; 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()">
            &nbsp;&nbsp;
            <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
    ";
    

     实验结果

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

    效果



  • 相关阅读:
    小程序--获取手机型号
    小程序---换行
    小程序 页面禁止左右上下滑动
    小程序---数据列表 隔行变色
    小程序 视频播放出来的坑
    小程序-----上传图片
    小程序---提交成功弹框
    小程序——Tab切换
    接收请求参数及数据回显
    重定向与转发
  • 原文地址:https://www.cnblogs.com/yuliyang/p/3786197.html
Copyright © 2011-2022 走看看