また、Perlばっかりずるいので、
PHP版も作って見た。
decodeqr-0.0.1.tar.gz
WEBサービスもやってみた。
http://www.netflowers.co.jp/decodeqr/
使い方は、
まず、
OenCVとlibdecoderqrをインストール
http://sourceforge.net/projects/opencvlibrary/
http://trac.koka-in.org/libdecodeqr
decoderqrをダウンロードして、
解凍
tar zvfz decodeqr-0.0.1.tar.gz
cd decodeqr-0.0.1
phpize
./configure
make
make install
で、php.iniに
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613/"
extension=decodeqr.so
ってすると、
$str = decodeqr(ファイル名);
で、デコードした内容がかえって来るようになる。
だめな場合はfalseが帰ってきます。
認識率がかなりだめみたいで、うまく認識できるQRコードを探す方が難しいです。。。。。
まぁ、ねたと言うことで、、、、
codegenも公開。
生まれて二回目のcodegenです。間違ってたらごめん。
decodeqr.xml
PHP版も作って見た。
decodeqr-0.0.1.tar.gz
WEBサービスもやってみた。
http://www.netflowers.co.jp/decodeqr/
使い方は、
まず、
OenCVとlibdecoderqrをインストール
http://sourceforge.net/projects/opencvlibrary/
http://trac.koka-in.org/libdecodeqr
decoderqrをダウンロードして、
解凍
tar zvfz decodeqr-0.0.1.tar.gz
cd decodeqr-0.0.1
phpize
./configure
make
make install
で、php.iniに
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20060613/"
extension=decodeqr.so
ってすると、
$str = decodeqr(ファイル名);
で、デコードした内容がかえって来るようになる。
だめな場合はfalseが帰ってきます。
認識率がかなりだめみたいで、うまく認識できるQRコードを探す方が難しいです。。。。。
まぁ、ねたと言うことで、、、、
codegenも公開。
生まれて二回目のcodegenです。間違ってたらごめん。
decodeqr.xml
<?xml version="1.0" ?>
<extension name="decodeqr" version="1.0.0">
<deps language="c" platform="all">
<with defaults="/usr:/usr/local" testfile="include/decodeqr.h">
<header name="opencv/cv.h" />
<header name="opencv/highgui.h" />
<header name="decodeqr.h" />
<lib name="decodeqr" platform="all" />
<lib name="cv" platform="all" />
<lib name="cvaux" platform="all" />
<lib name="highgui" platform="all" />
<lib name="cxcore" platform="all" />
<lib name="ml" platform="all" />
</with>
</deps>
<function name="decodeqr">
<proto>array decodeqr(string filename)</proto>
<code>
<![CDATA[
IplImage *image;
QrDecoderHandle decoder;
QrCodeHeader header;
char *buf;
image = cvLoadImage(filename, 1);
if (!image) {
RETURN_FALSE;
}
decoder = qr_decoder_open();
(void) qr_decoder_decode_image(decoder, image,
DEFAULT_ADAPTIVE_TH_SIZE, DEFAULT_ADAPTIVE_TH_DELTA);
if (qr_decoder_get_header(decoder, &header)) {
buf = emalloc(header.byte_size + 1);
qr_decoder_get_body(decoder, (unsigned char *)buf, header.byte_size + 1);
RETURN_STRING(buf, 1);
efree(buf);
} else {
RETURN_FALSE;
}
qr_decoder_close(decoder);
cvReleaseImage(&image);
]]>
</code>
</function>
</extension>

