Hatena::ブログ(Diary)

BiBoLoG

2010-12-05

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>

スクリーンショット

バッチビルド

f:id:Guernsey:20101205232445p:image:medium

CMake設定

f:id:Guernsey:20101205232444p:image:medium

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

f:id:Guernsey:20101205232442p:image:medium

画像読込保存表示

f:id:Guernsey:20101205232440p:image:medium

2.2 がリリースされた

twitter で知った.使用クライアントTween.厳選してリンクする.ダウンロードSourceForge.net から.変更点の日本語化は http://opencv.jp/ に期待する.OpenCV2.1からOpenCV2.2の変更点(ChangeLog) | OpenCV.jp

uppy1129 12月5日 7:34 PM

OpenCV2.2.0 今回のバイナリ版は32bit-VS2010用になったみたいなので、該当環境の人はコンパイルが必要なくなったようだ。Debug版使うとエラー出る問題も解消するかな?TBB/IPPサポートが必要な場合や、VS2008や64bit環境では要コンパイル

http://twitter.com/#!/uppy1129/status/11367688605532160