WEBカメラで QRコードの認識を その3!

By 大山 礼仁

開発環境作成方法

今回の開発で鍵となるのが、
1.MinGW で、libzbar-0.lib を独自に構築する。
2.OpenCV 2.3.0 を Visual Studio 2005 で使用できる様に再構築する。
の2点です。
MinGW は、今、Windows 用の All in one インストーラーが出回っているので、
このあたりから、ダウンロードしてインストールします。
mongw-get-inst-xxxx.exe とかいうものです。
msys 環境や、c++ コンパイラーなどとりあえず、全ONでインストールします。
環境を最新版にアップデートする方を選択します。!(どうもこれでないと m4 でエラーになる)
さて、次に Python27 をインストールします。
このあたりから、Windows x86 MSI Installer なんかをもって来てインストールします。
(これが、OpenCVでは、邪魔になるのですが)
それから、おまじない、C:\Python27\include の中のファイル全てを C:\MinGW\include に中にコピーします。
Zbar のソース tarball をここからダウンロードします。
スタートメニューから、MinGW Shell を開きます。
別に Windows のエクスプローラーで、C:\MinGW\msys\1.0\home\自分のID
のフォルダーを開いて、先ほどの zbar-0.10.tar.bz2を入れます。
MinGW のコマンドプロンプトで、
tar mxvf zbar-0.10.tar.bz2
で、解凍して、cd zbar-0.10
export PATH=${PATH}:/c/Python27
として、python のパスを通します。
おもむろに、
./configure --without-imagemagick --without-gtk --without-qt
で、おそらく問題がでないはず。
そして、configure が終わったら
make
運が良いとエラーなしで構築できます。
エラーになったら、日和が良い日に、mingw-get update; mingw-get upgrade をしてから再挑戦してみてください。
(MinGW は、毎日何か変えているらしい・・・・・・・)
終わったら
make install
これで、/usr/local/ 以下に出来上がります。
ここで、libzbar-0.lib を作成しますが、これが、また一苦労です。
mingw-get install mingw-utils
として、pexports を取り込みます。
cd /usr/local/bin
pexports libzbar-0.dll >libzbar-0.def
を実行して、def ファイルを得ます。
さて、次に lib コマンドですが、Windows Platform SDK などに入っています。
このあたりから入手してください。
Open Build Environment Windows から、自分に合った環境の Shell に入ります。
cd \MinGW\msys\1.0\local\bin
で、先ほどのディレクトリーに来るので、
lib /DEF:libzbar-0.def /MACHINE:/X86 /out:libzbar-0.lib
さあ、これで、ようやく目的の libzbar-0.lib が、出来ました。

さて、次は、OpenCV 2.3.0 の Visual Studio 2005 対応です。
このページを参考にしました。
OpenCV の ソースは、ここから、ダウンロードします。
CMake は、ここからダウンロードします。
OpenCV のソースは、C:\OpenCV2005 に置きます。C:\OpenCV2005\build を作ります。
ここで、トリック!、C:\Python27 を何処か見えない所に非難させます!(CMake が拾って悪さするのだ!)
スタートメニューから、(cmake-gui) を 立ち上げたら、
source code: を C:/OpenCV2005 build binaries: を C:/OpenCV2005/build に設定します。
おもむろに、
Configure ボタンを、赤い文字が無くなるまで、連打します。
そして、Generate ボタンを押すと、
C:\OpenCV2005\build に OpenCV.sln が出来るので、Visual Studio 2005 で開きます。
そして、まず、Debug 環境を構成マネージャで INSTALL も構築する様にチェックして
ビルドを開始します。
すると、さっきONにした、INSTALL プロジェクトでエラーで止まります。
そうしたら、一度 Visual Studio を閉じて、
C:\OpenCV2005\build\cmake_install.cmake
から、

IF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL "main")
  FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE FILE FILES "C:/OpenCV-2.3.0/build/bin/Debug/opencv_ffmpeg230d.dll")
ENDIF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL "main")

IF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL "main")
  FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE FILE FILES "C:/OpenCV-2.3.0/build/lib/Debug/opencv_ffmpeg230d.lib")
ENDIF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" STREQUAL "main")

の行を削除します。
?なバグです。
で、思い直して、Visual Studio 2005 を開いて、ビルドをすると、終わるはずです。
構成マネージャで、Release に設定して、同じように INSTALL をチェックして、ビルドします。
さあ、これで、Visual Studio 2005 で使用できる OpenCV 2.3.0 が出来たはずです。

出来た、Zbar と、OpenCV を Visual Studio 2005 から、どうやって使うかですが、
私のプロジェクトを開いて見てください。
QRcodeR のプロパティ の構成プロパティの C/C++ 追加のインクルードディレクトリ
リンカの追加のライブラリディレクトリ、リンカ-入力 の追加の依存ファイル
このあたりの設定を参考にしてください。
使っている dll は デバッグと配布に使うので、それぞれの bin から、
QRcodeR プロジェクト内にコピーしておきます。

さあ、こんな説明で判ったでしょうか?
とりあえず、QR コードの取り込みをいろいろ構築して、楽しんで頂ければ幸いです。

トップへ戻る