犬ターネット

php_facedetect をインストール、ついでに facedetect.cpp もコンパイル

2017-03-22 php opencv facedetect

まず OpenCV をインストール。

$ cd /usr/local/src
$ wget https://github.com/opencv/opencv/archive/3.2.0.zip
$ unzip 3.2.0.zip
$ cd opencv-3.2.0/
$ cmake .
$ make
$ make install

次に php_facedetect をインストール。

$ cd /usr/local/src
$ git clone https://github.com/infusion/PHP-Facedetect.git
$ cd PHP-Facedetect
$ phpize && ./configure && make && make install

php側で認識させるように ini を追加。

$ vim /etc/php.d/facedetect.ini
extension=facedetect.so

確認。

$ php -m | grep facedetect
facedetect

facedetect.cpp のコンパイル。

$ /usr/local/src/opencv/opencv-3.2.0/samples/cpp
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
$ g++ -ggdb `pkg-config --cflags --libs opencv` facedetect.cpp -o facedetect
$ cp facedetect /usr/local/bin

実行。エラーが発生。

$ facedetect
facedetect: error while loading shared libraries: libopencv_shape.so.3.2: cannot open shared object file: No such file or directory

LD_LIBRARY_PATH を通すとエラーは消える。

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
$ facedetect
WARNING: Could not load classifier cascade for nested objects
ERROR: Could not load classifier cascade

This program demonstrates the cascade recognizer.....

毎回 PATH を通すのは面倒なので、.bashrc に書いておく。

$ vim ~/.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
1日毎に固定の乱数
エフェクトボード更新