最終更新:2011-08-12 (金) 14:00:36 (4788d)
OpenCV 2.1
Top / OpenCV 2.1
April, 2010
OpenCV 2.1 は,基本的には OpenCV 2.0 の安定化版ですが,新機能もいくつか追加されています.
CMake
- source - C:/OpenCV2.1
- build - C:/OpenCV2.1/build
- TBB_INCLUDE_DIR - C:/dev/tbb30_20100406oss/include
- TBB_LIB_DIR - C:/dev/tbb30_20100406oss/lib/ia32/vc10
インストール
Windows
- http://opencv.jp/opencv2-x-tips/install-on-windowswindows32bit-64bit-visual-studio-opencv21
- http://chihara.naist.jp/opencv/?インストール
- vs2008のを入れた場合はビルドする必要はない。
Ubuntu
Mac OS X
Visual Studio全体に対しての設定
Visual Studio 2008
- ツール > オプション > プロジェクトおよびソリューション > VC++ディレクトリ
- インクルードファイル C:\OpenCV2.1\include\opencv
- ライブラリファイル C:\OpenCV2.1\lib
Visual Studio 2010
- 表示 > その他のウィンドウ > プロパティ マネージャー >右ペインの Microsoft.Cpp.Win32.userを編集
Visual Studio 2008でプロジェクト作ってコンパイルするときの設定
ライブラリの宣言
- 「プロジェクト」 > 「のプロパティ」 > 「構成プロパティ」 > 「リンカ」 > 「入力」において, 「追加の依存ファイル」に以下を追加します.
- Debugのときは,cv210d.lib cxcore210d.lib cvaux210d.lib highgui210d.lib
- Releaseのときは,cv210.lib cxcore210.lib cvaux210.lib highgui210.lib
- もしくは
#ifdef _DEBUG #pragma comment( lib, "cv210d.lib" ) #pragma comment( lib, "cxcore210d.lib" ) #pragma comment( lib, "cvaux210d.lib" ) #pragma comment( lib, "highgui210d.lib" ) #else #pragma comment( lib, "cv210.lib" ) #pragma comment( lib, "cxcore210.lib" ) #pragma comment( lib, "cvaux210.lib" ) #pragma comment( lib, "highgui210.lib" ) #endif
Visual Studio 2010でプロジェクト作ってコンパイルするときの設定
一般的な変更:
- SVN リポジトリが SourceForge から https://code.ros.org/svn/opencv に移動しました.
- バグトラッカーも https://code.ros.org/trac/opencv/ に移っています.
- また,twitter の OpenCV アカウントもできました! http://twitter.com/opencvlibrary
- 現在の OpenCV は,autotools?-ベースのビルドスクリプトをサポートしません.
- どのOS上でもOpenCV をビルドする唯一の方法は,CMake (www.cmake.org) を利用することです.
- http://opencv.willowgarage.com/wiki/InstallGuide を参照してください.
- OpenCV 内のすべての並列ループを,OpenMP から Intel TBB
- (http://www.threadingbuildingblocks.org/) を利用したものに変更しました.
- この OpenCV の並列化版は,MSVC 2008 Express Edition または GCC 4.2 以降を利用することでビルド可能です.
- SWIG-ベースの Python ラッパーは,まだ含まれていますが,デフォルトではビルドされません.
- 一般的には新しいラッパーを利用した方が良いでしょう.
- python サンプルは,James Bowman によって新しい形式のPython ラッパーを利用するように書き換えられています.また,元のサンプル自体も James の手によるものです.
- OpenCV は,MacOSX 10.6 および Windows の 64-bit 版でビルド,動作可能です
- (以下の highgui と 既知の問題 のセクションを参照してください).
- Windows では,MSVC 2008 と mingw64 で動作することが確認されています.
- 理論的には,OpenCV はホストCPUを自動的に判断し,
- SSE/SSE2/... 命令が有効ならば,それを利用するようにすることができます.
- つまり,CMake で WITH_SSE* フラグを利用するのは,より安全のためだけです.
- しかし,最大のポータビリティを望むならば,WITH_SSE と WITH_SSE2 をON に,
- SSE* を OFF のままにしておくことがお勧めです.
- WITH_SSE3, WITH_SSSE3, WITH_SSE4_1 を利用した場合,
- Intel の古い Penryn コアやAMDチップと互換性の無いコードを生成する可能性があるからです.
- Jose Luis Blanco により,実験的な "static" OpenCV のCmake コンフィギュレーションが提供されました.
- OpenCV を静的ライブラリとしてビルドするには,CMake に "BUILD_SHARED_LIBS=OFF" を渡してください.
新機能,特徴:
cxcore, cv, cvaux:
- Grabcut (http://en.wikipedia.org/wiki/GrabCut) 画像セグメンテーションアルゴリズムが実装されました.
- opencv/samples/c/grabcut.cpp を参照してください.
- 改良された 新しい one-way ディスクリプタが追加されました.
- opencv/samples/c/one_way_sample.cpp を参照してください.
- 我々が SGBM(semi-global block matching) と呼ぶ
- H. Hirschmuller 準大域的ステレオマッチングアルゴリズムが加わりました.
- Kolmogorov の グラフカットベースのアルゴリズムよりもはるかに高速で,
- 大抵はブロックマッチングの StereoBM アルゴリズムよりも良い結果になります.
- opencv/samples/c/stereo_matching.cpp を参照してください.
- K. Konolige による StereoBM ステレオ対応点探索アルゴリズムが大きく改善されました:
- left-right 一貫性チェック,speckle フィルタリングが加えられ,パフォーマンスが(約20%)向上しています.
- ステレオ平行化変換後(stereoRectify/cvStereoRectify? を参照)の画像の可視領域をコントロールすることが可能になりました.
- また,視差を計算する領域(CvStereoBMState::roi1, roi2; getValidDisparityROI)が制限可能になりました.
- 混合ガウス分布に基づく背景差分アルゴリズムが書き直され,速度と精度が向上しました.
- C++ インタフェース BackgroundSubtractor? が提供されています.
- 学習された背景モデルを利用して,モデルを更新せずに前景のセグメンテーションを行うことも可能です.
- opencv/samples/c/bgfg_segm.cpp を参照してください.
highgui:
* MacOSX:OpenCVは,Carbon と Quicktime に加えて Cocoa と QTKit バックエンドを含みます. なので,OpenCV を 64-bit ライブラリとしてビルドできます.これは Andre Cohen と Nicolas Butko のおかげです.
しかし,このバックエンドはα版であることに注意してください. クラッシュやメモリリークの可能性があるので,単に試してみたい以上の目的に使うならば, 今のところ,Carbon と Quicktime を利用する方が良いかもしれません. その場合,CMake に USE_CARBON=ON と USE_QUICKTIME=ON を渡して OpenCV を 32-bit モードでビルドしてください(つまり,Xcode で i386アーキテクチャを選択します).
* Windows:MSVC 2008 と mingw64 を用いて,OpenCV を 64-bit モードでビルドできます.
* (Yannick Verdie によって)フルスクリーン機能が追加されました. 全画面表示を行うには cvSetWindowProperty(window_name, CV_WINDOW_FULLSCREEN, 1) を呼んでください. これは,Cocoa バインディングではまだサポートされていません.
* (Stefano Fabri によって)gstreamer バックエンドが大きく改善されました.
新しいテスト:
- 数ダース分のテストが追加され,今までの多くのテストも OpenCV の正確さを徹底的に検証するように書き直されました. その結果,いまいちな値だったテストカバレッジが,非常に良いものになりました(特に,cxcore と cv).
Module OpenCV 2.0 coverage OpenCV 2.1 (関数/条件) (関数/条件) cxcore 65/54 91/73 cv 52/46 80/68 ml 66/47 73/52 highgui 17/3 54/27 cvaux 0/0 5/12
- Python で書かれた多くの回帰テストが加わりました. これは,OpenCV と 新しい形式のバインディングの両方をチェックします.
- テストデータを別のリポジトリに移しました:https://code.ros.org/svn/opencv/trunk/opencv_extra/testdata. これはパッケージには含まれないので,cvtest や mltest の幾つかは,データが無いという結果を表示します. このデータをダウンロードして,次の様に cvtest を実行することもできます: ./cvtest -d <path_to_opencv_extra>/testdata/cv ./mltest -d <path_to_opencv_extra>/testdata/ml
- テストエンジンが改良されました: -tn, -seed, -r フラグが追加されました. また,失敗したテストの詳細が,コンソール上に表示されます.
バグ修正:
- 約 200 個のバグが修正されました. 修正済,未修正のバグのリストに関しては,以下を参照してください: https://code.ros.org/trac/opencv/report http://sourceforge.net/tracker/?group_id=22870&atid=376677
既知の問題点,制限:
- 異なるプラットフォームで,時々テストが失敗することがあります. おそらくほとんどは,(テストを実行する度にランダムに生成される様な)非常に特殊なテストケースが原因です. このテストケースは,関数やテストによって適切に扱われません. この内幾つかは,再現,報告されています: https://code.ros.org/trac/opencv/ticket/29 https://code.ros.org/trac/opencv/ticket/113 https://code.ros.org/trac/opencv/ticket/114
- 新しい Python バインディングは,新しい C++ や MLL の機能に対するインタフェースを持っていません. これについては,いずれかの OpenCV リリースで取り組まれる予定です.
- ドキュメントは,未だ完全ではなく,フォーマットや文法上の,または意味的なエラーが存在します. 我々は,これを定期的に改良していきます. 最新のオンラインドキュメントをチェックしてみてください: http://opencv.willowgarage.com/documentation/c/index.html (C) http://opencv.willowgarage.com/documentation/cpp/index.html (C++) http://opencv.willowgarage.com/documentation/python/index.html (Python)
- 修正中のバグもチェックしてみてください: https://code.ros.org/trac/opencv/report http://sourceforge.net/tracker/?group_id=22870&atid=376677