2012-04-09 31 views
5

データマトリックスコード、特にECC 200コード(QRコードではない)を読み取るためのC++ライブラリを探しています。私はlibdmtxzxingを見つけました。 zxingはJavaですが、C++ポートがあるようです。誰もがこれらのライブラリを使ってECC 200コードを読んだり、他のライブラリを読んだ経験がありますか?データを読み取るためのC++ライブラリ

答えて

1

ZXingのC++ポートでのDMのサポートは、Java(1Dコードの多くに当てはまるわけではありません)に対応しています。テストアプリケーションではデフォルトでは有効になっていませんが、有効にするのは簡単です(とwill be enabled by default in the future.

私は実際にDMデコーダを使用して個人的な経験はありませんが、テストスイートに含まれています。 Androidアプリ

0

私は現在 http://www.libdmtx.org/

libdmtx使用しようとしていますこれは、インタフェースのすべての種類をサポートしています。ここや他の場所で良いレビューをしているようだ...。

(しかし、私は「本物」の答えが2Dを読み取るためのこれらのライブラリのいずれかでの経験を持つ人から、私の質問に、少なくとも何の答えを掲示しなかったので

0

:-)ユーティリティを構築する上で助けを探していますマトリックスコード、私は私自身の経験を投稿すると思った。

私は両方のライブラリを試してみましたが、どちらもコードを読むことができましたが、パフォーマンスは私の状況には十分ではありませんでした。私の状況では、コードはしばしば「完璧」ではなく、ドットが欠けていたり、サイズが違っていたり、コードが少し歪んでいる可能性があります。どちらのライブラリもこれらのコードを読むことに問題がありました。

最後に、市販の(無料ではない)ライブラリSaperaを使用した。 Saperaは非完璧なコードをもっとよく読むことができました。私は過去に私の会社で使用されたのでSaperaを使用しましたが、Halconのような他の市販のマシンビジョンライブラリもうまく機能する可能性があります。

1

ここに本当の答えがあります。 私はlibdmtxとlibzxingの両方を使いました。 Libdmtxはデータ・マトリックスに限られているため、より簡単でした。私の経験では、結果は、奇妙なことに、常に決定論的ではありませんでした。 Libzxingもうまくいきますが、実際の生産(何百万もの読者も)を行うと、メモリ管理が完璧ではないことが原因でクラッシュすることがあります。それは本当に良いですが、実際の生産環境には完璧ではありません。

ライブラリlibzxingとlibdmtxの両方で、イメージのデータ・マトリックスのデッド・センタが必要であり、非常に大きいことが必要です。つまり、自分で事前ローカリゼーションを行う必要があります。 私はこれを、画像ルーチンを使って行い、 'L'字形を探し、最小二乗境界ボックスなどでスマートを探しました。そして、デコードとエラーは、libzxing完璧ではありません。

生産環境の場合は、自分自身ですべてのことを行うか、それに慣れていない場合は、有料パッケージを使用してください。

libzxing-cppの最適なポートは、user glassenchidnaのポートです。 https://github.com/glassechidna/zxing-cpp

関連する問題