PHPでOpenCVを使うまで(OpenCV-for-PHP)


PHPでOpenCVを利用する方法はいくつかあるようですが
OpenCV-for-PHPを利用する方法を紹介します。

[mgdm/OpenCV-forPHP]
https://github.com/mgdm/OpenCV-for-PHP

注意:
OpenCV-for-PHPはOpenCVの全ての関数がラップされていないので
利用したいOpenCVの関数が準備されていない場合、ご自身でOpenCV-for-PHP
ソースコードの改修・ビルドが必要になります。

インストール前準備

インストールに必要なミドルウェアとバージョン
OpenCV 2.4.13
PHP5.2

動作確認できたOS
CentOS5
CentOS7

OpenCV2.4 インストール

OpenCVのビルドにgccとcmakeが必要なためそれぞれインストールします。
cmakeは、ソースコードcmake-2.8.12.1.tar.gzをダウンロードしてきて
ビルドしました。rpmパッケージがあればそちらを利用しても大丈夫と思います。

gccインストール
yum install gcc44 gcc44-c++
cmakeインストール
cd /usr/local/src
tar xzvf cmake-2.8.12.1.tar.gz
cd cmake-2.8.12.1
.configure
make
make install
opencvインストール

OpenCV2.1以降が要求されますが、2.4以降に実装されている機能を利用したいため
OpenCV2.4.13をダウンロードしました。
こちらもrpmパッケージを利用しても大丈夫かと思います。

ビルドの際の注意点としてビルド用のディレクトリ(名前は何でもOK、手順ではbuildディレクトリ)を作成する必要があります。

cd /usr/local/src
unzip opencv-2.4.13.zip
cd opencv-2.4.13
mkdir build
cd build
cmake -D BUILD_EXAMPLES=YES -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv -D BUILD_NEW_PYTHON_SUPPORT=NO -D WITH_1394=OFF -D CMAKE_C_COMPILER=gcc44 -D CMAKE_CXX_COMPILER=g++44 ../
make
make install

ライブラリ及びパッケージ登録

cd /etc/ld.so.conf.d
vi opencv.conf
opencv.conf
/usr/local/opencv/lib
ldconfig
cd /usr/lib/pkgconfig
ln -s /usr/local/opencv/lib/pkgconfig/opencv.pc .

PHP5.4インストール

OpenCV-for-PHPのビルド時に
PHP5.2以降を要求されますが、こちらの環境の都合上5.4をインストール
しました。

CentOS5の場合の手順になりますが、CentOS7の場合もyumレポジトリの追加以外は
ほぼ同様になります。

インストール済みのPHPを削除

#yum remove php php-*

PHP5.4のインストール
(利用するパッケージは環境に応じて選択してください。)

rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-5.rpm  
yum --enablerepo=epel install libedit
yum --enablerepo=epel install t1lib
yum install --enablerepo=remi php php-pdo php-cli php-bcmath php-mbstring php-devel php-common php-mysql php-ldap php-gd
yum install --enablerepo=remi php-mcrypt php-pear

php.ini設定
date.timezone、mbstringの文字コード等設定を行います。

OpenCV-for-PHPのインストール

gitインストール

yum install --enablerepo=epel git

OpenCV-for-PHPのビルド

cd /usr/local/src
git clone git://github.com/mgdm/OpenCV-for-PHP.git
cd OpenCV-for-PHP
phpize
.configure
make install
vi /etc/php.d/opencv.ini
opencv.ini
extension=opencv.so

php -mでopencvが存在することを確認します。

php -m
[PHP Modules]
..略..
opencv
..略..

以上になります。

使い方は、OpenCV-for-PHP(https://github.com/mgdm/OpenCV-for-PHP)
内のexampleが参考になります。

全てのOpenCV関数が揃ってるわけではないため

OpenCVのリファレンスを参照して
https://docs.opencv.org/2.4/modules/refman.html

OpenCV-for-PHPのソースコード改修を行います。


参考情報
https://qiita.com/Kogarasi/items/8c5e58821374cd7f332b