libdecodeqr
でみてみるとOpenCVが必要ってかいてある.おっ,この前入れたよ.
MacOSXでやった方のページも発見.でも途中で
プログラマの道具箱: osxでlibdecodeqr-0.9.3をコンパイルとにかくさきにすすみたいので直接
libdecodeqr-0.9.3/src/libdecodeqr /Makefile
を書き換えて、makeだけできるようにする。
うー.その中身もおしえてー.と思ったのだが,まぁできる保証があるというのはありがたい.
で,やってみてその記録を書いておく.
1.ソースコードの取得
0.9.3を同ページからdownload.で展開.
libdecodeqr-0.9.3/srcがソースコードのホーム(?).
2.configureを実行する
portsでopencvを入れたので/opt/local/の下にOpenCV関連は入っている.
で,それに合わせる必要あある.先ほどのサイトのアドバイスもいただき,とりあえずこんな感じでconfigureが成功した.> LDFLAGS="$LDFLAGS -L/opt/local/lib";export LDFLAGS
> CPPFLAGS="$CPPFLAGS -I/opt/local/include/opencv";export CPPFLAGS
> ./configure --prefix=/opt/local --with-cv=cxcore
3.そのままmakeしてみる.> makeこれが噂のでもmakeで、失敗…..
...
o galois.o imagereader.o libdecodeqr.o
ld -o libdecodeqr.so.0.9.3 bitstream.o codedata.o container.o ecidecoder.o formatinfo.o galois.o imagereader.o libdecodeqr.o -L/opt/local/lib -shared -soname libdecodeqr.so.0 -lcxcore
ld: unknown option: -shared
make[1]: *** [libdecodeqr.so.0.9.3] Error 1
make: *** [libdecodeqr] Error 2
>
MacOS Xのldに-sharedはないらしいんです .
原因はlibraryがdylib形式(?)だから?,
こちらに対策が書かれている
4.そこでlibdecodeqrへ移動.> cd libdecodeqr
つまるところldでなくg++, -sharedでなく-dynamiclibで頑張るしかないらしい.
あとはopencv用のlib環境を指定すればよいのだろうということでこんな感じ.>g++ -o libdecodeqr.0.9.3.dylib -dynamiclib -L/opt/local/lib -lcxcore -lcv bitstream.o codedata.o container.o ecidecoder.o formatinfo.o galois.o imagereader.o libdecodeqr.o
>
ということでlibdecodeqr.0.9.3.dylibができた!.あとこのこが使うheaderはMakefileを見るとdecodeqr.h qrerror.h qrtypes.h
らしいので後でインストールする時には気をつける事.
5.いざサンプル作成
いざサンプルなのだが当然Makefileを使うとまたいろいろ面倒.そこで
libdecodeqr-0.9.3/src/sample/webcam
へ移動し,先ほどのサイトのコマンドをそのまま利用させていただく,> g++ `pkg-config --cflags opencv` `pkg-config --libs opencv` -ldecodeqr -I../../libdecodeqr -L../../libdecodeqr webcam.cpp#opencv周りを一撃で,'pkg-config --cflags --libs opencv'でも良い.
でできたa.outを実行する(MBPなので内蔵カメラが使用されました).
6.サンプルで遊ぶ
同封されているイメージをARToolkitの時と同様にAirSharingでiPhoneへ移して表示させたものを内蔵カメラで撮影してみる.
でスペースキーで認識.うまく認識されるとこんな感じ(画像は添付されていた01-1.jpg(若干拡大)).
取得された文字列はターミナルに出る.(これがなんて出たかはご自身でどうぞ.).ちなみにサンプルに含まれていた別画像のデコードされた日本語はSJISで出てきてた.
ということで以上でした.
間違いあればご指摘いただけると幸いです.
0 件のコメント:
コメントを投稿