粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

VisualStudio2013 で OpenCV2.4を導入①

お久しぶりです。
長いこと更新してなかったけどちゃんと生きてます。
2016/6/30 観づらかったので追記。

これからしばらく実験&個人的趣味用にOpenCVの環境を再構築したいと思います。
あくまで私的メモなのでご参考までに。

はじめに

【 想定している環境 】
Windows 8.1 64bit
MicroSoft VisualStudio2013 Community 無料版の方のやつ
OpenCV 2.4.10 (ゆくゆくは3.0にアップグレードしたい)


とりあえずはVisualStudio(以降VS)とOpenCVのダウンロードとインストールですが,
私はもう終わってるので以下のブログなんかを参照してください。


http://unanancyowen.com/?p=97.OPENCVの開発環境の構築


ここまでやったら,

・開発環境のインストール。
環境変数の設定

まで終わっているはずです。
ここまでやったら
ossyaritoori.hatenablog.com
にあったようなことに気をつければ
Hello worldくらいはもう動かせます。
動かなかったらウイルス対策ソフトをちょっと確認しましょう…


では続きから。
私は32bit版をインスコしてあったので32bit用のプログラム&Debugモードでやっていきます。
f:id:ossyaritoori:20151209145504p:plain


やるべきこと

・インクルードフォルダ,リンカの設定
・ライブラリの設定
です。OpenCVは要は外付けの関数群なので,関数の本体がどこにあるか,そいつらの動かし方マニュアル的なファイルの場所とかを
プログラムに教えてあげるプロセスだと思います。(誰かおしえて)

①インクルードフォルダの設定

  • プロパティを開くために左にあるプロジェクトの所を右クリック

f:id:ossyaritoori:20151209151453p:plain

  • プロパティの[全般]->[C/C++]->[Additional Include Directories]

の空欄に[ C:\opencv\build\include; ] と記述。
f:id:ossyaritoori:20151209151201p:plain

これはOpenCVをインストールした所からのパスなので人によっていれるところは違います。

②リンカの設定

その1

  • プロパティは開いたままで,

[Linker]->[General]->[Additional Library Directories]
をチョイスし,
今度は 『 C:\opencv\build\x86\vc12\lib; 』と記述。
vc12がVS2013のことのようです。紛らわしいね。

f:id:ossyaritoori:20151209204325p:plain


libファイルの本体?の場所を教える

次にlibファイルの場所を教えます。
libファイルにはインクルードするファイルを全て教える必要があります。

例えば,プログラム内で

#include

というファイルをインクルードしたい場合,highgui.libをlinkする必要があります。
やり方は2つで,

Case 1

直接書き込む。
[Linker]->[Input]->[Additional Dependencies]
に書き込む。
f:id:ossyaritoori:20151209212221p:plain


** 個人メモ
OpenCVの処理結果をsocket通信で送信するので
Ws2_32.lib;も追加で書かなければイケなかった。

Case 2

プロパティシートを作成する。

具体的には以下のファイルを「opencv2410.prop」という名前で保存して
[Project]->[Project名]->[Project名]
の所に起きます。

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets"/>
  <!-- Debug|Win32 -->
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <AdditionalIncludeDirectories>C:\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <AdditionalLibraryDirectories>C:\opencv\build\x86\vc12\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>opencv_core2410d.lib;opencv_highgui2410d.lib;opencv_imgproc2410d.lib;opencv_video2410d.lib;opencv_objdetect2410d.lib;opencv_legacy2410d.lib;opencv_calib3d2410d.lib;opencv_contrib2410d.lib;opencv_features2d2410d.lib;opencv_flann2410d.lib;opencv_nonfree2410d.lib;opencv_ml2410d.lib;opencv_gpu2410d.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <!-- Release|Win32 -->
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <ClCompile>
      <AdditionalIncludeDirectories>C:\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <AdditionalLibraryDirectories>C:\opencv\build\x86\vc12\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>opencv_core2410.lib;opencv_highgui2410.lib;opencv_imgproc2410.lib;opencv_video2410.lib;opencv_objdetect2410.lib;opencv_legacy2410.lib;opencv_calib3d2410.lib;opencv_contrib2410.lib;opencv_features2d2410.lib;opencv_flann2410.lib;opencv_nonfree2410.lib;opencv_ml2410.lib;opencv_gpu2410.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <!-- Debug|x64 -->
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <ClCompile>
      <AdditionalIncludeDirectories>C:\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <AdditionalLibraryDirectories>C:\opencv\build\x64\vc12\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>opencv_core2410d.lib;opencv_highgui2410d.lib;opencv_imgproc2410d.lib;opencv_video2410d.lib;opencv_objdetect2410d.lib;opencv_legacy2410d.lib;opencv_calib3d2410d.lib;opencv_contrib2410d.lib;opencv_features2d2410d.lib;opencv_flann2410d.lib;opencv_nonfree2410d.lib;opencv_ml2410d.lib;opencv_gpu2410d.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <!-- Release|x64 -->
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <ClCompile>
      <AdditionalIncludeDirectories>C:\opencv\build\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <AdditionalLibraryDirectories>C:\opencv\build\x64\vc12\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>opencv_core2410.lib;opencv_highgui2410.lib;opencv_imgproc2410.lib;opencv_video2410.lib;opencv_objdetect2410.lib;opencv_legacy2410.lib;opencv_calib3d2410.lib;opencv_contrib2410.lib;opencv_features2d2410.lib;opencv_flann2410.lib;opencv_nonfree2410.lib;opencv_ml2410.lib;opencv_gpu2410.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
</Project>


このファイルを関連付けるために左のSolution Explorerの下のPropをクリックし,
右クリックをして既存のプロパティシートを追加。を選択。
f:id:ossyaritoori:20151209220836p:plain


ここまでやってようやく環境設定が終了したはず。
次回は実際にプログラムを動かしたいと思います。以上。