(57)【要約】  本発明は、ドットマトリックス２次元コードの符号化方法および認識方法を開示する。前記ドットマトリックス２次元コードは、Ｍ×Ｎの仮想符号点格納ブロックからなり、前記仮想符号点格納ブロックに符号点を設定することにより複数の座標補正ブロック、複数のデータ格納ブロックおよび１つの方向指示ブロックをそれぞれ形成する；前記複数の座標補正ブロックに設定される符号点は、１つのみで、いずれも前記仮想符号点格納ブロックの中心に位置する；前記方向指示ブロックに少なくとも２つの符号点が設定され、そのうち１つのみが前記仮想符号点格納ブロックの中心に位置する；前記複数の座標補正ブロックは、いずれも前記方向指示ブロックから離間し、前記複数のデータ格納ブロックの間に分布する；前記複数のデータ格納ブロックに設定される符号点は、データ情報を格納する；ただし、Ｍ≧４、Ｎ≧４で、ＭおよびＮがともに偶数である。本発明は、符号化容量が大きく、人間の目による観察への干渉が小さく、容易で確実に認識されるなどの利点を有する。【選択図】図９
2019505927.tif 000002
【特許請求の範囲】
【請求項１】
ドットマトリックス２次元コードの符号化方法であって、
前記ドットマトリックス２次元コードは、Ｍ×Ｎの仮想符号点格納ブロックからなり、前記仮想符号点格納ブロックに符号点を設定することにより複数の座標補正ブロック、複数のデータ格納ブロックおよび１つの方向指示ブロックをそれぞれ形成し、
前記複数の座標補正ブロックに設定される符号点は、いずれも前記仮想符号点格納ブロックの中心に位置し、
前記方向指示ブロックに少なくとも２つの符号点が設定され、そのうち１つのみが前記仮想符号点格納ブロックの中心に位置し、
前記複数の座標補正ブロックは、いずれも前記方向指示ブロックから離間し、前記複数のデータ格納ブロックの間に分布し、
前記複数のデータ格納ブロックに設定される符号点は、データ情報を格納し、
前記複数の座標補正ブロックおよび複数のデータ格納ブロック内は、いずれも１つの符号点のみを有し、
ただし、Ｍ≧４、Ｎ≧４で、ＭおよびＮがともに偶数であるドットマトリックス２次元コードの符号化方法。
【請求項２】
前記ドットマトリックス２次元コードにおいて、行座標および列座標がともに奇数または偶数の前記仮想符号点格納ブロックは、前記複数の座標補正ブロックおよび前記方向指示ブロックで、残りの前記仮想符号点格納ブロックは、前記複数のデータ格納ブロックである請求項１に記載のドットマトリックス２次元コードの符号化方法。
【請求項３】
前記複数の座標補正ブロック、複数のデータ格納ブロックおよび１つの方向指示ブロックは、それぞれ仮想の罫線により３×３のサブブロックに分割され、前記複数の座標補正ブロックのそれぞれの中心のサブブロックに１つの符号点が設定され、
前記複数のデータ格納ブロックのそれぞれにおいて１つのサブブロックのみに符号点が設定され、前記複数のデータ格納ブロックのそれぞれは、符号点を異なるサブブロックに設定することにより、異なるデータを格納し、
前記方向指示ブロックにおいて、少なくとも２つのサブブロックに符号点が設定される請求項１または２に記載のドットマトリックス２次元コードの符号化方法。
【請求項４】
前記方向指示ブロックに設定される符号点は、その幾何中心まわりに±９０°または１８０°回転すると回転前のものと重畳しない請求項１から３のいずれか一項に記載のドットマトリックス２次元コードの符号化方法。
【請求項５】
請求項１〜４のいずれか一項に記載の符号化方法により得られるドットマトリックス２次元コードを認識する認識方法において、
少なくとも１つの方向指示ブロックおよび複数の座標補正ブロックを含み、１つの前記ドットマトリックス２次元コードのサイズ以上のコード図のグレースケール画像を得るステップと、
前記少なくとも１つの方向指示ブロックおよび前記複数の座標補正ブロックのグレースケール画像から、前記ドットマトリックス２次元コードにおける前記複数の座標補正ブロックおよび前記方向指示ブロックの行列位置を得るステップと、
前記グレースケール画像、前記複数の座標補正ブロックおよび前記方向指示ブロックの行列位置に基づき、前記ドットマトリックス２次元コードに格納されているデータを読み取るステップと、を含むドットマトリックス２次元コードの認識方法。
【請求項６】
前記グレースケール画像、前記複数の座標補正ブロックおよび前記方向指示ブロックの行列位置に基づき、前記ドットマトリックス２次元コードに格納されているデータを読み取ることは、
ステップＳ１：前記グレースケール画像に対して２値化処理を行うことにより２値画像を得、前記２値画像で符号点をマークし、符号点の重心座標（ｘ，ｙ）を確定することと、
ステップＳ２：前記２値画像の幾何中心を回転中心とし、前記２値画像の各回転角度における前記符号点の重心座標の所定方向への投影波形の標準偏差を計算することにより符号点の行方向および列方向を確定し、そして前記行方向、前記列方向においてそれぞれ符号点の重心座標（ｘ，ｙ）を投影し、投影波形に自己相関法を用いて行分割点および列分割点を計算する、符号点の行方向と列方向および行分割点と列分割点を確定することと、
ステップＳ３：ステップＳ２にて得られる行方向、列方向に基づき符号点の重心座標（ｘ，ｙ）を回転させて調整し、回転調整後の符号点座標（ｘ１，ｙ１）を計算し、ステップＳ２にて得られる行分割点および列分割点で、符号点を分割するための矩形グリッドを形成することと、
ステップＳ４：ステップＳ３にて得られる矩形グリッドに対応する２次元行列を構築し、前記回転調整後の符号点座標（ｘ１，ｙ１）により前記矩形グリッドに所属するブロックを判断し、そして前記回転調整後の符号点座標（ｘ１，ｙ１）を当該ブロックに対応する２次元行列のユニットに追加することと、
ステップＳ５：前記方向指示ブロックと特徴的にマッチングする２次元行列のユニットに基づき、２次元行列の回転方向およびオフセット量を認識することと、
ステップＳ６：前記回転方向およびオフセット量に基づき完全な前記ドットマトリックス２次元コードを再構築し、それに格納されているデータを読み取ることと、を含む請求項５に記載のドットマトリックス２次元コードの認識方法。
【請求項７】
前記２次元行列の回転方向は、前記方向指示ブロックに隣接する前記複数の座標補正ブロックおよび前記方向指示ブロック内の複数の符号点の相対的位置から計算される請求項６に記載のドットマトリックス２次元コードの認識方法。
【請求項８】
前記複数の座標補正ブロックの行列位置に基づき前記ドットマトリックス２次元コードに格納されているデータを読み取ることは、まず、前記複数の座標補正ブロックの回転調整後の符号点座標（ｘ１，ｙ１）から前記複数のデータ格納ブロックの中心座標を計算し、そして、当該中心座標からの前記複数のデータ格納ブロックにおける回転調整後の符号点座標（ｘ１，ｙ１）のオフセットに基づき格納されているデータを読み取る請求項６または７に記載のドットマトリックス２次元コードの認識方法。
【請求項９】
前記複数の座標補正ブロックの回転調整後の符号点座標（ｘ１，ｙ１）からの前記複数のデータ格納ブロックの中心座標の計算は、補間法を用いる請求項８に記載のドットマトリックス２次元コードの認識方法。
【請求項１０】
完全な前記ドットマトリックス２次元コードを再構築することは、
サブステップＳ６０１：前記方向指示ブロック、前記複数の座標補正ブロックおよび前記複数のデータ格納ブロックの正しい基準位置をそれぞれ取得することと、
サブステップＳ６０２：前記方向指示ブロック、前記複数の座標補正ブロックおよび前記複数のデータ格納ブロックと特徴的にマッチングする前記２次元行列のユニットをそれぞれ認識し、前記方向指示ブロックと特徴的にマッチングするユニットを原点位置とし、前記複数の座標補正ブロックおよび前記複数のデータ格納ブロックと特徴的にマッチングするユニットの相対的位置を確定することと、
サブステップＳ６０３：前記原点位置を前記方向指示ブロックの正しい基準信号と重畳させ、前記複数の座標補正ブロックと特徴的にマッチングする前記２次元行列のユニットの相対的位置を前記複数の座標補正ブロックの正しい基準位置と重畳させることと、
サブステップＳ６０４：前記正しい基準位置を参照し、前記２次元行列における前記仮想符号点格納ブロックを分解して正しい位置に移動することにより、前記ドットマトリックス２次元コードと行列数および配列が同一の２次元行列を再構築することと、を含む請求項６から９のいずれか一項に記載のドットマトリックス２次元コードの認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像認識技術分野に関し、特にドットマトリックス２次元コードの符号化および認識方法に関する。
【背景技術】
【０００２】
従来の書籍や新聞などは、主に目で見て読むことで情報を取得する媒体である。しかしながらこれらを閲読する際、面白みに欠けず、長く続くと目が疲れやすい。また、盲目や目の疾患に罹患する場合、閲読することができない。このため、近年、音声で閲読する出版物が登場しており、例えば、中国特許出願第ＺＬ２００６１０１５６８７９．４号のように、ＭＰＲ（Ｍｕｌｔｉｍｅｄｉａ  Ｐｒｉｎｔ  Ｒｅａｄｅｒ）出版物で２次元コード音声閲読装置を用いて、音声閲読出版物のコンテンツを復号することで、読者が閲読しながら音声や映像などのコンテンツも同時に利用できるものが挙げられる。これにより、閲読および記憶の効率が向上し、子供や目と耳の疾患に罹患する利用者の勉強に役立つことができる。ＭＰＲ２次元コードに関しては、ＭＰＲ出版物に関する業界規格の第１部分（ＭＰＲコードの仕様規範、規格番号：ＣＹ／Ｔ５８．１−２００９）、第２部分（ＭＰＲコードの符号化規則、規格番号：ＣＹ／Ｔ５８．２−２００９）、第３部分（汎用製作規範、規格番号：ＣＹ／Ｔ５８．３−２００９）、第４部分（ＭＰＲコードの印刷品質要件と検証方法、規格番号：ＣＹ／Ｔ５８．４−２００９）および第５部分（基本管理規範、規格番号：ＣＹ／Ｔ５８．５−２００９）が挙げられる。
【０００３】
図１は、ドットマトリックスコードの応用例を示す。グラフィック１０１（例えば図１の「雄鶏」の画像）がドットマトリックスコード１０２と共に紙などの媒体１００に印刷されている。１０３は、光学的画像取込みと認識機能を備える電子装置で、ドットマトリックスコード１０２に近接すると、ドットマトリックスコード１０２に格納されているインデックスデータを認識でき、そして有線または無線の方式でインデックスデータをメディア再生手段（電子装置１０３に内蔵されているか、または電子装置１０３から独立する）に送信する。メディア再生手段がインデックスデータに基づき、グラフィック１０１と関連付けられるデジタルメディアコンテンツ（例えば「雄鶏の鳴き声」）を検索して再生する。このような応用は、幼児向けの音声読み物に多くみられる。モバイルインターネット技術の目覚ましい発展に伴い、インターネット上の画像、テキスト、オーディオ、ビデオなどのメディアコンテンツを紙製の教育資源と関連付ける要望が強まり、例えばオンライン授業のビデオを紙製の教育資源と関連付けると、学生は、無線または有線の方式でビデオプレイヤーに接続される電子装置１０３で教育資源にある知識内容をクリックすると、ビデオプレイヤーが作動し当該知識内容と関連付けられた授業ビデオを再生する。なお、インターネットには、数え切れないほどのリソースが存在するため、関連付けられたデジタルメディアコンテンツには、一意のＩＤコードが必要である。同一のＩＤコードが複数回使用された場合には、関連付けられたデジタルメディアコンテンツは、複数の独立するシステムに分割され、コンテンツの利用者は、各独立するシステムに対して、異なるクリックペンを用いて閲読しなければならない。これは、当技術分野の製品における大きな問題である。これを解決するために、ドットマトリックス２次元コードの符号化容量を増加させなければならない。これを実現するには２つの方法がある。その一つは、単一のドットマトリックス２次元コードの面積を保持し符号点の印刷密度を上げることで、しかしながら、符号点のグラフィックの観察に対する干渉が強化され、グラフィックが、通常印刷されるものより暗く見えてしまう。もう一つは、符号点の距離を保持し単一のドットマトリックス２次元コードの面積を増加させることで、しかし、画像認識の演算量および符号点座標の位置決めのエラー率が顕著に上がってしまう。
【０００４】
図２は、第１種の周知のドットマトリックスコードを示し、第１の符号点群２１０と、データ格納機能を備える第２の符号点群２１１とからなる。光学結像システムに透視変形があるため、行と列が増えると第２の符号点群２１１における符号点が、第１の符号点群２１０における符号点から次第にオフセットし、第１の符号点群２１０における符号点座標に基づき復元された第２の符号点群２１１におけるグリッドの中心座標の誤差も次第に大きくなる。
【０００５】
図３は、第２種の周知のドットマトリックスコードを示し、図２に示すドットマトリックスコードを改良したものある。１つの符号点は最大で８種のオフセット状態を有し、３ビットのデータを格納できる。行数と列数が同一の場合、図３は、図２と同一の格納容量を有する。図３では、座標補正の役割を果たす符号点が行列で比較的均一に分布するが、各データ格納符号点がいずれも少なくとも１つの座標補正符号点と隣接するまでになっていない。
【０００６】
上記から分かるように、従来技術による符号点の構成形態は、いずれも符号化容量が大きい場合には好適に利用できない。このため、符号化容量が大きく、比較的大きな光学結像の歪みに対応可能で、人間の目による観察への干渉が小さく、容易で確実に認識されるドットマトリックス２次元コードの符号化方法およびそれに対応する認識・復号アルゴリズムをいかに設計するかは、当業者にとって大きな課題になっている。
【０００７】
上記の背景技術として記載された内容は、本発明の構想および技術手段の理解を促進するためのものに過ぎず、必ずしも本特許出願にとって従来技術とは限らない。上記の内容が本願の出願日に既に開示されていることを証明する証拠がなければ、上記の背景技術は、本願の新規性および進歩性についての評価に用いるべきではない。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、ドットマトリックス２次元コードの符号化および認識方法を提供することにより、上記の従来技術における座標補正符号点の分布が不均一であるため符号化容量が増大する場合、認識の演算量が増加し、符号点の位置決めのエラー率が上がるという問題を解決することである。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明は、ドットマトリックス２次元コードの符号化方法を提供し、前記ドットマトリックス２次元コードは、Ｍ×Ｎの仮想符号点格納ブロックからなり、前記仮想符号点格納ブロックに符号点を設定することにより、複数の座標補正ブロック、複数のデータ格納ブロックおよび１つの方向指示ブロックをそれぞれ形成する；
前記複数の座標補正ブロックに設定される符号点は、いずれも前記仮想符号点格納ブロックの中心に位置する；
前記方向指示ブロックに少なくとも２つの符号点が設定され、そのうち１つのみが前記仮想符号点格納ブロックの中心に位置する；
前記複数の座標補正ブロックは、いずれも前記方向指示ブロックから離間し、前記複数のデータ格納ブロックの間に分布する；
前記複数のデータ格納ブロックに設定される符号点は、データ情報を格納する；
前記複数の座標補正ブロックおよび複数のデータ格納ブロック内は、いずれも１つの符号点のみを有する；
ただし、Ｍ≧４、Ｎ≧４で、ＭおよびＮがともに偶数である。
【００１０】
場合によっては、当該符号化方法は、さらに以下の技術的特徴を備えてもよい。
前記ドットマトリックス２次元コードにおいて、行座標および列座標がともに奇数または偶数の前記仮想符号点格納ブロックは、座標補正ブロックおよび前記方向指示ブロックで、残りの前記仮想符号点格納ブロックは、前記データ格納ブロックである。
前記複数の座標補正ブロック、複数のデータ格納ブロックおよび１つの方向指示ブロックは、それぞれ仮想の罫線により３×３のサブブロックに分割され、各前記座標補正ブロックの中心のサブブロックに１つの符号点が設定される；各前記データ格納ブロックにおいて１つのサブブロックのみに符号点が設定され、前記データ格納ブロックは、符号点を異なるサブブロックに設定することにより異なるデータを格納する；前記方向指示ブロックにおいて、少なくとも２つのサブブロックに符号点が設定される。
前記ドット方向指示ブロックに設定される符号点は、その幾何中心まわりに±９０°または１８０°回転すると回転前のものと重畳しない。
【００１１】
本発明はさらにドットマトリックス２次元コードの認識方法を提供し、上記いずれかの方法により得られるドットマトリックス２次元コードを認識するために用い、当該認識方法は：
少なくとも１つの方向指示ブロックおよび複数の座標補正ブロックを含み、１つの前記ドットマトリックス２次元コードのサイズ以上のコード図のグレースケール画像を得るステップと；
前記少なくとも１つの方向指示ブロックおよび前記複数の座標補正ブロックのグレースケール画像から、前記ドットマトリックス２次元コードにおける前記座標補正ブロックおよび前記方向指示ブロックの行列位置を得るステップと；
前記グレースケール画像、前記座標補正ブロックおよび前記方向指示ブロックの行列位置に基づき、前記ドットマトリックス２次元コードに格納されているデータを読み取るステップと、を含む。
【００１２】
場合によっては、当該認識方法は、さらに以下の技術的特徴を備えてもよい。
前記グレースケール画像、前記座標補正ブロックおよび前記方向指示ブロックの行列位置に基づき、前記ドットマトリックス２次元コードに格納されているデータを読み取ることは以下のステップを含む：
Ｓ１：前記グレースケール画像に対して２値化処理を行うことにより２値画像を得、前記２値画像で符号点をマークし、符号点の重心座標（ｘ，ｙ）を確定する；
Ｓ２：符号点の行方向と列方向および行分割点と列分割点の確定：前記２値画像の幾何中心を回転中心とし、前記２値画像の各回転角度における前記符号点の重心座標の所定方向への投影波形の標準偏差を計算することにより符号点の行方向および列方向を確定し、そして行方向、列方向においてそれぞれ符号点の重心座標（ｘ，ｙ）を投影し、投影波形に自己相関法を用いて行分割点および列分割点を計算する；
Ｓ３：ステップＳ２にて得られる行方向、列方向に基づき符号点の重心座標（ｘ，ｙ）を回転させて調整し、回転調整後の前記符号点座標（ｘ１，ｙ１）を計算し、ステップＳ２にて得られる行分割点および列分割点で、符号点を分割するための矩形グリッドを形成する；
Ｓ４：ステップＳ３にて得られる矩形グリッドに対応する２次元行列を構築し、前記回転調整後の符号点座標（ｘ１，ｙ１）により前記矩形グリッドに所属するブロックを判断し、そして前記回転調整後の符号点座標（ｘ１，ｙ１）を当該ブロックに対応する２次元行列のユニットに追加する；
Ｓ５：前記方向指示ブロックと特徴的にマッチングする２次元行列のユニットに基づき、２次元行列の回転方向およびオフセット量を認識する；
Ｓ６：前記回転方向およびオフセット量に基づき完全な前記ドットマトリックス２次元コードを再構築し、それに格納されているデータを読み取る。
【００１３】
前記２次元行列の回転方向は、前記方向指示ブロックに隣接する前記座標補正ブロック、前記回転調整後の符号点座標（ｘ１，ｙ１）、および前記方向指示ブロック内の複数の符号点の相対的位置から計算される。
【００１４】
座標補正ブロックに基づきデータ格納ブロックに格納されているデータを読み取ることは、具体的には：まず、前記座標補正ブロックの回転調整後の符号点座標（ｘ１，ｙ１）から前記データ格納ブロックの中心座標を計算する；そして、当該中心座標からの前記データ格納ブロックにおける回転調整後の符号点座標（ｘ１，ｙ１）のオフセットに基づき、格納されているデータを読み取る。
【００１５】
前記座標補正ブロックの回転調整後の符号点座標（ｘ１，ｙ１）からの前記データ格納ブロックの中心座標の計算は、補間法を用いる。
【００１６】
完全な前記ドットマトリックス２次元コードを再構築することは以下のサブステップを含む：
Ｓ６０１：前記方向指示ブロック、前記座標補正ブロックおよび前記データ格納ブロックの正しい基準位置をそれぞれ取得する；
Ｓ６０２：前記方向指示ブロック、前記座標補正ブロックおよび前記データ格納ブロックと特徴的にマッチングする前記２次元行列のユニットをそれぞれ認識し、前記方向指示ブロックと特徴的にマッチングするユニットを原点位置とし、前記座標補正ブロックおよび前記データ格納ブロックと特徴的にマッチングするユニットの相対的位置を確定する；
Ｓ６０３：前記原点位置を前記方向指示ブロックの正しい基準信号と重畳させ、座標補正ブロックと特徴的にマッチングする前記２次元行列のユニットの相対的位置を前記座標補正ブロックの正しい基準位置と重畳させる；
Ｓ６０４：前記正しい基準位置を参照し、前記２次元行列における前記仮想符号点格納ブロックを分解して正しい位置に移動することにより、前記ドットマトリックス２次元コードと行列数および配列が同一の２次元行列を再構築する。
【００１７】
本発明は、従来技術と比べて以下の有益な効果を有する：本発明において、座標補正ブロックおよび方向指示ブロックがデータ格納ブロックの間に均一に分布するため、印刷および観察への干渉の問題を解決するとともに、光学結像の歪みに対応する性能が向上する。
【００１８】
好ましい実施形態では、方向指示ブロックに設定される符号点は、方向指示ブロックの幾何中心まわりに±９０°または１８０°回転すると回転前のものと重畳しない特徴を有するため、画像の回転方向を正確に確定することができ、認識速度が速く正確率が高いという技術的効果を有する。
【図面の簡単な説明】
【００１９】
【図１】ドットマトリックスコードの応用例を示す図である。
【図２】第１種の周知のドットマトリックスコードを示す図である。
【図３】第２種の周知のドットマトリックスコードを示す図である。
【図４】本発明の実施例１、実施例２における仮想符号点格納ブロックおよびサブブロックの区分を示す図である。
【図５】本発明の実施例１、実施例２における符号点の設定を示す図である。
【図６】本発明の実施例１、実施例２における符号点を設定可能なサブブロックの位置を示す図である。
【図７】本発明の実施例１における４×４のドットマトリックス２次元コードを示す図である。
【図８】本発明の実施例１における４つの図７に示すドットマトリックス２次元コードを含んでスプライスするコード図を示す図である。
【図９】本発明の実施例２における６×６のドットマトリックス２次元コードを示す図である。
【図１０】本発明の実施例２における４つの図９に示すドットマトリックス２次元コードを含んでスプライスするコード図を示す。
【図１１】本発明の実施例３のフローチャートその１である。
【図１２】本発明の実施例３のドットマトリックス２次元コードを示す図である。
【図１３】本発明の実施例３のグレースケール画像である。
【図１４】本発明の実施例３の２値化画像である。
【図１５】本発明の実施例３の投影波形の標準偏差図である。
【図１６】本発明の実施例３の行方向および列方向を示す図である。
【図１７Ａ】本発明の実施例３の行方向への投影波形図である。
【図１７Ｂ】本発明の実施例３の列方向への投影波形図である。
【図１８】本発明の実施例３における回転処理後の結果を示す図である。
【図１９】本発明の実施例３における回転方向の確定を示す図である。
【図２０】本発明の実施例３における隣接する座標補正ブロックの符号点を連結したことを示す図である。
【図２１】本発明の実施例３におけるデータ格納ブロックの中心座標の確定を示す図その１である。
【図２２】本発明の実施例３におけるデータ格納ブロックの中心座標の確定を示す図その２である。
【図２３】本発明の実施例３におけるデータ格納ブロックの中心座標の確定を示す図その３である。
【図２４】本発明の実施例３におけるデータ格納ブロックの中心座標の確定を示す図その４である。
【図２５】本発明の実施例３におけるデータ格納ブロックの中心座標の確定を示す図その５である。
【図２６】本発明の実施例３におけるデータ格納ブロックの中心座標の確定を示す図その６である。
【図２７】本発明の実施例３におけるデータ格納ブロックの中心座標の確定を示す図その７である。
【図２８】本発明の実施例３におけるデータ格納ブロックの中心座標の確定を示す図その８である。
【図２９】本発明の実施例３におけるデータ格納ブロックの中心座標を示す図である。
【図３０】本発明の実施例３のフローチャートその２である。
【図３１】本発明の実施例３におけるドットマトリックス２次元コードの再構築を示す図である。
【発明を実施するための形態】
【００２０】
以下に具体的な実施形態を用いて図面を参照しながら本発明について詳しく説明する。なお、下記の内容は、あくまでも例示的なものに過ぎず、本発明の範囲およびその応用を限定するものではない。
【００２１】
以下に図１〜図３１を参照して、非限定的で非排他的な実施例について説明し、特記のない限り、図中の同じ符号が同じ要素を表す。
【００２２】
（実施例１）
図４〜図８に示すように、ドットマトリックス２次元コードの符号化方法において、前記ドットマトリックス２次元コード７０１が４×４の仮想符号点格納ブロック４００からなり、前記仮想符号点格納ブロック４００に符号点５００を設定することにより、３つの座標補正ブロック７２０、１２のデータ格納ブロック７３０および１つの方向指示ブロック７１０をそれぞれ形成する。
【００２３】
前記複数の座標補正ブロックに設定される符号点は、いずれも前記仮想符号点格納ブロックの中心に位置する。
【００２４】
前記方向指示ブロックに２つの符号点が設定され、そのうち１つのみが前記仮想符号点格納ブロックの中心に位置する。
【００２５】
前記複数の座標補正ブロックは、いずれも前記方向指示ブロックから離間し、前記複数のデータ格納ブロックの間に均一に分布する。
【００２６】
前記複数のデータ格納ブロックに設定される符号点は、データ情報を格納する。
【００２７】
前記座標補正ブロックおよび複数のデータ格納ブロック内は、１つの符号点のみを有する。
【００２８】
本実施例では、図７に示すように、前記ドットマトリックス２次元コード７０１において、左上に位置する前記仮想符号点格納ブロックの中心を（１，１）とし、行座標および列座標がともに奇数の仮想格納ブロックは、前記方向指示ブロックおよび前記座標補正ブロックで、残りの前記仮想格納ブロックは、前記データ格納ブロックである。
【００２９】
図７に示すように、上から数え、前記ドットマトリックス２次元コード７０１の４行目における前記仮想符号点格納ブロック４００は、全て前記データ格納ブロック７３０で、左から数え、前記ドットマトリックス２次元コード７０１の４列目における前記仮想符号点格納ブロック４００は、全て前記データ格納ブロック７３０で、前記ドットマトリックス２次元コード７０１の１行目および１列目の前記仮想符号点格納ブロック４００は、前記方向指示ブロック７１０であり、前記ドットマトリックス２次元コード７０１では、上記の４行目における全ての前記仮想符号点格納ブロック４００、４列目における全ての前記仮想符号点格納ブロック４００、前記１行目および１列目の前記仮想符号点格納ブロック４００を除き、座標が奇数行と奇数列にある前記仮想符号点格納ブロック４００は、座標補正ブロック７２０で、残りはデータ格納ブロック７３０であり、座標が奇数行と偶数列にある前記仮想符号点格納ブロック４００は、データ格納ブロック７３０で、座標が奇数行と偶数列にある前記データ格納ブロック７３０に左右隣接する位置にそれぞれ前記座標補正ブロック７２０が設けられ、座標が偶数行と奇数列にある前記仮想符号点格納ブロック４００は、データ格納ブロック７３０で、座標が偶数と行奇数列にある前記データ格納ブロック７３０に上下隣接する位置にそれぞれ前記座標補正ブロック７２０が設けられ、座標が偶数行と偶数列にある前記仮想符号点格納ブロック４００は、データ格納ブロック７３０であり、座標が偶数行と偶数列にある前記データ格納ブロック７３０の左上、左下、右上および右下に隣接する位置にそれぞれ前記座標補正ブロック７２０が設けられる。
【００３０】
前記座標補正ブロック７２０、データ格納ブロック７３０および方向指示ブロック７１０は、それぞれ仮想の罫線により３×３のサブブロック（４１０〜４９０）に分割され、各前記座標補正ブロック７２０の中心のサブブロック４５０に１つの座標を補正するための符号点５００が設定され、各前記データ格納ブロック７３０において１つのサブブロック（４１０〜４９０）のみにデータを格納するための符号点５００が設定され、前記方向指示ブロック７１０において２つのサブブロックに符号点５００が設定され、そのうち１つの符号点５００のみが前記仮想符号点格納ブロック４００の中心のサブブロック４５０に位置し、前記座標補正ブロック７２０に設定される符号点５００は、いずれも前記仮想符号点格納ブロック４００の中心のサブブロック４５０に位置し、前記方向指示ブロック７１０の中心に設けられるサブブロック４５０における符号点５００は、前記座標補正ブロック７２０における符号点５００と同じく座標補正の役割を果たし、また前記方向指示ブロック７１０の中間の符号点５００は、他のサブブロック（４１０〜４４０、４６０〜４９０）に設けられるもう一つの符号点５００と組み合わせれば方向指示の役割を果たすことができ、前記データ格納ブロック７３０は、符号点５００を異なるサブブロック（４１０〜４９０）に設定することにより異なるデータを格納し、前記サブブロック（４１０〜４９０）の数量および位置により、合計で９種の格納位置６００を有する。
【００３１】
前記方向指示ブロック７１０の２つの前記符号点５００は、その幾何中心まわりに±９０°または１８０°回転すると回転前のものと重畳しない。
【００３２】
４行４列のドットマトリックス２次元コード７０１の各データ格納ブロック７３０は、最大で１つの９進数を格納でき、１２のデータ格納ブロック７３０の最大格納容量は、ｌｏｇ２（９１２）＞２３８で、すなわち３８ｂｉｔとなり、このうち３２ｂｉｔはＩＤを格納し、残り６ｂｉｔは、データの検証に用いる。
【００３３】
図８に示すように、ドットマトリックス２次元コード７０１を行列の形でスプライスする場合、左上隅のドットマトリックス２次元コード７０１の全てのデータ格納ブロック７３０は、いずれも座標補正ブロック７２０により均一に取り囲まれる。各データ格納ブロック７３０は、１対の左右または上下に隣接する座標補正ブロック７２０が伴うか、または２対の対角線にて隣接する座標補正ブロック７２０が伴うため、その中心座標は、隣接する座標補正ブロック７２０により補間されて計算することができ、認識の難易度が低下するとともに正確さが保証される。印刷解像度を６００ＤＰＩ、各仮想格納ブロックを７×７の画素とすると、各ドットマトリックスコードの辺の長さが（４×７／６００×２５．４＝１．１８５）ｍｍとなり、１枚のＡ４用紙の面積が２９７×２１０＝６２３７０ｍｍ２であるため、１枚のＡ４用紙を隙間なくスプライスするには、約ＩＮＴ（２９７／（４×７／６００×２５．４））×ＩＮＴ（２１０／（４×７／６００×２５．４））＝４４２５０の本実施例のドットマトリックス２次元コード７０１が必要である（ＩＮＴ：切り捨て演算）。
【００３４】
（実施例２）
図４〜図６および図９〜図１０に示すように、ドットマトリックス２次元コードの符号化方法において、前記ドットマトリックス２次元コード８０１が６×６の仮想符号点格納ブロック４００からなり、前記仮想符号点格納ブロック４００に符号点５００を設定することにより８つの座標補正ブロック８２０、２７のデータ格納ブロック８３０および１つの方向指示ブロック８１０をそれぞれ形成する。
【００３５】
前記座標補正ブロックに設定される符号点は、いずれも前記仮想符号点格納ブロックの中心に位置する。
【００３６】
前記方向指示ブロックに２つの符号点が設定され、そのうち１つのみが前記仮想符号点格納ブロックの中心に位置する。
【００３７】
前記座標補正ブロックは、いずれも前記方向指示ブロックから離間し、前記複数のデータ格納ブロックの間に均一に分布する。
【００３８】
前記データ格納ブロックに設定される符号点は、データ情報を格納する。
【００３９】
前記座標補正ブロックおよび複数のデータ格納ブロック内は、１つの符号点のみを有する。
【００４０】
本実施例では、図９に示すように、前記ドットマトリックス２次元コード８０１において、左上に位置する前記仮想符号点格納ブロックの中心を（１，１）とし、行座標および列座標がともに奇数の仮想格納ブロックは、前記方向指示ブロックおよび前記座標補正ブロックで、残りの前記仮想格納ブロックは、前記データ格納ブロックである。
【００４１】
具体的には、図９に示すように、上から数え、前記ドットマトリックス２次元コード８０１の６行目における前記仮想符号点格納ブロック４００は、全て前記データ格納ブロック８３０で、左から数え、前記ドットマトリックス２次元コード８０１の６列目における前記仮想符号点格納ブロック４００は、全て前記データ格納ブロック８３０で、前記ドットマトリックス２次元コード８０１では、上記の６行目における全ての前記仮想符号点格納ブロック４００、６列目における全ての前記仮想符号点格納ブロック４００、前記３行目および３列目の前記仮想符号点格納ブロック４００を除き、座標が奇数行と奇数列にある前記仮想符号点格納ブロック４００は、座標補正ブロック８２０で、残りはデータ格納ブロック８３０であり、座標が奇数行と偶数列にある前記仮想符号点格納ブロック４００は、データ格納ブロック８３０で、座標が奇数行と偶数列にある前記データ格納ブロック８３０に左右隣接する位置にそれぞれ前記座標補正ブロック８２０が設けられ、座標が偶数行と奇数列にある前記仮想符号点格納ブロック４００は、データ格納ブロック８３０で、座標が偶数行と奇数列にある前記データ格納ブロック８３０に上下隣接する位置にそれぞれ前記座標補正ブロック８２０が設けられ、座標が偶数行と偶数列にある前記仮想符号点格納ブロック４００は、データ格納ブロック８３０であり、座標が偶数行と偶数列にある前記データ格納ブロック８３０の左上、左下、右上および右下に隣接する位置にそれぞれ前記座標補正ブロック８２０が設けられる。
【００４２】
前記座標補正ブロック８２０、データ格納ブロック８３０および方向指示ブロック８１０は、それぞれ仮想の罫線により３×３のサブブロック（４１０〜４９０）に分割され、各前記座標補正ブロック８２０の中心のサブブロック４５０に１つの座標を補正するための符号点５００が設定され、各前記データ格納ブロック８３０において１つのサブブロック（４１０〜４９０）のみにデータを格納するための符号点５００が設定され、前記方向指示ブロック８１０において２つのサブブロックに符号点５００が設定され、そのうち１つの符号点５００のみが前記仮想符号点格納ブロック４００の中心のサブブロック４５０に位置し、前記座標補正ブロック８２０に設定される符号点５００は、いずれも前記仮想符号点格納ブロック４００の中心のサブブロック４５０に位置し、前記方向指示ブロック８１０の中心に設けられるサブブロック４５０における符号点５００は、前記座標補正ブロック８２０における符号点５００と同じく座標補正の役割を果たし、また前記方向指示ブロック８１０の中間の符号点５００は、他のサブブロック（４１０〜４４０、４６０〜４９０）に設けられるもう一つの符号点５００と組み合わせれば方向指示の役割を果たすことができ、前記データ格納ブロック８３０は、符号点５００を異なるサブブロック（４１０〜４９０）に設定することにより異なるデータを格納し、前記サブブロック（４１０〜４９０）の数量および位置により、合計で９種の格納位置６００を有する。
【００４３】
前記方向指示ブロック８１０の２つの前記符号点５００は、その幾何中心まわりに±９０°または１８０°回転すると回転前のものと重畳しない。
【００４４】
６行、６列のドットマトリックス２次元コード８０１の各データ格納ブロック８３０は、最大で１桁の９進数を格納でき、２７のデータ格納ブロック８３０の最大格納容量は、ｌｏｇ２（９２７）＞２８５で、すなわち８５ｂｉｔとなり、このうち６４ｂｉｔはＩＤを格納し、残り２１ｂｉｔは、データの検証に用いる。
【００４５】
図１０に示すように、ドットマトリックス２次元コード８０１を行列の形でスプライスする場合、左上隅のドットマトリックス２次元コード８０１の全てのデータ格納ブロック８３０は、いずれも座標補正ブロック８２０により均一に取り囲まれる。各データ格納ブロック８３０は、１対の左右または上下に隣接する座標補正ブロック８２０が伴うか、または２対の対角線にて隣接する座標補正ブロック８２０が伴うため、その中心座標は、隣接する座標補正ブロック８２０により補間されて計算することができ、認識の難易度が低下するとともに正確さが保証される。
【００４６】
（実施例３）
本実施例は、上記の実施例２に記載されるドットマトリックス２次元コード８０１を認識するために用い、図１２は、３セットの９進数０〜８を格納したドットマトリックス２次元コード８０１を示し、図中の罫線は、観察しやすくするために設けられるものである。６００ＤＰＩの印刷の場合、１つの図１２に示すドットマトリックス２次元コード８０１の面積は、約２ｍｍ×２ｍｍである。電子装置１０３の読み取り可能な対象領域は、通常１つの図１２に示すドットマトリックス２次元コードの面積をはるかに上回り、印刷時は同一のドットマトリックス２次元コードで各独立する読み取り可能な対象領域を隙間なくスプライスする。
【００４７】
復号プロセス：図１３に示すように、少なくとも１つの方向指示ブロックおよび複数の座標補正ブロックを含み、前記ドットマトリックス２次元コードのサイズ以上のグレースケール画像を得、前記グレースケール画像における前記座標補正ブロックおよび前記方向指示ブロックの座標位置を取得し、電子装置１０３の光学系は通常、８ｂｉｔのグレースケール画像を取り込み、各画素（ｐｉｘｅｌ）にて取得する値の範囲は、０〜２５５であり、図１３に含まれる行列コードは、電子装置１０３がドットマトリックス２次元コード１０２に対して回転および傾斜した状態で形成した画像であり、図１２の中心位置は図１３の中心位置と重畳せず、傾斜によりグレースケール画像に３つのケラレが生じている。
【００４８】
図１１に示すように、本実施例では、前記ドットマトリックス２次元コードの認識は、以下のステップを含む：
Ｓ１：前記グレースケール画像に対して２値化処理を行い、図１４に示すように、２値画像を得、前記２値画像で符号点５００をマークし、符号点の重心座標（ｘ，ｙ）を確定する。
【００４９】
図１４の２値画像に示すように、背景が黒色の画素で、符号点５００およびノイズ点が白色の画素であり、白色でつながる画素を同一の数値でマークし、同一の数値でマークされる画素に対してそれぞれｘ座標の平均値とｙ座標の平均値を計算すると、各符号点の重心座標（ｘ，ｙ）を得、そして各符号点５００の画像数を集計し、全ての符号点５００の平均画素数を計算し、画素数が平均値の半分未満または平均値の１．５倍を超える符号点５００は、通常ノイズ点であるため破棄する。
【００５０】
Ｓ２：符号点５００の行方向および列方向を確定する。前記２値画像の幾何中心を回転中心とし、前記２値画像の各回転角度における前記符号点の重心座標の所定方向への投影波形の標準偏差を計算することにより符号点５００の行方向および列方向を確定し、そして行方向、列方向においてそれぞれ符号点の重心座標（ｘ，ｙ）を投影し、投影波形に自己相関法を用いて行分割点および列分割点を計算する。
【００５１】
本実施例では具体的に、下記のとおり符号点５００の行方向および列方向を確定する：
各符号点５００の座標は、いずれも行と列が揃う符号点５００のマトリックスにおける１つの基準符号点５００からのオフセットであるため、１周期の２次元基本波信号を変調し、信号の基本波周波数が変わらずに高調波を入れるものとして理解してもよく、このため符号点の重心点は、ドットマトリックスコードの行方向および列方向に平行の方向における投影が最も周期性を現し、よって各回転角度における符号点の重心座標の特定方向（例えば画像の列方向に直交する方向）への投影波形の標準偏差を計算することにより符号点５００の行方向および列方向を確定することができ、図１５に示すように、横軸は、符号点の重心座標（ｘ，ｙ）の図１４の中心点に対する回転角度で、縦軸は、符号点の重心座標の投影の標準偏差であり、最大ピーク値に対応する回転角度ａがドットマトリックス２次元コードの行方向、９０°近くのオフセットでのピーク値に対応する回転角度ｂがドットマトリックス２次元コードの列方向を表すと定義する。図１６に示すように、白黒画像には行方向および列方向を表す線が描画されている。なお当該ステップにて得られる行方向、列方向は、図１２の行方向および列方向に対して９０°、１８０°または２７０°回転した可能性があるが、前記方向指示ブロックの方向指示機能により回転を修正できるため、後続の復号プロセスへの影響はない。
【００５２】
本実施例では、それぞれ行方向、列方向において符号点の重心座標（ｘ，ｙ）を投影し、行方向、列方向への投影結果にそれぞれ自己相関法を用いて行分割点および列分割点を計算し、具体的には以下のとおりである：
行方向への投影図（１７Ａ）および列方向への投影図（１７Ｂ）から分かるように、行方向への投影は、行間隔と同様の周期性を呈し、列方向への投影は、列間隔と同様の周期性を呈する。２つの投影波形にそれぞれ自己相関アルゴリズムを用いてそれぞれの周期ＴｒおよびＴｃを計算し、Ｔｒは、すなわち行間隔で、Ｔｃは、すなわち列間隔である。行方向への投影波形の最大値を基準、Ｔｒをステップ幅として行分割点を生成し、列方向への投影波形の最大値を基準、Ｔｃをステップ幅として列分割点を生成し、図１７で横軸の「ｘ」とマークされている箇所は、すなわち分割点である。
【００５３】
Ｓ３：ステップＳ２にて得られる行方向、列方向に基づき符号点の重心座標（ｘ，ｙ）を回転させて調整し、回転調整後の前記符号点座標（ｘ１，ｙ１）を計算し、ステップＳ２にて得られる行分割点および列分割点で、符号点５００を分割するための矩形グリッドを形成する。
【００５４】
本実施例では、ステップＳ２にて得られる行方向、列方向に基づきステップＳ１にて得られる符号点の重心座標（ｘ，ｙ）を回転させて調整し、符号点の重心座標（ｘ，ｙ）から回転調整後の前記符号点座標（ｘ１，ｙ１）を計算し、ステップＳ２にて得られる行分割点および列分割点で、符号点５００を分割するための矩形グリッドを形成し、具体的には以下のとおりである：
符号点の重心座標を回転させて調整し、座標変換式は、以下のとおりである：
ｘ１＝ｘ＊ｃｏｓ（α）−ｙ＊ｓｉｎ（α）；
ｙ１＝ｘ＊ｃｏｓ（β）−ｙ＊ｓｉｎ（β）；
ここで、αは、図１４における行方向のドットマトリックスコードの回転角度で、βは、図１４における列方向のドットマトリックスコードの回転角度であり、回転の原点は、図１４の中心である。
【００５５】
図１８は、回転処理後の結果を示し、各円の円心は、１つの符号点の重心座標に対応し、罫線は、ステップＳ２にて得られる行分割点および列分割点に基づき描画され、ここで鉛直方向の罫線は、前記行分割点に基づき描画され、水平方向の罫線は、前記列分割点に基づき描画される。図１８から分かるように、各符号点５００はいずれも１つの矩形グリッドに含まれており、２つの符号点５００を含むグリッドが前記方向指示ブロックとなる。なお、罫線を構成する平行線は、完全均一に分布しないが、後続の復号プロセスへの影響はなく、これは、後続のデータ符号点５００のオフセット量の計算は、罫線ではなく座標補正ブロックにおける符号点座標を基準に計算するためである。
【００５６】
Ｓ４：ステップＳ３にて得られる矩形グリッドに対応する２次元行列を構築し、前記回転調整後の符号点座標（ｘ１，ｙ１）により前記矩形グリッドに所属するブロックを判断し、そして前記回転調整後の符号点座標（ｘ１，ｙ１）を当該ブロックに対応する２次元行列のユニットに追加する。
【００５７】
本実施例では、ステップＳ３の符号点５００で分割して形成する矩形グリッドに対応する２次元行列Ｒを構築し、行列の各ユニットは図１８における矩形ブロックに対応し、後続の復号プロセスは、２次元行列Ｒのみに基づき行われる。
【００５８】
なお前記方向指示ブロックが２つの符号点５００を含むため、２次元行列Ｒのユニットは、最大で２つの符号点５００の座標を格納でき、例えば図１８における７行目８列目のユニットが２つの符号点５００を含む。
【００５９】
Ｓ５：前記方向指示ブロックと特徴的にマッチングする２次元行列のユニットに基づき２次元行列の回転方向を認識し、そして座標補正ブロックに基づきデータ格納ブロックに格納されている数値を読み取る。
【００６０】
本実施例では、前記方前向指示ブロックと特徴的にマッチングする２次元行列Ｒのユニットに基づき２次元行列Ｒの回転方向を認識し、そして座標補正ブロックに基づきデータ格納ブロックに格納されている数値を読み取り、具体的には以下のとおりである：
２次元行列Ｒから２つの符号点座標を有するユニットを検索し、前記方向指示ブロックに対応し、符号点座標から方向指示ブロックの回転方向を計算する。通常、ユーザがスムーズに操作できるように、電子装置１０３の画像取り込み口の面積は、図１２のドットマトリックス２次元コード１つをカバーするように設定し、これにより、電子装置１０３の取り込んだ各フレームのデジタル画像に含まれる符号点５００は、少なくとも図１２のドットマトリックスコード１つを完全に再構築することができ、構築される２次元行列Ｒには、少なくとも１つの前記方向指示ブロックが含まれる。図１９に示すように、符号点Ｔ０およびＴ１の位置する矩形ブロックは、方向指示ブロックで、そして符号点Ａ、Ｂ、Ｃ、Ｄの位置する矩形ブロックは、座標補正ブロックである。Ｔ０およびＴ１からドットマトリックス２次元コードの回転方向を計算する方法は、以下のとおりである：
座標補正ブロックの中心点Ｅの回転調整後の符号点座標Ｅ（ｘｅ，ｙｅ）を計算する：符号点Ａ（ｘａ，ｙａ）および符号点Ｂ（ｘｂ，ｙｂ）が同時に存在する場合、Ｅは、線分Ｌａｂの中点で、すなわちＥ（ｘｅ，ｙｅ）＝（（ｘａ＋ｘｂ）／２，（ｙａ＋ｙａ）／２）となる；そうでない場合、符号点Ｃ（ｘｃ，ｙｃ）および符号点Ｄ（ｘｄ，ｙｄ）が同時に存在するか否かを判断し、符号点Ｃ（ｘｃ，ｙｃ）および符号点Ｄ（ｘｄ，ｙｄ）が同時に存在する場合、Ｅは、線分Ｌｃｄの中点で、すなわちＥ（ｘｅ，ｙｅ）＝（（ｘｃ＋ｘｄ）／２，（ｙｃ＋ｙｄ）／２）となる；そうでない場合、Ｔ０およびＴ１の２つの座標点を破棄し、２つの符号点座標を有するユニットを再検索する。
【００６１】
Ｔ０からＥまでの距離Ｄ０、Ｔ１からＥまでの距離Ｄ１を計算し、Ｄ０＜Ｄ１の場合、Ｔ０は、方向指示ブロックの中心点で、座標補正の機能も有し、そうでない場合、Ｔ０とＴ１の座標値を入れ替える。
【００６２】
Ｔ１およびＴ０の座標が既知であるため、逆三角関数を用いて角度θを計算し、φは、所定の許容誤差値である。
【００６３】
θ∈［１３５°−φ，１３５°＋φ］の場合、２次元行列Ｒが原ドットマトリックス２次元コードに対して０°回転したものと見なす。
θ∈［４５°−φ，４５°＋φ］の場合、２次元行列Ｒが原ドットマトリックス２次元コードに対して９０°回転したものと見なす。
θ∈［３１５°−φ，３１５°＋φ］の場合、２次元行列Ｒが原ドットマトリックス２次元コードに対して１８０°回転したものと見なす。
θ∈［２２５°−φ，２２５°＋φ］の場合、２次元行列Ｒが原ドットマトリックス２次元コードに対して２７０°回転したものと見なす。
上記いずれにも該当しない場合、Ｔ０およびＴ１の２つの座標点を破棄し、２つの符号点座標を有するユニットを再検索する。
【００６４】
補間アルゴリズムを用いて、座標補正ブロックの符号点座標からデータ格納ブロックの中心座標を計算し、当該中心座標からの符号点のオフセット量に基づき、格納されているデータを読み取る：方向指示ブロックの位置が確定すると、座標補正ブロックも確定し、図２０は、隣接する座標補正ブロックにおける符号点を連結したことを示しており、座標補正ブロックにおける符号点が、略正方形のグリッドを形成することが分かり、このため座標補正の機能を効果的に果たすことができる。座標補正ブロックが確定すると、データ格納ブロックの中心座標を隣接する座標補正ブロックにおける符号点座標から線形補間法により計算することができる。
【００６５】
まず左右に隣接する座標補正符号点が存在するか否かを判断し、図２１に示すように、ＧおよびＨが存在する場合、データ格納ブロックの中心座標はＦ＝（Ｇ＋Ｈ）／２となる。
そうでない場合、上下に隣接する座標補正符号点が存在するか否かを判断し、図２２に示すように、ＧおよびＨが存在する場合、データ格納ブロックの中心座標はＦ＝（Ｇ＋Ｈ）／２となる。
そうでない場合、左下および右上に隣接する座標補正符号点が存在するか否かを判断し、図２３に示すように、ＧおよびＨが存在する場合、データ格納ブロックの中心座標はＦ＝（Ｇ＋Ｈ）／２となる。
そうでない場合、右上および左下に隣接する座標補正符号点が存在するか否かを判断し、図２４に示すように、ＧおよびＨが存在する場合、データ格納ブロックの中心座標はＦ＝（Ｇ＋Ｈ）／２となる。
そうでない場合、同一行の左側に最も隣接する２つの座標補正符号点が存在するか否かを判断し、図２５に示すように、ＧおよびＨが存在する場合、データ格納ブロックの中心座標はＦ＝Ｇ＋（Ｇ−Ｈ）／２となる。
そうでない場合、同一行の右側に最も隣接する２つの座標補正符号点が存在するか否かを判断し、図２６に示すように、ＧおよびＨが存在する場合、データ格納ブロックの中心座標はＦ＝Ｇ＋（Ｇ−Ｈ）／２となる。
そうでない場合、同一行の上方に最も隣接する２つの座標補正符号点が存在するか否かを判断し、図２７に示すように、ＧおよびＨが存在する場合、データ格納ブロックの中心座標はＦ＝Ｇ＋（Ｇ−Ｈ）／２となる。
そうでない場合、同一行の下方に最も隣接する２つの座標補正符号点が存在するか否かを判断し、図２８に示すように、ＧおよびＨが存在する場合、データ格納ブロックの中心座標はＦ＝Ｇ＋（Ｇ−Ｈ）／２となる。
上記の条件はいずれも満足しない場合、当該符号点５００を破棄する。
【００６６】
図２９では、各記号「＋」は、上記の補間法により計算されるデータ格納ブロックの中心座標に基づき描画され、同図によりデータ符号点のデータ格納ブロック中心座標からオフセットする形態が明らかになる。
【００６７】
図２９における各データ符号点Ｉ（ｘｉ，ｙｉ）につき、そのオフセット基準点をＦ（ｘｆ，ｙｆ）、すなわち図２８における記号「＋」に定義し、座標の計算における最大許容誤差をｅに設定し、ＨＳ＝ＩＮＴ（（ｘｉ−ｘｆ）／ｅ）により正規化する水平オフセット量を計算し、ここで、ＩＮＴは切り捨て演算であり、ＨＳ＜−１の場合、ＨＳ＝−１とし、ＨＳ＞１の場合、ＨＳ＝１とする；ＶＳ＝ＩＮＴ（（ｙｉ−ｙｆ）／ｅ）により正規化する鉛直オフセット量を計算し、ＶＳ＜−１の場合、ＶＳ＝−１とし、ＶＳ＞１の場合、ＶＳ＝１とする；このように、（ＨＳ，ＶＳ）の取得する値は、９種の組み合わせがあり、それぞれ９進数０〜８を格納し、対応関係は、表１に示すとおりである。
【００６８】
【表１】
2019505927.tif 000003
【００６９】
なお図２９における符号点行列が図１２に対して回転した場合、その回転方向に基づき上表の９進数について修正する必要がある。
【００７０】
Ｓ６：前記回転方向およびオフセット量に基づき完全な前記ドットマトリックス２次元コードを再構築し、それに格納されているデータを読み取る。
【００７１】
本実施例では、図３０に示すように、完全な前記ドットマトリックス２次元コードを再構築することは、以下のサブステップを含む：
Ｓ６０１：前記方向指示ブロック、前記座標補正ブロックおよび前記データ格納ブロックの正しい基準位置をそれぞれ取得する。
【００７２】
Ｓ６０２：前記方向指示ブロック、前記座標補正ブロックおよび前記データ格納ブロックと特徴的にマッチングする前記２次元行列のユニットをそれぞれ認識し、前記方向指示ブロックと特徴的にマッチングするユニットを原点位置とし、前記座標補正ブロックおよび前記データ格納ブロックと特徴的にマッチングするユニットの相対的位置を確定する。
【００７３】
Ｓ６０３：前記原点位置を前記方向指示ブロックの正しい基準位置と重畳させ、座標補正ブロックと特徴的にマッチングする前記２次元行列のユニットの相対的位置を前記座標補正ブロックの正しい基準位置と重畳させる。
【００７４】
Ｓ６０４：前記正しい基準位置を参照し、前記２次元行列における前記仮想符号点格納ブロック４００を分解して正しい位置に移動することにより、前記ドットマトリックス２次元コードと行列数および配列が同一の２次元行列ＦＲを再構築する。
【００７５】
図２９に示すように、それは完全なドットマトリックス２次元コードを含んでいないが、その全ての符号点５００で完全なドットマトリックス２次元コードを再構築できる。図３１を用いて、再構築の方法を分かりやすく説明する。１００１、１００２、１００３、１００４は、それぞれ完全で同一のコンテンツを有するドットマトリックス２次元コードを示し、しかも隙間なくスプライスされており、領域１０１０は、電子装置１０３の有効な画像取込み領域であり、ドットマトリックス２次元コード１００１〜１００４のいずれも完全にカバーしていないが、同図から分かるように、ＪブロックをＪ′に移動し、ＫブロックをＫ′に移動し、ＰブロックをＰ′領域に移動すれば、Ｏ、Ｋ′、Ｊ′、Ｐ′の４つのブロックが完全な１００２ブロックを再構築している。
【００７６】
なお前記ドットマトリックス２次元コードを生成する前に、原データについて検証または前方誤り訂正法により検証データを生成し、検証データもドットマトリックス２次元コードに格納される（本実施例では、読みやすくするために、検証データを使用しない）。ドットマトリックス２次元コード１００１〜１００４に格納されているデータが同一でなければ、再構築されるドットマトリックスコードは、有効なドットマトリックスコードではなく、電子装置１０３は、データ検証の失敗により認識を拒否する。このようなケースは、電子装置１０３を用いて２つの読み取り可能な対象領域の接続箇所をクリックして閲読しようとするときに発生し、接続箇所の面積の読み取り可能な面積全体に占める割合が非常に小さく、実際に操作するとき、クリックして閲読する確率が低いため、ユーザの使用への影響はない。
【００７７】
結果を格納するための６×６の２次元行列ＦＲを構築し、図２９のＵ行目Ｖ列目の符号点に格納されている数値を２次元行列ＦＲのＷ行目Ｚ列目に入れ、（Ｗ，Ｚ）と（Ｕ，Ｖ）の演算関係は、以下のとおりである：
図２９が図１２に対して回転しなかった場合、以下の関係を有する：
Ｗ＝（Ｖ−ｏｒｉｇｉｎ＿ｃｏｌ＋１８）ｍｏｄ６；
Ｚ＝（Ｕ−ｏｒｉｇｉｎ＿ｒｏｗ＋１８）ｍｏｄ６。
図２９が図１２に対して９０°回転した場合、以下の関係を有する：
Ｗ＝（Ｕ−ｏｒｉｇｉｎ＿ｒｏｗ＋１８）ｍｏｄ６；
Ｚ＝（６−（Ｖ−ｏｒｉｇｉｎ＿ｃｏｌ）＋１８）ｍｏｄ６。
図２９が図１２に対して１８０°回転した場合、以下の関係を有する：
Ｗ＝（６−（Ｖ−ｏｒｉｇｉｎ＿ｃｏｌ）＋１８）ｍｏｄ６；
Ｚ＝（６−（Ｕ−ｏｒｉｇｉｎ＿ｒｏｗ）＋１８）ｍｏｄ６。
図２９が図１２に対して２７０°回転した場合、以下の関係を有する：
Ｗ＝（６−（Ｖ−ｏｒｉｇｉｎ＿ｒｏｗ）＋１８）ｍｏｄ６；
Ｚ＝（Ｖ−ｏｒｉｇｉｎ＿ｃｏｌ＋１８）ｍｏｄ６。
【００７８】
上記の４セットの式において、ｍｏｄは剰余演算であり、＋１８により、被除数が正数であることが保証され、（ｏｒｉｇｉｎ＿ｒｏｗ，ｏｒｉｇｉｎ＿ｃｏｌ）は、ドットマトリックスコードの原点の行列座標で、すなわち方向指示ブロックの行列座標からそれぞれ２を減算したものであり、図２９には、方向指示ブロックが７行目８列目に位置し（左上隅の矩形ブロックを１行目１列目に定義する）、図２９の図１２に対する回転角度が０であるため、ｏｒｉｇｉｎ＿ｒｏｗ＝５，ｏｒｉｇｉｎ＿ｃｏｌ＝６となる。なお図２９においては複数の矩形ブロックがＦＲにおける同一のユニットに対応するケースがあり得る。これは、信頼度の最も高い符号点５００を保留することで解消できる。データ格納ブロックの中心座標は、隣接する座標補正符号点の座標に対する補間により得られ、補間方法が異なればデータ格納ブロックの座標補正ブロックからの相対的位置が変わるため、信頼度も異なる。信頼度を以下のとおり定義する：
【００７９】
図２１または図２２の方法で補間する場合、信頼度は１５点；
図２３または図２４の方法で補間する場合、信頼度は１０点；
図２５〜図２８のいずれかの方法で補間する場合、信頼度は７点とする。
【００８０】
【表２】
2019505927.tif 000004
【００８１】
表２は、上記方法により得られるＦＲ行列であり、各ユニットは、８ビットの１６進数で、下位４ｂｉｔの値は、データ格納ブロックに格納されている数値で、上位４ｂｉｔの値は、信頼度であり、特に、数値ｆｆは、ドットマトリックスコードにおける座標補正ブロックおよび方向指示ブロックに対応する。これで、図１２に格納されているデータ、すなわち３セットの９進数０〜８を復号により完全に復元している。
【００８２】
当業者は、上記の説明において様々な変形が可能で、全ての実施例は、あくまでも１つまたは複数の特定の実施形態について説明するためのものに過ぎないことに意識できる。例えば、前記ドットマトリックス２次元コードはＭ×Ｎの仮想符号点格納ブロックからなり、且つＭ≧４、Ｎ≧４で、ＭおよびＮがともに偶数であり、以下の形態にて符号化することで、本発明の技術的効果を実現することができる：
前記仮想符号点格納ブロックに符号点を設定することにより複数の座標補正ブロック、複数のデータ格納ブロックおよび１つの方向指示ブロックをそれぞれ形成する；前記複数の座標補正ブロックに設定される符号点は、いずれも前記仮想符号点格納ブロックの中心に位置する；前記方向指示ブロックに少なくとも２つの符号点が設定され、そのうち１つのみが前記仮想符号点格納ブロックの中心に位置する；前記複数の座標補正ブロックは、いずれも前記方向指示ブロックから離間し、前記複数のデータ格納ブロックの間に分布する；前記複数のデータ格納ブロックに設定される符号点は、データ情報を格納する；前記複数の座標補正ブロックおよび複数のデータ格納ブロック内は、いずれも１つの符号点のみを有する。
【００８３】
上記のとおり、本発明の一例としての実施例について記載し説明しているが、これに対して様々な変更や置換を、本発明の趣旨を逸脱することなく行うことができることは当業者にとって自明である。また、ここに記載している本発明の趣旨から逸脱することなく、様々な修正をして特定の状況に本発明を適用することもできる。したがって、本発明は、ここに開示する特定の実施例に限定されず、本発明の範囲に属するあらゆる実施例およびその均等物を含んでもよい。
【図１】
2019505927.tif 000005
【図２】
2019505927.tif 000006
【図３】
2019505927.tif 000007
【図４】
2019505927.tif 000008
【図５】
2019505927.tif 000009
【図６】
2019505927.tif 000010
【図７】
2019505927.tif 000011
【図８】
2019505927.tif 000012
【図９】
2019505927.tif 000013
【図１０】
2019505927.tif 000014
【図１１】
2019505927.tif 000015
【図１２】
2019505927.tif 000016
【図１３】
2019505927.tif 000017
【図１４】
2019505927.tif 000018
【図１５】
2019505927.tif 000019
【図１６】
2019505927.tif 000020
【図１７Ａ】
2019505927.tif 000021
【図１７Ｂ】
2019505927.tif 000022
【図１８】
2019505927.tif 000023
【図１９】
2019505927.tif 000024
【図２０】
2019505927.tif 000025
【図２１】
2019505927.tif 000026
【図２２】
2019505927.tif 000027
【図２３】
2019505927.tif 000028
【図２４】
2019505927.tif 000029
【図２５】
2019505927.tif 000030
【図２６】
2019505927.tif 000031
【図２７】
2019505927.tif 000032
【図２８】
2019505927.tif 000033
【図２９】
2019505927.tif 000034
【図３０】
2019505927.tif 000035
【図３１】
2019505927.tif 000036
【国際調査報告】
2019505927.tif 000037
2019505927.tif 000038
2019505927.tif 000039
2019505927.tif 000040