LoginSignup
11
12

More than 5 years have passed since last update.

OpenCV 2.4.10 Vizの導入(Visual Studio 2013, C++, OpenCV, 3次元点群処理)

Last updated at Posted at 2015-02-05

OpenCVのVizで3次元点群の表示や視点操作ができます。OpenGLみたいなもんです。(OpenGLを内側で呼び出してるみたいですけどね。VTKも使っているみたいです。)

Vizを使いたいけど、.exeでインストールしても入ってないので、自分でCMakeしました。その記録です。

実行環境

  • Windows8.1
  • Visual Studio 2013
  • OpenCV 2.4.10
  • PCL1.7.2 (VTK 5.10)

インストール

ここからWindows版のOpenCV2.4.10(opencv-2.4.10.exe)をインストールしてください。展開したopencvフォルダをC:\opencv2410としてコピペしました。

②中身を見るとbuildとsourceフォルダがあると思います。

C:\opencv2410\build\include\opencv2

の中にvizっていうフォルダが入ってて欲しいんですが、ないと思います。CMakeを使ってインストールしましょう。

ここから、cmake-3.1.1-win32-x86.exeをダウンロードし、実行します。そして次のように設定します。

Where is the source code: C:/opencv2410/sources
Where to build the binaries: C:/opencv2410/build2

出力はbuildフォルダがすでにあるので、build2としました。
で、Configureを一度押すとずらーって設定が出てくるので、WITH_VTKに✓を入れてください。

viz1.png

もう一度Configureを押すと、VTK_DIRの設定が出てくるのでVTKのフォルダを指定してください。VTKのインストール

※私はPCL1.7.2を使っているので、自動的に

C:/Program Files (x86)/PCL 1.7.2/3rdParty/VTK/lib/vtk-5.10

が自動で選ばれました。PCL1.7.2のインストールはこちら(PCL 1.7.2 All-in-one Installer MSVC2013 Win32)

viz2.png

最後に、GenerateをクリックするとOKです。

C:/opencv2410/build2の中身を見てみると、OpenCV.slnがあるので開いて、DebugモードとReleaseモードでビルド(Ctrl+Shift+B)してください。(C:\opencv2410\build2\modules\viz\opencv_viz.slnのみビルドしてもいいかもしれませんね)

viz4.png

DebugモードではPython27_d.libでエラーが出ましたがVizに関係ないので無視。Releaseモードでは、成功しました。(3回ビルドした)
viz6.png

C:\opencv2410\build2\binのDebugとReleaseからそれぞれ

  • opencv_viz2410d.dll
  • opencv_viz2410.dll

C:\opencv2410\build\x86\vc12\binへコピペしてください。

C:\opencv2410\build2\libのDebugとReleaseからそれぞれ、

  • opencv_viz2410d.lib
  • opencv_viz2410.lib

C:\opencv2410\build\x86\vc12\libへコピペしてください。

C:\opencv2410\build\include\opencv2の下に、viz.hppを作成してください。中身はここにあります。

C:\opencv2410\sources\modules\viz\include\opencv2vizフォルダC:\opencv2410\build\include\opencv2へフォルダごとコピペしてください。

これで、準備が整いました。

サンプルプログラムの実行

サンプルプログラムはここにあるので、試しにTransformationsをやってみましょう。

①新しいプロジェクトを作成し、ソースをコピペしてください。

追加のインクルードディレクトリとライブラリディレクトリの設定を忘れないでください。

設定例は以下のようになっています。

  • 追加のインクルードディレクトリ
$(OPENCV_DIR)\build\include;
  • 追加のライブラリディレクトリ
$(OPENCV_DIR)\build\x86\vc12\lib;

システム環境変数の設定も忘れずに。(変更したら再起動!)

Path %OPENCV_DIR%\build\x86\vc12\bin;
OPENCV_DIR C:\opencv2410\
OPENCV_VER 2410

入力ライブラリの設定はopencv_lib.hppをC:\opencv2410\build\includeの下に置き、

#include <opencv_lib.hpp>

で読み込みます。今回、Vizが増えたので、opencv_lib.hppに以下を追記します。

#pragma comment(lib, "opencv_viz"  CV_VERSION_STR CV_EXT_STR)

C:\opencv2410\sources\samples\cpp\tutorial_code\viz
からbunny.ply(うさぎの3D点群ファイル)をプロジェクトの下に持ってきます。

プロパティからDebuggingの設定で、引数のGまたはCを入力します。Gは視点がグローバル座標になり、Cはカメラ座標になります。
viz8.png

実行するとこんな感じ。

  • グローバル視点
    viz9.png

  • カメラ視点
    viz7.png

マウス操作で視点が変更できます。

  • ドラッグで回転
  • Shift+ドラッグで平行移動
  • スクロールボタンでズーム

まとめ

  • OpenCVのVizを使って3次元点群(PLYファイル)とカメラ位置の表示ができた
  • OpenCV2.4.9もOpenCV3.0Alpha、Betaも同じようにすればできると思う

ソースコード

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12