OpenCV 2.2 を Visual C++ 2010 Express で使うための準備から動作確認までの手順とプロジェクトサンプルとプロパティシートサンプル

手順

  1. OpenCV-2.2.0-win.zip をダウンロードする
  2. C:\Software\Develop\src に展開する
  3. CMake を使う
  4. C:\Software\Develop\opencvlibrary\OpenCV-2.2.0.OpenCV.sln を開く
  5. バッチビルドで ALL_BUILD と INSTALL をビルドする.Debug/Release の両方を選ぶから,合計4つチェックすることになる
  6. 環境変数 PATH を通す.TBB のも再掲しておく
    • C:\Software\Develop\src\tbb30_20100915oss\lib\ia32\vc10
    • C:\Software\Develop\opencvlibrary\OpenCV-2.2.0\bin
      • bin/(Debug|Release) は,当該ディレクトリに出力されたファイルが bin/ にコピーされているようだから,きっと不要

後の手順をテキストにするのは,コードとプロパティシートとスクリーンショットに代えて,省く.

サンプル「画像読込保存表示」

#include <iostream>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

int main ( int argc, char *argv[] )
{
	const char *ImageFile = "c:/data/image/sample/lena.png";
	const char *SaveName = "output.png";
	const char *WindowName = "view";
	const int ReturnErrorCode = -1;

	// 画像読込
	cv::Mat img = cv::imread ( ImageFile );
	if ( img.empty() )
	{
		std::cout << "画像読込失敗: " << ImageFile << std::endl;
		return ReturnErrorCode;
	}
	std::cout << "画像読込成功: " << ImageFile << std::endl;


	// 画像保存
	if ( cv::imwrite ( SaveName, img ) )
	{
		std::cout << "画像保存成功: " << SaveName << std::endl;
	}else{
		std::cout << "画像保存失敗: " << SaveName << std::endl;
	}

	// 画像表示
	cv::namedWindow ( WindowName );
	cv::imshow ( WindowName, img );
	cv::waitKey();

	return 0;
}

サンプル「プロパティシート」

大抵は imgproc と highgui だけで足りるので,この2つを指定している.他のライブラリは必要になったときに,また別個にプロパティシートを作成すると良かろう.ファイルの配置先は My Documents\Visual Studio 2010\Projects\Property Sheets にがいいだろう.

OpenCV-2.2.0-Debug.props
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup>
    <IncludePath>C:\Software\Develop\opencvlibrary\OpenCV-2.2.0\include;$(IncludePath)</IncludePath>
  </PropertyGroup>
  <PropertyGroup>
    <LibraryPath>C:\Software\Develop\opencvlibrary\OpenCV-2.2.0\lib;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <ItemDefinitionGroup>
    <Link>
      <AdditionalDependencies>opencv_imgproc220d.lib;opencv_core220d.lib;opencv_highgui220d.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup />
</Project>
OpenCV-2.2.0-Release.props
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros" />
  <PropertyGroup>
    <IncludePath>C:\Software\Develop\opencvlibrary\OpenCV-2.2.0\include;$(IncludePath)</IncludePath>
  </PropertyGroup>
  <PropertyGroup>
    <LibraryPath>C:\Software\Develop\opencvlibrary\OpenCV-2.2.0\lib;$(LibraryPath)</LibraryPath>
  </PropertyGroup>
  <ItemDefinitionGroup>
    <Link>
      <AdditionalDependencies>opencv_imgproc220.lib;opencv_core220.lib;opencv_highgui220.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup />
</Project>

スクリーンショット

バッチビルド

CMake設定

BUILD_DOXYGEN_DOCSのチェックを外していない場合

画像読込保存表示