見出し画像

Maxiコードの読み取りの仕組み

Maxiコードを読み取る仕組みについて

マイナー過ぎてネットで調べても出てこないんじゃないかな…
Maxiコードには以下のようなパターンが印字されています。

Maxiコードの概念図

特徴的なのは中心にある丸いファインダーパターンです。

Maxiコードのファインダーパターン

このファインダーパターンは同心円なので、中心を通るようにスキャンすれば、
必ず1:1:1:1:1:1:1:1:1:1:1の比率で白と黒を検出できます。

いくつかの方向からスキャンすれば、ファインダーパターンは見つけられると思います。

回転しても同じように見えるところがこのファインダーパターンの強みですね。
しかし、この後はどうしましょう。
一体何を見つければいいのでしょうか…
概念図を見てみると…
Orientation patterns
これを見つけると向きがわかりそうですね。

Orientation patterns

しかし、これは難しい…

◎ じー(´◉ω◉` )

同心円を増やしてみる

ちょっとずらしてみる

あ、円周上に全てのオリエンテーションパターンが乗っかった

これは行けちゃうな~( ̄ー ̄)ニヤリ

オリエンテーションパターンは6箇所あるので円周上を60°ずつサンプリングすれば、白か黒かわかります
一番内側の円で言うと、左上から時計回りに、黒、白、黒、黒、白、黒
他の2つも同じように算出して、黒が3つあるのが左上に来るように回せば正面向きになります。
ここまでくると、1モジュールあたりのピクセル数(PPM)と回転が既知なので、規格にのっとってサンプリングしていけば、黒、白、黒…のような全ての印字パターンを把握することが出来ます。
最後に黒、白、黒…のパターンを0,1,0のようにビット変換して復号化すると文字列が取得できます。

同心円って面白いですね~

いいなと思ったら応援しよう!

わた
よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!