GR-QR読取シミュレータ使い方完全ガイド

組込みミドルウエア

GR-QRとは

GR-QRは弊社製のQRコード向けソフトウェアライブラリです。
QRコードをエンコード(生成)とデコード(読取)するためのライブラリ製品をそれぞれ用意しています。
ライブラリ製品の詳細はこちらをご確認ください
今回はデコードライブラリ製品で用意している読取シミュレータの使い方についてご紹介したいと思います。

GR-QR読取シミュレータとは?

本ソフトウェアはWindows用のアプリケーションソフトで、シミュレータ内部に GR-QR/DECODERライブラリを組み込んでいるため、お客様の実機にソースコードを組み込んで評価しなくても読取の動作を確認できます。
お客様の想定している画像をGR-QR DECODERにて認識することが可能か、またお客様のニーズに合ったソフトウェアかを簡単に確認するためのツールになります。

起動と終了

QRコードの読取シミュレータの実行ファイル(QrDecWin.exe)をWindows PCで起動させます。
特別なソフトウェアやランタイムのインストールは不要です。

起動

正常に立ち上がると下のような画面が表示されます。

終了

[終了]ボタンまたはウインドウ右上の[×]ボタンで、アプリケーションを終了します。なお、各パラメーター値は、保存されませんのでご注意ください。

基本操作

GR-QR読取シミュレータの読み取り方法や、読み取った情報の表示など基本操作を紹介します。
左上の[画像ファイル読み込み] ボタンからQRコードを含むBMP、PNG、JPEG形式ファイルを指定し、その下にあるデコード用のパラメーター値を調整します。読み取りに成功した場合、画面左下にデコード結果が表示されます。

①画像ファイル読み込み

[開く]ダイアログから、QRコードを含むファイルを指定します。
画像フォーマットは、Windows ビットマップ形式(1bit=モノクロ、8bit=256 色、24bit、32bit)、PNG、JPEG ファイルに対応しております。

②各種パラメータ調整

4章にて紹介します。

③読取結果を表示

項目としては下記の内容が表示されます。

  • ImageFile:ファイル名
  • ImageWidth:画像の幅
  • ImageHeight:画像の高さ
  • Threshold:明度閾値
  • FinderWork:画像の水平方向で1:1:3:1:1の比率になるドットパターンの検出数
  • FinderPos:ファインダーパターンの認識数量
  • ProcessTime:処理時間
  • Count:QRコード認識数量

最後にQRコードがデコード出来ましたらResult以下に読取ったコードの情報が表示されます。

④画像ファイルの表示

デコード出来ているファインダーパターンに赤点が付き、コードがデコード出来ますと赤枠で囲われるようになります。

パラメーター調整

以下の各パラメーターが個別に調整可能です。

台形歪み補正

チェックすると画像中の位置調整パターンを参照し、台形補正を行います。
なお、位置調整パターンは Version2 以上でないとQRコード上にないため、Version1 の QR コードでは当機能は無効です。
※Version2:25セル×25セルのサイズのもの

フィルタ処理(ぼかし)

当デコーダー製品は、QRコード読取前に入力画像の前処理を行う簡易的な処理が入っております。ぼかし処理になるため、若干読み取り精度は下がりますが、簡易的なノイズ除去効果があります。
製品出荷時には暫定的にぼかし処理を行うサンプルコードを記述していますので、お客様ご自身でソースコードを変更することで、独自の前処理を行うようにカスタマイズも可能です。

フィルタ処理結果を表示

チェックすると上記フィルタ処理(ぼかし)の平滑フィルタで処理された結果を画面に表示します。

明度閾値 (0=auto, 1- 255)

画像中の白黒を判定する明度閾値を 1-255 の範囲で指定します。
この値が 0 の場合は、画像全体から算術平均処理を使用して自動的に閾値を計算します。

明度判定結果を表示

チェックすると閾値によって白黒に判定された結果を画面に反映します。閾値の調整の目安になります。

黒白モジュール長許容誤差(%)

QR コードは 3 箇所に独自の四角形のパターン(ファインダーパターン)を持っています。
この図形の中心部を通る線分の黒白長比率が必ず1:1:3:1:1の比率になることを利用して、画像中の QR コードを検出しています。
しかし、必ずしもこの比率と正確に合致するわけではなく、実際にスキャン画像から読み取る場合には多少の誤差が発生します。
そのため、どの程度の誤差まで許容するかというパラメーターを設けて、ファインダーパターンの検出精度を調整しています。
この値が小さくなるにつれて判定がシビアになり、逆に大きくなると検出パターンが増加します。
検出パターンが増えすぎると作業メモリ領域の増大やQR コードの誤読を引き起こす可能性がありますので、お気を付けください。

有効範囲

入力画像の一部のみスキャン対象とする場合、スキャン対象範囲を指定します。有効範囲座標(左上)が0 0の場合は、画像の左上の角を指します。
有効範囲座標(右下)が0 0の場合は、画像の右下の角を指します。どちらも 00の場合は、画像の全範囲を対象とします。

デコード結果をHex表示

デコード結果文字列の表示方法を指定します。

トラブルシューティング

パラメーターを調整してもコードを読み取れない場合があります。その場合の対処法とその原因の例を示します。

(対処法)
入力画像を見直して再度読取ってください。

(原因)
・コードの解像度が低い
・セル(黒い四角)のドット数が少ない 等

(対処法)
提供物に含まれる前処理関数サンプルで平滑化処理を適用して再度読取ってください。

(原因)
・コード内の白/黒が判別しづらい
・全体的に明るいまたは全体的に暗い
・光の反射など画像内の明暗差が激しい
・焦点があっておらず、全体的にぼやけている 等

(対処法)
提供物に含まれる前処理関数サンプルで左右反転、上下反転、白黒反転関数を適用して再度読取ってください。

(原因)
・コードが鏡面(左右反転)または白黒反転している 等

(対処法)
提供物に含まれる前処理関数サンプルでぼかし処理を適用して再度読取ってください。

(原因)
・コード内のセル(黒い四角)形状が丸または隣接セルとの間に隙間がある 等

まとめ

この記事を通じて、QRコードの読取シミュレータの使い方についての理解が深まりましたら何よりです。
今後、実際の画像を読取った内容や、前処理関数のサンプルシミュレーションなども紹介したいと思いますので乞うご期待ください。
シミュレータを効果的に活用することで購入検討の参考になると考えています。シミュレータの貸し出しについては、こちらからお問い合わせください。