LoginSignup
31

More than 5 years have passed since last update.

OpenCV 3.1がリリースされたので導入してみた(Visual Studio 2013)

Last updated at Posted at 2016-01-02

OpenCV3.1

2015年12月21日にOpenCV3.1がリリースされたので導入してみた

変更点

  • Google Summer of Code 2015で追加されたものが多数

    • “Omnidirectional Cameras Calibration and Stereo 3D Reconstruction” – opencv_contrib/ccalib module (Baisheng Lai, Bo Li)
    • “Structure From Motion” – opencv_contrib/sfm module (Edgar Riba, Vincent Rabaud)
    • “Improved Deformable Part-based Models” – opencv_contrib/dpm module (Jiaolong Xu, Bence Magyar)
    • “Real-time Multi-object Tracking using Kernelized Correlation Filter” – opencv_contrib/tracking module (Laksono Kurnianggoro, Fernando J. Iglesias Garcia)
    • “Improved and expanded Scene Text Detection” – opencv_contrib/text module (Lluis Gomez, Vadim Pisarevsky)
    • “Stereo correspondence improvements” – opencv_contrib/stereo module (Mircea Paul Muresan, Sergei Nosov)
    • “Structured-Light System Calibration” – opencv_contrib/structured_light (Roberta Ravanelli, Delia Passalacqua, Stefano Fabri, Claudia Rapuano)
    • “Chessboard+ArUco for camera calibration” – opencv_contrib/aruco (Sergio Garrido, Prasanna, Gary Bradski)
    • “Implementation of universal interface for deep neural network frameworks” – opencv_contrib/dnn module (Vitaliy Lyudvichenko, Anatoly Baksheev)
    • “Recent advances in edge-aware filtering, improved SGBM stereo algorithm” – opencv/calib3d and opencv_contrib/ximgproc (Alexander Bokov, Maksim Shabunin)
    • “Improved ICF detector, waldboost implementation” – opencv_contrib/xobjdetect (Vlad Shakhuro, Alexander Bovyrin)
    • “Multi-target TLD tracking” – opencv_contrib/tracking module (Vladimir Tyan, Antonella Cascitelli)
    • “3D pose estimation using CNNs” – opencv_contrib/cnn_3dobj (Yida Wang, Manuele Tamburrano, Stefano Fabri)
  • その他

    • HDF5 フォーマットサポート
    • オプティカルフローの改善
    • filtering, segmentation and feature detectionなどの新しい画像処理アルゴリズム
    • Superpixel segmentation
  • IPP 9.0.1に基づくIPPICV

  • opencv_contrib modulesがopencv2.framework for iOSに含まれる

  • Windows 10 and OSX 10.11 (Visual Studio 2015 and XCode 7.1.1)に対応

  • Interoperability between T-API and OpenCL, OpenGL, DirectX and Video Acceleration API on Linux, as well as Android 5 camera.

  • HAL (Hardware Acceleration Layer) module の移動

システム環境

  • Windows 8.1
  • Visual Studio 2013
  • CMake 3.2

インストール手順

  1. opencv-3.1.0.exeをダウンロード、実行する。C:/の下に解凍し、opencvからopencv310に名前を変更する
  2. モジュール(opencv_contrib-master.zip)のダウンロードと解凍。Cの直下に置いた。中のmodulesフォルダをC:\opencv310\sources\modulesにコピペする
  3. CMakeを起動する。Where is the source code: C:/opencv310/sources、Where to build the binaries: C:/opencv310/buildを指定。
  4. OPENCVのOPENCV_EXTRA_MODULES_PATHにC:/opencv_contrib-master/modulesを指定。
  5. Configure(コンパイラはVisual Studio 2013)する。Generateすると、buildフォルダの中にOpenCV.slnが生成される。
  6. Visual Studio 2013でOpenCV.slnを開き、debugとreleaseのそれぞれビルドすればbinとlibが生成される。bin\Debugとbin\Releaseの中身をbin\に移した。同様に、lib\Debugとlib\Releaseの中身をlib\に移した。
  7. C:\opencv310\build\include\opencv2に modules->モジュール名->include->opencv2の中身をコピーする(※1)
  8. build\includeにopencv_lib.hppを作成(※2)
  9. システム環境パスの設定と再起動(※3)
  10. プログラム作成(インクルード、リンカの設定を忘れずに※4)

※1 モジュール

aruco
aruco.hpp
bgsegm.hpp
ccalib
ccalib.hpp
cnn_3dobj.hpp
cnn_3dobj_config.hpp
contrib_world.hpp
cudaarithm.hpp
cudabgsegm.hpp
cudacodec.hpp
cudafeatures2d.hpp
cudafilters.hpp
cudaimgproc.hpp
cudalegacy
cudalegacy.hpp
cudaobjdetect.hpp
cudaoptflow.hpp
cudastereo.hpp
cudawarping.hpp
cudev
cudev.hpp
cvv
cvv.hpp
datasets
dnn
dnn.hpp
dpm.hpp
face
face.hpp
fuzzy
fuzzy.hpp
hdf
hdf.hpp
line_descriptor
line_descriptor.hpp
matlab
optflow
optflow.hpp
plot.hpp
reg
rgbd
rgbd.hpp
saliency
saliency.hpp
sfm
sfm.hpp
stereo
stereo.hpp
structured_light
structured_light.hpp
surface_matching
surface_matching.hpp
text
text.hpp
tracking
tracking.hpp
ts
ts.hpp
viz
viz.hpp
xfeatures2d
xfeatures2d.hpp
xobjdetect.hpp
xphoto
xphoto.hpp

~dnns_easily_fooled~, ~java~, ~python~, ~world.hpp すでに存在~

※2 opencv_lib.hpp

// バージョン取得
#define CV_VERSION_STR CVAUX_STR(CV_MAJOR_VERSION) CVAUX_STR(CV_MINOR_VERSION) CVAUX_STR(CV_SUBMINOR_VERSION)

// ビルドモード
#ifdef _DEBUG
#define CV_EXT_STR "d.lib"
#else
#define CV_EXT_STR ".lib"
#endif
#pragma comment(lib, "opencv_aruco" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_bgsegm" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_bioinspired" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_calib3d" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_ccalib" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_core" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_datasets" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_dnn" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_dpm" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_face" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_features2d" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_flann" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_fuzzy" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_highgui" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_imgcodecs" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_imgproc" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_line_descriptor" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_ml" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_objdetect" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_optflow" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_photo" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_plot" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_reg" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_rgbd" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_saliency" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_shape" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_stereo" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_stitching" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_structured_light" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_superres" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_surface_matching" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_text" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_tracking" CV_VERSION_STR CV_EXT_STR)
//#pragma comment(lib, "opencv_ts" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_video" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_videoio" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_videostab" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_viz" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_xfeatures2d" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_ximgproc" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_xobjdetect" CV_VERSION_STR CV_EXT_STR)
#pragma comment(lib, "opencv_xphoto" CV_VERSION_STR CV_EXT_STR)

※3 システム環境変数の設定

変数
Path %OPENCV_DIR%\build\bin;
OPENCV_DIR C:/opencv310/
OPENCV_VER 310

※4 プロパティ

  • C/C++->Additional Include Directories
    $(OPENCV_DIR)\build\include;

  • Linker->General->Additional Library Directories
    $(OPENCV_DIR)\build\lib;

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
31