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


Posted in PHP onOctober 11, 2009

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

<?php 
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{ 
?> 
<meta http-equiv=“Content-Type” content=“text/html; charset=utf-8″ /> 
<form method=“POST” enctype=“multipart/form-data”> 
人脸识别试验:只支持jpg,png<br> 
上传一张图片 <input type=“file” name=“pic”> 
<input type=“submit” value=“upload”> 
</form> 
<? 
} 
?>

参考资料:
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

PHP 相关文章推荐
PHP修改session_id示例代码
Jan 08 PHP
yii操作session实例简介
Jul 31 PHP
PHP获取当前页面URL函数实例
Oct 22 PHP
php使用sql server验证连接数据库的方法
Dec 25 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
php生成高清缩略图实例详解
Dec 07 PHP
PHP中类属性与类静态变量的访问方法示例
Jul 13 PHP
golang 调用 php7详解及实例
Jan 04 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
php str_replace替换指定次数的方法详解
May 05 PHP
PHP简单验证码功能机制实例详解
Mar 27 PHP
关于PHP中interface的用处详解
Jul 26 PHP
PHP 身份验证方面的函数
Oct 11 #PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 #PHP
关于页面优化和伪静态
Oct 11 #PHP
PHP iconv 函数转gb2312的bug解决方法
Oct 11 #PHP
Ha0k 0.3 PHP 网页木马修改版
Oct 11 #PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Oct 11 #PHP
PHP 日期时间函数的高级应用技巧
Oct 10 #PHP
You might like
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
javascript parseInt() 函数的进制转换注意细节
2013/01/08 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
JavaScript中document.forms[0]与getElementByName区别
2015/01/21 Javascript
JS是按值传递还是按引用传递
2015/01/30 Javascript
javascript实现可全选、反选及删除表格的方法
2015/05/15 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
js将字符串中的每一个单词的首字母变为大写其余均为小写
2017/01/05 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
微信小程序基于Taro的分享图片功能实践详解
2019/07/12 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
js 对象使用的小技巧实例分析
2019/11/08 Javascript
Jquery使用each函数实现遍历及数组处理
2020/07/14 jQuery
python重试装饰器示例
2014/02/11 Python
python读取文件名称生成list的方法
2018/04/27 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
CSS3轻松实现圆角效果
2017/11/09 HTML / CSS
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
理工科学生的自我评价
2013/12/15 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
汽车转让协议书范本
2014/12/07 职场文书
先进员工事迹材料
2014/12/20 职场文书
客户经理岗位职责
2015/01/31 职场文书
上课讲话检讨书范文
2015/05/07 职场文书
详解thinkphp的Auth类认证
2021/05/28 PHP
HTML中的表单元素介绍
2022/02/28 HTML / CSS
Tomcat 与 maven 的安装与使用教程
2022/06/16 Servers