本発明の課題は、解読対象情報の高精度な解読に寄与する二次元コード、記録装置、識別装置及びプログラムを提供することである。
上記課題を解決するために、請求項1に記載の二次元コードは、被記録対象領域における特定領域に記録され且つ解読対象情報の解読を支援する支援情報が複数の画素の特定色の有無によって表現された解読支援二値図柄、及び前記被記録対象領域における前記特定領域以外の領域に記録され且つ前記解読対象情報が複数の画素の前記特定色の有無によって表現された解読対象二値図柄を有する読取対象図柄と、前記読取対象図柄の特定位置に挿入され、前記特定色の有無によって表現されると共に前記解読支援二値図柄及び前記解読対象二値図柄の少なくとも一方に含まれる画素の前記特定色の有無を識別するための基準とする基準情報が複数の画素の特定色の有無によって表現された基準二値図柄と、を含み、前記基準二値図柄は、互いに色彩の異なる一対の画像領域であり、前記解読支援二値図柄及び前記解読対象二値図柄を含めた前記被記録対象領域を分割して得られた隣接する分割領域の一方の分割領域に、前記一対の画像領域のうちの一方が位置し、前記隣接する分割領域の他方の分割領域に、前記一対の画像領域のうちの他方が位置するように、前記基準二値図柄は、前記隣接する分割領域を跨いで配置された。
上記課題を解決するために、請求項2に記載の二次元コードは、被記録対象領域における特定領域に記録され且つ解読対象情報の解読を支援する支援情報が複数の画素の特定色の有無によって表現された解読支援二値図柄、及び前記被記録対象領域における前記特定領域以外の領域に記録され且つ前記解読対象情報が複数の画素の前記特定色の有無によって表現された解読対象二値図柄を有する読取対象図柄と、前記読取対象図柄の特定位置に挿入され、各々前記特定色の有無によって表現されると共に前記解読支援二値図柄及び前記解読対象二値図柄の少なくとも一方に含まれる画素の前記特定色の有無を識別するための基準とする基準情報が複数の画素の特定色の有無によって表現された複数の基準二値図柄と、を含み、前記複数の基準二値図柄の各々は、互いに色彩の異なる一対の画像領域であり、前記解読支援二値図柄及び前記解読対象二値図柄を含めた前記被記録対象領域を分割して得られた隣接する分割領域の一方の分割領域に、前記一対の画像領域のうちの一方が位置し、前記隣接する分割領域の他方の分割領域に、前記一対の画像領域のうちの他方が位置するように、前記複数の基準二値図柄の各々は、前記隣接する分割領域を跨いで配置された。
請求項2に記載の二次元コードは、請求項3に記載の発明のように、前記読取対象図柄における基準となる位置と前記基準二値図柄の各々との位置関係を、前記基準二値図柄毎に予め定められた位置関係とした、とされている。
請求項2又は請求項3に記載の二次元コードは、請求項4に記載の発明のように、前記複数の基準二値図柄を相互に予め定められた間隔となるように前記読取対象図柄に挿入した。
請求項2から請求項4の何れか1項に記載の二次元コードは、請求項5に記載の発明のように、前記基準二値図柄が、前記読取対象図柄を分割して得られた領域の各々に複数挿入された、とされている。
請求項1から請求項5の何れか1項に記載の二次元コードは、請求項6に記載の発明のように、前記分割領域を、前記読取対象図柄をマトリクス状に分割して得られた領域としたものとした、とされている。
請求項1〜請求項6の何れか1項に記載の二次元コードは、請求項7に記載の発明のように、前記特定色を無彩色としたものとした。
請求項1〜請求項6の何れか1項に記載の二次元コードは、請求項8に記載の発明のように、前記特定色を有彩色とした、とされている。
請求項9に記載の二次元コードは、被記録対象領域における特定領域に記録され且つ解読対象情報の解読を支援する支援情報が複数の画素の特定色の有無によって表現された解読支援二値図柄、及び前記被記録対象領域における前記特定領域以外の領域に記録され且つ前記解読対象情報が複数の画素の前記特定色の有無によって表現された解読対象二値図柄を有する読取対象図柄と、前記読取対象図柄の特定位置に挿入され、前記特定色の有無によって表現されると共に前記解読支援二値図柄及び前記解読対象二値図柄の少なくとも一方に含まれる画素の前記特定色の有無を識別するための基準とする基準情報が複数の画素の特定色の有無によって表現された基準二値図柄と、を含み、前記基準二値図柄を、何れかの画素を前記特定色とした彩色の異なる一対の画素とした。
請求項10に記載の二次元コードは、被記録対象領域における特定領域に記録され且つ解読対象情報の解読を支援する支援情報が複数の画素の特定色の有無によって表現された解読支援二値図柄、及び前記被記録対象領域における前記特定領域以外の領域に記録され且つ前記解読対象情報が複数の画素の前記特定色の有無によって表現された解読対象二値図柄を有する読取対象図柄と、前記読取対象図柄の特定位置に挿入され、各々前記特定色の有無によって表現されると共に前記解読支援二値図柄及び前記解読対象二値図柄の少なくとも一方に含まれる画素の前記特定色の有無を識別するための基準とする基準情報が複数の画素の特定色の有無によって表現された複数の基準二値図柄と、を含み、前記基準二値図柄を、何れかの画素を前記特定色とした彩色の異なる一対の画素とした。
請求項11に記載の二次元コードは、被記録対象領域における特定領域に記録され且つ解読対象情報の解読を支援する支援情報が複数の画素の特定色の有無によって表現された解読支援二値図柄、及び前記被記録対象領域における前記特定領域以外の領域に記録され且つ前記解読対象情報が複数の画素の前記特定色の有無によって表現された解読対象二値図柄を有する読取対象図柄と、前記読取対象図柄の特定位置に挿入され、前記特定色の有無によって表現されると共に前記解読支援二値図柄及び前記解読対象二値図柄の少なくとも一方に含まれる画素の前記特定色の有無を識別するための基準とする基準情報が複数の画素の特定色の有無によって表現された基準二値図柄と、を含み、前記解読支援二値図柄及び前記解読対象二値図柄の一方を一対の無彩色で形成すると共に他方を一対の有彩色で形成し、前記基準二値図柄を、一対の無彩色で形成され且つ前記解読支援二値図柄及び前記解読対象二値図柄の一方に含まれる画素の有無を識別するための基準とする第1基準図柄、及び一対の有彩色で形成され且つ前記解読支援二値図柄及び前記解読対象二値図柄の他方に含まれる画素の有無を識別するための基準とする第2基準図柄を含んで構成した。
請求項12に記載の二次元コードは、被記録対象領域における特定領域に記録され且つ解読対象情報の解読を支援する支援情報が複数の画素の特定色の有無によって表現された解読支援二値図柄、及び前記被記録対象領域における前記特定領域以外の領域に記録され且つ前記解読対象情報が複数の画素の前記特定色の有無によって表現された解読対象二値図柄を有する読取対象図柄と、前記読取対象図柄の特定位置に挿入され、各々前記特定色の有無によって表現されると共に前記解読支援二値図柄及び前記解読対象二値図柄の少なくとも一方に含まれる画素の前記特定色の有無を識別するための基準とする基準情報が複数の画素の特定色の有無によって表現された複数の基準二値図柄と、を含み、前記解読支援二値図柄及び前記解読対象二値図柄の一方を一対の無彩色で形成すると共に他方を一対の有彩色で形成し、前記基準二値図柄を、一対の無彩色で形成され且つ前記解読支援二値図柄及び前記解読対象二値図柄の一方に含まれる画素の有無を識別するための基準とする第1基準図柄、及び一対の有彩色で形成され且つ前記解読支援二値図柄及び前記解読対象二値図柄の他方に含まれる画素の有無を識別するための基準とする第2基準図柄を含んで構成した。
請求項11又は請求項12に記載の二次元コードは、請求項13に記載の発明のように、前記第1基準図柄及び前記第2基準図柄の各々を、何れかの画素を前記特定色とした彩色の異なる一対の画素とした、とされている。
請求項1〜請求項13の何れか1項に記載の二次元コードは、請求項14に記載の発明のように、前記被記録対象領域を四角形状とし、前記解読支援二値図柄を、前記被記録対象領域の四隅のうちの少なくとも三隅に記録され且つ前記被記録対象領域に含まれる画素の位置の特定を支援する位置特定支援情報が複数の画素の特定色の有無によって表現された位置特定支援二値図柄を含んで構成した、とされている。
請求項14に記載の二次元コードを、請求項15に記載の発明のように、前記位置特定支援二値図柄を、前記特定色を有する互いに隣接する複数の画素の集合と前記特定色を有しない互いに隣接する複数の画素の集合とを組み合わせて形成した、とされている。
請求項14又は請求項15に記載の二次元コードは、請求項16に記載の発明のように、前記被記録対象領域の少なくとも一辺に沿って該被記録対象領域の予め定められた位置に挿入され且つ前記位置特定支援二値図柄による前記読取対象図柄に含まれる画素の位置の特定の支援を補助する支援補助情報が複数の画素の前記特定色の有無によって表現された支援補助二値図柄を更に含む。
請求項14又は請求項15に記載の二次元コードは、請求項17に記載の発明のように、前記被記録対象領域の少なくとも一辺に沿って該被記録対象領域の予め定められた位置に各々挿入され且つ前記位置特定支援二値図柄による前記読取対象図柄に含まれる画素の位置の特定の支援を補助する支援補助情報が複数の画素の前記特定色の有無によって各々表現された複数の支援補助二値図柄を更に含む。
請求項17に記載の二次元コードは、請求項18に記載の発明のように、前記支援補助二値図柄を、前記被記録対象領域の一辺単位で該被記録対象領域に複数挿入した、とされている。
請求項18に記載の二次元コードは、請求項19に記載の発明のように、前記複数の支援補助二値図柄を、前記被記録対象領域の一辺単位で前記位置特定支援二値図柄を含めて相互の間隔が揃うように配置した、とされている。
請求項17〜請求項19の何れか1項に記載の二次元コードは、請求項20に記載の発明のように、前記支援補助二値図柄を、前記被記録対象領域の少なくとも一組の対辺の各辺に沿って前記被記録対象領域に挿入した、とされている。
請求項20に記載の二次元コードは、請求項21に記載の発明のように、前記一組の対辺の各辺に沿って前記被記録対象領域に挿入された前記支援補助二値図柄の各々を結ぶ線分上の前記被記録対象領域に挿入され且つ前記支援補助情報に相当する情報が複数の画素の前記特定色の有無によって表現された他の支援補助二値図柄を更に含む。
上記課題を解決するために、請求項22に記載の記録装置は、請求項1〜請求項21の何れか1項に記載の二次元コードを記録媒体に記録する記録手段を含む。
上記課題を解決するために、請求項23に記載の識別装置は、請求項1〜請求項21の何れか1項に記載の二次元コードにおける前記解読支援二値図柄及び前記解読対象二値図柄の少なくとも一方に含まれる画素を識別対象画素とし、前記二次元コードを読取装置により読み取って得られた読取結果から、前記識別対象画素を示す識別対象画素情報及び前記基準二値図柄を示す基準二値図柄情報を取得する取得手段と、前記取得手段によって取得された前記基準二値図柄情報に基づいて、前記取得手段によって取得された前記識別対象画素情報により示される識別対象画素の前記特定色の有無を識別する識別手段と、を含む。
請求項23に記載の識別装置を、請求項24に記載の発明のように、前記解読支援二値図柄及び前記解読対象二値図柄の少なくとも一方に含まれる画素であって、前記基準二値図柄と予め定められた距離内にある画素を前記識別対象画素としたものとした。
請求項23又は請求項24に記載の識別装置は、請求項25に記載の発明のように、前記取得手段が、前記解読対象二値図柄に含まれる画素を前記識別対象画素とした場合、前記読取結果から、前記解読支援二値図柄を示す解読支援二値図柄情報を更に取得し、前記識別手段が、前記取得手段によって取得された前記基準二値図柄情報及び前記解読支援二値図柄情報に基づいて、前記取得手段によって取得された前記識別対象画素情報により示される識別対象画素の前記特定色の有無を識別する、とされている。
上記課題を解決するために、請求項26に記載のプログラムは、請求項1〜請求項21の何れか1項に記載の二次元コードにおける前記解読支援二値図柄及び前記解読対象二値図柄の少なくとも一方に含まれる画素を識別対象画素とし、前記二次元コードを読取装置により読み取って得られた読取結果から、前記識別対象画素を示す識別対象画素情報及び前記基準二値図柄を示す基準二値図柄情報を取得する取得手段、並びに、前記取得手段によって取得された前記基準二値図柄情報に基づいて、前記取得手段によって取得された前記識別対象画素情報により示される識別対象画素の前記特定色の有無を識別する識別手段としてコンピュータを機能させるためのものとした。
請求項1、請求項2、請求項22、請求項23及び請求項26に係る発明によれば、二次元コードが、読取対象図柄の特定位置に挿入され、特定色の有無によって表現されると共に解読支援二値図柄及び解読対象二値図柄の少なくとも一方に含まれる画素の特定色の有無を識別するための基準とする基準情報が複数の画素の特定色の有無によって表現された基準二値図柄を含む構成を有しない場合に比べ、解読対象情報の高精度な解読に寄与する、という効果が得られる。
請求項1及び請求項2に係る発明によれば、基準二値図柄を、解読支援二値図柄及び解読対象二値図柄を含めた被記録対象領域を分割して得られた分割領域の各々に挿入した構成を有しない場合に比べ、解読支援二値図柄及び解読対象二値図柄の少なくとも一方に含まれる画素の特定色の有無の高精度な識別に寄与する、という効果が得られる。
請求項5に係る発明によれば、基準二値図柄を、読取対象図柄を分割して得られた領域の各々に複数挿入した構成を有しない場合に比べ、解読支援二値図柄及び解読対象二値図柄の少なくとも一方に含まれる画素の特定色の有無の高精度な識別に寄与する、という効果が得られる。
請求項6に係る発明によれば、分割領域を、読取対象図柄をマトリクス状に分割して得られた領域とした構成を有しない場合に比べ、画素の特定色の有無を識別する処理にかかる負荷の軽減に寄与する、という効果が得られる。
請求項3に係る発明によれば、読取対象図柄における基準となる位置と基準二値図柄の各々との位置関係を、基準二値図柄毎に予め定められた位置関係とした構成を有しない場合に比べ、画素の特定色の有無を識別する処理にかかる負荷の軽減に寄与する、という効果が得られる。
請求項4に係る発明によれば、複数の基準二値図柄を相互に予め定められた間隔となるように読取対象図柄に挿入した構成を有しない場合に比べ、画素の特定色の有無を識別する処理にかかる負荷の軽減に寄与する、という効果が得られる。
請求項7に係る発明によれば、特定色を無彩色とした構成を有しない場合に比べ、読取対象図柄に含まれる情報が無彩色の特定色の有無で表現された場合であっても解読対象情報の高精度な解読に寄与する、という効果が得られる。
請求項8に係る発明によれば、特定色を有彩色とした構成を有しない場合に比べ、読取対象図柄に含まれる情報が有彩色の特定色の有無で表現された場合であっても解読対象情報の高精度な解読に寄与する、という効果が得られる。
請求項9及び請求項10に係る発明によれば、基準二値図柄を、何れかの画素を特定色とした彩色の異なる一対の画素とした構成を有しない場合に比べ、解読対象情報の格納量の増大に寄与する、という効果が得られる。
請求項11及び請求項12に係る発明によれば、解読支援二値図柄及び解読対象二値図柄の一方を一対の無彩色で形成すると共に他方を一対の有彩色で形成し、基準二値図柄を、一対の無彩色で形成され且つ解読支援二値図柄及び解読対象二値図柄の一方に含まれる画素の有無を識別するための基準とする第1基準図柄、及び一対の有彩色で形成され且つ解読支援二値図柄及び解読対象二値図柄の他方に含まれる画素の有無を識別するための基準とする第2基準図柄を含む構成を有しない場合に比べ、読取対象図柄に含まれる情報が無彩色の特定色の有無で表現された場合であっても読取対象図柄に含まれる情報が有彩色の特定色の有無で表現された場合であっても解読対象情報の高精度な解読に寄与する、という効果が得られる。
請求項13に係る発明によれば、第1基準図柄及び第2基準図柄の各々を、何れかの画素を前記特定色とした彩色の異なる一対の画素とした構成を有しない場合に比べ、解読対象情報の格納量の増大に寄与する、という効果が得られる。
請求項14に係る発明によれば、被記録対象領域を四角形状とし、解読支援二値図柄を、被記録対象領域の四隅のうちの少なくとも三隅に記録され且つ被記録対象領域に含まれる画素の位置の特定を支援する位置特定支援情報が複数の画素の特定色の有無によって表現された位置特定支援二値図柄を含む構成を有しない場合に比べ、読取対象図柄に含まれる画素の位置の高精度な特定に寄与する、という効果が得られる。
請求項15に係る発明によれば、位置特定支援二値図柄を、特定色を有する互いに隣接する複数の画素の集合と前記特定色を有しない互いに隣接する複数の画素の集合とを組み合わせて形成した構成を有しない場合に比べ、位置特定支援二値図柄の正確な検出に寄与する、という効果が得られる。
請求項16に係る発明によれば、被記録対象領域の少なくとも一辺に沿って該被記録対象領域の予め定められた位置に挿入され且つ前記位置特定支援二値図柄による前記読取対象図柄に含まれる画素の位置の特定の支援を補助する支援補助情報が複数の画素の前記特定色の有無によって表現された支援補助二値図柄を更に含む構成を有しない場合に比べ、読取対象図柄に含まれる画素の位置の高精度な特定に寄与する、という効果が得られる。
請求項17に係る発明によれば、被記録対象領域の少なくとも一辺に沿って被記録対象領域の予め定められた位置に各々挿入され且つ位置特定支援二値図柄による読取対象図柄に含まれる画素の位置の特定の支援を補助する支援補助情報が複数の画素の前記特定色の有無によって各々表現された複数の支援補助二値図柄を更に含む構成を有しない場合に比べ、読取対象図柄に含まれる画素の位置の高精度な特定に寄与する、という効果が得られる。
請求項18に係る発明によれば、支援補助二値図柄を、前記被記録対象領域の一辺単位で該被記録対象領域に複数挿入した構成を有しない場合に比べ、読取対象図柄に含まれる画素の位置の高精度な特定に寄与する、という効果が得られる。
請求項19に係る発明によれば、複数の支援補助二値図柄を、被記録対象領域の一辺単位で位置特定支援二値図柄を含めて相互の間隔が揃うように配置した構成を有しない場合に比べ、読取対象図柄に含まれる画素の位置を特定する処理にかかる負荷が軽減される、という効果が得られる。
請求項20に係る発明によれば、支援補助二値図柄を、被記録対象領域の少なくとも一組の対辺の各辺に沿って被記録対象領域に挿入した構成を有しない場合に比べ、読取対象図柄に含まれる画素の位置の高精度な特定に寄与する、という効果が得られる。
請求項21に係る発明によれば、一組の対辺の各辺に沿って被記録対象領域に挿入された支援補助二値図柄の各々を結ぶ線分上の被記録対象領域に挿入され且つ支援補助情報に相当する情報が複数の画素の特定色の有無によって表現された他の支援補助二値図柄を更に含む構成を有しない場合に比べ、読取対象図柄に含まれる画素の位置の高精度な特定に寄与する、という効果が得られる。
請求項24に係る発明によれば、解読支援二値図柄及び解読対象二値図柄の少なくとも一方に含まれる画素であって、基準二値図柄と予め定められた距離内にある画素を識別対象画素とした構成を有しない場合に比べ、解読支援二値図柄及び解読対象二値図柄の少なくとも一方に含まれる画素の特定色の有無が高精度に識別される、という効果が得られる。
請求項25に係る発明によれば、取得手段が、解読対象二値図柄に含まれる画素を識別対象画素とした場合、読取結果から、解読支援二値図柄を示す解読支援二値図柄情報を更に取得し、識別手段が、取得手段によって取得された基準二値図柄情報及び解読支援二値図柄情報に基づいて、取得手段によって取得された識別対象画素情報により示される識別対象画素の特定色の有無を識別する構成を有しない場合に比べ、解読対象二値図柄に含まれる画素の特定色の有無が高精度に識別される、という効果が得られる。
以下、図面を参照して、本発明を実施するための実施の形態の一例について詳細に説明する。
[第1の実施の形態]
図1は、本第1の実施の形態に係る二次元コードを製造する記録装置10の構成の一例を示す構成図である。図1に示すように、記録装置10は、UI(ユーザ・インタフェース)パネル12、給紙部14、記録手段の一例である画像記録部16、及び排出台18を備えている。
UIパネル12は、タッチパネル・ディスプレイ12A及びスイッチ12Bを備え、タッチパネル・ディスプレイ12A及びスイッチ12Bを介して、記録媒体の一例である記録用紙への二次元コードの記録等の各種指示がユーザによって行われると共に、タッチパネル・ディスプレイ12Aに必要事項が表示される。給紙部14は、記録用紙を収容すると共に必要に応じて画像記録部16に記録用紙を給紙するものである。
画像記録部16は、例えばゼログラフィ方式で画像を記録する所謂プリンタ機能を備えたものである。なお、記録方式はゼログラフィ方式に限定されるものではなく、インクジェット方式やサーマル方式などの他の記録方式であっても良いことは言うまでもない。画像記録部16は、ユーザによってUIパネル12を介して二次元コードの記録用紙への記録が指示された場合、給紙部14を作動させることによって給紙部14からの給紙を受け、これによって取得した記録用紙に対して、二次元コードを示す二次元コード情報に基づいて二次元コードを記録し、二次元コードが記録された記録用紙を排出台18に排出する。
図2は、図1に示す記録装置10によって記録用紙Pに記録された本実施の形態に係るマトリクス型二次元コード30(以下、「二次元コード30」という。)の構成の一例を示す構成図である。図2に示すように、記録用紙Pに記録された二次元コード30は、マトリクス状に配置された複数の画素の特定色の有無によって二値化情報が表現された四角形状の画像である。なお、ここでは、輪郭が四角形状の画像を例示しているが、これに限らず、楕円形や四角形以外の多角形であっても良い。
本第1の実施の形態に係る二次元コード30は、読取対象図柄の一例である白黒による二値図柄である。すなわち、例えば黒を特定色とし、この特定色の有無によって種々の情報が表現された二値図柄と言える。二次元コード30は、位置・向き検出シンボル32A〜32Dを有する解読支援二値図柄32、解読対象二値図柄34及び複数の基準二値図柄36を含んで構成されている。すなわち、二次元コード30は、四角形状の被記録対象領域38に解読支援二値図柄32、解読対象二値図柄34及び基準二値図柄36が記録されることによって構成されている。
被記録対象領域38は、二次元コード30の輪郭によって外枠が規定されており、縦長四角形状とされている。また、被記録対象領域38は、複数の四角形状の分割領域(m行n列の分割領域)に分割されている。本第1の実施の形態では、被記録対象領域38が一例として図2に示すように4行3列の分割領域に区分けされている。
解読支援二値図柄32は、解読対象二値図柄34が如何なる解読対象情報を含んでいようとも、これに拘らず被記録対象領域38における位置及び特定色の有無の配列が固定された二値図柄であり、位置・向き検出シンボル32A〜32Dの他に、二次元コード30のバージョンを示すバージョン情報が表現された図柄(図示省略)や二次元コード30のフォーマットを示すフォーマット情報が表現された図柄(図示省略)などを含んで構成されている。
位置・向き検出シンボル32A〜32Dは、被記録対象領域38に含まれる画素の位置及び被記録対象領域38の向きを特定するための図柄である。そのため、位置・向き検出シンボル32A〜32Dは解読対象二値図柄34が如何なる解読対象情報を含んでいようとも、これに拘らず被記録対象領域38における位置及び特定色の有無の配列が固定されている。例えば、本第1の実施の形態に係る位置・向き検出シンボル32A〜32Dの各々は四角形状の二値図柄であり、位置特定支援情報の一例である白黒による2行2列の市松模様とされており、市松模様の白領域及び黒領域の各々は複数の画素の集合とされている。また、位置・向き検出シンボル32A〜32Dは被記録対象領域38の四隅に配置されている。図2に示す例では、位置・向き検出シンボル32Aが1行目1列目の分割領域に、位置・向き検出シンボル32Bが4行目1列目の分割領域に、位置・向き検出シンボル32Cが1行目3列目の分割領域に、位置・向き検出シンボル32Dが4行目3列目の分割領域に各々配置されている。すなわち、図2において、位置・向き検出シンボル32Aは被記録対象領域38の正面視左上隅に、位置・向き検出シンボル32Bは被記録対象領域38の正面視左下隅に、位置・向き検出シンボル32Cは被記録対象領域38の正面視右上隅に、位置・向き検出シンボル32Dは被記録対象領域38の正面視右下隅に各々配置されている。位置・向き検出シンボル32Dの白黒の配列は、位置・向き検出シンボル32A〜32Cの白黒の配列とは異なっている。従って、位置・向き検出シンボル32A〜32Dが読み取られて位置・向き検出シンボル32A〜32Dの相対的な位置関係が特定されることによって二次元コード30の向きが特定され、これによって二次元コード30に含まれる画素の位置が特定される。なお、図2に示す例では、位置・向き検出シンボル32Aに含まれる特定の画素の一例である正面視左上隅の画素の位置を原点として二次元コード30に含まれる画素の各々の位置が二次元座標で特定される。
解読対象二値図柄34は、被記録対象領域38における解読支援二値図柄32以外の領域に含まれる複数の画素の各々が1画素単位で解読対象情報に応じて白又は黒で表現された二値図柄である。解読対象情報とは、符号化された情報であって、復号されることによって解読される情報のことである。解読対象二値図柄34は、画素毎に解読対象情報が白又は黒で表現された図柄である。解読対象二値図柄34は、位置・向き検出シンボル32A〜32Dと共に読み取られ、これによって特定された位置・向き検出シンボル32A〜32Dの相対的な位置関係に基づいて解読対象二値図柄34を構成している複数の画素の各々の被記録対象領域38における位置が特定される。具体的には、位置・向き検出シンボル32Aの正面視左上隅の画素の位置を原点とした二次元座標で特定される。
基準二値図柄36は、解読対象二値図柄34における複数の特定位置に挿入されている。基準二値図柄36は、特定色の有無(本第1の実施の形態では一例として白黒)を識別する対象とされる画素(以下、「識別対象画素」という。)33が含まれる識別対象図柄(本第1の実施の形態では一例として解読支援二次画像32及び解読対象二値図柄34)の識別対象画素33の特定色の有無を識別するための基準とする二値図柄である。すなわち、特定色の有無を識別する際に用いられる閾値を規定する二値図柄である。基準二値図柄36は、一対の白黒の画素である。基準二値図柄36に含まれる白黒の画素の配列の向きには4種類の向きがある。すなわち、ここで言う4種類の配列の向きとは、左右に黒画素及び白画素、左右に白画素及び黒画素、上下に黒画素及び白画素、及び上下に白画素及び黒画素のことである。
基準二値図柄36は、被記録対象領域38のマトリクス状に配置された複数の画素における行方向(横方向)及び列方向(縦方向)の各々について解読対象二値図柄34に配列の向き毎に予め定められた規則に従って(例えば所定間隔毎に)挿入されている。これにより各分割領域には予め定められた位置に複数の基準二値図柄36が配置される。なお、図2に示す例では、この他にも1行目2列目の分割領域及び4行目2列目の分割領域の各々の中央部に基準二値図柄36が挿入されている。また、2行目1列目の分割領域から3行目1列目の分割領域に跨って基準二値図柄36が挿入されている。また、2行目3列目の分割領域から3行目3列目の分割領域に跨って基準二値図柄36が挿入されている。
図3は、二次元コード30を読み取るための読取装置及び画素の特定色の有無を識別する識別装置として機能するカメラ付き携帯電話機40の構成の一例を示すブロック図である。図3に示すカメラ付き携帯電話機(以下、「携帯電話機」という。)40は、送話及び受話などの一般的な固定式電話機に含まれる通話機能、電子メールを作成・送信・受信するメール機能及び静止画撮影を行う撮影機能を備えた携帯端末装置である。携帯電話機40は、携帯電話機40全体の動作を司るCPU40Aと、CPU40Aによる各種処理プログラムの実行時のワークエリア等として用いられるRAM40Bと、各種処理プログラムや各種パラメータなどが予め記憶されたROM40Cと、各種情報を記憶するために用いられる二次記憶部(ここでは、一例としてフラッシュメモリ)40Dと、通話相手から受話する受話部40Eと、通話相手に送話する送話部40Fと、各種情報を入力するために用いられる番号キー、十字キー、タッチパネル・ディスプレイに含まれるタッチパネルなどを含んで構成された入力部40Gと、タッチパネル・ディスプレイに含まれるディスプレイを有し、各種情報を表示する表示部40Hと、上記撮影機能を実現するために用いられるカメラであって、被写体を撮影し、撮影して得た画像を示す撮影画像情報を生成して出力するカメラ(例えばデジタルカメラ)40Iと、通信回線42を介して公衆電話通信網に接続され、他の携帯電話機その他の外部通信機器と通信されるように接続され、外部通信機器との間の各種情報の授受を司る外部インタフェース(I/F)40Jと、を含んで構成されている。これら各部はシステムバス40Kにより電気的に相互に接続されている。従って、CPU40Aは、RAM40B、ROM40C及び二次記憶部40Dに対するアクセスと、入力部40Gを介した各種入力情報の取得と、表示部40Hに対する各種情報の表示と、カメラ40Iの動作の制御と、カメラ40Iにより撮影して得られた撮影画像情報の取得と、受話部40E及び送話部40Fの動作の制御と、受話部40E及び送話部40Fの動作状態の把握と、外部I/F40Jを介した外部通信装置との間の各種情報の授受と、を各々行う。
なお、本第1の実施の形態に係る携帯電話機10のROM40Bには、二次元コード30の輪郭(一例として被記録対象領域38の輪郭)として予め定められた輪郭における予め定められた箇所(例えば予め定められた頂点)から各分割領域の位置を一意に特定する位置特定情報として予め定められた分割領域位置特定情報、及び分割領域における基準二値図柄の位置を一意に特定する位置特定情報として予め定められた基準二値図柄位置特定情報が予め記憶されている。
ところで、二次元コード30に含まれる解読対象二値図柄34により示される解読対象情報を解読するためには、先ず、解読支援二値図柄32及び解読対象二値図柄34を二値化する必要がある。すなわち、二次元コード30に含まれる各画素が白であるか黒であるかを閾値を用いて識別する必要がある。
しかし、従来は、例えば各画素の白及び黒を識別するための基準となる閾値が1つの固定値とされていたので、一例として図4に示すように明暗のバランスが崩れた不鮮明(例えば低コントラスト)な二次元コードを携帯電話機40のカメラ40Iで撮影することにより読み取って得られた撮影画像情報により示される画像に含まれる各画素の二値化が一例として図5に示すように正しく行われないことがあった。また、分割領域の各々に対して事前に定めた閾値を割り当てた場合であっても実際の二次元コード30の読み取り面における明るさが反映された閾値ではないため、やはり二値化が正しく行われない。
そこで、本第1の実施の形態に係る二次元コード30では、上述したように基準二値図柄36を備えることによって従来に比べて高精度な二値化を実現している。そして、携帯電話機40では、カメラ40Iにより二次元コード30を読み取り、読み取って得られた撮影画像情報に基づいて二次元コード30を二値化して解読対象情報を解読する二次元コード解読処理が実行される。
携帯電話機40では、二次元コード解読処理を実現するための各種処理がソフトウェア構成によって実現される。その一例としては、コンピュータを利用してプログラムを実行する形態が挙げられる。しかし、このようなソフトウェア構成による実現に限られるものではなく、ハードウェア構成や、ハードウェア構成とソフトウェア構成との組み合わせによって実現しても良いことは言うまでもない。
以下では、本実施の形態に係る携帯電話機40のCPU40Aが二次元コード解読処理プログラムを実行することにより二次元コード解読処理を実現する場合について説明する。この場合、二次元コード解読処理プログラムをROM40Cに予め記憶させておく形態や、記憶内容がコンピュータによって読み取られる記録媒体に記憶された状態で提供される形態、有線または無線による通信手段を介して配信される形態等を適用しても良い。
図6は、本第1の実施の形態に係る二次元コード解読処理プログラムの処理の流れの一例を示すフローチャートである。なお、ここでは、錯綜を回避するために、一例として図7に示すように明るさの分布に偏りがある二次元コード30を被写体として携帯電話機40のカメラ40Iにより静止画撮影を行う場合について説明する。また、ここでは、錯綜を回避するために、カメラ40Iにより静止画撮影を行って得られた画像に歪みがない場合について説明する。
図6のステップ100では、撮影開始の指示の受け付け待ちを行う。すなわち、ステップ100では、入力部40Gを介して撮影開始の指示が受け付けられると肯定判定となってステップ102に移行する。ステップ102では、撮影機能を働かせて静止画撮影を開始した後、ステップ104に移行する。ステップ104では、二次元コード30の画像(以下、「二次元コード画像」という。)を示す撮影画像情報を生成して予め定められた記憶領域(例えば二次記憶部40の記憶領域)αに記憶した後、ステップ106に移行し、静止画撮影が終了したか否かを判定し、否定判定となった場合にはステップ104に戻る一方、肯定判定となった場合にはステップ108に移行する。
ステップ108では、記憶領域αに記憶されている撮影画像情報により示される二次元コード画像の輪郭を示す輪郭情報を撮影画像情報から抽出した後、ステップ110に移行し、ステップ110では、上記ステップ108の処理により取得された輪郭情報により示される輪郭から分割領域位置特定情報に基づいて全ての分割領域の位置を推定することにより特定する。
次のステップ112では、上記ステップ110の処理により特定された分割領域の各々から基準二値図柄位置特定情報に基づいて分割領域の各々における基準二値図柄の位置を推定することにより特定した後、ステップ114に移行する。
ステップ114では、上記ステップ110の処理により特定された分割領域の位置に基づいて、注目すべき分割領域(注目分割領域)を決定する。すなわち、未だに二値化処理(白黒の識別)が行われていない画素を含む分割領域の1つを注目分割領域として決定する。次のステップ116では、上記ステップ114の処理によって決定された注目分割領域について、記憶領域αに記憶されている撮影画像情報により示される二次元コード画像に含まれる未だに二値化処理が行われていない画素である識別対象画素33を示す識別対象画素情報を撮影画像情報から取得した後、ステップ118に移行する。ステップ118では、上記ステップ114の処理によって決定された注目分割領域について、上記ステップ112の処理により特定された基準二値図柄の位置に基づいて、記憶領域αに記憶されている撮影画像情報により示される二次元コード画像に含まれる基準二値図柄を示す基準二値図柄情報を撮影画像情報から取得する。
次のステップ120では、上記ステップ116の処理により取得された識別対象画素情報を、上記ステップ118の処理により取得された基準二値図柄情報に基づいて二値化処理する。すなわち、基準二値図柄情報から識別対象画像の黒と白との識別に供する閾値を特定し、特定した閾値を用いて、上記ステップ116の処理により取得された識別対象画素情報により示される識別対象画素33が白であるか黒であるかの識別を行う。また、分割領域には複数の基準二値図柄が含まれているので、本ステップ120では、識別対象画素33との距離が最も短い基準二値図柄を示す基準二値図柄情報に基づいて二値化処理を行う。なお、識別対象画素33との距離が相違しない複数の基準二値図柄が存在する場合には予め定められた規則(例えば隣接する識別対象画素33との距離が短い方の基準二値図柄を示す基準二値図柄情報を採用するとの規則、最も大きな画素値を有する基準二値図柄を示す基準二値図柄情報を採用するとの規則、最も小さな画素値を有する基準二値図柄を示す基準二値図柄情報を採用するとの規則、画素値の平均値が最も大きな基準二値図柄を示す基準二値図柄情報を採用するとの規則、画素値の平均値が最も小さな基準二値図柄を示す基準二値図柄情報を採用するとの規則、或いは乱数を用いた抽選により決定する規則など)に従って何れか1つの基準二値図柄を決定しても良い。
次のステップ122では、上記ステップ120で二値化処理の対象とされた識別対象画素33の二次元コード30における位置を示す二次元座標及び上記ステップ120での二値化処理の結果を関連付けて予め定められた記憶領域(例えば二次記憶部40の記憶領域)βに記憶する。これにより記憶領域βには二値化された解読対象二値図柄34を示す解読支援二値図柄情報と二値化された解読対象二値図柄34を示す解読対象二値図柄情報が記憶される。
次のステップ124では、上記ステップ116〜122の処理によって二値化処理が未だに行われていない識別対象画素33がないか否かを判定し、否定判定となった場合にはステップ116に戻る一方、肯定判定となった場合にはステップ126に移行する。ステップ126では、未だに二値化処理が行われていない識別対象画素33を含む分割領域がないか否かを判定し、否定判定となった場合にはステップ114に戻る一方、肯定判定となった場合にはステップ128に移行する。ステップ128では、記憶領域βに記憶されている解読支援二値図柄情報に基づいて、記憶領域βに記憶されている解読対象二値図柄情報を復号した後、本二次元コード解読処理プログラムを終了する。
なお、本第1の実施の形態では、分割領域に複数の基準二値図柄36を含む場合の形態例を挙げて説明したが、これに限らず、一例として図8に示すように分割領域毎に1つの基準二値図柄36を挿入するようにしても良い。この場合、分割領域に複数の基準二値図柄36を含む場合に比べ、識別対象画素33から最も近い位置に存在する基準二値図柄36を探索する処理にかかる負荷が軽減される。また、分割領域毎に1つの基準二値図柄36を挿入する場合も分割領域における特定の位置(上述した基準二値図柄位置特定情報に相当する情報によって一意に特定される位置)に基準二値図柄36を配置すると良い。これにより、分割領域毎に異なる位置に基準二値図柄36を配置する場合に比べ、基準二値図柄36の位置を特定する処理にかかる負荷が軽減される。
また、本第1の実施の形態では、白黒の識別を行う場合の形態例を挙げて説明したが、これに限らず、例えば図9に示すように基準二値図柄(第1基準図柄の一例)36と共に一対の有彩色(ここでは一例として白赤)の有彩色基準二値図柄(第2基準図柄の一例)50を分割領域の各々に挿入しても良い。この場合、例えば解読支援二値図柄32及び解読対象二値図柄34の一方を白黒(一対の無彩色)で表現すると共に他方を白赤(一対の有彩色)で表現し、分割領域毎に、解読支援二値図柄32及び解読対象二値図柄34の一方に含まれる画素の白黒の識別を、基準二値図柄36から取得される閾値を用いて行うと共に、解読支援二値図柄32及び解読対象二値図柄34の他方に含まれる画素の白赤の識別を、有彩色基準二値図柄50から取得される閾値を用いて行う。なお、この場合も基準二値図柄36及び有彩色基準二値図柄50を分割領域における特定の位置(上述した基準二値図柄位置特定情報に相当する情報によって一意に特定される位置)に配置すると良い。この場合、基準二値図柄36及び有彩色基準二値図柄50を分割領域における特定の位置に配置しない場合に比べ、基準二値図柄36及び有彩色基準二値図柄50の位置を特定する処理にかかる負荷が軽減される。
また、解読支援二値図柄32が一対の有彩色及び一対の無彩色を組み合わせた画像であったり、解読対象二値図柄34が一対の有彩色及び一対の無彩色を組み合わせた画像であったりしても、無彩色(例えば白又は黒)が施される画素に対しては基準二値図柄36を基準にして識別を行えば良く、有彩色(例えば白又は赤)が施される画素に対しては有彩色基準二値図柄50を基準にして識別を行えば良い。
また、本第1の実施の形態では、解読支援二値図柄32に含まれる画素及び解読対象二値図柄34に含まれる画素を識別対象画素33として例示したが、解読支援二値図柄32及び解読対象二値図柄34の少なくとも一方に含まれる画素を識別対象画素33とすれば良い。
ここで、解読支援二値図柄32に含まれる画素を識別対象画素33とせずに、解読対象二値図柄34に含まれる画素を識別対象画素33としても良い理由を説明する。本第1の実施の形態では、位置・向き検出シンボル32A〜32Dの各々が一例として図2に示すように白領域及び黒領域の市松模様に形成されており、白領域及び黒領域の各々が複数の画素の集合とされている。つまり、解読対象二値図柄34では、解読対象情報が1画素単位で表現されているため、解読対象二値図柄34に含まれる1画素の二値化の失敗は解読対象情報の解読に大きな影響を及ぼす虞があるのに対し、位置・向き検出シンボル32A〜32Dでは、仮に1画素の二値化に失敗したとしても周辺の画素によってその失敗が誤り訂正処理などによって補填される。そのため、位置・向き検出シンボル32A〜32Dは、基準二値図柄36を基準にした二値化処理を行わずとも従来の手法による二値化処理によってその機能を発揮するものと考えられる。言い換えると、位置・向き検出シンボル32A〜32Dは、読取対象とされる白領域及び黒領域の面積が1画素の面積に比べて圧倒的に大きいため、解読対象二値図柄34に含まれる1画素の検出に比べ、精度良く検出されるということである。従って、位置・向き検出シンボル32A〜32Dによって二次元コード30の向き及び二次元コード30に含まれる画素の位置が確実に特定されるという前提の下で、識別対象画素33を解読対象二値図柄34に含まれる画素に限定しても良いということが言える。
また、本第1の実施の形態では、基準二値図柄36により白黒を識別するための基準となる閾値を決定する場合の形態例を挙げて説明したが、これに限らず、位置・向き検出シンボル32A〜32Dの少なくとも1つの白黒も参照して閾値を決定しても良い。例えば、位置・向き検出シンボル32Aの白領域の平均濃度と基準二値図柄36の白画素の濃度との平均値、及び位置・向き検出シンボル32Aの黒領域の平均濃度と基準二値図柄36の黒画素の濃度との平均値に基づいて閾値を決定する形態例が挙げられる。また、解読支援二値図柄32のうちの位置・向き検出シンボル32A〜32D以外のもの(例えばフォーマット情報を示す画像や読取タイミングを規定する画像など)及び基準二値図柄36に基づいて閾値を決定しても良い。
また、本第1の実施の形態では、二次元コード30に複数の基準二値図柄36が含まれている形態例を挙げて説明したが、基準二値図柄36は単数であっても良い。この場合も基準二値図柄36を有しない場合に比べ、高精度な二値化処理が行われる。
また、本第1の実施の形態では、被記録対象領域38をマトリクス状に分割して得られた複数の分割領域を例示したが、これは二次元コード30を読み取った後の処理を簡便にするための事前処理であって、必ずしもマトリクス状に分割して分割領域を得なれければならないというわけではなく、マトリクス状以外の分割形態で分割しても良い。
また、本第1の実施の形態では、説明の便宜上、分割領域を四角形状とした場合の形態例を挙げて説明したが、例えば最寄りの2つの分割領域の各々に含まれる基準二値図柄36を参照すると考えた場合、基準二値図柄36を参照する分割領域は四角形状の領域で区切られるというよりはボロノイ図のような形状になる。
また、本第1の実施の形態では、解読対象二値図柄34に基準二値図柄36を挿入した例を挙げたが、これに限らず、解読支援二値図柄32に挿入しても良い。また、有彩色基準二値図柄50も解読支援二値図柄32に挿入しても良い。
ここで、色の閾値を計算する方法について説明する。例えば、白か黒か知りたい画素Xがあるとして、その画素の近くにある色固定画素ペアP0,P1を決める。P0,P1を撮影して得た画像から閾値T0,T1を求める。その閾値の平均を、XとP0,XとP1の距離に基づいて重みを付与して計算し、それをXが白か黒かを決める閾値する。
[第2の実施の形態]
上記第1の実施の形態では、カメラ40Iにより静止画撮影を行って得られた二次元コード画像に歪みがない場合の二値化処理を例に挙げて説明したが、本第2の実施の形態では、二次元コード画像に歪みが生じている場合の二値化処理について説明する。なお、ここでは上記第1の実施の形態で説明した構成と相違しない構成については上記第1の実施の形態と相違しない符号を付してその説明を省略する。また、上記第1の実施の形態で説明した作用と相違しない作用についてもその説明を省略する。
図10は、上記第1の実施の形態で説明した二次元コード30の構成の一例を示す構成図であり、図11は本第2の実施の形態に係る二次元コード60である。図11に示す二次元コード60は、図10に示す二次元コード30に比べ、横方向の大きさが絞られており、外観が縦長の長方形状とされている。
図12は、図10に示す二次元コード30を被写体としてカメラ40Iで静止画撮影を行って得られた二次元コード画像の一例を示す図であり、図13は、図11に示す二次元コード60を被写体としてカメラ40Iで静止画撮影を行って得られた二次元コード画像の一例を示す図である。二次元コード60に係る二次元コード画像は、二次元コード30に係る二次元コード画像に比べ、縦に長細い形状とされているため、カメラ40Iにおけるレンズの歪曲収差により歪みが大きく現れてしまう。
二次元コード60に係る二次元コード画像が歪んでいない場合は一例として図14に示すように一辺が直線状に現れるのに対し、二次元コード60に係る二次元コード画像が歪んでいる場合は一例として図15に示すように一辺が直線上に現れない。つまり、一辺が湾曲した状態で現れる。図14に示す二次元コード画像を模式的に極端に示したものが図16であり、図15に示す二次元コード画像を模式的に極端に示したものが図17である。
各画素の位置は一例として図16に示すように一辺が直線状に現れることを前提にして二次元座標によって表現される。ところが、図17に示すように二次元コード画像が歪んでしまうと二次元コード画像に含まれる画素の位置は精度良く特定されない。よって、解読対象二値図柄34により示される解読対象情報も精度良く解読されないことになる。
そこで、本第2の実施の形態に係る二次元コード60では、一例として図18に示すように位置・向き検出シンボル32Aと位置・向き検出シンボル32Bとの間、及び位置・向き検出シンボル32Cと位置・向き検出シンボル32Dとの間の各々に二次元コード60の輪郭に沿って、位置・向き検出シンボル32A〜32Dによる二次元コード60に含まれる各画素の位置の特定の支援を補助する複数の位置検出補助シンボル62(支援補助二値図柄の一例)が挿入されている。なお、図18に示す例では、位置・向き検出シンボル32Aと位置・向き検出シンボル32Bとの間に挿入された複数の位置検出補助シンボル62が位置・向き検出シンボル32A,32Bを含めて相互間の距離が揃うように予め定められた距離をおいて配置されており、位置・向き検出シンボル32Cと位置・向き検出シンボル32Dとの間に挿入された複数の位置検出補助シンボル62が位置・向き検出シンボル32C,32Dを含めて相互間の距離が揃うように予め定められた距離をおいて配置されている。また、位置検出補助シンボル62は、位置・向き検出シンボル32A〜32Dの各々よりも小さな支援補助情報の一例である市松模様とされている。なお、本第2の実施の形態では、2組の一対の画素(2行2列の画素)を合わせて市松模様を形成しているが、市松模様の全体の大きさが位置・向き検出シンボル32A〜32Dの各々よりも小さく且つ基準二値図柄36よりも大きければ良い。また、必ずしも市松模様である必要はない。また、基準二値図柄36よりも大きくても構わない。
また、本第2の実施の形態では、被記録対象領域38が一例として図18に示すように3行1列の分割領域に区分けされている。なお、図18に示す例では、破線の矩形で囲まれた領域が分割領域にあたる。
また、本第2の実施の形態に係る二次元コード60では、位置検出補助シンボル62が向かい合う辺に配置された位置検出補助シンボル62と行方向で正対するように配置されている。図18に示す例では、位置・向き検出シンボル32Aと位置・向き検出シンボル32Bとの間に挿入された複数の位置検出補助シンボル62の各々と複数の位置検出補助シンボル62が位置・向き検出シンボル32Cと位置・向き検出シンボル32Dとの間に挿入された複数の位置検出補助シンボル62の各々とが行方向で正対している(向かい合っている)。また、行方向で正対する位置検出補助シンボル62間の中央には位置検出中央シンボル64が挿入されている。
具体的には、位置・向き検出シンボル32Aに隣接する位置検出補助シンボル62(以下、区別して説明する場合に「位置検出補助シンボル62A」という。)と位置・向き検出シンボル32Cに隣接する位置検出補助シンボル62(以下、区別して説明する場合に「位置検出補助シンボル62C」という。)とが行方向で正対するように配置されており、位置検出補助シンボル62Aと位置検出補助シンボル62Cとを結ぶ線分(被記録対象領域38の上段の分割領域の底辺に相当する線分)上の中央に位置検出中央シンボル64が挿入されている。また、位置・向き検出シンボル32Bに隣接する位置検出補助シンボル62(以下、区別して説明する場合に「位置検出補助シンボル62B」という。)と位置・向き検出シンボル32Dに隣接する位置検出補助シンボル62(以下、区別して説明する場合に「位置検出補助シンボル62D」という。)とが行方向で正対するように配置されており、位置検出補助シンボル62Bと位置検出補助シンボル62Dとを結ぶ線分(被記録対象領域38の中段の分割領域の底辺に相当する線分)上の中央に位置検出中央シンボル64が挿入されている。なお、本第2の実施の形態では、複数の位置検出補助シンボル62は撮影によって得られる画像の歪みが予想される方向に交差する一組の対辺の各辺に挿入されており、互いに正対する位置関係にある位置検出補助シンボル62間の中央には画像の歪みの影響を受け難い位置であると予想される前提の下で位置検出中央シンボル64が挿入されている。
また、本第2の実施の形態に係る二次元コード60では、位置・向き検出シンボル32A〜32D及び位置検出補助シンボル62によって各分割領域の位置を定めている。すなわち、位置検出補助シンボル62は、被記録対象領域38の上段の分割領域と被記録対象領域38の中段の分割領域との境界、及び被記録対象領域38の中段の分割領域と被記録対象領域38の下段の分割領域との境界の各々について各境界を中央で跨ぐように配置されており、位置・向き検出シンボル32A〜32D及び位置検出補助シンボル62の各々に含まれる特定の画素に二次元座標が予め付与されている。これらの二次元座標によって各分割領域の位置が特定される。
図19は、本第2の実施の形態に係る二次元コード解読処理プログラムの処理の流れの一例を示すフローチャートである。なお、ここでは、錯綜を回避するために、読み取り対象面における明るさの分布に偏りがある二次元コード60を被写体として携帯電話機40のカメラ40Iにより静止画撮影を行って得られた二次元コード画像が一例として図15に示すように歪んでいる場合について説明する。また、ここでは、錯綜を回避するために、識別対象画素33を解読対象二値図柄34に含まれる画素とし、従来の二値化処理手法等により二値化された解読対象二値図柄34を示す解読支援二値図柄情報が記憶領域βに既に記憶されている場合について説明する。また、ここでは、錯綜を回避するために、位置・向き検出シンボル32A〜32Dの各々に含まれる画素であって二次元コード画像の角に位置する特定の画素と位置検出補助シンボル62の各々に含まれる画素であって二次元コード画像の輪郭に位置する特定の画素との各々に対して二次元座標が予め付与されている場合について説明する。また、ここでは、錯綜を回避するために、各分割領域を規定する二次元座標(例えば分割領域の各頂点の二次元座標)が予め定められている場合について説明する。また、ここでは、錯綜を回避するために、基準二値図柄位置特定情報を二次元座標とした場合について説明する。
また、ここでは、上記第1の実施の形態に係る二次元コード解読処理プログラムの処理とは異なる処理について説明する。なお、本第2の実施の形態に係る二次元コード解読処理プログラムは、上記第1の実施の形態に係る二次元コード解読処理プログラムの処理に比べ、ステップ108の処理に代えてステップ200の処理を適用した点、ステップ110の処理に代えてステップ110Aの処理を適用した点、ステップ112の処理に代えてステップ112Aの処理を適用した点、及びステップ114の処理に代えてステップ114Aの処理を適用した点が異なっている。
図19のステップ200では、座標設定処理プログラムを実行する。図20は、座標設定処理プログラムの処理の流れの一例を示すフローチャートである。図20のステップ200Aでは、記憶領域αに記憶されている撮影画像情報により示される二次元コード画像に含まれる位置・向き検出シンボル32A〜32D及び位置検出補助シンボル62を検出する。次のステップ200Bでは、上記ステップ200Aの処理により検出された位置・向き検出シンボル32A〜32D及び位置検出補助シンボル62のうち、最小単位の四隅を形成する位置・向き検出シンボル32A〜32D及び位置検出補助シンボル62の各々に含まれる特定の画素に予め付与されている二次元座標を取得する。なお、本ステップ200Bでは、既に本ステップ200Bの処理により二次元座標が取得された四隅については本処理の対象外とする。
上記の「最小単位の四隅」としては、図18に示す例では、位置・向き検出シンボル32A,32C、位置検出補助シンボル62A、及び位置検出補助シンボル62Cによる四隅と、位置検出補助シンボル62A、位置検出補助シンボル62B、位置検出補助シンボル62C、及び位置検出補助シンボル62Dによる四隅と、位置・向き検出シンボル32B,32D、位置検出補助シンボル62B,62Dによる四隅と、が挙げられる。
次のステップ200Cでは、上記ステップ200Bの処理により取得された最小単位の四隅の各々に含まれる特定の画素に付与された二次元座標を参照して、二次元コード画像に含まれる各画素に対して二次元座標を付与する。例えば上記ステップ200Bの処理により取得された最小単位の四隅の二次元座標から、この最小単位の四隅で形成される四角形領域(辺も含む)に含まれる各画素の二次元座標を一意に導出して各画素に付与する形態例が挙げられる。一意に各画素の二次元座標を一意に導出して各画素に付与する具体的手段としては、歪みがない場合の各画素の位置を特定する情報として上記の「最小単位の四隅」で形成される四角形領域に含まれる各画素に事前に付与された二次元座標毎に、最小単位の四隅の各々に含まれる特定の画素に付与された各二次元座標及び最小単位の四隅の二次元座標の各々からの距離として予め定められた各距離(例えば、位置・向き検出シンボル32Aに含まれる特定の画素からの距離として予め定められた距離、位置・向き検出シンボル32Cに含まれる特定の画素からの距離として予め定められた距離、位置検出補助シンボル62Aに含まれる特定の画素からの距離として予め定められた距離、及び位置検出補助シンボル62Cに含まれる特定の画素からの距離として予め定められた距離)が対応付けられたテーブルを用いて、最小単位の四隅で形成される四角形領域に含まれる各画素に二次元座標を付与する手段が挙げられる。この場合、例えば上記ステップ200Bの処理により取得された最小単位の四隅の二次元座標を入力とし、入力された最小単位の四隅の二次元座標に対応付けられている最小単位の四隅の二次元座標の各々からの距離として予め定められた各距離を満足する位置の二次元座標を出力とし、ここで出力された二次元座標を対象画素に付与すれば良い。また、演算式を用いて、上記ステップ200Bの処理により取得された最小単位の四隅の二次元座標から、最小単位の四隅の二次元座標との相対的な位置関係を一意に特定する情報(例えば最小単位の四隅の二次元座標と各画素までの距離)を算出し、この算出結果に基づいて各画素の二次元座標を算出するようにしても良い。
なお、図18に示す例では位置検出補助シンボル62を二次元コード60に複数挿入する例を挙げているが、これに限らず、位置検出補助シンボル62は単数であっても良い。この場合、例えば、位置検出補助シンボル62B〜62Dが除かれたとすると、位置・向き検出シンボル32A,32C,32D及び位置検出補助シンボル62Aの四隅の二次元座標から各画素の二次元座標を一意に導出する形態例が挙げられる。
また、各画素の二次元座標を一意に導出するには、必ずしも最小単位の四隅の二次元座標から導出する必要はなく、例えば、位置・向き検出シンボル32A,32C及び位置検出補助シンボル62Aの三隅の二次元座標から各画素の二次元座標を一意に導出しても良い。具体的には、位置・向き検出シンボル32A,32C及び位置検出補助シンボル62Aの三隅からの二次元座標の導出対象とされた各画素に事前に付与された二次元座標毎に、位置・向き検出シンボル32Aに含まれる特定の画素からの距離として予め定められた距離、位置・向き検出シンボル32Cに含まれる特定の画素からの距離として予め定められた距離、及び位置検出補助シンボル62Aに含まれる特定の画素からの距離として予め定められた距離が対応付けられたテーブル又は演算式を事前に用意しておき、このテーブル又は演算式を用いて、最小単位の四隅で形成される四角形領域に含まれる各画素に二次元座標を付与する。
次のステップ200Dでは、全ての最小単位の四隅について上記ステップ200Bの処理を実行したか否かを判定し、否定判定となった場合には上記ステップ200Bに戻る一方、肯定判定となった場合には本座標設定処理プログラムを終了する。
図19に戻ってステップ110Aでは、上記ステップ200の処理によって各画素に付与された二次元座標に基づいて、被記録対象領域38に含まれる分割領域を特定する。すなわち、各分割領域を規定する4つの二次元座標が事前に定められているので、この事前に定められている4つの二次元座標を用いて分割領域を推定することにより特定する。本第2の実施の形態では、位置・向き検出シンボル32A〜32D及び位置検出補助シンボル62の各々に含まれる特定の画素に二次元座標が予め付与されているので、これらの二次元座標によって被記録対象領域38に含まれる分割領域が特定される。
次のステップ112Aでは、上記ステップ110Aの処理により特定された分割領域の各々から基準二値図柄位置特定情報に基づいて分割領域の各々における基準二値図柄の位置を推定することにより特定した後、ステップ114Aに移行する。ステップ114Aでは、上記ステップ110Aの処理により特定された分割領域の位置に基づいて、注目分割領域を決定する。
このように本第2の実施の形態に係る二次元コード60によれば、二次元コード画像が歪んでいたとしても、その歪みを補正することなく、二次元コード画像に含まれる識別対象画素33の位置が高精度に特定される。よって、解読対象情報の解読も高精度に行われる。すなわち、従来であれば一例として図21に示すように二次元コード画像の四隅の二次元座標(位置・向き検出シンボル32A〜32Dの各々に含まれる特定の画素に付与された二次元座標)に依拠して二次元コード画像に含まれる全ての画素の位置を特定していたため、二次元コード画像の4辺の各々が一直線であることを前提として各画素に二次元座標を付与する場合には二次元コード画像が歪むと識別対象画素33の位置が高精度に特定されなかった。これに対し、本第2の実施の形態に係る二次元コード60では、例えば図22に示すように二次元コード画像の四隅の二次元座標の他にも二次元コード60の輪郭上に位置の特定に寄与する基準となる二次元座標(位置検出補助シンボル62に含まれる特定の画素に付与された二次元座標)を設けたので、二次元コード画像の四隅の二次元座標に依拠する構成(図21に示す構成)に比べ、二次元コード画像に含まれる識別対象画素33の位置が高精度に特定される。
また、本第2の実施の形態では、位置・向き検出シンボル32A〜32D及び位置検出補助シンボル62を用いて各画素の位置を特定する場合の形態例を挙げたが、位置・向き検出シンボル32A〜32D及び位置検出補助シンボル62に加えて位置検出中央シンボル64も用いて各画素の位置を特定しても良い。この場合、各画素の位置がより高精度に特定される。
また、本第2の実施の形態では、位置検出補助シンボル62及び位置検出中央シンボル64の各々の大きさを位置・向き検出シンボル32A〜32Dの各々の大きさよりも小さくしたが、これに限らず、位置検出補助シンボル62及び位置検出中央シンボル64の少なくとも一方の大きさを位置・向き検出シンボル32A〜32Dの各々の大きさ以上にしても良い。この場合、本第2の実施の形態で説明した構成に比べ、位置検出補助シンボル62及び位置検出中央シンボル64が正確に検出される。また、位置検出補助シンボル62及び位置検出中央シンボル64の少なくとも一方の大きさを位置・向き検出シンボル32A〜32Dの各々の大きさ以上にしなくても、本第2の実施の形態で説明した大きさよりも大きくすれば、本第2の実施の形態で説明した構成に比べ、位置検出補助シンボル62及び位置検出中央シンボル64が正確に検出される。
また、本第2の実施の形態では、被記録対象領域38の四隅に位置・向き検出シンボル32A〜32Dを配置し、位置・向き検出シンボル32A〜32Dによって各画素の位置を特定する場合の形態例を挙げたが、位置・向き検出シンボル32A〜32Dのうちの少なくとも3つが存在していれば各画素の位置が特定される。
また、本第2の実施の形態では、被記録対象領域38の一組の対辺の各々に沿って複数の位置検出補助シンボル62を挿入する形態例を挙げて説明したが、全ての辺の各々に沿って複数の位置検出補助シンボル62を挿入しても良い。この場合、各画素の位置がより高精度に特定される。
また、本第2の実施の形態では、一組の対辺の各々について位置検出補助シンボル62を2個ずつ設けた例を挙げたが、二次元コード画像の辺において想定される最大の湾曲が無視される程度(各画素の特定に湾曲が影響を及ぼさない程度)の間隔で位置検出補助シンボル62を配置するようにしても良い。例えば、図13に示す二次元コード画像の辺の湾曲よりも大きな湾曲が予想される場合には一辺に3個以上の位置検出補助シンボル62を挿入しておくことにより本第2の実施の形態に係る構成(一辺に2個の位置検出補助シンボル62を挿入した形態)に比べ、画素の位置が高精度に特定される。このように、湾曲した辺を細分することにより得た個々の線分を直線として捉えることで、画素の位置の高精度な特定が実現される。