230818

QR コードを大量に自動生成したい。

まずは QR コードとはなんぞやを調べる。

QRコードWikipedia

ja.wikipedia.org

QRコード(キューアールコード)は、1994年(平成6年)に日本・愛知県の自動車部品メーカーであるデンソーの開発部門(現在は分社化してデンソーウェーブ)が発明したマトリックス二次元コードである

.

QR」は Quick Response の頭字語

.

トヨタ生産方式「カンバン」(ジャストインタイム生産システム)において、自動車部品工場や配送センター等での利用を念頭に開発された。しかし、誤り検出訂正の能力が高く、また、オープンソースとされたことから、トヨタ自動車サプライチェーンの範囲から飛び出して独り歩きを始め、現在では日本に限らず世界に広く普及している

.

型番 (Version)
1から40の番号で表されるシンボルの大きさ。最小は「型番1」の21×21モジュールで、最大は「型番40」の177×177モジュール。

.

誤り訂正レベル (Error Correction Level)
QRコードに汚れなどがあっても正確に読み取れるように、読み取り不能や読み取り間違いのモジュールを修正するために付けられる誤り訂正語のデータ語に対する割合。下記の5レベルがある。
レベルL - コード語の約7%が復元可能
レベルM - コード語の約15%が復元可能
レベルQ - コード語の約25%が復元可能
レベルH - コード語の約30%が復元可能
レベルS - コード語の約50%が復元可能

工場での汚れや撮影時のノイズなどに対応するために一部が欠損していても読み取りが可能。

QRコード®とは(デンソーウェーブ)

www.denso-wave.com

特長3:360°どの方向からでも、読み取りが可能
QRコード®は、360°どの方向からでも、高速な読み取りが可能です。
QRコード®の中の3ヶ所の切り出しシンボルにあり、背景模様の影響を受けない安定した高速読み取りができます。

3箇所のファインダパターン(切り出しシンボル)で向きを識別するっぽい。

1箇所のアライメントパターンは、補正用。こちらはバージョンによってないものもある。

QRコード開発ストーリー(デンソーウェーブ)

www.denso-wave.com

QRコードのしくみ(キーエンス

www.keyence.co.jp

データの区分けについて書いてある。ユーザには関係ないが。


次に気楽に動かせる Python での QR コードの取り扱いを調べる。

qrcode

QR コードの生成に関しては、このライブラリがデファクトスタンダードっぽい。
ライセンス.txt を確認すると js での実装のポーティングと書かれていた。

pypi.org

PyQRCode

こちらは 7年くらい前で更新が止まっている。

pypi.org

QR コードの読み取りは OpenCV実装済みっぽい。

docs.opencv.org

(調査はひとまずここまでで終わり)