本文所介绍的技术不是原创,而是从一个叫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图像人脸检测识别技术相关推荐

  1. php配置辨别图片形式,基于OpenCV的PHP图像人脸辨别技术(转载)

    当前位置:我的异常网» 图形/图像 » 基于OpenCV的PHP图像人脸辨别技术(转载) 基于OpenCV的PHP图像人脸辨别技术(转载) www.myexceptions.net  网友分享于:20 ...

  2. 基于OpenCV的视频处理 - 人脸检测

    一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055@qq.com  Time of completion:2023.2.7 Las ...

  3. python 视频人脸替换_Python基于OpenCV实现视频的人脸检测

    本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys ...

  4. python视频人脸检测_Python基于OpenCV实现视频的人脸检测

    本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys ...

  5. php 人像识别,基于OpenCV的PHP图像人脸识别技术

    本文所介绍的技术不是原创,而是从一个叫Robert Eisele的德国人那里学习来的.他写了一个PHP扩展openCV,只封装了两个函数,叫face_detect和face_count. openCV ...

  6. Python基于OpenCV实现视频的人脸检测

    前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys import logging as log import datetime as dt ...

  7. python读取视频流做人脸识别_基于OpenCV和Keras实现人脸识别系列——二、使用OpenCV通过摄像头捕获实时视频并探测人脸、准备人脸数据...

    基于OpenCV和Keras实现人脸识别系列手记: 项目完整代码参见Github仓库. 本篇是上面这一系列手记的第二篇. 在Opencv初接触,图片的基本操作这篇手记中,我介绍了一些图片的基本操作,而 ...

  8. 基于opencv和pillow实现人脸识别系统(附demo)

    更多python教程请到友情连接: 菜鸟教程https://www.piaodoo.com 初中毕业读什么技校 http://cntkd.net 茂名一技http://www.enechn.com p ...

  9. Python基于OpenCV的指针式表盘检测系统(附带源码&技术文档)

    1.背景 指针式机械表盘具有安装维护方便.结构简单.防电磁干扰等诸多优点, 目前广泛应用于工矿企业.能源及计量等部门.随着仪表数量的增加及精密仪表技术的发展,人工判读已经不能满足实际应用需求.随着计算 ...

  10. 基于OpenCV的 SVM算法实现数字识别(四)---代码实现

    三.基于SVM算法实现手写数字识别 作为一个工科生,而非数学专业的学生,我们研究一个算法,是要将它用于实际领域的.下面给出基于OpenCV3.0的SVM算法手写数字识别程序源码(参考http://bl ...

最新文章

  1. Windows Server 2012正式版RDS系列⑤
  2. AI零基础入门之人工智能开启新时代—下篇
  3. Vue.js 深入响应式原理
  4. Java面试题及答案,java对外提供接口
  5. git php自动发布,使用 Git Hooks 实现自动部署PHP项目
  6. 打造自己的数据访问层(三)
  7. [Web]Restful风格的适用场景
  8. C语言排序方法------快速排序
  9. M8TSC预览版0.5.1发布
  10. Atitit 字符串转换数组main参数解析 args splitByWholeSeparator String string= -host 101.1 8*124 -db 1
  11. Android 自定义ScrollView 支持惯性滑动,惯性回弹效果。支持上拉加载更多
  12. python网页抓取与按键精灵原理一样吗_Python网络爬虫学习笔记之 三种网页抓取方法...
  13. FastDb client-server模式
  14. JAVA实现Excel照相机功能_用Excel照相机功能在Excel中显示和调用图片的方法
  15. 世界50所知名大学提供开放课程
  16. 消费者需求研究能够解决什么问题
  17. 稀里糊涂的攻防世界之easyRE1
  18. 我和Python的Py交易》》》》》》函数
  19. 【Linux】ifconfig不显示ip地址
  20. ps -aux | grep 用法详解

热门文章

  1. 软件测试岗完美面试攻略
  2. python做算法题优势_算法优点和缺点汇总(推荐AAA)
  3. vray渲染出图尺寸_3d最终渲染参数设置、vr相片级成品参数值
  4. linux 单网卡 双网段,用单网卡连接两个网段
  5. 软件架构之“道”和“术”哲学思考
  6. 学计算机ppt感想60字,ppt制作的体会和感受
  7. 3.2常用的调度算法
  8. 海思H.265解码库破解
  9. 微信小程序轮播图滚动带动背景图变换及滚动对应图片下标
  10. IDEA+EmmyLua Lua开发环境搭建