2008年6月25日水曜日

【QRデコーダ】 C/C++のQRコード読み取りライブラリlibdecodeqr

libdecodeqrの紹介。
libdecodeqrはC/C++のライブラリで、QRコードをデコードできる。
また、読み込んだ画像の座標とかの情報にもアクセスできる。

本家はこちら
http://trac.koka-in.org/libdecodeqr

ダウンロードしたファイルにlibファイルは含まれないので、自分でコンパイルして作らないといけない。
また、OpenCVも必要だ。
VC++などでヘッダーファイル、ライブラリファイル、リンカの設定を済ませたら準備完了。

以下、使い方。

ヘッダーの指定。


#include "decodeqr.h"



ハンドラーの宣言と定義。


QrDecoderHandle decoder;
decoder = qr_decoder_open();



QRコードのデコード処理。


qr_decoder_set_image_buffer(decoder, image); // imageはOpenCVのIplImage*
if (!qr_decoder_is_busy(decoder)) {
short sz;
for(sz=25, m_stat=0; (sz>=3) && ((m_stat&QR_IMAGEREADER_DECODED) == 0); sz-=2) {
short stat = qr_decoder_decode(m_decoder, sz);
}
}



デコードに成功したらQRコードの本文を取り出せる。


int text_size = 0;
QrCodeHeader header;
if(qr_decoder_get_header(decoder,&header)) {
if (text_size < header.byte_size+1) {
if(text)
delete text;
text_size=header.byte_size+1;
text=new unsigned char[text_size];
}
qr_decoder_get_body(decoder, text, text_size);
}



他にも情報を取り出せる。


qr_decoder_get_body
CvBox2D boxes = qr_decoder_get_finderpattern_boxes(decoder);
CvPoint *vertexes = qr_decoder_get_coderegion_vertexes(decoder);



終了処理。


qr_decoder_close(decoder);

ラベル: , ,

0 件のコメント:

コメントを投稿

登録 コメントの投稿 [Atom]

この投稿へのリンク:

リンクを作成

<< ホーム