• 検索結果がありません。

の 3 つのファイルに #include <functional> を加える 場所は以下の通り diff --git a/modules/calib3d/test/test_affine3d_estimator.cpp b/modules/calib3d/test/test_affine3d_est

N/A
N/A
Protected

Academic year: 2021

シェア "の 3 つのファイルに #include <functional> を加える 場所は以下の通り diff --git a/modules/calib3d/test/test_affine3d_estimator.cpp b/modules/calib3d/test/test_affine3d_est"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)

PCへの OpenCV の導入について Version 1.0 2012年 9月30日 Version 1.1 2012年11月14日 ・プロパティシートの読み込みを追加 ・FAQを追加 花泉 弘 1. 始める前に、いろいろ Blog などに目を通して、インストール作業がどのようにな るのか、全体を俯瞰してみましょう。参考になるのは、 http://volga.esys.tsukuba.ac.jp/~sat/2011/09/opencv-installing-memo/ http://d.hatena.ne.jp/ch3cooh393/20120810/1344577741 http://imagingsolution.net/program/opencv/opencv2-4-dynamic-downlaod-install/ ちょっと微妙な感じ 2. 対応しているかどうかの観点から、Win32を選んでください 3. cmake-2.8.9-win32-x86.exe をダウンロード⇒~\downloads 4. ダブルクリックしてインストールする 5. OpenCV-2.4.2.exe をダウンロード⇒~\downloads 6. C:\OpenCV242 を作成 7. OpenCV-2.4.2.exe をダブルクリックして展開する。展開先には C:\OpenCV242 を指 定する。 8. C:\OpenCV242\opencv ができている 9. Code にはバグが含まれているらしいので確認して除去する http://code.opencv.org/issues/2276 include.diff a/modules はここでの例でいうところの、C:\OpenCV242\opencv\modules のこと。 結局、ここでの修正では、 C:\OpenCV242\opencv\modules\ calib3d\test\test_affine3d_estimator.cpp C:\OpenCV242\opencv\ calib3d\test\test_chesscorners.cpp C:\OpenCV242\opencv\ gpu\test\precomp.hpp

(2)

の3つのファイルに#include <functional> を加える。場所は以下の通り。 diff --git a/modules/calib3d/test/test_affine3d_estimator.cpp

b/modules/calib3d/test/test_affine3d_estimator.cpp index 95742a9..9eed8e9 100644 --- a/modules/calib3d/test/test_affine3d_estimator.cpp +++ b/modules/calib3d/test/test_affine3d_estimator.cpp @@ -48,6 +48,7 @@ using namespace std; #include <string> #include <iostream> #include <fstream> +#include <functional> 場所はここ。+は書かない。以下同じ #include <iterator> #include <limits> #include <numeric>

diff --git a/modules/calib3d/test/test_chesscorners.cpp b/modules/calib3d/test/test_chesscorners.cpp index f6d513d..d692121 100644 --- a/modules/calib3d/test/test_chesscorners.cpp +++ b/modules/calib3d/test/test_chesscorners.cpp @@ -42,6 +42,7 @@ #include "test_precomp.hpp" #include "test_chessboardgenerator.hpp" +#include <functional> #include <limits> #include <numeric>

diff --git a/modules/gpu/test/precomp.hpp b/modules/gpu/test/precomp.hpp index afc3be8..5c1c4c1 100644 --- a/modules/gpu/test/precomp.hpp +++ b/modules/gpu/test/precomp.hpp @@ -51,6 +51,7 @@ #include <cstdio> #include <iostream> #include <fstream> +#include <functional> #include <sstream> #include <string> #include <limits> tuple.diff

(3)

こちらも同様に、C:\OpenCV242\opencv\modules \CMakeLists.txt に直接書き加えてします (cuda は使わないけど)。

元ファイルには4行しか書かれていない。+のついた行を書き加えるが、+自体は書き加 えない。

diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt index 4a6ed6d..3c9b567 100644 --- a/modules/CMakeLists.txt +++ b/modules/CMakeLists.txt @@ -2,4 +2,8 @@ if(NOT OPENCV_MODULES_PATH) set(OPENCV_MODULES_PATH "${CMAKE_CURRENT_SOURCE_DIR}") endif() +if (MSVC) + add_definitions(-D_VARIADIC_MAX=10) +endif (MSVC) + ocv_glob_modules(${OPENCV_MODULES_PATH}) 10. スタート⇒Cmakeと辿って cmake を起動する。 11. ソースは C:\OpenCV242\opencv を指定し、出力先は C:\OpenCV242 と指定する 12. 設定したら configure ボタンをクリックする。赤くなったらもう一度 configure ボタ ンをクリックする(赤くなくなるまで何度もクリックする)。 13. 赤が無くなったら generate ボタンをクリックする。 14. うまくいったら、C:\OpenCV242 の下に、OpenCV.sin ができている。 15. OpenCV.sin をダブルクリックしてVC2012を起動する。この部分は、インス トールされているVC2010が動くのでも構いません。 16. ビルドのタグの下の方の、「バッチビルド」を起動する。コンパイラの指定を忘 れずに。

17. BUILD_ALL の debug と release にチェックを入れてビルドをクリックする。 18. どきどきするが、どうやら成功するようである。 19. 次は、vc2012 から opencv の関数を呼ぶための設定です。 20. Vc2012 を立ち上げて、空のプロジェクトを新規作成します。(例えば hosei ) 21. ソリューションエクスプローラ上のプロジェクト名の左側の三角をクリックして 展開し、「ソースファイル」ところを右クリックして、「追加」→「新しい項目 の追加」と進み、適当な名前でソースファイルを作ります。(例:hello_cis.cpp)

(4)

22. ソースを打ち込みます。 #include <stdio.h> int main() { prinf(”hello_cis\n”); getchar(); return 0; } などがよいでしょう。 23. ソリューションエクスプローラ上で、プロジェクト名(ここでの例では hosei)を 右クリックして、一番下の「プロバティ」を選択すると、「hosei プロパティペー ジ」が開きます。左上角の「構成(C)」がアクティブ(Debug)になっていることを確 認します。左側の「構成プロバティ」を展開します。 24. さらに、c/c++ を展開して、「全般」をクリックすると右側に内容が表示されます。 一番上の「追加のインクルードディレクトリ」の右側にインクルードファイルの パスを書き込んでいきます。OpenCV2012 用のインクルードファイルは、 C:\OpenCV242\opencv\include と C:\OpenCV242\opencv\modules\ の下層にありま すが、丁寧に設定してやる必要があります。ここでの例では、 C:\OpenCV242\opencv\include\opencv;C:\OpenCV242\opencv\include\opencv2;C:\OpenCV242\o pencv\modules\flann\include;C:\OpenCV242\opencv\modules\calib3d\include;C:\OpenCV242\op encv\modules\core\include;C:\OpenCV242\opencv\modules\features2d\include;C:\OpenCV242\o pencv\modules\highgui\include;C:\OpenCV242\opencv\modules\imgproc\include;C:\OpenCV242 \opencv\modules\legacy\include;C:\OpenCV242\opencv\modules\ml\include;C:\OpenCV242\ope ncv\modules\objdetect\include;C:\OpenCV242\opencv\modules\video\include;C:\OpenCV242\op encv\modules\contrib\include;C:\OpenCV242\opencv2;%(AdditionalIncludeDirectories) のようになります。適当なエディタ上に打ち込んでから、コピー&ペーストして下さい。 よく考えて自分の環境に合うように変更して打ち込んでください。打ち込んだら右下の適 用(A)をクリックしておいてください。 ここでの例では、とりあえず使用頻度が高いであろうもののみがリストアップされていま すが、すべてのモジュールについては書いてありません。めったに使わないものを使うと きには、コンパイル時にエラーとなりますから、必要に応じてプロパティマネージャーを 使って必要なモジュールの include を加えてください。初めからすべてをリストアップす るのも一手法ですが、モジュール間で競合する例もあるとのことで、このようにしていま す。以下のリンカーについても同様です。

(5)

次は「リンカー」を展開して、その中の「全般」を左クリックします。上と同じように、 内容が表示されますので、中ほどの、「追加のライブラリディレクトリ」の右側に以下の ように打ち込みます。OpenCV242 用のライブラリファイルは C:\OpenCV242\lib の下層にあ りますので、これを打ち込みます。「Debug」と「Release」と2種類あるので、左上角の 表示に合わせて「Debug」と「Release」とを別々に入力します。ここでの例では、 C:\OpenCV242\lib\Debug;%(AdditionalLibraryDirectories) と C:\OpenCV242\lib\Release;%(AdditionalLibraryDirectories) とを使います。入力後は「適用(A)」 をクリックしましょう。 25. 同じく「リンカー」の中の「入力」を左クリックします。追加の依存ファイルに kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib ;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;C:\OpenCV242\lib\Debug\opencv_core242d .lib;C:\OpenCV242\lib\Debug\opencv_highgui242d.lib;C:\OpenCV242\lib\Debug\opencv_ video242d.lib;C:\OpenCV242\lib\Debug\opencv_ml242d.lib;C:\OpenCV242\lib\Debug\op encv_legacy242d.lib;C:\OpenCV242\lib\Debug\opencv_imgproc242d.lib;%(AdditionalDep endencies) と kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib ;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;C:\OpenCV242\lib\Release\opencv_core242 .lib;C:\OpenCV242\lib\Release\opencv_highgui242.lib;C:\OpenCV242\lib\Release\opencv _video242.lib;C:\OpenCV242\lib\Release\opencv_ml242.lib;C:\OpenCV242\lib\Release\o pencv_legacy242.lib;C:\OpenCV242\lib\Release\opencv_imgproc242.lib;%(AdditionalDep endencies) とを加えます。「Debug」の場合は、~d.lib となっていますが、「Release」の場合 は~.lib になっていることに注意しましょう。また、もともと値が入っている場合 には、それらの後ろに「;」で区切って追加します。入力後は「適用(A)」をクリッ クしましょう。 26. ようやく入力が終わりました。次はこの設定を「プロパティシート」として保存 します。今後新しいプロジェクトを作成するたびに、このプロパティシートを導 入することで、面倒な入力を省略できます。 27. VC2012 のトップ画面に戻ります。「表示」→「プロバティマネージャー(P)」を選 択します。プロジェクト名(例:hosei)が見えるので、右クリックします。入力 したものを保存するので、「新しいプロジェクトプロバティ―シートの追加(P)」 を選択して、保存先を忘れないようにして、保存してください。 28. 新しいプロジェクトを作成した場合には、上の操作で「既存のプロパティシート の追加(E)」を選択すればよいのはわかりますね。すなわち、ソリューションエク スプローラ上で新しく作成したプロジェクトを左クリックして、「表示」→「プ

(6)

ロバティマネージャー(P)」を選択し、「既存のプロパティシートの追加(E)」を選 択します。 29. 最後に、システムの環境変数を書き加えます。「スタート」→「コントロールパ ネル」→「システム」→「システムの詳細設定」→「環境変数(N)」と辿り、下部 の「システム環境変数(S)」の中の「Path」を左クリックし、さらに「編集(I)」を左 クリックして「;」で区切りながら、ここの例で は、;C:\OpenCV242\bin\Rlease;C:\OpenCV242\bin\Debug を書き加えます。先頭の 「;」は、すでに書いてある分につなげるためのものです。再起動などして新しい 環境変数を読み込ませれば出来上がりです。 30. 以上の操作で、無事 OpenCV を使って開発ができるようになりました。 31. それでは、OpenCV の動作確認をしてみましょう。ソースを打ち込んだらF5でビ ルドが行われ、プログラムが起動します。 画像表示: #include <cv.h> #include <highgui.h>

Int main (int argc, char **argv) { IplImage* img; cvNamedWindow("image_display", 1); img = cvLoadImage("pict.jpg", 1); //画像はプロジェクト内のソースと同じ場所に置く if(img == NULL){ printf("tako !!\n"); cvWaitKey(0); exit(-1); } cvvShowImage("image_display", img); cvWaitKey(0); cvDestroyAllWindows(); cvReleaseImage(&img); return 0; } USBカメラ映像の表示: #include <cv.h>

(7)

#include <highgui.h>

Int main (int argc, char **argv) { int key; CvCapture *src; IplImage *frame; cvNamedWindow("camera", 1); src = cvCaptureFromCAM(0); if(src == NULL){ printf("aho !\n"); cvWaitKey(0); exit(-1); } while(1){ frame = cvQueryFrame(src); cvShowImage("camera", frame); key = cvWaitKey(33); if(key == 'q') break; } cvDestroyWindow("camera"); cvReleaseCapture(&src); return 0; } 32. 頑張ってください。 FAQ Q1.新しいプロジェクトを作成しましたが、プロパティシートを読み込んでも内容が反 映されていないようです。 A1.ソリューションエクスプローラ上で新しく作成したプロジェクトを左クリックして、 「表示」→「プロバティマネージャー(P)」を選択し、「既存のプロパティシートの 追加(E)」を選択します。これによって、関数などについていた赤い波線が消えるの が観察されます。 Q2.コンパイル時にエラーが出ます。どうやら include ファイルが不足しているようで す。

(8)

A2.ソリューションエクスプローラ上で、使用しているプロジェクト名を右クリックし て、「プロパティ(R)」を選択します。そのプロジェクトの名前の付いたプロパティ ページのウインドウが開きますので、左側の「C/C++」→「すべてのオプション」 と進み、右側で「追加のインクルードディレクトリ」に不足しているものを書き加 えてください。 Q3.コンパイル時にエラーが出ます。どうやらライブラリの不足のようです。 A3.ソリューションエクスプローラ上で、使用しているプロジェクト名を右クリックし て、「プロパティ(R)」を選択します。そのプロジェクトの名前の付いたプロパティ ページのウインドウが開きますので、左側の「リンカー」→「すべてのオプション」 と進み、右側で「追加の依存ファイル」に不足しているものを書き加えてください。

参照

関連したドキュメント

これらの先行研究はアイデアスケッチを実施 する際の思考について着目しており,アイデア

SD カードが装置に挿入されている場合に表示され ます。 SD カードを取り出す場合はこの項目を選択 します。「 SD

テストが成功しなかった場合、ダイアログボックスが表示され、 Alienware Command Center の推奨設定を確認するように求め

昭33.6.14 )。.

jGrants上にご登録されている内容から自動反

注:一般品についての機種型名は、その部品が最初に使用された機種型名を示します。

回転に対応したアプリを表示中に本機の向きを変えると、 が表 示されます。 をタップすると、縦画面/横画面に切り替わりま

口腔の持つ,種々の働き ( 機能)が障害された場 合,これらの働きがより健全に機能するよう手当