激安3D ウェブカメラ(DS-3DW300)をVC++のOpenCV上で使う
需要があったみたいなのでこっちも書くー。
OpenCVライブラリのインストール
ここでOpenCV for Windowsをクリック(現在の最新は2.4.9です)
するとexeがダウンロードされるので、実行して解凍先を指定します。
解凍すると、opencvフォルダができるので、それをリネームして適当なフォルダにおいておきます。(例として:C:\opencv249に置いてみます)
この2つです。
VC++のプロジェクトでOpenCVを使う設定
OpenCVのIncludeディレクトリを設定します。VC++で適当にプロジェクトを作成して、プロジェクトを右クリック>プロパティを選択。
左上の構成:をすべての構成に変更。
構成プロパティ>C/C++>全般を選択。
一番上の追加のインクルードディレクトリにOpenCV解凍先のIncludeディレクトリを指定。
例:C:\opencv249\build\include
最後にOKボタンを押してIncludeフォルダの設定完了です。
ライブラリの指定
あとは、コンパイルするソースコードの頭に以下のコードを追加して、OpenCVのライブラリを指定します。
以下はVC2013の例です。 vc12の部分は使ってるVCのバージョンに合わせて下さい。
-------------ここから--------------------
#ifdef _DEBUG
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_core249d.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_calib3d249d.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_imgproc249d.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_highgui249d.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_objdetect249d.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_contrib249d.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_features2d249d.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_flann249d.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_gpu249d.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_legacy249d.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_ts249d.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_video249d.lib")
#else
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_core249.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_calib3d249.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_imgproc249.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_highgui249.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_objdetect249.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_contrib249.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_features2d249.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_flann249.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_gpu249.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_legacy249.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_ts249.lib")
#pragma comment(lib,"C:\\opencv249\\build\\x86\\vc12\\lib\\opencv_video249.lib")
#endif
-------------ここまで--------------------
VC++のOpenCVで 3Dモードで使うには
以下のように、VideoCaptureでオープンした後で、付属アプリを起動させると使えます。
#include <opencv2/opencv.hpp>
using namespace cv;
<<<<この辺りに上記のpragmaの塊を記述>>>>
int _tmain(int argc, _TCHAR* argv[])
{
VideoCapture cap(0); // デフォルトカメラをオープン
system("IF EXIST \"C:\\Program Files (x86)\\CHUSEI 3D Webcam\\CHUSEI 3D Webcam.exe\" START \"\" \"C:\\Program Files (x86)\\CHUSEI 3D Webcam\\CHUSEI 3D Webcam.exe\""); // for 64bit OS
system("IF EXIST \"C:\\Program Files\\CHUSEI 3D Webcam\\CHUSEI 3D Webcam.exe\" START \"\" \"C:\\Program Files\\CHUSEI 3D Webcam\\CHUSEI 3D Webcam.exe\""); // for 32bit OS
namedWindow("preview", 1);
for (;;){
Mat frame;
cap >> frame; // カメラから新しいフレームを取得
imshow("preview", frame);
if (waitKey(1) >= 0) break;
}
return 0;
}
コンパイルするとReleaseフォルダとかDebugフォルダとかが作成されるので、
そこにOpenCVのx86\vc12\binから必要なDLLを追加します。
面倒だったらx86\vc12\binフォルダの中身まるごとコピーしてもなんとかなります。
こんな感じで3Dデータにアクセスできるので、是非いろいろやってみてください。。
面白そうな使い方見つけたら是非教えてねー(*・ ・*v