5

私は画像処理の初心者で、画像内の QRCode を識別したいと考えています。実はファインダーのパターンは3つあり、まずはそれらを探す必要があります。

そこでいくつかの方法を試してみたのですが、まずは二値化に関するものですが、画像に影があったり照度の差が激しい場合、良い二値画像を作るのは難しいです。実際には、適応しきい値はスライディング ウィンドウのサイズに依存するため、大きなバーコードには適していない可能性があります。良いバイナリ イメージを作成したとしても、バーコードのファインダー パターンとバーコード自体を見つける方法を教えてください。QRコードについて話す場合、最も簡単な方法は、画像のすべての輪郭を見つけて、正方形の輪郭を選択し、内側に2つの正方形の輪郭を含めることです.

また、別の方法として、イメージの各水平ラインをスキャンして正しいファインダ パターンを見つける方法もあります。これは、バイナリ イメージがどれだけうまく作成されたかによって異なります。

この問題を解決する方法はわかりましたが、バーコードのファインダーパターンを見つける他の方法はありますか? ここはパターンマッチングが良くないと思います。また、照明に依存しない優れた二値化方法を提案できますか。私は多くの適応しきい値二値化方法を試しましたが、それらには共通の問題があります.画像に大きな黒い四角が含まれている場合、二値画像には四角全体ではなく、四角の真ん中に白い色の部分がある四角があります.これは、適応しきい値法のスライディング ウィンドウのサイズが十分に大きくないためです。

4

2 に答える 2

4

ZXing で使用されるメソッドを確認できます: http://code.google.com/p/zxing/source/browse/trunkの下の core/src/com/google/zxing/qrcode/Detector.java

基本的には、約 1:1:3:1:1 のパターンで画像全体を調べて、黒-白-黒-白-黒を探します。回転角度が 45 度、135 度、225 度、または 315 度に近くない限り、またコードが極端に遠近法で歪んでいない限り、このメソッドはファインダー パターンを見つけます。次に、いくつかの方法をクロスチェックします。画像内のそのポイントを垂直に見て、そのようなパターンも見つけられることを確認します。また、誤検知を排除し、どのパターンがどれであるかを判断するためのチェックもいくつかあります。

于 2010-01-12T16:35:30.317 に答える
1

また、変化率制御でしきい値ヒステリシスを試すこともできます。通常のしきい値ヒステリシスへのリンクは次のとおりです。最初のしきい値を典型的な白の値に設定します。2 番目のしきい値を隅の最も低い白の値よりも小さく設定します。

違いは、1 番目と 2 番目のしきい値の間のすべての値について、ピクセル間の違いを確認する必要があることです。理想的には、差が正の場合は、通常どおりに行動します。ただし、負の場合は、差が小さい場合にのみしきい値を設定します。

これにより、照明の変動を補正できますが、背景とバーコードの間の大きな変化は無視されます。最終結果は、エッジのイメージではなく、バイナリ オブジェクト イメージです。また、適切にサイズを調整するためのアダプティブ ウィンドウもありません。

于 2010-01-04T21:28:17.287 に答える