2012-03-26
Qt SDK 1.2添付のMinGW環境でOpenCV 2.3.1をビルドし,Qt Creatorで使用するための手順メモ
このメモは,実質的にはCompile OpenCV under MinGWに記述されている,OpenCV 2.2での手順を追いかけただけ.
リンク
- MinGW - OpenCV Wiki(先のリンク先と同じ)
- Open Computer Vision Library - Browse /opencv-win/2.3.1 at SourceForge.net(OpenCV-2.3.1-win-superpack.exe)
- Qt - Cross-platform application and UI framework — Qt - A cross-platform application and UI framework
- CMake - Cross Platform Make
手順
- Qt SDKをセットアップする
- CMakeをセットアップする
- PATHに以下2件が登録されているか,確認する
- CMakeでMakefileを作る
- Make
- cmd.exe実行
- D:/software/Library/opencv2.3.1/cmake に移動
- mingw32-make
- mingw32-make install
- Qtプロジェクトに反映
- .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!」を表示するコードが生成される.これを各自が書き換えると良い.
メモ
- 「問題」はコンパイル出力などの警告やエラーを抽出してくれている
- デフォルトの文字コードをsystemからUTF-8に変えたなら,main.cppでQTextCodecをincludeし,QApplication a(argc, argv);の次に以下のコードを加える.(Qt/QString文字化け対策 - 2009年度春学期 オブジェクト指向プログラミング(中澤クラス))
QTextCodec *codec = QTextCodec::codecForName(("UTF-8"));
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
- フォルダ分けが汚い(
) - インデントの世界標準はスペースらしい.私がタブを好むのは,カーソルキーで移動しているからだろう
覚えておくと良いキー
軽いIDE Qt Creator 2.4.1の画面構成
Visual StudioやEclipse,Net Beansに比べると,Qt Creatorはすぐに起動する.
画面は左端に見える7つ分けられて,それぞれで画面構成が異なる.上部にはツールバーがなく,先に挙げた他のIDEよりも,簡素だ.その代わりだろうか,左下にはすぐにアクセスしたい4機能が用意されている.上から「プロジェクト」「デバッグなし実行」「デバッグ実行」「ビルド」.
「ようこそ」は玄関だ.メインメニュー「ファイル」からでも選べるコマンドが用意されている.「スタートガイド」も「デモとサンプル」も英語情報だから,読解を得意としない者は触らないだろう.「デモ」はひととおり触ってみた.「へえ,こんな機能があるのだな」と感じる一方,実行できないプログラムがいくつかあった.
「編集」は高機能エディタだ.
「デザイン」はGUIを配置するためのGUIを備えたエディタだ.ウインドウはこのuiファイルの他に,ヘッダとコードが合わさって定義される.uiファイルはXMLで記述される.
「プロジェクト」はビルド設定のほか,このプロジェクト限定のエディタ設定などにアクセスできる.
「解析」は利用したことがなく,不明.デバッグに似た何かのようである.
「ヘルプ」はマニュアルを表示する.先の編集画面でカーソルが「Information」にあるとき,F1キーでこの「QMessageBox::information」の情報を表示する.ヘルプコンテンツは,今は13件インストールしているようだ.
Qt SDK 1.2セットアップ
前書
- Windows 7 x64 Pro
- Visual Studio操作経験がある
Qtとは
- 各種OSで利用できる広範なC/C++ライブラリ群
- GUIを備えたソフトウェア作成を容易にする
- Qt SDK 1.2はQt関連ソフトをひとまとめにしている
- 日本語文献が多くない
- インターネット上での文献検索において,QuickTimeと競合する
- コンパイラはmingw環境,msys環境,Visual C++などいくつかから選択できる
- 商用版とLGPL版がある.ここで扱うのは後者
セットアップ
- http://qt.nokia.com/downloads-jp からオフラインインストーラーを入手し,実行する
- D:\software\Develop\QtSDK にインストールした
- 環境変数PATHに,以下2件を登録する
後書
次は操作感覚について記述したい.
2011-10-21
開発環境構築
Eclipse, JAVA, Android, Windows
- Eclipse 日本語化 | MergeDoc Project
- 日本語化 Eclipse 3.7 Indigo インディゴ | MergeDoc Project
- http://mergedoc.sourceforge.jp/pleiades-redirect/3.7/pleiades_java_jre.zip.html
- pleiades-e3.7-java-jre_20110924.zip
- d:\software\developに展開
- eclipse\eclipse.exeを実行
- 「ヘルプ>新規ソフトウェアのインストール」
- ADK(Android Development Tools)設定
- 最新版を選択
- d:\software\develop\android-sdks\.

- すべて受諾
- ADK restart
- 「ウィンドウ>Android SDK Manager」からツール追加
- 自動でAPI最新版の抜け項目とExtrasがチェックされる.

- すべて受諾
- 自動でAPI最新版の抜け項目とExtrasがチェックされる.
- 「ウィンドウ>AVD Manager」AVD: Android Virtual DeviceはAndroid機器エミュレータ
- 新規
- 低スペックPCなので小さく作る.

後で続きを書く
2011-08-14
OpenCV 2.3メモと2.3.1ビルドメモ
OpenCV, Visual Studio, Windows
OpenCV 2.3
- インストーラパッケージが用意されていない.Windows環境変数PATHへの登録が手作業になる程度
- buildとopencv,2フォルダがみえる.前者はビルド済みOpenCV,後者は2.3のソース
- build/.3環境向けビルド済みバイナリが用意されている.mingw,vc9(VC++ 2008),vc10(VC++ 2010).一部バイナリは各環境に依存しないらしい.
- bin/.いつもの実行形式ファイルはもとより,ffmpegはコンパイラに依存しないらしい(OpenCV2.3rcからOpenCV2.3の変更点(ChangeLog) | OpenCV.jp).opencv_createsamples.exe opencv_ffmpeg.dll opencv_ffmpeg_64.dll opencv_haartraining.exe opencv_performance.exe opencv_stitching.exe opencv_traincascade.exe
- x64/,x86/.それぞれ64ビット動作,32ビット動作する版であろう
- mingw/,vc9/,vc10/.コンパイラ別ライブラリ.mingwにはbin/とlib/がある.vcには加えてstaticlib/がある.
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
OpenCV 2.3インストール方法
OpenCV, Visual Studio, Windows
準備物
インストール方法
- OpenCV-2.3.0-win-superpack.exe を適当に展開する
- D:\software\Develop\library\OpenCV2.3
- Windows環境変数PATHにバイナリフォルダのパスを登録する
- D:\software\Develop\library\OpenCV2.3\build\x86\vc10\bin
- サンプルコードで動作確認する
サンプルコード
#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>








