• 技术文章 >后端开发 >php教程

    基于OpenCV的PHP图像人脸识别技术_PHP教程

    2016-07-21 15:44:18原创611
    openCV是一个开源的用C/C++开发的计算机图形图像库,非常强大,研究资料很齐全。本文重点是介绍如何使用php来调用其中的局部的功能。人脸侦查技术只是openCV一个应用分支。
    1.安装
    从源代码编译成一个动态的so文件。
    1.1.安装 OpenCV (OpenCV 1.0.0)
    下载地址:http://sourceforge.net/project/showfiles.php?group_id=22870&package_id=16948
    #tar xvzf OpenCV-1.0.0.tar.gz
    #cd opencv-1.0.0
    #./configure
    #make
    #make install
    #make check (检查是否安装全部正确)
    提示: 不要指定安装路径,否则后面编译facedetect会找不到OpenCV的路径。
    1.2 安装facedetect
    下载地址http://www.xarg.org/download/facedetect-1.0.0.tar.gz
    #tar xzvf facedetect-1.0.0.tar.gz
    #cd facedetect-1.0.0
    #phpize && ./configure && make && make install
    编译完之后会提示facedetect.so 文件所在的位置。
    最后确认在php.ini加入
    extension=facedetect.so,重启apache.
    2.函数使用
    在phpinfo()里检查是否有facedetect这个模块。
    从openCV源代码/data/haarcascades/里头取出所有xml文件放在php的执行目录下
    //检查有多少个脸型
    var_dump(face_count(‘party.jpeg', haarcascade_frontalface_alt.xml'));
    //返回脸型在图片中的位置参数,多个则返回数组
    $arr = face_detect(‘party.jpeg', haarcascade_frontalface_alt2.xml');
    print_r($arr);
    3.应用
    结合imagick可以将图片做一下应用。因为 face_detect只返回一个矩形参数,包含x,y坐标和w,h长宽参数。下面是我的一个应用demo
    复制代码 代码如下:

    if($_FILES){
    $img = $_FILES['pic']['tmp_name'];
    $arr = face_detect($img, ‘haarcascade_frontalface_alt2.xml');
    //$arr1 = face_detect($img, 'haarcascade_frontalface_alt_tree.xml');
    if(is_array($arr1)) $all =array_merge($arr,$arr1);
    else $all = $arr;
    $im = new Imagick($img);
    //$draw =new ImagickDraw();
    //$borderColor = new ImagickPixel('red');
    //$draw->setFillAlpha(0.0);
    //$draw->setStrokeColor ($borderColor);
    //$draw->setStrokeWidth (1);
    if(is_array($all)){
    foreach ($all as $v){
    $im_cl = $im->clone();
    $im_cl->cropImage($v['w'],$v['h'],$v['x'],$v['y']);
    $im_cl->swirlImage(60);
    $im->compositeImage( $im_cl, Imagick::COMPOSITE_OVER , $v['x'], $v['y'] );
    //$draw->rectangle($v['x'],$v['y'],$v['x']+$v['w'],$v['y']+$v['h']);
    //$im->drawimage($draw);
    }
    }
    header( “Content-Type: image/png” );
    echo $im;
    }else{
    ?>


    人脸识别试验:只支持jpg,png

    上传一张图片


    }
    ?>

    参考资料:
    http://www.xarg.org/2008/07/face-detection-with-php/
    http://www.opencv.org.cn/index.php/首页
    http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/index.html

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/320585.htmlTechArticleopenCV是一个开源的用C/C++开发的计算机图形图像库,非常强大,研究资料很齐全。本文重点是介绍如何使用php来调用其中的局部的功能。人脸...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:基于 OpenCV PHP 图像 人脸 识别 技术 openCV 一个 开源 C++ 开发 计算机 图形
    上一篇:PHP 替换模板变量实现步骤_PHP教程 下一篇:PHP has encountered an Access Violation at 7C94BD02解决方法_PHP教程

    相关文章推荐

    • 用PHP将女友照片转成可爱的动漫头像!• PHP 文件操作函数(专题)• php自定义大小验证码的实例代码 • PHP COOKIE设置为浏览器进程_php技巧• 剖析 PHP 中的输出缓冲_php技巧

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网