OpenCVを再び使うときにためにメモを。OpenCVは顔などの画像認識するためのアプリケーション。
顔認識楽しいです.
openCV
OpenCV をインストールする
yum --enablerepo=rpmforge install opencv opencv-devel
PHP版OpenCVのインストール
オープンソースで作った方がいるので感謝!!→
wget http://www.netflowers.co.jp/face_detect/face_detect-0.0.1.tar.gz tar face_detect-0.0.1.tar.gz cd face_detect-0.0.1 phpize ./configure make && make install vim /etc/php.ini # face_dect を有効にする centos の場合は /etc/php/conf.d だったかな
PHPで顔認識するサンプル
<?php if(!isset($_POST["img_url"])){ ?> <form action="" method=post> <input type="text" size=120 name="img_url" ><input type="submit"> </form> <?php exit; }else{ file_put_contents("tmp", file_get_contents($_POST["img_url"])); } //ファイル名 $filename = "tmp"; $mask_file = "./mask.png"; $out_filename = "out.jpg"; if(file_exists($out_filename)){ unlink($out_filename); } //リソース作成 $pic = ImageCreateFromJPEG($filename); $cascade = "/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml"; $faces = face_detect($filename ,$cascade); foreach($faces as $face) { $x = $face["x"]; $y = $face["y"]; $w = $face["width"]; $h = $face["height"]; $mask_out = imagecreate($x, $y); ImageCopy($pic, $mask_out, $x, $y, 0,0, $h, $w); imagejpeg($pic, $out_filename); } ?> <a href="./face_detect.php">他の画像</a> <!-- 画像ファイルタグ--> <p><img src="./out.jpg" width=480 / ></p> <a href="./face_detect?move_left">左に動かす</a><br/> <select name="pick_mask" > <?php foreach($faces as $idx=> $face):?> <option value="<?php echo $idx;?>" >マスク画像<?php echo $idx;?></option> <?php endforeach;?> </select> <br/> <?php echo sizeof($faces);?> 個の顔を検出しました<br/> <?php foreach($faces as $face ){echo "<pre>";var_dump($face);echo "</pre>";} ?>