OpenCV和PHP的Face Service技術
OpenCV安裝之前必須依賴的包:(請先安裝好)pkgconfiglibpngzliblibjpeglibtiffpython[OpenCV安裝] www.opencv.org.tar xvzf OpenCV-1.0.0.tar.gzcd opencv-1.0.0./configuremakemake installmake check (檢查是否安裝全部正確)[facedetect] http://www.xarg.org/download/facedetect-1.0.0.tar.gztar xzvf facedetect-1.0.0.tar.gzcd facedetect-1.0.0/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmakemake testmake install[ImageMagick] http://www.imagemagick.org/tar jxvf ImageMagick-6.5.0-0.tar.bz2cd ImageMagick-6.5.0-0./configuremakemake install[imagick] http://pecl.php.net/imagicktar zxvf imagick-2.3.0b1.tgzimagick-2.3.0b1/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmakemake testmake install[配置]ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/看看有沒有 facedetect.so 和 imagick.sovi /usr/local/php/lib/php.ini在[PHP]模組下增加:extension = facedetect.soextension = imagick.so重啟apache[測試代碼]從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);//------------------// 人臉扭曲//------------------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{?>//------------------// Face Service//------------------Face ServiceFace Service
PS: 請上傳一張帶有人臉的圖片
$v){$tmp_name_new = $tmp_name."_".$k;$x = $v['x'];$y = $v['y'];$w = $v['w'];$h = $v['h'];$dst_pic = "./".$tmp_name_new.$fix_pic;// echo $src_pic."
";// echo $dst_pic."
";$cmd = "/usr/local/bin/convert -crop ".$w."x".$h."+".$x."+".$y." ".$src_pic." ".$dst_pic;// echo $cmd."
";echo `$cmd`;$pic_src[] = "./".$tmp_name.$fix_pic;$pic_dst[] = "./".$tmp_name_new.$fix_pic;}}foreach($pic_src as $key => $value) {echo " =>
";}}?>
?
?
目前,還為測試,等應用後,再公布實驗結果~~
?
?
1 樓 悠悠晃晃 2011-03-21
facedetect在Windows伺服器下如何安裝啊,貌似沒找到,你有嗎?
2 樓 purpen 2011-03-26
悠悠晃晃 寫道
facedetect在Windows伺服器下如何安裝啊,貌似沒找到,你有嗎?
沒有,沒在windows下測試。