php拓展facedetect_PHP结合OpenVC实现人脸识别 | 学步园

本文介绍了如何在Linux环境中安装OpenCV并配置PHP扩展facedetect,通过PHP编写人脸识别程序,实现图片中人脸的检测和标注。首先,详细阐述了OpenCV的安装过程,然后讲解了facedetect PHP扩展的安装和配置,最后展示了一个简单的PHP实例,用于在图片上标注识别出的人脸。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近发现很多网站都有一些圈人头像的功能,后来在网上GG了一下,发现是用OpenCV实现的,我也在内部服务器做了一下测试,如果可以实现,步骤如下:

一 安装

1、安装opencv

官方网站:http://www.opencv.org.cn (中文版)

具体安装方法可以参考官方网站:

http://www.opencv.org.cn/index.php/%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91

从http://sourceforge.net/projects/opencvlibrary 下载OpenCV源码,下载文件为opencv-1.0.0.tar.gz(如果是其他版本,文件名相应改变,建议下载当时最新的版本)。

#tar zxvf opencv-1.0.0.tar.gz

#cd opencv-1.0.0

#./configure  (注:不要加路径)

checking build system type... i686-pc-linux-gnu

checking host system type... i686-pc-linux-gnu

checking target system type... i686-pc-linux-gnu

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for gawk... no

... ...

General configuration ================================================

Compiler:       g++

CXXFLAGS:       -Wall -fno-rtti -pipe -O3 -g -march=i686 -ffast-math -fomit-frame-pointer

Install path:     /usr/local

HighGUI configuration ================================================

Windowing system --------------

Use Carbon / Mac OS X:    no

Use gtk+ 2.x:             yes

Use gthread:              yes

Image I/O ---------------------

Use libjpeg:              yes

Use zlib:                 yes

Use libpng:               yes

Use libtiff:              yes

Use libjasper:            yes

Use libIlmImf:            no

Video I/O ---------------------

Use QuickTime / Mac OS X: no

Use xine:                 no

Use ffmpeg:               yes

Use dc1394 & raw1394:     yes

Use v4l:                  yes

Use v4l2:                 yes

Wrappers for other languages =========================================

SWIG

Python                    no

Additional build settings ============================================

Build demo apps           yes

Now run make ...

如果出现上述输出,表明编译OpenCV所需的软件基本已经安装,可以进行下一步。如果提示有需要的软件未安装,请安装后再运行 ./configure 命令,直到提示"Now run make ..."为止。

部分库的说明: libjasper - The JasPer JPEG-2000 runtime library

#make

#make install

到这里基本上OpenCV安装成功。

2、安装人脸识别的PHP扩展facedetect

#wget http://www.xarg.org/download/facedetect-1.0.0.tar.gz (下载)

#tar -xf facedetect-1.0.0.tar.gz

#cd facedetect-1.0.0

#phpize  (跟据自己的PHP安装路径,如:/usr/local/php/bin/phpize)

#./configure

#make

#make install

然后在php.ini(/usr/local/php/etc/php.ini)  中增加这个扩展:extension=facedetect.so , 如果设置的是apache的php.ini,需要重启apache服务器。之后就可以通过php -i 或者phpinfo查看facedetect是否启用。扩展增加了两个方法:face_count和face_detect , 分别返回一个图片中识别出来的面部数量和坐标。

3、php实例程序

一切就绪之后,就可以用php编写人脸识别程序了,下面来个实例,实现下图中标注人脸位置的功能,效果图如下:

$file = "4.jpg";

$face_xml = "haarcascade_frontalface_alt2.xml";

$dr = face_detect($file, $face_xml);

$image = imagecreatefromjpeg ($file);

$backgroundcolor = ImageColorAllocate($image, 255, 0, 0);

if ($dr){

foreach ($dr as $dr1){

imagerectangle($image,$dr1[x],$dr1[y],

$dr1[x]+$dr1[w],$dr1[y]+$dr1[h],

$backgroundcolor);

}

}

$newfile="1-new.jpg";

imagejpeg($image,$newfile);

     echo "";

?>

其中face_xml有很多种可以选,表示不同的识别特征(识别效果也会有差异),可以google一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值