今回は先日構築した,RPiにOpenCVを導入してみたいと思います!
OpenCVとは簡単に言うと,画像処理ライブラリです.
画像処理に敷居が昨今急速に下がり,誰でも利用できるようになっているのも
OpenCVが一役買っていると思います(ホントか?笑)
具体的には,顔検出や基本的な画像フィルタリング,機械学習なんかも
カバーしているようです.
RPiと専用カメラV2を所持している私には,持って来い笑
OpenCVのソースからビルドを行います.
公式サイトから最新版(2016/12/14現在)である3.1をDL!
その後,DLしたzipファイルをRPiにコピーして以下のコマンドをターミナルで実行.
(これほんとに通るのか...)
echo [INFO]Install OpenCV 3.1.0 script
echo [INFO]Install some Dependences
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev sudo apt-get install libgtk2.0-dev
sudo apt-get install libatlas-base-dev gfortran
echo [INFO]Unzipping sorce zip sudo unzip opencv-3.1.0.zip
echo [INFO]Make OpenCV cd ./opencv-3.1.0/
sudo mkdir build cd build
sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON ..
sudo make -j8
echo [INFO]Install OpenCV
sudo make install
sudo ldconfig
何事もなく,スクリプトが実行され導入が完了したみたいです(ヤッター)
実はこのエントリを書く前に,5回くらい様々なサイトを徘徊して
導入をトライしていたのですが,makeの途中でエラーがでてしまっていたのでようやくです...
どうやら,これまで用いていたOpenCVのソースにバグが含まれていたみたいで,今回はOpenCV公式サイトからDLしたのが功を奏したみたいですね.
動作確認として,verチェックを.
#include <iostream>
#include<opencv2/core/core.hpp>
#define OPENCV_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#define OPENCV_VERSION_CODE OPENCV_VERSION(CV_MAJOR_VERSION, CV_MINOR_VERSION, CV_SUBMINOR_VERSION)
int main(int argc, char *argv[]) {
std::cout << "version: " << CV_VERSION << std::endl;
std::cout << " major: " << CV_MAJOR_VERSION << std::endl;
std::cout << " minor: " << CV_MINOR_VERSION << std::endl;
std::cout << " subminor: " << CV_SUBMINOR_VERSION << std::endl;
std::cout << "OpenCV >= 2.0.0: " << (OPENCV_VERSION_CODE>=OPENCV_VERSION(2,0,0)?"true":"false") << std::endl;
return 0;
}
実行すると
version: 3.1.0
major: 3
minor: 1
subminor: 0
OpenCV >= 2.0.0: true
所望の結果が得られました(^^)
ちなみに,コンパイルの際のオプションは
g++ hoge.cpp `pkg-config --cflags opencv` `pkg-config --libs opencv` -o hoge
とすると通ります.
0コメント