基於OpenCV的PHP映像Face Service技術_PHP教程

來源:互聯網
上載者:User
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://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

http://www.bkjia.com/PHPjc/320585.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/320585.htmlTechArticleopenCV是一個開源的用C/C++開發的電腦圖形映像庫,非常強大,研究資料很齊全。本文重點是介紹如何使用php來調用其中的局部的功能。人臉...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.