首頁 後端開發 php教程 基于OpenCV的PHP图像人脸识别技术_PHP

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

Jun 01, 2016 pm 12:22 PM
opencv 人臉辨識

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{
?>


人脸识别试验:只支持jpg,png

上传一张图片



}
?>

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1267
29
C# 教程
1239
24
使用pip軟體套件管理器快速安裝OpenCV學習指南 使用pip軟體套件管理器快速安裝OpenCV學習指南 Jan 18, 2024 am 09:55 AM

使用pip命令輕鬆安裝OpenCV教程,需要具體程式碼範例OpenCV(OpenSourceComputerVisionLibrary)是一個開源的電腦視覺庫,它包含了大量的電腦視覺演算法和函數,可以幫助開發者快速建立圖像和視訊處理相關的應用程式。在使用OpenCV之前,我們需要先安裝它。幸運的是,Python提供了一個強大的工具pip來管理第三方函式庫

如何在C++中進行人臉辨識和人臉偵測? 如何在C++中進行人臉辨識和人臉偵測? Aug 27, 2023 am 08:30 AM

如何在C++中進行人臉辨識和人臉偵測?引言:人臉辨識和人臉偵測是電腦視覺領域中的重要研究方向,它們在影像處理、安全監控等領域有著廣泛的應用。本文將介紹如何使用C++語言進行人臉辨識和人臉偵測,並給出對應的程式碼範例。 1.人臉偵測人臉偵測是指在給定影像中定位並標識出人臉的過程。 OpenCV是一款流行的電腦視覺庫,它提供了人臉偵測的相關函數。下面是一個簡單的人

OpenCV安裝教學:PyCharm用戶必看 OpenCV安裝教學:PyCharm用戶必看 Feb 22, 2024 pm 09:21 PM

OpenCV是一種用於電腦視覺和影像處理的開源庫,廣泛應用於機器學習、影像辨識、視訊處理等領域。在使用OpenCV進行開發時,為了能夠更好地調試和運行程序,許多開發者選擇使用PyCharm這款強大的Python整合開發環境。本文將為PyCharm用戶提供OpenCV的安裝教學課程,並附上具體的程式碼範例。第一步:安裝Python首先,請確保您已經安裝了Python

PHP學習筆記:人臉辨識與影像處理 PHP學習筆記:人臉辨識與影像處理 Oct 08, 2023 am 11:33 AM

PHP學習筆記:人臉辨識與影像處理前言:隨著人工智慧技術的發展,人臉辨識和影像處理成為了熱門話題。在實際應用中,人臉辨識與影像處理多用於安全監控、人臉解鎖、卡牌比對等方面。而PHP作為常用的伺服器端腳本語言,也可以用來實現人臉辨識與影像處理的相關功能。本篇文章將帶你了解PHP中的人臉辨識與影像處理,並附有具體的程式碼範例。一、PHP中的人臉辨識人臉辨識是一

如何實作C#中的人臉辨識演算法 如何實作C#中的人臉辨識演算法 Sep 19, 2023 am 08:57 AM

如何實現C#中的人臉辨識演算法人臉辨識演算法是電腦視覺領域中的重要研究方向,它可以用於識別和驗證人臉,廣泛應用於安全監控、人臉支付、人臉解鎖等領域。在本文中,我們將介紹如何使用C#來實現人臉辨識演算法,並提供具體的程式碼範例。實現人臉辨識演算法的第一步是取得影像資料。在C#中,我們可以使用EmguCV函式庫(OpenCV的C#封裝)來處理影像。首先,我們需要在項目

如何使用Java在OpenCV中繪製箭頭的線條? 如何使用Java在OpenCV中繪製箭頭的線條? Aug 20, 2023 pm 02:41 PM

JavaOpenCV函式庫的org.opencv.imgproc套件包含一個名為Imgproc的類,該類別提供了各種方法來處理輸入影像。它提供了一組在圖像上繪製幾何形狀的方法。要繪製一個帶有箭頭的線條,您需要呼叫這個類別的arrowedLine()方法。此方法接受以下參數:表示要在其上繪製線條的影像的Mat物件。表示線條之間的兩點的Point物件。 drawn.表示線條顏色的Scalar物件。 (BGR)表示線條厚度的整數(預設值:1)。範例importorg.opencv.core.Core;importo

如何使用Golang對圖片進行人臉辨識和人臉融合 如何使用Golang對圖片進行人臉辨識和人臉融合 Aug 26, 2023 pm 05:52 PM

如何使用Golang對圖片進行人臉辨識和人臉融合人臉辨識和人臉融合是電腦視覺領域中的常見任務,而Golang作為一個高效而強大的程式語言,也能夠在這些任務中發揮重要作用。本文將介紹如何使用Golang對圖片進行人臉辨識和人臉融合,並提供相關的程式碼範例。一、人臉辨識人臉辨識是指透過影像或影片中的人臉特徵,將其與已知的人臉進行配對或辨認的技術。在Golang中

釘釘人臉辨識怎麼錄入 釘釘人臉辨識怎麼錄入 Mar 05, 2024 am 08:46 AM

釘釘作為一款智慧的服務軟體,不僅在學習和工作中發揮重要作用,還致力於透過其強大的功能提升使用者效率並解決問題。隨著科技的持續進步,人臉辨識技術逐漸滲透到我們的日常生活和工作中。那麼究竟該如何使用釘釘app進行人臉辨識輸入呢,下文中小編就為大家帶來了詳細的內容介紹,想要了解的用戶們就快來跟著本文圖文一起操作吧!釘釘怎麼錄入人臉?在手機上打開釘釘軟體後,點擊底部的“工作台”,然後找到“考勤打卡”並點擊打開。 2.接著在考勤頁面點擊右下方的「設定」進入,再在設定頁面中點選「我的設定」這一項進行切換

See all articles