Hatena::ブログ(Diary)

BiBoLoG

2012-03-26

Qt SDK 1.2添付のMinGW環境でOpenCV 2.3.1をビルドし,Qt Creatorで使用するための手順メモ

このメモは,実質的にはCompile OpenCV under MinGWに記述されている,OpenCV 2.2での手順を追いかけただけ.

リンク

手順

  1. Qt SDKをセットアップする
  2. CMakeをセットアップする
  3. PATHに以下2件が登録されているか,確認する
    • D:\software\Develop\QtSDK\mingw\bin
    • D:\software\Develop\QtSDK\Desktop\Qt\4.8.0\mingw\bin
  4. CMakeでMakefileを作る
    1. cmake-gui.exe実行
      • souce code: D:/software/Library/opencv2.3.1
      • build the binaries: D:/software/Library/opencv2.3.1/cmake
    2. Configure
      • MinGW Makefiles
      • Specify native compilers
      • D:\software\Develop\QtSDK\mingw\bin\gcc.exe
      • D:\software\Develop\QtSDK\mingw\bin\g++.exe
    3. Finish
    4. 機能について要不要を適宜判断し,チェックしたり外したりする
      • CMAKE_BUILD_TYPEでDebug版,Release版を切り替える.両方必要なら,一方のビルドを終えた後にこの段階から繰り返す.それぞれで出力ファイル名が異なるため,出力先を変える必要はない
      • WITHのCUDA,EIGEN,IPPTBBをオフにしたかなあ
    5. Configure
    6. Generate
  5. Make
    1. cmd.exe実行
    2. D:/software/Library/opencv2.3.1/cmake に移動
    3. mingw32-make
    4. mingw32-make install
  6. Qtプロジェクトに反映
    1. .proファイルに以下のような記述を追加する
# opencv
INCLUDEPATH += D:/software/Library/opencv2.3.1/cmake/install/include
DEPENDPATH += D:/software/Library/opencv2.3.1/cmake/install/include
LIBS += -LD:/software/Library/opencv2.3.1/cmake/install/lib \
    -llibopencv_core231 \
    -llibopencv_highgui231 \
    -llibopencv_imgproc231

追記(2012年3月27日9時56分)

CMAKE_BUILD_TYPEの初期値はDebugだけれど,Debug版を作るとしても,一旦Releaseに切り替え,Debugに戻す.そのままにしていると,生成ファイル名がRelease版用になってしまった.この現象の後,Release,Debugをそれぞれmake, make installして,問題を解決できた.

2012-03-12

初学者にもQt Creator

C言語入門書やウェブサイトを用いて学習を始める者にとってもQt Creatorは機能する.プレーンなCプロジェクトあるいはプレーンなC++プロジェクトを選ぶ.「Hello World!」を表示するコードが生成される.これを各自が書き換えると良い.

f:id:Guernsey:20120312150306p:image

メモ

	QTextCodec *codec = QTextCodec::codecForName(("UTF-8"));
	QTextCodec::setCodecForTr(codec);
	QTextCodec::setCodecForLocale(codec);
	QTextCodec::setCodecForCStrings(codec);
  • フォルダ分けが汚い(f:id:Guernsey:20120312112450p:image:small
  • インデントの世界標準はスペースらしい.私がタブを好むのは,カーソルキーで移動しているからだろう

覚えておくと良いキー

  • Alt+[1-4]は右下の問題,検索結果,アプリケーション出力,コンパイル出力の表示を切り替える
  • Ctrl+/はコメント状態をトグルする
  • ESCは前の画面に戻る
  • Ctrl+Kは多目的検索ボックス「クイックアクセス」をアクティブ化する.このボックスは活用したい
  • Ctrl+Rでプログラム単純実行
  • F5でデバッグ実行.中断していたなら再開.Shift+F5で中止
  • Ctrl+Bでビルド
  • F1でヘルプ
  • Ctrl+Lで指定行にジャンプ
  • Alt+←,Alt+→で戻る,進む

軽いIDE Qt Creator 2.4.1の画面構成

Visual StudioEclipse,Net Beansに比べると,Qt Creatorはすぐに起動する.

f:id:Guernsey:20120312110432p:image:medium

画面は左端に見える7つ分けられて,それぞれで画面構成が異なる.上部にはツールバーがなく,先に挙げた他のIDEよりも,簡素だ.その代わりだろうか,左下にはすぐにアクセスしたい4機能が用意されている.上から「プロジェクト」「デバッグなし実行」「デバッグ実行」「ビルド」.

「ようこそ」は玄関だ.メインメニュー「ファイル」からでも選べるコマンドが用意されている.「スタートガイド」も「デモとサンプル」も英語情報だから,読解を得意としない者は触らないだろう.「デモ」はひととおり触ってみた.「へえ,こんな機能があるのだな」と感じる一方,実行できないプログラムがいくつかあった.

「編集」は高機能エディタだ.

f:id:Guernsey:20120312110433p:image:medium

「デザイン」はGUIを配置するためのGUIを備えたエディタだ.ウインドウはこのuiファイルの他に,ヘッダとコードが合わさって定義される.uiファイルはXMLで記述される.

f:id:Guernsey:20120312110427p:image:medium

デバッグ」はプログラムの動きを観察できる.

f:id:Guernsey:20120312110428p:image:medium

「プロジェクト」はビルド設定のほか,このプロジェクト限定のエディタ設定などにアクセスできる.

f:id:Guernsey:20120312110429p:image:medium

「解析」は利用したことがなく,不明.デバッグに似た何かのようである.

f:id:Guernsey:20120312110431p:image:medium

「ヘルプ」はマニュアルを表示する.先の編集画面でカーソルが「Information」にあるとき,F1キーでこの「QMessageBox::information」の情報を表示する.ヘルプコンテンツは,今は13件インストールしているようだ.

f:id:Guernsey:20120312110430p:image:medium

Qt SDK 1.2セットアップ

前書

Qtとは

セットアップ

後書

次は操作感覚について記述したい.

2011-10-21

開発環境構築

  1. Eclipse 日本語化 | MergeDoc Project
  2. 日本語化 Eclipse 3.7 Indigo インディゴ | MergeDoc Project
  3. http://mergedoc.sourceforge.jp/pleiades-redirect/3.7/pleiades_java_jre.zip.html
  4. pleiades-e3.7-java-jre_20110924.zip
  5. d:\software\developに展開
  6. eclipse\eclipse.exeを実行
  7. 「ヘルプ>新規ソフトウェアインストール
  8. ADK(Android Development Tools)設定
    • 最新版を選択
    • d:\software\develop\android-sdks\.f:id:Guernsey:20111021192308p:image:small
    • すべて受諾
  9. ADK restart
  10. 「ウィンドウ>Android SDK Manager」からツール追加
    • 自動でAPI最新版の抜け項目とExtrasがチェックされる.f:id:Guernsey:20111021194943p:image:small
    • すべて受諾
  11. 「ウィンドウ>AVD Manager」AVD: Android Virtual DeviceはAndroid機器エミュレータ

後で続きを書く

2011-08-14

OpenCV 2.3メモと2.3.1ビルドメモ

OpenCV 2.3

OpenCV 2.3.1

OpenCV 2.3リリース後のSubversion trunk Revision 6462に関するメモ.

CMake
  • BUILD_DOCS=onでConfigureして,VC++ビルド時にフォルダを掘り続ける現状が解決されているかは未検証
  • BUILD_NEW_PYTHON_SUPPORTが単なるPYTHONからの呼び出し対応機能可否なのに,NEWはいつまで続くのか
  • 2.3ビルド済みライブラリTBBを添付しているんだから,TBBのソースも3rdpartyへ入れてくれればいいのに
  • ENABLE_SOLUTION_FOLDERSは,OpenCV 2.3 superpackのように,生成するライブラリコンパイラ別にフォルダ分けしてくれる機能であろう
OpenCV.sln
  • 4構成ある.デバッグ,リリース.リリース小型.デバッグ情報付きリリース.使う構成だけビルドすればよかろう
  • INSTALLプロジェクト
    • installフォルダを作り,ライブラリとヘッダファイルを押し込んでくれる.デバッグ版リリース版を合わせて突っ込んでくれる
  • junk/version.junk にバージョン番号を書き出していたのか

OpenCV 2.3インストール方法

準備物

インストール方法

  1. OpenCV-2.3.0-win-superpack.exe を適当に展開する
    • D:\software\Develop\library\OpenCV2.3
  2. Windows環境変数PATHにバイナリフォルダのパスを登録する
    • D:\software\Develop\library\OpenCV2.3\build\x86\vc10\bin
  3. サンプルコードで動作確認する
    • Visaul C++ 2010プロパティシートを作っておく
      • D:\software\Develop\library\OpenCV2.3\build\include
      • D:\software\Develop\library\OpenCV2.3\build\x86\vc10\lib
      • opencv_imgproc230d.lib;opencv_highgui230d.lib;opencv_core230d.lib
      • opencv_imgproc230.lib;opencv_highgui230.lib;opencv_core230.lib

サンプルコード

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

int main ( int argc, char *argv[] )
{
	const char *ImageFile = "e:\\data\\image\\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;
}

Visual C++ 2010プロパティシート

OpenCV-2.3-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 />
  <ItemDefinitionGroup>
    <ClCompile>
      <AdditionalIncludeDirectories>D:\software\Develop\library\OpenCV2.3\build\include</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <AdditionalLibraryDirectories>D:\software\Develop\library\OpenCV2.3\build\x86\vc10\lib</AdditionalLibraryDirectories>
      <AdditionalDependencies>opencv_imgproc230d.lib;opencv_highgui230d.lib;opencv_core230d.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup />
</Project>
OpenCV-2.3-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 />
  <ItemDefinitionGroup>
    <ClCompile>
      <AdditionalIncludeDirectories>D:\software\Develop\library\OpenCV2.3\build\include</AdditionalIncludeDirectories>
    </ClCompile>
    <Link>
      <AdditionalLibraryDirectories>D:\software\Develop\library\OpenCV2.3\build\x86\vc10\lib</AdditionalLibraryDirectories>
      <AdditionalDependencies>opencv_imgproc230.lib;opencv_highgui230.lib;opencv_core230.lib;%(AdditionalDependencies)</AdditionalDependencies>
    </Link>
  </ItemDefinitionGroup>
  <ItemGroup />
</Project>