(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023022772
(43)【公開日】2023-02-15
(54)【発明の名称】二次元コード、生成装置、読取装置、及び、コンピュータプログラム
(51)【国際特許分類】
G06K 19/06 20060101AFI20230208BHJP
G06K 7/14 20060101ALI20230208BHJP
G06K 7/10 20060101ALI20230208BHJP
【FI】
G06K19/06 037
G06K7/14 017
G06K7/10 372
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021127832
(22)【出願日】2021-08-03
(71)【出願人】
【識別番号】593006630
【氏名又は名称】学校法人立命館
(71)【出願人】
【識別番号】000245391
【氏名又は名称】野崎印刷紙業株式会社
(74)【代理人】
【識別番号】100111567
【弁理士】
【氏名又は名称】坂本 寛
(72)【発明者】
【氏名】道関 隆国
(72)【発明者】
【氏名】福水 洋平
(72)【発明者】
【氏名】見澤 淳一
(72)【発明者】
【氏名】木村 健太郎
(57)【要約】
【課題】外観を損ねることなく情報を埋め込むことのできる二次元コードを提供する。
【解決手段】二次元コード100は、複数のビットを示すための複数のセルが第1の方向(Y方向)に直列に配置されたラインLが、複数本、第1の方向に直交する第2の方向(X方向)に、間隔Sを空けて配置されており、複数のセルそれぞれは、ビットが示す2つの値のうちの第1値を示す第1データセル101及びビットが示す2つの値のうちの第2値を示す第2データセル102のいずれかであり、第1データセルは、第2の方向における第1位置において第1値を示す第1濃度領域103を有し、第2データセルは、第1位置において第2値を示す第2濃度領域104、及び、第2の方向において第2濃度領域に隣接する第3濃度領域105を有し、第1濃度領域と第2濃度領域との濃度差が、第1濃度領域と第3濃度領域との濃度差よりも大きい。
【選択図】
図1
【特許請求の範囲】
【請求項1】
二次元コードであって、
複数のビットを示すための複数のセルが第1の方向に直列に配置されたラインが、複数本、前記第1の方向に直交する第2の方向に、間隔を空けて配置されており、
前記複数のセルそれぞれは、前記ビットが示す2つの値のうちの第1値を示す第1データセル及び前記ビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、
前記第1データセルは、前記第2の方向における第1位置において前記第1値を示す第1濃度領域を有し、
前記第2データセルは、前記第1位置において前記第2値を示す第2濃度領域、及び、前記第2の方向において前記第2濃度領域に隣接する第3濃度領域を有し、
前記第1濃度領域と前記第2濃度領域との濃度差が、前記第1濃度領域と前記第3濃度領域との濃度差よりも大きい
二次元コード。
【請求項2】
前記第3濃度領域は、前記第2の方向において前記第2濃度領域の両側に隣接して配置されている
請求項1に記載の二次元コード。
【請求項3】
前記間隔は、前記ラインの幅の2倍以上である
請求項1又は2に記載の二次元コード。
【請求項4】
前記第3濃度領域は、前記第2データセル内において前記第1の方向の一端側から前記第1の方向の他端側まで形成されている
請求項1~3のいずれか一項に記載の二次元コード。
【請求項5】
二次元コードを生成する生成装置であって、
複数のビットを示すための複数のセルを第1の方向に直列に配置したラインを、複数本、前記第1の方向に直交する第2の方向に、間隔を空けて配置し、
前記複数のセルそれぞれは、前記ビットが示す2つの値のうちの第1値を示す第1データセル及び前記ビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、
前記第1データセルは、前記第2の方向における第1位置において前記第1値を示す第1濃度領域を有し、
前記第2データセルは、前記第1位置において前記第2値を示す第2濃度領域、及び、前記第2の方向において前記第2濃度領域に隣接する第3濃度領域を有し、
前記第1濃度領域と前記第2濃度領域との濃度差が、前記第1濃度領域と前記第3濃度領域との濃度差よりも大きい、二次元コードを生成する
生成装置。
【請求項6】
コンピュータを、二次元コードの生成装置として動作させるコンピュータプログラムであって、
前記コンピュータに、
複数のビットを示すための複数のセルを第1の方向に直列に配置したラインを、複数本、前記第1の方向に直交する第2の方向に、間隔を空けて配置し、
前記複数のセルそれぞれは、前記ビットが示す2つの値のうちの第1値を示す第1データセル及び前記ビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、
前記第1データセルは、前記第2の方向における第1位置において前記第1値を示す第1濃度領域を有し、
前記第2データセルは、前記第1位置において前記第2値を示す第2濃度領域、及び、前記第2の方向において前記第2濃度領域に隣接する第3濃度領域を有し、
前記第1濃度領域と前記第2濃度領域との濃度差が、前記第1濃度領域と前記第3濃度領域との濃度差よりも大きい、二次元コードを生成させる
コンピュータプログラム。
【請求項7】
二次元コードの読取装置であって、
前記二次元コードの撮影画像を入力する入力部と、
前記撮影画像を処理する処理部と、を備え、
前記二次元コードは、
複数のビットを示すための複数のセルが第1の方向に直列に配置されたラインが、複数本、前記第1の方向に直交する第2の方向に、間隔を空けて配置されており、
前記複数のセルそれぞれは、前記ビットが示す2つの値のうちの第1値を示す第1データセル及び前記ビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、
前記第1データセルは、前記第2の方向における第1位置において前記第1値を示す第1濃度領域を有し、
前記第2データセルは、前記第1位置において前記第2値を示す第2濃度領域、及び、前記第2の方向において前記第2濃度領域に隣接する第3濃度領域を有し、
前記第1濃度領域と前記第2濃度領域との濃度差が、前記第1濃度領域と前記第3濃度領域との濃度差よりも大きく、
前記処理部は、
前記撮影画像に対する前処理を行い、
前記前処理を行った前記撮影画像に対して、前記セルの位置に対応して予め設定されている読取位置を適用し、
前記撮影画像の、適用された前記読取位置の画素値を前記第1値又は前記第2値に変換する
読取装置。
【請求項8】
前記前処理は、前記二次元コードの大きさと配置とを検出し、検出された前記大きさと前記配置との少なくとも一方を、前記読取位置に応じて変換することを含む
請求項7に記載の読取装置。
【請求項9】
コンピュータを、二次元コードの読取装置として動作させるコンピュータプログラムであって、
前記二次元コードは、
複数のビットを示すための複数のセルが第1の方向に直列に配置されたラインが、複数本、前記第1の方向に直交する第2の方向に、間隔を空けて配置されており、
前記複数のセルそれぞれは、前記ビットが示す2つの値のうちの第1値を示す第1データセル及び前記ビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、
前記第1データセルは、前記第2の方向における第1位置において前記第1値を示す第1濃度領域を有し、
前記第2データセルは、前記第1位置において前記第2値を示す第2濃度領域、及び、前記第2の方向において前記第2濃度領域に隣接する第3濃度領域を有し、
前記第1濃度領域と前記第2濃度領域との濃度差が、前記第1濃度領域と前記第3濃度領域との濃度差よりも大きく、
前記コンピュータに、
前記二次元コードの撮影画像に対する前処理を行い、
前記前処理を行った前記撮影画像に対して、前記セルの位置に対応して予め設定されている読取位置を適用し、
前記撮影画像の、適用された前記読取位置の画素値を前記第1値又は前記第2値に変換する
ことを実行させる
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、二次元コード、生成装置、読取装置、及び、コンピュータプログラムに関する。
【背景技術】
【0002】
情報を二次元コード化してデジタル表示したり、物品の外装に取り付けたり、することがなされる。例えば、実用新案登録第3203889号は、表面に2次元コードが形成された硬質プレートを提案している。これにより、物品の外装やデジタル表示から二次元コードを読み取って、容易に情報が得られる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【0004】
このような二次元コードには、情報が可視化されて埋め込まれている。そのため、二次元コードは規則的な様相を呈していない。このような二次元コードがデジタル表示されたり物品の外装に装着されたりすると、外観を損ねる場合もある。そのため、外観を損ねることなく情報を埋め込むことのできる二次元コードが望まれる。
【0005】
ある実施の形態に従うと、二次元コードは、複数のビットを示すための複数のセルが第1の方向に直列に配置されたラインが、複数本、第1の方向に直交する第2の方向に、間隔を空けて配置されており、複数のセルそれぞれは、ビットが示す2つの値のうちの第1値を示す第1データセル及びビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、第1データセルは、第2の方向における第1位置において第1値を示す第1濃度領域を有し、第2データセルは、第1位置において第2値を示す第2濃度領域、及び、第2の方向において第2濃度領域に隣接する第3濃度領域を有し、第1濃度領域と第2濃度領域との濃度差が、第1濃度領域と第3濃度領域との濃度差よりも大きい。
【0006】
ある実施の形態に従うと、生成装置は、二次元コードを生成する生成装置であって、複数のビットを示すための複数のセルを第1の方向に直列に配置したラインを、複数本、第1の方向に直交する第2の方向に、間隔を空けて配置し、複数のセルそれぞれは、ビットが示す2つの値のうちの第1値を示す第1データセル及びビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、第1データセルは、第2の方向における第1位置において第1値を示す第1濃度領域を有し、第2データセルは、第1位置において第2値を示す第2濃度領域、及び、第2の方向において第2濃度領域に隣接する第3濃度領域を有し、第1濃度領域と第2濃度領域との濃度差が、第1濃度領域と第3濃度領域との濃度差よりも大きい、二次元コードを生成する。
【0007】
ある実施の形態に従うと、コンピュータプログラムは、コンピュータを、二次元コードの生成装置として動作させるコンピュータプログラムであって、コンピュータに、複数のビットを示すための複数のセルを第1の方向に直列に配置したラインを、複数本、第1の方向に直交する第2の方向に、間隔を空けて配置し、複数のセルそれぞれは、前記ビットが示す2つの値のうちの第1値を示す第1データセル及びビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、第1データセルは、第2の方向における第1位置において第1値を示す第1濃度領域を有し、第2データセルは、第1位置において第2値を示す第2濃度領域、及び、第2の方向において第2濃度領域に隣接する第3濃度領域を有し、第1濃度領域と第2濃度領域との濃度差が、第1濃度領域と第3濃度領域との濃度差よりも大きい、二次元コードを生成させる。
【0008】
ある実施の形態に従うと、読取装置は、二次元コードの読取装置であって、二次元コードの撮影画像を入力する入力部と、撮影画像を処理する処理部と、を備え、二次元コードは、複数のビットを示すための複数のセルが第1の方向に直列に配置されたラインが、複数本、前第1の方向に直交する第2の方向に、間隔を空けて配置されており、複数のセルそれぞれは、ビットが示す2つの値のうちの第1値を示す第1データセル及びビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、第1データセルは、第2の方向における第1位置において第1値を示す第1濃度領域を有し、第2データセルは、第1位置において第2値を示す第2濃度領域、及び、第2の方向において第2濃度領域に隣接する第3濃度領域を有し、第1濃度領域と第2濃度領域との濃度差が、第1濃度領域と第3濃度領域との濃度差よりも大きく、処理部は、撮影画像に対する前処理を行い、前処理を行った撮影画像に対して、セルの位置に対応して予め設定されている読取位置を適用し、撮影画像の、適用された読取位置の画素値を第1値又は第2値に変換する。
【0009】
ある実施の形態に従うと、コンピュータプログラムは、コンピュータを、二次元コードの読取装置として動作させるコンピュータプログラムであって、二次元コードは、複数のビットを示すための複数のセルが第1の方向に直列に配置されたラインが、複数本、第1の方向に直交する第2の方向に、間隔を空けて配置されており、複数のセルそれぞれは、ビットが示す2つの値のうちの第1値を示す第1データセル及びビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、第1データセルは、第2の方向における第1位置において第1値を示す第1濃度領域を有し、第2データセルは、第1位置において第2値を示す第2濃度領域、及び、第2の方向において第2濃度領域に隣接する第3濃度領域を有し、第1濃度領域と第2濃度領域との濃度差が、第1濃度領域と第3濃度領域との濃度差よりも大きく、コンピュータに、撮影画像に対する前処理を行い、前処理を行った撮影画像に対して、セルの位置に対応して予め設定されている読取位置を適用し、撮影画像の、適用された読取位置の画素値を第1値又は第2値に変換する、ことを実行させる。
【0010】
更なる詳細は、後述の実施形態として説明される。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施の形態に係る二次元コードの一例を示す概略図である。
【
図4】
図4は、実施の形態に係る生成装置の構成の具体例を表した概略図である。
【
図5】
図5は、二次元コードの生成方法の具体例を説明するための図である。
【
図6】
図6は、実施の形態に係る読取装置の構成の具体例を表した概略図である。
【
図7】
図7は、実施の形態に係る読取装置での二次元コードの読取方法の一例を表したフローチャートである。
【
図8】
図8は、読取方法の具体例を説明するための図である。
【
図9】
図9は、読取方法の具体例を説明するための図である。
【
図10】
図10は、読取方法の具体例を説明するための図である。
【発明を実施するための形態】
【0012】
<1.二次元コード、生成装置、読取装置、及び、コンピュータプログラムの概要>
【0013】
(1)実施の形態に係る二次元コードは、複数のビットを示すための複数のセルが第1の方向に直列に配置されたラインが、複数本、第1の方向に直交する第2の方向に、間隔を空けて配置されており、複数のセルそれぞれは、ビットが示す2つの値のうちの第1値を示す第1データセル及びビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、第1データセルは、第2の方向における第1位置において第1値を示す第1濃度領域を有し、第2データセルは、第1位置において第2値を示す第2濃度領域、及び、第2の方向において第2濃度領域に隣接する第3濃度領域を有、第1濃度領域と第2濃度領域との濃度差が、第1濃度領域と第3濃度領域との濃度差よりも大きい。
【0014】
第1濃度領域と第2濃度領域との濃度差が、第1濃度領域と第3濃度領域との濃度差よりも大きいことは、例えば、第1濃度領域と第3濃度領域とが高濃度領域であって、第2濃度領域が低濃度領域であること、又は、第1濃度領域と第3濃度領域とが低濃度領域であって、第2濃度領域が高濃度領域であること、などである。第1データセルと第2データセルとが、それぞれ、第1値、及び、第2値を表すための異なるパターンの上のような濃度領域を有し、第1の方向に直列に配置されることで、第1の方向に線状のラインが形成される。これにより、二次元コード全体視認上の規則感が生じ、整った印象を与える。また、並列したラインそれぞれに設けられたセルが第1値又は第2値を表現するため、規則性のある位置で値が表現される。これにより、二次元コードからの各値の取得が容易になる。
【0015】
(2)好ましくは、第3濃度領域は、第2の方向において第2濃度領域の両側に隣接して配置されている。これにより、第3濃度領域の面積を第2濃度領域に対して十分に設けることができる。その結果、二次元コード全体としての第2濃度領域による濃度の低下を抑えることができ、規則性ある印象を生むことができる。
【0016】
(3)好ましくは、ラインの間隔は、ラインの幅の2倍以上である。これにより、第3濃度領域を配置しやすくなる。
【0017】
(4)好ましくは、第3濃度領域は、第2データセル内において第1の方向の一端側から第1の方向の他端側まで形成されている。これにより、第1の方向に線状のラインが形成される。これにより、二次元コード全体視認上の規則感が生じ、整った印象を与える。
【0018】
(5)実施の形態に係る生成装置は、二次元コードを生成する生成装置であって、複数のビットを示すための複数のセルを第1の方向に直列に配置したラインを、複数本、第1の方向に直交する第2の方向に、間隔を空けて配置し、複数のセルそれぞれは、ビットが示す2つの値のうちの第1値を示す第1データセル及びビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、第1データセルは、第2の方向における第1位置において第1値を示す第1濃度領域を有し、第2データセルは、第1位置において第2値を示す第2濃度領域、及び、第2の方向において第2濃度領域に隣接する第3濃度領域を有し、第1濃度領域と第2濃度領域との濃度差が、第1濃度領域と第3濃度領域との濃度差よりも大きい、二次元コードを生成する。
【0019】
このように生成された二次元コードは、第1データセルと第2データセルとが、それぞれ、第1値、及び、第2値を表すための異なるパターンの濃度領域を有し、第1の方向に直列に配置されることで、第1の方向に線状のラインが形成される。これにより、二次元コード全体視認上の規則感が生じ、整った印象を与える。また、並列したラインそれぞれに設けられたセルが第1値又は第2値を表現するため、規則性のある位置で値が表現される。これにより、二次元コードからの各値の取得が容易になる。
【0020】
(6)実施の形態に係るコンピュータプログラムは、コンピュータを、二次元コードの生成装置として動作させるコンピュータプログラムであって、コンピュータに、複数のビットを示すための複数のセルを第1の方向に直列に配置したラインを、複数本、第1の方向に直交する第2の方向に、間隔を空けて配置し、複数のセルそれぞれは、前記ビットが示す2つの値のうちの第1値を示す第1データセル及びビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、第1データセルは、前第2の方向における第1位置において第1値を示す第1濃度領域を有し、第2データセルは、第1位置において第2値を示す第2濃度領域、及び、第2の方向において第2濃度領域に隣接する第3濃度領域を有し、第1濃度領域と第2濃度領域との濃度差が、第1濃度領域と第3濃度領域との濃度差よりも大きい、二次元コードを生成させる。
【0021】
このコンピュータプログラムによってコンピュータが生成した二次元コードは、第1データセルと第2データセルとが、それぞれ、第1値、及び、第2値を表すための異なるパターンの濃度領域を有し、第1の方向に直列に配置されることで、第1の方向に線状のラインが形成される。これにより、二次元コード全体視認上の規則感が生じ、整った印象を与える。また、並列したラインそれぞれに設けられたセルが第1値又は第2値を表現するため、規則性のある位置で値が表現される。これにより、二次元コードからの各値の取得が容易になる。
【0022】
(7)実施の形態に係る読取装置は、二次元コードの読取装置であって、二次元コードの撮影画像を入力する入力部と、撮影画像を処理する処理部と、を備え、二次元コードは、複数のビットを示すための複数のセルが第1の方向に直列に配置されたラインが、複数本、前第1の方向に直交する第2の方向に、間隔を空けて配置されており、複数のセルそれぞれは、ビットが示す2つの値のうちの第1値を示す第1データセル及びビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、第1データセルは、第2の方向における第1位置において第1値を示す第1濃度領域を有し、第2データセルは、第1位置において第2値を示す第2濃度領域、及び、第2の方向において第2濃度領域に隣接する第3濃度領域を有し、第1濃度領域と第2濃度領域との濃度差が、第1濃度領域と第3濃度領域との濃度差よりも大きく、処理部は、撮影画像に対する前処理を行い、前処理を行った撮影画像に対して、セルの位置に対応して予め設定されている読取位置を適用し、撮影画像の、適用された読取位置の画素値を第1値又は第2値に変換する。
【0023】
二次元コードでは、並列したラインそれぞれに設けられたセルが第1値又は第2値を表現するため、規則性のある位置で値が表現されている。これにより、予め設定されている読取位置を適用して容易にデータを読み取ることができる。
【0024】
(8)好ましくは、前処理は、二次元コードの大きさと配置とを検出し、検出された大きさと配置との少なくとも一方を、読取位置に応じて変換することを含む。これにより、予め設定された読取位置を適用しやすくなる。
【0025】
(9)実施の形態に係るコンピュータプログラムは、コンピュータを、二次元コードの読取装置として動作させるコンピュータプログラムであって、二次元コードは、複数のビットを示すための複数のセルが第1の方向に直列に配置されたラインが、複数本、第1の方向に直交する第2の方向に、間隔を空けて配置されており、複数のセルそれぞれは、ビットが示す2つの値のうちの第1値を示す第1データセル及びビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、第1データセルは、第2の方向における第1位置において第1値を示す第1濃度領域を有し、第2データセルは、第1位置において第2値を示す第2濃度領域、及び、第2の方向において第2濃度領域に隣接する第3濃度領域を有し、第1濃度領域と第2濃度領域との濃度差が、第1濃度領域と第3濃度領域との濃度差よりも大きく、コンピュータに、二次元コードの撮影画像に対する前処理を行い、前処理を行った撮影画像に対して、セルの位置に対応して予め設定されている読取位置を適用し、撮影画像の、適用された読取位置の画素値を第1値又は第2値に変換する、ことを実行させる。
【0026】
二次元コードでは、並列したラインそれぞれに設けられたセルが第1値又は第2値を表現するため、規則性のある位置で値が表現されている。これにより、予め設定されている読取位置を適用して容易にデータを読み取ることができる。
【0027】
<2.二次元コード、生成装置、読取装置、及び、コンピュータプログラムの例>
【0028】
図1は、本実施の形態に係る二次元コード100の一例を示す概略図である。
図1の二次元コード100Aは、二次元コード100の拡大概略図である。
図2は、
図1の部分Aの拡大図である。
図1,2において、横方向をX方向、縦方向をY方向と規定する。右向きをX方向のプラス向きとし、上向きをY方向のプラス向きとする。
【0029】
図1を参照して、二次元コード100は、一例として、縦横約12mm程度の正方形であって、X方向の長さ(幅)W、Y方向の長さ(高さ)HのラインLが、複数本、X方向に間隔Sを空けて配置されたものである。幅Wは高さHに対して十分に小さく、ラインLは縦長の形状である。つまり、Y方向が長手方向となり、X方向が長手方向に直交する方向(幅方向)となる。
【0030】
二次元コード100は、後述する生成装置1において生成され、出力される。出力は、人の目によって視認可能に表示されることを指し、例えば、生成装置1のディスプレイ15にデジタル表示されること、他の装置に送信されて他の装置にデジタル表示されること、プリンタ16によって紙等に印刷されること、などを含む。このように表示される二次元コード100は、物品の外装に装着して用いることができる。
【0031】
ラインLは、データDを構成する複数のビットを示すための複数のセルがY方向に直列に配置されたものである。複数のセルは、ビットが示す0又は1の値のうちの0(第1値)を示すための第1データセル101と、1(第2値)を示すための第2データセル102と、のいずれかである。Y方向に直列されたセルの数は例えば14である。この場合、ラインLは14ビットのデータを表すことができる。
【0032】
第1データセル101は、X方向における第1位置Pにおいて0を示す第1濃度領域103を有する。第1位置Pは、ラインLの内側の位置であって、例えば、ラインLのX方向における中心である。第1濃度領域103は、第1の濃度を示す画素値の領域を指し、第1の濃度は、二次元コード100の生地の色、つまり、ラインLの間隔の色より濃度が高い。ラインLの間隔の色が白色のとき、第1の濃度は例えば黒であり、第1の濃度を示す画素値は0である。これにより、第1濃度領域103は視認されやすくなる。
【0033】
好ましくは、第1データセル101は、X方向において第1濃度領域103に隣接する第4濃度領域106を有する。第4濃度領域106は、第4の濃度を示す画素値の領域を指し、第4の濃度は、二次元コード100の生地の色、つまり、ラインLの間隔の色と概ね同じである。ラインLの間隔の色が白色のとき、第4の濃度は例えば白であり、第4の濃度を示す画素値は255である。これにより、第1濃度領域103がより視認されやすくなる。
【0034】
第2データセル102は、第1位置Pにおいて1を示す第2濃度領域104を有する。第2濃度領域104は、第2の濃度を示す画素値の領域を指し、第2の濃度は、第1の濃度より濃度が低い。第1の濃度が黒色のとき、第2の濃度は例えば白であり、第2の濃度を示す画素値は255である。これにより、ラインLの第1位置Pにおいて0と1とが濃度変化によって表される。
【0035】
好ましくは、第2データセル102は、X方向において第2濃度領域104に隣接する第3濃度領域105を有する。第3濃度領域105は、第3の濃度を示す画素値の領域を指し、第3の濃度は、第1の濃度と概ね同じである。第1の濃度が黒色のとき、第3の濃度は例えば黒であり、第3の濃度を示す画素値は0である。言い換えると、第1の濃度と第の2濃度との差が、第1の濃度と第3の濃度との差よりも大きい。これにより、第2濃度領域104がより視認されやすくなる。
【0036】
ラインLは、複数のセルがY方向に直列に配置されることによってY方向に延びて視認され得る。ラインLの幅Wは、幅Wが第1データセル101の第1濃度領域103の幅と一致する。
【0037】
図2に表されたように、二次元コード100は、X方向に連続して配置された複数のセグメントSGによって表現されるものとする。セグメントSGは、幅d、高さHに区分された領域である、幅dは、例えば2ピクセルである。
【0038】
一例として、ラインLの幅Wは、セグメントSGの幅dの1.5倍以上、3倍以下である(1.5d≦W≦3d)。好ましくは、ラインLの幅Wは、セグメントSGの幅dの1.8倍以上、2.5倍以下である(1.8d≦W≦2.5d)。一例として、ラインLの幅Wは、2d(W=2d)である。
【0039】
隣り合うラインLの間隔Sは、ラインLの幅W以上である(S≧W)。好ましくは、隣り合うラインLの間隔Sは、ラインLの幅Wの2倍以上である(S≧2W)。好ましくは、間隔Sは、ラインLの幅Wの3倍以下である(S≦3W)。これにより、二次元コード100に適度な量の情報を埋め込むことができる。一例として、隣り合うラインLの間隔Sは、セグメントSGの幅dの4倍(S=4d=2W)である。
【0040】
これにより、出力された二次元コード100は、
図1に示されたように、人の目には、概ね均一の灰色の矩形に見える。そのため、二次元コード100の存在はわかってもコードパターンが見えにくい。その結果、二次元コード100を外装に貼り付けたり表示したりしても外観を大きく損なわないようにできる。
【0041】
以降の例では、ラインLの幅Wは一定であるものする。これにより、二次元コード100全体の均一感や規則性が生じ、整った印象を与える。他の例として、ラインLの幅Wは一定でなくてもよい。この場合、幅W自体をデータによって可変にしてもよい。これにより、ラインLの幅Wでもデータを読み取ることができる。
【0042】
第3濃度領域105の幅W1は、第2濃度領域104の幅W2の半分と概ね同じである(W1≒W2/2)。第2濃度領域104の幅W2は、概ね、第1濃度領域103の幅と一致し、ラインLの幅Wと一致し(W2≒W)、セグメントSGの幅dの2倍である(W2=2d)。従って、第3濃度領域105の幅W1は、概ね、ラインLの幅Wの半分であり、セグメントSGの幅dと一致する(W1≒W/2=d)。また、第3濃度領域105の高さH1は、第2濃度領域104の高さH2と概ね同じである(H1≒H2)。
【0043】
これにより、第3濃度領域105の面積は第2濃度領域104の面積と概ね同じになり、二次元コード100全体としての濃度が概ね均一になる。また、これにより、ラインLのX方向における端部において黒色領域がY方向に連続している。そのため、ラインがY方向に線状に視認されるようになる。これにより、二次元コード100全体として規則性ある印象を生むことができる。
【0044】
図3は、
図1の部分Bの拡大図であって、部分Aの他の具体例を表した図である。具体的には、
図3を参照して、第3濃度領域105は、ラインLの内側に存在してもよい(タイプA)。
図3のタイプAでは、第3濃度領域105が第1濃度領域103のX方向における端部から距離G1だけ内側に存在している。又は、第3濃度領域105は、ラインLの外側から離れた位置に存在してもよい(タイプB)。
図3のタイプBでは、第3濃度領域105と第1濃度領域103のX方向における端部とのX方向の間に距離G2の隙間が生じている。又は、第3濃度領域105は、第2濃度領域104の片側のみに存在してもよい(タイプC)。
図3のタイプCでは、第3濃度領域105は、第2濃度領域104の左側のみに配置され、右側には配置されていない。
【0045】
タイプA~Cの場合も、ラインLのX方向における端部において黒色領域がY方向に連続している。そのため、ラインがY方向に線状に視認されるようになる。これにより、二次元コード100全体として規則性ある印象を生むことができる。
【0046】
なお、第3濃度領域105の高さH1は、第2濃度領域104の高さH2より多少、短くてもよい(タイプD)。
図3のタイプDでは、第3濃度領域105の上端と第2濃度領域104の下端とのY方向の間に距離G3の隙間が生じている(H1<H2)。距離G3は、Y方向に濃度が連続して視認される程度の距離であればよい。好ましくは、距離G3は、第2濃度領域104の高さH2の半分より短い(G3<H2/2)。より好ましくは、距離G3は、第2濃度領域104の高さH2の80%より短い(G3<H2×0.8)。これにより、二次元コード100を、例えば、
図1に示されたサイズで出力した場合には、ラインLのX方向における端部において黒色領域がY方向に連続している。そのため、ラインがY方向に線状に視認されるようになる。これにより、二次元コード100全体として規則性ある印象を生むことができる。
【0047】
実施の形態に係る二次元コード100は、生成装置1によって生成される。
図4は、実施の形態に係る生成装置1の構成の具体例を表した概略図である。生成装置1は、プロセッサ11と、メモリ12と、を有する一般的なコンピュータなどで構成される。プロセッサ11は、例えば、CPU(Central Processing Unit)である。
【0048】
メモリ12は、一次記憶装置であってもよいし、二次記憶装置であってもよい。メモリ12は、プロセッサ11によって実行されるプログラム121を記憶している。プロセッサ11は、メモリ12に記憶されているプログラム121を実行することで演算処理を実行する。
【0049】
生成装置1は、入力装置14に接続されている。入力装置14は、例えば、キーボードなどである。入力装置14は、二次元コード100に埋め込むデータDを生成装置1に入力する。データDは、プロセッサ11に渡される。
【0050】
生成装置1は、生成した二次元コード100を出力する出力装置に接続されている。二次元コード100の出力がデジタル表示である場合、出力装置は、一例としてディスプレイ15である。また、他の装置に送信して他の装置でデジタル表示させる場合、出力装置は、一例として通信装置13である。これにより、ディスプレイ15や他の装置に二次元コード100をデジタル表示することができる。
【0051】
二次元コード100の出力が紙等への印刷である場合、出力装置は、一例として、プリンタ16である。これにより、生成した二次元コード100を紙等に印刷することができる。
【0052】
プロセッサ11の実行する演算処理は、生成処理111を含む。生成処理111は、データDを埋め込んだ二次元コード100を生成することを含む。生成処理111において、プロセッサ11は、ラインLそれぞれのセルで、データを構成する0又は1それぞれを表現する。
【0053】
詳しくは、
図5を参照して、一例として、二次元コード100はラインLを28本有し、プロセッサ11によって、ラインLの1本ごとで14ビットの値を表現する。なお、ラインLのすべてをデータの埋め込みに用いてもよいし、少なくとも1部のみ用いてもよい。例えば、両端の1本ずつを除く26本を用いてもよい。
【0054】
各ラインLは、複数のビットを示すための複数のセルR1~R16を含む。セルR1~R16は、Y方向に連続して配置されている。
図5の例の場合、1本あたり14ビットの値を表現するため、各ラインLは、セルR1~R16を含む。この例では、最上端のセルR1と最下端のセルR16とはNullとし、セルR2~R15を用いて値を表現する。
【0055】
プロセッサ11は、データDを構成する0及び1を、規定された順で、複数のラインLそれぞれのセルR2~R15に割り当てる。一例として、複数のラインLの左から右に、それぞれセルR2~R15の順でデータDを構成する0及び1を割り当てる。なお、各ラインLのセルR1,R16のNullは、例えば0として扱う。
【0056】
データDの15番目~28番目の値d1が1,0,1,1,1,1,1,1,0,0,0,1,0,1である場合、
図5に示されたように、左から2番目のラインL1のセルR2~R15に、その順で割り当てられる。
【0057】
プロセッサ11は、各セルに割り当てられた値に応じて、各セルを第1データセル101と第2データセル102とのいずれかに決定する。ラインL1に着目すると、0が割り当てられたセルR1,3,10~12,14を第1データセル101と決定し、1が割り当てられたセルR2,4~9,13,15を第2データセル102と決定する。
【0058】
このため、ラインL1のセルR2,4~9,13,15は、白色の第2濃度領域104、及び、第2濃度領域104に隣接する、黒色の第3濃度領域105を含む。セルR1,3,10~12,14は、第1濃度領域103を含む。これにより、ラインL1は、Y方向に線状に視認されるとともに、値1,0,1,1,1,1,1,1,0,0,0,1,0,1を示すようになる。
【0059】
生成処理111においてプロセッサ11が、データDのすべての値について同様に行うこれにより、データDを埋め込んだ二次元コード100が生成される。
【0060】
プロセッサ11の実行する演算処理は、出力処理112を含む。出力処理112は、生成された二次元コード100を出力するための処理であって、例えば、プリンタ16に印刷させることを含む。他の例として、出力処理112は、生成された二次元コード100をディスプレイ15に表示させることを含んでもよい。
【0061】
出力された二次元コード100は、読取装置3によって読み取られ、データに復元される。
図6は、実施の形態に係る読取装置3の構成の具体例を表した概略図である。読取装置3は、プロセッサ31と、メモリ32と、を有する一般的なコンピュータなどで構成される。プロセッサ31は、例えば、CPUである。
【0062】
メモリ32は、一次記憶装置であってもよいし、二次記憶装置であってもよい。メモリ32は、プロセッサ31によって実行されるプログラム321を記憶している。プロセッサ31は、メモリ32に記憶されているプログラム321を実行することで演算処理を実行する。
【0063】
読取装置3は、二次元コード100の撮影画像を入力する入力部を有する。入力部は、一例として、カメラ34である。この場合、読取装置3には、カメラ34で撮影された二次元コード100の撮影画像が入力される。入力部は、他の例として、他の装置から撮影画像の入力を受け付けるための通信装置33であってもよいし、記録媒体から撮影画像データを読み出す読取装置であってもよい。
【0064】
読取装置3は、二次元コード100から復元したデータを出力する出力装置に接続されている。出力装置は、一例としてディスプレイ35である。また、他の例として、出力装置は、プリンタ36であってもよい。これにより、復元されたデータが出力されるようになる。
【0065】
プロセッサ31の実行する演算処理は、前処理311を含む。また、演算処理は、読取処理312を含む。読取処理312は、前処理311を行った撮影画像に対して、予め設定されている読取位置を適用し、撮影画像の、適用された読取位置から情報を読み取ることを含む。これにより、二次元コード100から埋め込まれていたデータが復元される。
【0066】
プロセッサ31の実行する演算処理は、出力処理313を含む。出力処理313は、復元されたデータを出力するための処理であって、例えば、ディスプレイ35に表示させることを含む。他の例として、出力処理313は、プリンタ36に印刷させることを含んでもよい。
【0067】
図7は、本実施の形態に係る読取装置3での二次元コード100の読取方法の一例を表したフローチャートである。
図8~
図10は、読取方法の具体例を説明するための図である。
【0068】
図7を参照して、読取装置3に、二次元コード100を撮影して得られたキャプチャ画像を入力する(ステップS101)。読取装置3のプロセッサ31は、キャプチャ画像に対して前処理311を実行する(ステップS103)。
【0069】
詳しくは、
図8を参照して、ステップS101では、読取装置3のカメラ34を二次元コードに向けて撮影する。その際、ディスプレイ35には、撮影用の画像34Aに重ねてガイド204が表示される。ユーザは、ガイド204に二次元コードが収まるように撮影用の画像34Aにて確認した上で、カメラ34での撮影を行う。これにより、ガイド204に応じた位置に二次元コードが存在する撮影画像201が得られる。
【0070】
図9を参照して、ステップS103で、プロセッサ31は、撮影画像201から、グレースケール画像202と二値化画像203とを生成する。グレースケール画像202が生成されることによって、後述する傾きの検出に用いるエッジ抽出が可能になる。二値化画像203が生成されることによって、埋め込まれたデータが読み出されるようになる。
【0071】
プロセッサ31は、グレースケール画像202を所定のトリミング範囲でトリミングし、トリミング画像205を得る。所定のトリミング範囲204Aは、撮影画像201におけるガイド204の位置に応じた範囲であって、一例として、ガイド204と同じ範囲である。これにより、処理対象とする範囲を狭くでき、以降の処理量を抑えることができる。
【0072】
プロセッサ31は、トリミング画像205から撮影画像201における二次元コードの傾きを算出する。傾きの算出方法は、さまざまな方法が用いられ得る。一例として、プロセッサ31は、トリミング画像205にエッジフィルタを適用してエッジを抽出する。プロセッサ31は、得られたエッジ画像をハフ変換することによって、エッジ画像内の直線を抽出する。プロセッサ31は、抽出された直線の傾きを算出することで、撮影画像201における二次元コードの傾きを算出する。
【0073】
プロセッサ31は、二値化画像203から基準位置を検出する。基準位置は、一例として、四隅である。これにより、二値化画像203に、基準位置を基準として、予め規定している読取位置を適用することが可能になる。
【0074】
好ましくは、四隅を検出する際、プロセッサ31は、二値化画像203を所定角度、傾ける。所定角度は、0度~90度の範囲内の角度であって、一例として5度である。これにより、走査方向が横又は縦方向であるときに、二次元コードの辺を走査方向に対して角度を持たせることができる。そのため、四隅が検出されやすくなる。
【0075】
プロセッサ31は、以上の前処理によって抽出された四隅の座標を用いて、二次元コードが予め設定されている読取位置を適用できる位置や傾きになるように二値化画像203を配置し、読取位置を適用する(ステップS105)。読取位置は、二次元コード上のセルの位置を規定している。これにより、プロセッサ31は、規定された位置のセルから値を得ることができる。プロセッサ31は、二値化画像203の、適用された読取位置から得られたすべての値から、二次元コードに埋め込まれたデータを得る(ステップS107)。
【0076】
読取位置は、二次元コード100の生成方法と対応したものであって、二次元コード100の複数のセルそれぞれの位置を示すものである。
図10の例の場合、予め設定された読取位置は、直交する直線M1と直線M2とで表され、それらの各交点が読取位置を示している。
【0077】
図5の例に示された二次元コード100の読み取りに用いる読取位置である場合、直線M1と直線M2との各交点が、各ラインLのセルR1~R16それぞれの内部の位置を読取位置として予め規定している。
図10の例では、直線M1は間隔Sで並列した複数の直線であって28本配列されている。直線M2は、各ラインLのセルR1~R16の重心を通る複数の直線である。そのため、直線M1と直線M2との交点は、それぞれ、各ラインLのセルR1~R16それぞれの内部の位置となる。
【0078】
ステップS107でプロセッサ31は、二値化画像203の、直線M1と直線M2との各交点に該当する位置の画素値を読み取る。
図10の上に示された二値化画像203の、下から2番目のラインL1のC部分に着目し、下の拡大図を参照すると、プロセッサ31は、二値化画像203の、直線M1と直線M2との交点P1~P5の画素値を読み取る。
【0079】
この例では、交点P1~P5の画素値が255(白),0(黒),255,0,0である。ステップS107でプロセッサ31は、画素値とデータの値との対応を予め記憶しておき、それぞれをデータの値に変換する。すなわち、ステップS107でプロセッサ31は、一例として、読取位置ごとに、画素値が0であれば「0」、255であれば「1」に変換し、予め規定された読み出す順に応じて値を並べることで、データDを得る。プロセッサ31は、得られたデータを、出力する(ステップS109)。
【0080】
本実施の形態に係る二次元コード100は、X方向に所定の間隔に並列した複数のラインLそれぞれのセルがデータの値を示している。そのため、
図10に示されたような、セルの位置に応じて予め設定された読取位置を適用することで、データを容易に読み取ることが可能になる。
【0081】
<3.付記>
本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
【符号の説明】
【0082】
1 :生成装置
3 :読取装置
11 :プロセッサ
12 :メモリ
13 :通信装置
14 :入力装置
15 :ディスプレイ
16 :プリンタ
31 :プロセッサ
32 :メモリ
33 :通信装置
34 :カメラ
34A :画像
35 :ディスプレイ
36 :プリンタ
100 :二次元コード
100A :二次元コード
101 :第1データセル
102 :第2データセル
103 :第1濃度領域
104 :第2濃度領域
105 :第3濃度領域
106 :第4濃度領域
111 :生成処理
112 :出力処理
121 :プログラム
201 :撮影画像
202 :グレースケール画像
203 :二値化画像
204 :ガイド
204A :トリミング範囲
205 :トリミング画像
311 :前処理
312 :読取処理
313 :出力処理
321 :プログラム
D :データ
G1 :距離
G2 :距離
G3 :距離
H :高さ
H1 :高さ
H2 :高さ
L :ライン
L1 :ライン
P :第1位置
P1 :交点
P2 :交点
P3 :交点
P4 :交点
P5 :交点
R1 :セル
R10 :セル
R11 :セル
R12 :セル
R13 :セル
R14 :セル
R15 :セル
R16 :セル
R2 :セル
R3 :セル
R4 :セル
R5 :セル
R6 :セル
R7 :セル
R8 :セル
R9 :セル
SG :セグメント
【手続補正書】
【提出日】2022-12-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
二次元コードであって、
複数のビットを示すための複数のセルが第1の方向に直列に配置されたラインが、複数本、前記第1の方向に直交する第2の方向に、間隔を空けて配置されており、
前記複数のセルそれぞれは、前記ビットが示す2つの値のうちの第1値を示す第1データセル及び前記ビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、
前記第1データセルは、前記第2の方向における第1位置において前記第1値を示す第1濃度領域を有し、
前記第2データセルは、前記第1位置において前記第2値を示す第2濃度領域、及び、前記第2の方向において前記第2濃度領域に隣接する第3濃度領域を有し、
前記第1濃度領域と前記第2濃度領域との濃度差が、前記第1濃度領域と前記第3濃度領域との濃度差よりも大きく、
複数本の前記ラインそれぞれにおいて、前記第1濃度領域及び前記第2濃度領域は、前記第2の方向における両端の位置が揃っており、
前記第3濃度領域は、前記第2の方向において前記第2濃度領域の両側に隣接して配置されており、前記第2濃度領域の両側に隣接して配置されている各第3濃度領域の前記第2の方向における幅は、前記第2濃度領域の前記第2の方向における幅の半分と概ね同じである
二次元コード。
【請求項2】
複数本の前記ラインにおいて、あるラインの前記第1濃度領域又は記第2濃度領域と、前記第2の方向において隣接する他のラインの前記第1濃度領域又は前記第2濃度領域までの間隔は、前記第2の方向における前記第1濃度領域及び前記第2濃度領域の幅の2倍以上である
請求項1に記載の二次元コード。
【請求項3】
複数本の前記ラインにおいて、あるラインの前記第1濃度領域又は記第2濃度領域と、前記第2の方向において隣接する他のラインの前記第1濃度領域又は前記第2濃度領域までの間隔は、前記第2の方向における前記第1濃度領域及び前記第2濃度領域の幅の3倍以下である
請求項2に記載の二次元コード。
【請求項4】
前記第3濃度領域は、前記第2データセル内において前記第1の方向の一端側から前記第1の方向の他端側まで形成されている
請求項1~3のいずれか一項に記載の二次元コード。
【請求項5】
二次元コードを生成する生成装置であって、
複数のビットを示すための複数のセルを第1の方向に直列に配置したラインが、複数本、前記第1の方向に直交する第2の方向に、間隔を空けて配置され、
前記複数のセルそれぞれは、前記ビットが示す2つの値のうちの第1値を示す第1データセル及び前記ビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、
前記第1データセルは、前記第2の方向における第1位置において前記第1値を示す第1濃度領域を有し、
前記第2データセルは、前記第1位置において前記第2値を示す第2濃度領域、及び、前記第2の方向において前記第2濃度領域に隣接する第3濃度領域を有し、
前記第1濃度領域と前記第2濃度領域との濃度差が、前記第1濃度領域と前記第3濃度領域との濃度差よりも大きく、
複数本の前記ラインそれぞれにおいて、前記第1濃度領域及び前記第2濃度領域は、前記第2の方向における両端の位置が揃っており、
前記第3濃度領域は、前記第2の方向において前記第2濃度領域の両側に隣接して配置されており、前記第2濃度領域の両側に隣接して配置されている各第3濃度領域の前記第2の方向における幅は、前記第2濃度領域の前記第2の方向における幅の半分と概ね同じである、二次元コードを生成する
生成装置。
【請求項6】
コンピュータを、二次元コードの生成装置として動作させるコンピュータプログラムであって、
前記コンピュータに、
複数のビットを示すための複数のセルを第1の方向に直列に配置したラインが、複数本、前記第1の方向に直交する第2の方向に、間隔を空けて配置され、
前記複数のセルそれぞれは、前記ビットが示す2つの値のうちの第1値を示す第1データセル及び前記ビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、
前記第1データセルは、前記第2の方向における第1位置において前記第1値を示す第1濃度領域を有し、
前記第2データセルは、前記第1位置において前記第2値を示す第2濃度領域、及び、前記第2の方向において前記第2濃度領域に隣接する第3濃度領域を有し、
前記第1濃度領域と前記第2濃度領域との濃度差が、前記第1濃度領域と前記第3濃度領域との濃度差よりも大きく、
複数本の前記ラインそれぞれにおいて、前記第1濃度領域及び前記第2濃度領域は、前記第2の方向における両端の位置が揃っており、
前記第3濃度領域は、前記第2の方向において前記第2濃度領域の両側に隣接して配置されており、前記第2濃度領域の両側に隣接して配置されている各第3濃度領域の前記第2の方向における幅は、前記第2濃度領域の前記第2の方向における幅の半分と概ね同じである、二次元コードを生成させる
コンピュータプログラム。
【請求項7】
二次元コードの読取装置であって、
前記二次元コードの撮影画像を入力する入力部と、
前記撮影画像を処理する処理部と、を備え、
前記二次元コードは、
複数のビットを示すための複数のセルが第1の方向に直列に配置されたラインが、複数本、前記第1の方向に直交する第2の方向に、間隔を空けて配置されており、
前記複数のセルそれぞれは、前記ビットが示す2つの値のうちの第1値を示す第1データセル及び前記ビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、
前記第1データセルは、前記第2の方向における第1位置において前記第1値を示す第1濃度領域を有し、
前記第2データセルは、前記第1位置において前記第2値を示す第2濃度領域、及び、前記第2の方向において前記第2濃度領域に隣接する第3濃度領域を有し、
前記第1濃度領域と前記第2濃度領域との濃度差が、前記第1濃度領域と前記第3濃度領域との濃度差よりも大きく、
複数本の前記ラインそれぞれにおいて、前記第1濃度領域及び前記第2濃度領域は、前記第2の方向における両端の位置が揃っており、
前記第3濃度領域は、前記第2の方向において前記第2濃度領域の両側に隣接して配置されており、前記第2濃度領域の両側に隣接して配置されている各第3濃度領域の前記第2の方向における幅は、前記第2濃度領域の前記第2の方向における幅の半分と概ね同じであり、
前記処理部は、
前記撮影画像に対する前処理を行い、
前記前処理を行った前記撮影画像に対して、前記セルの前記第1濃度領域又は前記第2濃度領域の位置に対応して予め設定されている読取位置であって、前記第3濃度領域を含まない前記読取位置を適用し、
前記撮影画像の、適用された前記読取位置の画素値を前記第1値又は前記第2値に変換する
読取装置。
【請求項8】
前記前処理は、前記二次元コードの大きさと配置とを検出し、検出された前記大きさと前記配置との少なくとも一方を、前記読取位置に応じて変換することを含む
請求項7に記載の読取装置。
【請求項9】
コンピュータを、二次元コードの読取装置として動作させるコンピュータプログラムであって、
前記二次元コードは、
複数のビットを示すための複数のセルが第1の方向に直列に配置されたラインが、複数本、前記第1の方向に直交する第2の方向に、間隔を空けて配置されており、
前記複数のセルそれぞれは、前記ビットが示す2つの値のうちの第1値を示す第1データセル及び前記ビットが示す2つの値のうちの第2値を示す第2データセルのいずれかであり、
前記第1データセルは、前記第2の方向における第1位置において前記第1値を示す第1濃度領域を有し、
前記第2データセルは、前記第1位置において前記第2値を示す第2濃度領域、及び、前記第2の方向において前記第2濃度領域に隣接する第3濃度領域を有し、
前記第1濃度領域と前記第2濃度領域との濃度差が、前記第1濃度領域と前記第3濃度領域との濃度差よりも大きく、
複数本の前記ラインそれぞれにおいて、前記第1濃度領域及び前記第2濃度領域は、前記第2の方向における両端の位置が揃っており、
前記第3濃度領域は、前記第2の方向において前記第2濃度領域の両側に隣接して配置されており、前記第2濃度領域の両側に隣接して配置されている各第3濃度領域の前記第2の方向における幅は、前記第2濃度領域の前記第2の方向における幅の半分と概ね同じであり、
前記コンピュータに、
前記二次元コードの撮影画像に対する前処理を行い、
前記前処理を行った前記撮影画像に対して、前記セルの前記第1濃度領域又は前記第2濃度領域の位置に対応して予め設定されている読取位置であって、前記第3濃度領域を含まない位置である前記読取位置を適用し、
前記撮影画像の、適用された前記読取位置の画素値を前記第1値又は前記第2値に変換する
ことを実行させる
コンピュータプログラム。