実装前にいろいろと試す用途で,Eclipse の OpenCV 用プロジェクトを作成する.ここはそのメモ.
Eclipse で C++ プロジェクトを作成する.
Eclipse を開いてからの...
- "Project Name" を指定 -> "Location" を決定 -> "Executable" を選択 -> "Hello World C++ Project" を選択 -> "Linux GCC" を選択
OpenCV のインクルードパス,ライブラリパスを通す.
作成したプロジェクトを選択してからの...
- "Project" 右クリック -> "Properties" -> "C/C++ General" を選択 -> "Paths and Symbols" を選択.
- インクルードパスの追加
環境設定で構築した OpenCV の include フォルダのパスを追加.
- ライブラリパスの追加
環境設定で構築した OpenCV の lib フォルダのパスを追加
- ライブラリの追加
環境設定で構築した OpenCV の lib フォルダ内にあるライブラリを追加.今回はどれを使うかはっきりしなかったので,とりあえず全部追加.ここで,ライブラリ名は先頭の "lib" と末尾の ".so" を除いた形で追加する.
以上, "Apply" を押下して, "OK" で再ビルドが走る.
OpenCV を使っての USB カメラの取り込み.
下記のサンプルコードを参考に作成した下記のコードをコンパイルして,カメラ画像が表示されることを確認.
Reading and Writing Images and Video — OpenCV 2.4.13.0 documentation
#include <iostream> #include "opencv2/opencv.hpp" using namespace std; using namespace cv; int main(int, char**) { const string fileName = "/dev/videoLeftImgSrc"; //VideoCapture cap(fileName); // open the default camera VideoCapture cap(0); // open the default camera if(!cap.isOpened()) { // check if we succeeded cout << "Can not open device." << endl; return -1; } Mat edges; namedWindow("edges",1); for(;;) { Mat frame; cap >> frame; // get a new frame from camera cvtColor(frame, edges, CV_BGR2GRAY); //cvtColor(frame, edges, CV_YUV2RGB_YUYV); //cvtColor(frame, edges, CV_BayerBG2BGR); //GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5); //Canny(edges, edges, 0, 30, 3); imshow("edges", edges); if(waitKey(30) >= 0) break; } // the camera will be deinitialized automatically in VideoCapture destructor return 0; }
下記実行結果.どうやら Pixel Format がおかしいみたいなので,V4L2 の API を使って調整する必要があるみたい.とりあえず開発環境が整ってバンザイということで,それは次回に!