php 读取脸型,基于OpenCV的PHP图像人脸检测识别技术
本文所介绍的技术不是原创,而是从一个叫Robert
Eisele的德国人那里学习来的。他写了一个PHP扩展openCV,只封装了两个函数,叫face_detect和face_count。
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{
?>
http-equiv=”Content-Type”
content=”text/html;
charset=utf-8″ />
method=”POST”
enctype=”multipart/form-data”>
人脸识别试验:只支持jpg,png
上传一张图片
type=”file”
name=”pic”>
type=”submit”
value=”upload”>
}
?>
有兴趣的朋友可以试试,像www.conew.com等类似网站应该都使用该技术。
参考资料:
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 读取脸型,基于OpenCV的PHP图像人脸检测识别技术相关推荐
- php配置辨别图片形式,基于OpenCV的PHP图像人脸辨别技术(转载)
当前位置:我的异常网» 图形/图像 » 基于OpenCV的PHP图像人脸辨别技术(转载) 基于OpenCV的PHP图像人脸辨别技术(转载) www.myexceptions.net 网友分享于:20 ...
- 基于OpenCV的视频处理 - 人脸检测
一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055@qq.com Time of completion:2023.2.7 Las ...
- python 视频人脸替换_Python基于OpenCV实现视频的人脸检测
本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys ...
- python视频人脸检测_Python基于OpenCV实现视频的人脸检测
本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys ...
- php 人像识别,基于OpenCV的PHP图像人脸识别技术
本文所介绍的技术不是原创,而是从一个叫Robert Eisele的德国人那里学习来的.他写了一个PHP扩展openCV,只封装了两个函数,叫face_detect和face_count. openCV ...
- Python基于OpenCV实现视频的人脸检测
前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys import logging as log import datetime as dt ...
- python读取视频流做人脸识别_基于OpenCV和Keras实现人脸识别系列——二、使用OpenCV通过摄像头捕获实时视频并探测人脸、准备人脸数据...
基于OpenCV和Keras实现人脸识别系列手记: 项目完整代码参见Github仓库. 本篇是上面这一系列手记的第二篇. 在Opencv初接触,图片的基本操作这篇手记中,我介绍了一些图片的基本操作,而 ...
- 基于opencv和pillow实现人脸识别系统(附demo)
更多python教程请到友情连接: 菜鸟教程https://www.piaodoo.com 初中毕业读什么技校 http://cntkd.net 茂名一技http://www.enechn.com p ...
- Python基于OpenCV的指针式表盘检测系统(附带源码&技术文档)
1.背景 指针式机械表盘具有安装维护方便.结构简单.防电磁干扰等诸多优点, 目前广泛应用于工矿企业.能源及计量等部门.随着仪表数量的增加及精密仪表技术的发展,人工判读已经不能满足实际应用需求.随着计算 ...
- 基于OpenCV的 SVM算法实现数字识别(四)---代码实现
三.基于SVM算法实现手写数字识别 作为一个工科生,而非数学专业的学生,我们研究一个算法,是要将它用于实际领域的.下面给出基于OpenCV3.0的SVM算法手写数字识别程序源码(参考http://bl ...
最新文章
- Windows Server 2012正式版RDS系列⑤
- AI零基础入门之人工智能开启新时代—下篇
- Vue.js 深入响应式原理
- Java面试题及答案,java对外提供接口
- git php自动发布,使用 Git Hooks 实现自动部署PHP项目
- 打造自己的数据访问层(三)
- [Web]Restful风格的适用场景
- C语言排序方法------快速排序
- M8TSC预览版0.5.1发布
- Atitit 字符串转换数组main参数解析 args splitByWholeSeparator 	 		String string= -host 101.1 8*124 -db 1
- Android 自定义ScrollView 支持惯性滑动,惯性回弹效果。支持上拉加载更多
- python网页抓取与按键精灵原理一样吗_Python网络爬虫学习笔记之 三种网页抓取方法...
- FastDb client-server模式
- JAVA实现Excel照相机功能_用Excel照相机功能在Excel中显示和调用图片的方法
- 世界50所知名大学提供开放课程
- 消费者需求研究能够解决什么问题
- 稀里糊涂的攻防世界之easyRE1
- 我和Python的Py交易》》》》》》函数
- 【Linux】ifconfig不显示ip地址
- ps -aux | grep 用法详解
热门文章
- 软件测试岗完美面试攻略
- python做算法题优势_算法优点和缺点汇总(推荐AAA)
- vray渲染出图尺寸_3d最终渲染参数设置、vr相片级成品参数值
- linux 单网卡 双网段,用单网卡连接两个网段
- 软件架构之“道”和“术”哲学思考
- 学计算机ppt感想60字,ppt制作的体会和感受
- 3.2常用的调度算法
- 海思H.265解码库破解
- 微信小程序轮播图滚动带动背景图变换及滚动对应图片下标
- IDEA+EmmyLua Lua开发环境搭建