基于OpenCV的PHP图像人脸识别技术
2023-06-13 09:14:13 时间
openCV是一个开源的用C/C++开发的计算机图形图像库,非常强大,研究资料很齐全。本文重点是介绍如何使用php来调用其中的局部的功能。人脸侦查技术只是openCV一个应用分支。
1.安装
从源代码编译成一个动态的so文件。
1.1.安装OpenCV(OpenCV1.0.0)
下载地址:http://sourceforge.net/project/showfiles.php?group_id=22870&package_id=16948
#tarxvzfOpenCV-1.0.0.tar.gz
#cdopencv-1.0.0
#./configure
#make
#makeinstall
#makecheck(检查是否安装全部正确)
提示:不要指定安装路径,否则后面编译facedetect会找不到OpenCV的路径。
1.2安装facedetect
下载地址http://www.xarg.org/download/facedetect-1.0.0.tar.gz
#tarxzvffacedetect-1.0.0.tar.gz
#cdfacedetect-1.0.0
#phpize&&./configure&&make&&makeinstall
编译完之后会提示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
复制代码代码如下:
1.安装
从源代码编译成一个动态的so文件。
1.1.安装OpenCV(OpenCV1.0.0)
下载地址:http://sourceforge.net/project/showfiles.php?group_id=22870&package_id=16948
#tarxvzfOpenCV-1.0.0.tar.gz
#cdopencv-1.0.0
#./configure
#make
#makeinstall
#makecheck(检查是否安装全部正确)
提示:不要指定安装路径,否则后面编译facedetect会找不到OpenCV的路径。
1.2安装facedetect
下载地址http://www.xarg.org/download/facedetect-1.0.0.tar.gz
#tarxzvffacedetect-1.0.0.tar.gz
#cdfacedetect-1.0.0
#phpize&&./configure&&make&&makeinstall
编译完之后会提示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=newImagick($img);
//$draw=newImagickDraw();
//$borderColor=newImagickPixel("red");
//$draw->setFillAlpha(0.0);
//$draw->setStrokeColor($borderColor);
//$draw->setStrokeWidth(1);
if(is_array($all)){
foreach($allas$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{
?>
<metahttp-equiv=“Content-Type”content=“text/html;charset=utf-8″/>
<formmethod=“POST”enctype=“multipart/form-data”>
人脸识别试验:只支持jpg,png<br>
上传一张图片<inputtype=“file”name=“pic”>
<inputtype=“submit”value=“upload”>
</form>
<?
}
?>
参考资料:
相关文章
- python-opencv图像处理:sobel算子
- ffmpeg opencv_ffmpeg -q:v
- 【说站】Python+OpenCV实现图像识别替换功能详解
- OpenCV中神经网络介绍与使用
- OpenCV中图像算术操作与逻辑操作
- PHP DFA算法实现敏感词过滤包 php-dfa-sensitive
- 【1】windows下安装OpenCV(4.3)+VS2017安装+opencv_contrib4.3.0配置
- 【4】配置和运行Opencv常见的一些问题总结,以及bug解决。
- OpenCV这么简单为啥不学——1.5、解决putText中文乱码问题
- ERROR: Could not build wheels for opencv-python-headless, which is required to install pyproject.tom
- 【Android OpenCV】Visual Studio 创建支持 OpenCV 库的 CMake 工程 ② ( VS 中创建 CMake 工程 | CMake 工程中配置 OpenCV 头文件 )
- OpenCV图像匹配算法之freak详解编程语言
- vLinux下开发OpenCV应用(linuxopenc)
- 基于PHP的MySQL访问方式(php访问mysql)
- 使用PHP执行Linux脚本:简单而快速!(php执行linux脚本)
- php在Linux上使用Yaf框架开发PHP应用(yaflinux)
- PHP实现MySQL乐观锁的技术研究(mysql乐观锁php)
- PHP中开启Redis服务的实现(php开启redis)
- 使用PHP遍历MySQL数据库 – 一步一步教程(php遍历mysql)
- PHP操作MySQL精通实战(php 操作 mysql)
- PHP连接MSSQL实现注册功能(php注册写入mssql)
- 据使用PHP和MSSQL技术记录丰富的数据信息(php mssql记录数)
- PHP与MySQL的关联技术(php关联mysql)
- 解决MySQL与PHP配置问题的实战技巧(mysql php 配置)
- PHP操作MySQL数据库的封装简单化(php操作mysql封装)
- 如何使用Redis技术来优化PHP性能(清楚redis php)
- 基于PHP的Redis队列监控实践(redis队列监控php)
- 使用php重新实现PHP脚本引擎内置函数
- PHP安全技术之实现php基本安全