[第1実施形態]
以下、本発明の二次元コードを具現化した第1実施形態について、図面を参照して説明する。図1は、第1実施形態に係る情報コードを概略的に説明する説明図である。また、図2は、図1の情報コードについて、第1の特定パターン、第2の特定パターン、連結ブロックを抽出して説明する説明図である。図3は、一方の二次元コードを拡大して説明する説明図である。図4は、一方の二次元コードにおける第1の特定パターン、第2の特定パターン等を抽出して説明する説明図である。図5は、図4の二次元コードに用いられる第2の特定パターンを拡大して説明する説明図である。図6は、両二次元コードの境界付近を拡大して説明する説明図である。図7は、連結ブロックの構成を各二次元コードと対比して説明する説明図である。図8は、図1の情報コードを読み取る光学的読取装置を概略的に例示するブロック図である。図9は、図8の光学的情報読取装置による読取処理を例示するフローチャートである。
図1、図2に示すように、本実施形態に係る情報コード1は、複数の二次元コードを近接させて配置し一体的に構成したものであり、図1の例では、2つの二次元コード100、200が所定方向に並ぶ形態で互いに近接して配置されている。各二次元コード100、200は、複数のセルCが集合した形態でマトリックス状に構成されており、情報コード1全体もマトリックス状に構成されている。図1の例では、二次元コード100、200のいずれも、セル数が縦横同数(27セル×27セル)となる配列で構成されており、いずれのコード領域(セルCが配置される領域)も、外形が矩形状の矩形領域(具体的には外形が正方形状の正方形領域)とされている。また、情報コード1は、55セル×27セルとなる配列で構成されており、外形が長方形状に構成されている。なお、図1等では、一部のセルのみについて符号Cを付しており、他のセルの符号は省略している。
まず、図3等を参照して2つの二次元コード100、200について説明する。なお、図3は、情報コード1に含まれる2つの二次元コード100,200のうち、一方の二次元コード100を拡大して示すものである。これら二次元コード100,200は、いずれも、色彩又は濃度又は輝度の異なる複数種類のセルからなるものであり、以下の説明では、図1〜3等に示すような構成、即ち、色彩又は濃度又は輝度の異なる8種類のセル(即ち、黒色セル、白色セル、赤色セル、青色セル、緑色セル、黄色セル、シアン色セル、マゼンダ色セル)が用いられた情報コード1の例を挙げて説明する。なお、本実施形態及び他の実施形態を通し、黒色セルをCb、白色セルをCwで示し、更に、緑色セルを符号Cg、赤色セルをCr、青色セルをCu、黄色セルをCy、シアン色セルをCn、マゼンダ色セルをCmとそれぞれ示すこととする。
二次元コード100は、図3、図4に示すように、第1の特定パターン102と、第1の特定パターン102とは異なる位置に配置される複数の特定パターン(境界部隣接パターン110、120、105、106、107)を備えており、これら特定パターン以外の領域にコードブロック130が配置される構成となっている。図2〜4では、一部のコードブロックについて破線及び符号130を付して概念的に示している。
なお、他方の二次元コード200は、コードブロック230以外は一方の二次元コード100と同一の構成となっている。即ち、二次元コード200内における特定パターン202、境界部隣接パターン210、220、205、206、207の配置及び構成は、それぞれ、二次元コード100内における特定パターン102、境界部隣接パターン110、120、105、106、107の配置及び構成と同一とされている。また、二次元コード200において複数設けられるコードブロック230は、二次元コード100のコードブロック130(後述)と同様に、データコードブロック或いは誤り訂正コードブロックとして構成されており、ブロック構成や二次元コード200内での配置は様々に設定できる。
第1の特定パターン102は、一方の二次元コード100のコード領域(矩形領域)において4つ設けられた角部109a〜109dのうち、規定の角部109aに配置されるものである。この第1の特定パターン102は、図3の例では第1の特定パターン102の外形が矩形状(詳しくは正方形状)に構成されており、第1の特定パターン102の外縁を構成する2辺によって矩形領域における規定の角部109aの角位置が定められている。この第1の特定パターン102は、矩形領域における各セルCの位置の特定するための要素として機能するものである。
図3、図4の例では、第1の特定パターン2は、中心に第1の色のセル(黒色セル112a)が3×3のマトリックス状に配置され、その第1の色のセル群(黒色セル112aのセル群)の周りを第2の色のセル(白色セル112b)が矩形状に囲んでいる。さらに、その環状のセル群(白色セル112bのセル群)の周りを第1の色のセル(黒色セル112c)が囲んだ構成をなし、それが最外周のセル群として構成されている。そして、その最外周のセル群の外形が正方形状に構成され、第1の特定パターン2全体として外形が矩形状となっている。
境界部隣接パターン110、120は、コード領域(矩形領域)の境界をなす4つの辺(4つの境界部101)のうち、第1の特定パターン102が接する境界部(第1境界部101a、101b)に沿って隣接して配置されている。この境界部隣接パターン110、120は、二次元コード1のコード領域(矩形領域)を背景或いは連結ブロック3(後述)から分離するために利用されるものであり、後述する読み取りの際に、この境界部隣接パターン110、120を基準とすることで、矩形領域を背景や連結ブロック3から分離できるようになっている。
一方の境界部隣接パターン110は、矩形領域における規定の角部109a(第1の特定パターン2が配置された角部)とは異なる角部109bに、当該角部109bを示すエンドパターン103を配置してなるものである。このエンドパターン103は、色彩又は濃度又は輝度が異なる複数種類のセルが所定の順序で配置されるものであり、図4の二次元コード100では、8色のセルが予め定められた色順序で配置されている。
具体的には、図4、図5に示すように、一方の第2境界部101cに沿って隣接するように角部109b側から黒色セル103a、赤色セル103b、シアン色セル103cの色順序で直線状に並んでおり黒色セル103aの外縁が角部109bの角位置を示すようになっている。さらに、この黒色セル103a、赤色セル103b、シアン色セル103cの並びに対し、直角に折れ曲がってシアン色セル103c、黄色セル103d、黒色セル103eの色順序で直線状に並んで配置されている。また、シアン色セル103c、黄色セル103d、黒色セル103eの並びに対し、黒色セル103eから直角に折れ曲がって黒色セル103e、マゼンダ色セル103f、青色セル103gの色順序で直線状に並んで配置され、更に、この黒色セル103e、マゼンダ色セル103f、青色セル103gの並びに対し、青色セル103gから直角に折れ曲がって青色セル103g、緑色セル103h、黒色セル103aの色順序で直線状に並んでいる。即ち、エンドパターン103は、第1の特定パターン102が左上位置となるように二次元コード100を配置したときに、右上側から時計回りに、黒色セル103a、赤色セル103b、シアン色セル103c、黄色セル103d、黒色セル103e、マゼンダ色セル103f、青色セル103g、緑色セル103hの色順序で環状かつ外縁矩形状に配置されており、かつ中心位置に白色セル103iが配置されるようになっている。このように構成されるエンドパターン103の外縁を構成する2辺によってコード領域(矩形領域)における角部109bの角位置が定められている。
また、図3、図4に示すように、境界部隣接パターン110において第1の特定パターン102とエンドパターン103との間には中間特定パターン111が配置されている。この中間特定パターン111は、複数色のセルが所定の配列で並んでなるものであり、本実施形態では、特定色のセル(図3、図4の例では白色セル112)とその特定色とは異なる色のセル(図3、図4の例では黒色セル113)とが交互に並んだパターンとして構成されている。なお、図3、図4では、一部の白色セル、一部の黒色セルのみにそれぞれ符号112、113を付しており、それ以外の符号は省略して示している。
また、他方の境界部隣接パターン120も同様であり、規定の角部109aとは異なる角部109cに、当該角部109cを示すエンドパターン104を配置してなるものである。このエンドパターン104も、エンドパターン103と同一の構成をなしており、第1の特定パターン102が左上位置となるように二次元コード100を配置したときに、右上側から時計回りに、黒色セル、赤色セル、シアン色セル、黄色セル、黒色セル、マゼンダ色セル、青色セル、緑色セルの色順序で環状かつ外縁矩形状に配置されており、かつ中心位置に白色セルが配置されるようになっている。エンドパターン104は、左下の黒色セル104eが角部109cに配置されており、この黒色セル104eの外縁によって角部109cの角位置を示すようになっている。
境界部隣接パターン120において第1の特定パターン102とエンドパターン104との間には中間特定パターン121が配置されている。この中間特定パターン121も複数色のセルが所定の配列で並んでなるものであり、本実施形態では、特定色のセル(図3、図4の例では白色セル122)とその特定色とは異なる色のセル(図3、図4の例では黒色セル123)とが交互に並んだパターンとして構成されている。なお、図3、図4では、一部の白色セル、一部の黒色セルのみにそれぞれ符号122、123を付しており、それ以外の符号は省略して示している。
また、二次元コード100のコード領域(矩形領域)における第1の特定パターン102の対角位置には、コード領域(矩形領域)の角部109d(規定の角部109aと対角にある角部)を示す境界部隣接パターン105が配置されている。この境界部隣接パターン105は、「エンドパターン」の一例に相当するものであり、色彩又は濃度又は輝度が異なる複数種類のセルが所定の順序で配置された構成をなすものである。具体的には、8色のセルが予め定められた色順序で配置されて境界部隣接パターン105が構成されており、2つの第2境界部101c、101dのいずれにも隣接した構成をなしている。
なお、図3、図4の例では、境界部隣接パターン105がエンドパターン103と同一の構成をなしており、第1の特定パターン102が左上位置となるように二次元コード100を配置したときに、右上側から時計回りに、黒色セル、赤色セル、シアン色セル、黄色セル、黒色セル、マゼンダ色セル、青色セル、緑色セルの色順序で環状かつ外縁矩形状に配置されており、かつ中心位置に白色セルが配置されるようになっている。なお、境界部隣接パターン105では、右下のシアン色セル105cが角部109dに配置されており、このシアン色セル105cの外縁によって角部109dの角位置を示すようになっている。
更に、図3、図4の二次元コード100では、エンドパターン103と境界部隣接パターン105との間において、これらエンドパターン103、境界部隣接パターン105のそれぞれから離れた位置に、境界部隣接パターン107が配置されている。この境界部隣接パターン107は、エンドパターン103と同一の構成をなしており、第1の特定パターン102が左上位置となるように二次元コード100を配置したときに、右上側から時計回りに、黒色セル、赤色セル、シアン色セル、黄色セル、黒色セル、マゼンダ色セル、青色セル、緑色セルの色順序で環状かつ外縁矩形状に配置されており、かつ中心位置に白色セルが配置されるようになっている。境界部隣接パターン107は、黒色セル107a、赤色セル107b、シアン色セル107cが第2境界部101cに隣接しており、これら黒色セル107a、赤色セル107b、シアン色セル107cの外縁が第2境界部101cの一部を示すようになっている。
さらに、エンドパターン104と境界部隣接パターン105との間において、これらエンドパターン104、境界部隣接パターン105のそれぞれから離れた位置に、境界部隣接パターン106が配置されている。この境界部隣接パターン106も、エンドパターン103と同一の構成をなしており、第1の特定パターン102が左上位置となるように二次元コード100を配置したときに、右上側から時計回りに、黒色セル、赤色セル、シアン色セル、黄色セル、黒色セル、マゼンダ色セル、青色セル、緑色セルの色順序で環状かつ外縁矩形状に配置されており、かつ中心位置に白色セルが配置されるようになっている。境界部隣接パターン106は、シアン色セル106c、黄色セル106d、黒色セル106eが第2境界部101dに隣接しており、これらシアン色セル106c、黄色セル106d、黒色セル106eの外縁が第2境界部101dの一部を示すようになっている。
コードブロック130は、複数(例えば8つ)のセルCが集合してなるものであり、図3の例では、データコードブロック131、或いは誤り訂正コードブロック132として構成されている。なお、図3、図4では、いくつかのコードブロックについて破線枠及び符号を付して配置を例示しおり、それ以外のものについては符号等を省略している。また、図3等の破線部では、コードブロック130が4×2又は2×4のマトリックス状に構成された例を示しているが、一部のコードブロックの形状をこれとは別の形状としてもよい。また、データコードブロック131や誤り訂正コードブロック132の配置や数は様々とすることができる。
二次元コード100では、コード領域(矩形領域)内における第1の特定パターン102と複数の特定パターン(境界部隣接パターン110、120、105、106、107)を避けた領域に、複数のコードブロック130が配置されている。このうち、データコードブロック131は、デコードの対象となるデータを符号化した符号化データ(データコード語)を複数のセルによって表現したブロックとして構成されている。なお、データコードブロック131を構成する各セルは、予め定められた複数種類のセル(図3では8色のセル)の中からいずれかの種類のセルが選択的に用いられるようになっており、各データコードブロック131は、全体として、デコードすべき符号化データ(データコード語)に対応したセルの配列で構成されている。
また、誤り訂正コードブロック132は、データコードブロック131の誤り訂正を行うための誤り訂正コード語によって構成されている。この誤り訂正コードブロック132を構成する誤り訂正コード語は、データコードブロック131を構成する符号化データ(データコード語)に基づいて生成されたものである。なお、データコード語に基づいて誤り訂正コード語を生成する方法としては、例えば公知のリード・ソロモン誤り訂正方式を用いることができる(例えば、JISX0510:2004に規定された誤り訂正コード語の生成方法(JISX0510:2004、8.5誤り訂正)を好適に用いることができる)。また、誤り訂正コード語の生成方法はこれに限られず、公知の様々な方法を用いることもできる。
また、図1、図2に示すように、情報コード1は、2つの二次元コード100、200が連結ブロック3を挟んで配置されている。図6、図7に示すように、連結ブロック3は、長手状に並ぶ複数のセルによって構成されており、2つの二次元コード100、200の境界位置を示すように機能している。この連結ブロック3の長さは、2つの二次元コード100、200の少なくともいずれかにおける当該連結ブロック3に隣接する辺と同一の長さとすることが望ましく、本実施形態では、図6に示すように、連結ブロック3の長さが、連結ブロック3両側の二次元コード100、200それぞれにおける当該連結ブロック3に隣接する辺(即ち、二次元コード100の第2境界部101c及び二次元コード200の第1境界部201b))と同一の長さとして構成されている。
また、連結ブロック3は、図6、図7に示すように、セルCが直線状に並んだ長手状形態をなしている。具体的には、複数のセルCが一列に並んだ構成をなしており、その一列に並んでなる連結ブロック3の両側部に二次元コード100、200が隣接する構成となっている。なお、図6、図7の例では、セルCが一列に並んで連結ブロック3が構成されているため、連結ブロック3の幅W1は、正方形状に構成されるセルCの一辺の長さと同一となっている。
このように構成される連結ブロック3は、一部を構成する各セルが、一方の二次元コード200における当該各セルに隣接する隣接セルとは色彩又は濃度又は輝度が異なるように構成されている。例えば、連結ブロック3は、一方の二次元コード200における第1の特定パターン202と隣接しており、かつ第1の特定パターン202と隣接する部分の全セル(各白色セル3a〜3g)各々が、第1の特定パターン202における当該各々(白色セル3a〜3gの各々)に隣接するセル(即ち、第1の特定パターン202の外周部をなす黒色セル202a〜202g)と色彩が異なるように構成されている。なお、この場合、白色セル3a〜3gのそれぞれに隣接するセル202a〜202gが「隣接セル」の一例に相当する。
さらに、連結ブロック3は、二次元コード200におけるエンドパターン204に隣接する部分の全セル(白色セル3y、黒色セル3z、白色セル3aaの全セル)各々が、エンドパターン204における当該各々(白色セル3y、黒色セル3z、白色セル3aaの各々)に隣接するセルのそれぞれと色彩が異なるように構成されている。エンドパターン204は、二次元コード200において第1境界部201bの端部を示すものであり、複数種類のセル(図6、7では8色のセル)が所定の順序で並んだ構成(図6、図7の例では、特定パターン103と同一の構成、即ち、第1の特定パターン202が左上となるように二次元コード200を配置したときに、右上側から時計回りに、黒色セル、赤色セル、シアン色セル、黄色セル、黒色セル、マゼンダ色セル、青色セル、緑色セルの色順序で環状かつ外縁矩形状に配置される構成)をなしている。このように構成されるエンドパターン204において、第1境界部201bに隣接する青色セル204g、マゼンダ色セル204f、黒色セル204eのぞれぞれと、白色セル3y、黒色セル3z、白色セル3aaのそれぞれとが色彩が異なるように構成されている。なお、この場合、青色セル204g、マゼンダ色セル204f、黒色セル204eが隣接セルの一例に相当する。
さらに、連結ブロック3は、二次元コード200の中間特定パターン221(二次元コード100の中間特定パターン121と同一構成の特定パターン)にも隣接しており当該中間特定パターン221に隣接する部分の全セル(黒色セル3hから白色セル3xまでの全セル)各々が、中間特定パターン221における当該各々(黒色セル3hから白色セルxまでの各々)に隣接するセルのそれぞれと色彩が異なるように構成されている。例えば、黒色セル3hは、中間特定パターン221における当該黒色セル3hに隣接するセル(白色セル222)と色彩が異なるように構成され、同様に、白色セル3iは、中間特定パターン221における当該白色セル3iに隣接するセル(黒色セル223)と色彩が異なるように構成されている。またそれ以外のセル3j〜3aaも同様である。なお、この場合、中間特定パターン221の各セル(各白色セル222、各黒色セル223)が「隣接セル」の一例に相当する。
このように、連結ブロック3は、一方の二次元コード200に隣接する領域全体(即ち、二次元コード200の一辺全体)において、セル3a〜3aaのそれぞれの色彩が、二次元コード200における隣り合うセルの色彩と異なるように構成されている。
また、連結ブロック3は、一部を構成する各セルが、もう一方の二次元コード100における当該各セルに隣接する隣接セルとは色彩又は濃度又は輝度が異なるように構成されている。図6、図7の例では、連結ブロック3は、二次元コード100における境界部隣接パターン103、105、107と隣接しており、これら境界部隣接パターン103、105、107に隣接する部分の各セルが、当該各セルに隣接するセル(境界部隣接パターン103、105、107における隣接セル)とは、少なくとも色彩が異なるように構成されている。
例えば、連結ブロック3における境界部隣接パターン103と隣接する部分の全セル(各白色セル3a〜3c)各々が、境界部隣接パターン103における当該各々(即ち、白色セル3a〜3gの各々)に隣接するセル(即ち、境界部隣接パターン103における第2境界部101cと隣接する黒色セル103a、赤色セル103b、黄色セル103c)それぞれと色彩が異なるように構成されている。なお、この場合、白色セル3a〜3cのそれぞれに隣接するセル黒色セル103a、赤色セル103b、黄色セル103cが「隣接セル」の一例に相当する。
また、連結ブロック3における境界部隣接パターン105と隣接する部分の全セル(白色セル3y、黒色セル3z、白色セル3aa)各々が、境界部隣接パターン105における当該各々(即ち、白色セル3y、黒色セル3z、白色セル3aaの各々)に隣接するセル(即ち、境界部隣接パターン105における第2境界部101cと隣接する黒色セル105a、赤色セル105b、黄色セル105c)のそれぞれと色彩が異なるように構成されている。なお、この場合、白色セル3y、黒色セル3z、白色セル3aaのそれぞれに隣接するセル黒色セル105a、赤色セル105b、黄色セル105cが「隣接セル」の一例に相当する。
同様に、連結ブロック3における特定パターン107と隣接する部分の全セル(白色セル3m、黒色セル3n、白色セル3o)各々が、特定パターン107における当該各々(即ち、白色セル3m、黒色セル3n、白色セル3oの各々)に隣接するセル(即ち、特定パターン107における第2境界部101cと隣接する黒色セル107a、赤色セル107b、黄色セル107c)のそれぞれと色彩が異なるように構成されている。なお、この場合、白色セル3m、黒色セル3n、白色セル3oのそれぞれに隣接するセル黒色セル107a、赤色セル107b、黄色セル107cが「隣接セル」の一例に相当する。
本実施形態では、境界部隣接パターン103、105、107が第2の特定パターンの一例に相当しており、連結ブロック3に隣接すると共に、二次元コード100の境界位置を示すように機能する。
上述したように、連結ブロック3は、一方の二次元コード200における第1の特定パターン202と、他方の二次元コード100における境界部隣接パターン103、105、107(第2の特定パターン)とに隣接しており、第1の特定パターン202と隣接する部分の全セル各々が、第1の特定パターン202における当該各々に隣接するセルと色彩が異なるように構成されている。また、他方の二次元コード100における境界部隣接パターン103、105、107(第2の特定パターン)と隣接する部分の全セル各々が、境界部隣接パターン103、105、107における当該各々に隣接するセルと色彩が異なるように構成されている。
また、連結ブロック3の一部のセルは、両側の隣接セルと色彩が異なるように構成されている。例えば、連結ブロック3の一部を構成する白色セル3aは、一方の隣接セル(黒色セル103a)と色彩が異なり、他方の隣接セル(黒色セル202 a)とも色彩が異なるように構成されている。なお、両側に特定パターンが配置される白色セル3b、3c、3m、黒色セル3n、白色セル3o、白色セル3y、黒色セル3z、白色セル3aaも同様である。
次に、本実施形態に係る情報コード1の読取例について概説する。
本実施形態に係る情報コード1は、例えば図8に示すような光学的情報読取装置20で読み取ることができる。図8に示す光学的情報読取装置20は、主に、照明光源21、受光センサ23、フィルタ25、結像レンズ27等の光学系と、メモリ35、制御回路40、操作スイッチ42、液晶表示装置46等のマイクロコンピュータ(以下「マイコン」という)系と、電源スイッチ41、電池49等の電源系と、から構成されている。
光学系は、照明光源21、受光センサ23、フィルタ25、結像レンズ27等から構成されている。照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、LEDとこのLEDの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ23を挟んだ両側に照明光源21が設けられており、ハウジングの読取口(図8では図示略)を介して読取対象物Rに向けて照明光Lfを照射可能に構成されている。この読取対象物Rは、例えば、包装容器や包装用紙あるいはラベルといった表示媒体に相当するもので、本実施形態に係る情報コード1は、このような読取対象物Rに、印刷或いはダイレクトマーキング等によって形成されている。
受光センサ23は、読取対象物Rや情報コード1に照射されて反射した反射光Lrを受光可能に構成されるもので、例えば、C−MOSやCCD等の固体撮像素子である受光素子を2次元に配列したエリアセンサが、これに相当する。受光センサ23は、結像レンズ27を介して入射する入射光を受光面23aで受光可能にプリント配線板(図示略)に実装されている。また、フィルタ25は、反射光Lrの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、反射光Lrの波長相当を超える不要な光が受光センサ23に入射することを抑制している。また、結像レンズ27は、外部から読取口を介して入射する入射光を集光して受光センサ23の受光面23aに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、操作スイッチ42、LED43、ブザー44、液晶表示装置46、通信インタフェース48等から構成されている。このマイコン系は、その名の通り、マイコン(情報処理装置)として機能し得る制御回路40およびメモリ35と中心に構成されるもので、前述した光学系によって撮像された情報コード1の画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。また制御回路40は、当該光学的情報読取装置20の全体システムに関する制御も行っている。
光学系の受光センサ23から出力される画像信号(アナログ信号)は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ(画像情報)は、メモリ35に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路38は、受光センサ23およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
メモリ35は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ35のうちのRAMには、前述した画像データ蓄積領域のほかに、制御回路40が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またROMには、後述する読取処理、解析処理等を実行可能な所定プログラムやその他、照明光源21、受光センサ23等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
制御回路40は、光学的情報読取装置20全体を制御可能なマイコンで、CPU、システムバス、入出力インタフェース等からなるもので、メモリ35とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路40は、内蔵された入出力インタフェースを介して種々の入出力装置(周辺装置)と接続可能に構成されており、本実施形態の場合、電源スイッチ41、操作スイッチ42、LED43、ブザー44、液晶表示装置46、通信インタフェース48等が制御回路40に接続されている。なお、通信インタフェース48には、当該光学的情報読取装置20の上位システムに相当するホストコンピュータHST等が接続される。また、電源系は、電源スイッチ41、電池49等によって構成されており、制御回路40による電源スイッチ41のオンオフ制御により、電池49から上述した各装置や各回路に供給される駆動電圧の導通や遮断が制御されている。
このように構成される光学的情報読取装置20では、以下のように読取処理が行われる。まず、作業者が所定操作(例えば、操作スイッチ42のオン操作)を行うことで、図9に示す読取処理が開始され、画像データ取得処理が行われる(S1)。画像データ取得処理では、まず制御回路40が同期信号を基準に照明光源21に発光信号を出力し、当該発光信号を受けた照明光源21が、LEDを発光させて照明光Lfを照射する。すると、情報コード1に照射された照明光Lfが反射し、その反射光Lrが読取口およびフィルタ25を介して結像レンズ27に入射する。そして、受光センサ23の受光面23aには結像レンズ27によって情報コード1の像、つまりコード画像が結像される。これにより、受光センサ23を構成する各受光素子が露光され、それら各受光素子から情報コード1の像に応じた受光信号がそれぞれ出力される。これら受光信号は、情報コード1の画像データを構成するものであり、この画像データはメモリ35に一時的に記憶される。
その後、S1にて取得された画像データにおいて情報コード1のコード領域(矩形領域)を特定する処理を行う(S2)。なお、画像データでのコード領域の特定方法は、特開平10−198754号公報に示されるような方法でもよく、或いは、特開2000−353210公報に示されるような、明暗変化点数を計数してコード領域を抽出する考えを利用してもよい。また、画像処理の分野において異なる色の領域を区別する技術は各種提供されているため、公知の別の方法を用いて領域を特定してもよい。
S2にてコード領域が特定された後には、第1の特定パターン102,202を検出する処理を行う(S3)。第1の特定パターン102,202を検出する方法は、特許2938338のような方法でもよく、他の画像処理方法を用いてもよい。
第1の特定パターン102,202が検出された後には、二次元コード100,200の境界を検出する処理を行う(S4)。本実施形態の情報コード1は、第1の特定パターン202の隣に白色セルによるマージンが確保される等の特徴を有し、連結ブロック3によって二次元コード100、200の境界が区別できるようになっているため、S4の処理では、これら二次元コード100、200の境界位置(第2境界部101cの位置、及び第2境界部201bの位置)を検出し、情報コード1を2つの二次元コード100、200に分割する。
このようにして、二次元コード100の境界位置(第2境界部101cの位置)、及び二次元コード200の境界位置(第2境界部201bの位置)が特定された後、各二次元コード100、200についてデコード処理が行われる(S5)。各二次元コード100、200についてのデコード処理は、二次元コードに関する公知のデコード処理と同様の方法を用いることができる。
以上説明した本実施形態の構成によれば、以下のような効果を奏する。
本実施形態の情報コード1では、2つの二次元コード100、200の境界位置を示す連結ブロック3が設けられており、2つの二次元コード100、200がこの連結ブロック3を挟んで配置されている。このようにすると、情報コード1を、2つの二次元コード100,200を備えた構成とすることができるため、データ量増大等を図ることができる。また、2つの二次元コード100,200が連結ブロック3を挟んで一体化されるため、全体構成の小型化を図ることができ、さらに、連結ブロック3が2つの二次元コード100,200の境界位置を示す目印となるため、コード間の境界を正確に特定し易い構成を実現できる。
また、連結ブロック3の一部を構成する各セル(白色セル3a等)が、二次元コード200における当該各セル(白色セル3a等)に隣接するセル(黒色セル202a等)と色彩又は濃度又は輝度が異なるように構成されている。また連結ブロック3の一部を構成する各セル(白色セル3a等)が、二次元コード100における当該各セル(白色セル3a等)に隣接するセル(黒色セル103a等)と色彩が異なるように構成されている。このようにすれば、二次元コード100、200の境界を精度高く特定できるようになる。
また、連結ブロック3における二次元コード200に隣接する全セル3a〜3aaがそれぞれ、隣接セル(二次元コード200の黒色セル202a〜黒色セル204e)と色彩が異なるように構成されている。このようにすれば、一方の二次元コード200の境界をより確実に特定できるようになる。
また、連結ブロック3は、セルが直線状に並んだ構成をなしており、連結ブロック3の幅W1が、セルの一辺の長さと同一とされている。このようにすると、二次元コード100,200間をより狭くできるため、情報コード1全体を小型化しやすくなる。
また、連結ブロック3の一部を構成する各セル(白色セル3a等)が、連結ブロック3の両側の二次元コード100,200それぞれにおける、当該各セル(白色セル3a等)に隣接する隣接セル(黒色セル103a、202a等)と色彩が異なるように構成されている。このようにすれば、二次元コード100、200間を狭くして小型化を図りつつ、両二次元コード100、200の境界を精度高く特定できるようになる。
また、連結ブロック3の長さが、2つの二次元コード100,200における当該連結ブロック3に隣接する辺と同一の長さとされている。このようにすると、連結ブロック3の長さが、両二次元コード100,200の境界を特定するのに最適な長さとなり、コード構成のコンパクト化、両二次元コード間の境界の正確な認識、を一層良好に実現できる。
また、一方の二次元コード200における第1の特定パターン202と隣接するように連結ブロック3が構成されており、第1の特定パターン202と隣接する部分の全セル各々が、第1の特定パターン202における当該各々に隣接するセルと色彩が異なるように構成されている。このようにすると、確実に境界を特定すべきである第1の特定パターン202部分において当該第1の特定パターン202と連結ブロック3とが明確に区別されることとなり、ひいては精度高いコード領域の検出に寄与することとなる。
また、連結ブロック3は、他方の二次元コード100における第2の特定パターン(境界部隣接パターン103、105、107)とも隣接し、かつ境界部隣接パターン103、105、107と隣接する部分の全セル各々が、これら境界部隣接パターン103、105、107における隣接するセルと色彩が異なるように構成されている。従って、他方の二次元コード100については、少なくとも境界部隣接パターン103、105、107と連結ブロック3との境界を確実に認識できるようになる。
[第2実施形態]
次に、図10、図11を参照して第2実施形態について説明する。図10は、第2実施形態の情報コードにおける両二次元コードの境界付近を拡大して説明する説明図である。また、図11は、連結ブロックの構成を各二次元コードと対比して説明する説明図である。
図10の情報コード300は、連結ブロック303の構成のみが第1実施形態の情報コード1(図1等)と異なり、それ以外は第1実施形態と同一である。よって異なる部分について重点的に説明することとする。なお、図10の連結ブロック303は、一部のセルを白色セルから緑色セルに変更した点のみが第1実施形態の連結ブロック3と異なっている。具体的には、白色セル3d、3f、3u、3wを緑色セル303d、303f、303u、303wに変更した点のみが図1と異なり、それ以外の構成は図1と同様である。
図10の情報コード300でも、連結ブロック303は、セルが直線状に並んだ構成をなしており、連結ブロック303の幅W2が、セルの一辺の長さと同一とされている。そして、各セル303a〜303aaの両隣に二次元コード100,200が配置されている。さらに本実施形態の情報コード300は、連結ブロック303における当該連結ブロック303の両側の二次元コード100,200に隣接する全セル(即ち、連結ブロック303の全セル303a〜303aa)がそれぞれ、両側の二次元コード100,200のいずれの隣接セルとも色彩が異なるように構成されている。例えば、白色セル303aは、両側の隣接セル(黒色セル103a、202a)のいずれとも色彩が異なるように構成され、白色セル303bは、両側の隣接セル(赤色セル103b、202b)のいずれとも色彩が異なるように構成され、それ以外のセル303c〜303aa各々も同様に両側の隣接セルのいずれとも色彩が異なるように構成されている。
本実施形態の構成によれば、連結ブロック303の長手方向全領域にわたり両二次元コード100,200の境界位置を精度高く特定できるようになるため、読み取りの際に両二次元コード100,200の境界をより確実に把握できるようになる。
[第3実施形態]
次に、第3実施形態について説明する。図12は、第3実施形態に係る情報コードを概念的に例示する説明図である。なお、図12では、各二次元コード410,420内に配置されるコードブロック(第1実施形態と同様のコードブロック)の配置や構成は省略して示している(図12では、コードブロックの配置領域を一点鎖線にて示している)。また、図12では、連結ブロック403の両端のセルについてのみ符号403a、403kを付し、その間のセルの符号は省略している。
図12に示すように、本実施形態の情報コード400も2つの二次元コード410、420を備えている。二次元コード410は、第1の特定パターン412に隣接する境界部411(第1境界部411a、411b)に隣接して境界部隣接パターン413、414が設けられており、二次元コード420も、第1の特定パターン422に隣接する境界部421(第1境界部421a、421b)に隣接して境界部隣接パターン423、424が設けられている。
そして、情報コード400は、これら二次元コード410、420が連結ブロック403を挟んで配置されている。具体的には、二次元コード410の第2境界部411c側が連結ブロック403の一方の側部に隣接しており、二次元コード420の第1境界部421b側が連結ブロック403の他方の側部に隣接している。
さらに、連結ブロック403は、一方の二次元コード420における当該連結ブロック403に隣接する各セル(第1の特定パターン422及び境界部隣接パターン424の各セル)のいずれとも色彩が異なるように構成されている。即ち、二次元コード420は、第1境界部421bに隣接する部分が黒色セル又は白色セルによって構成されているが、連結ブロック403の全セルがこれらいずれとも色彩が異なる緑色セルによって構成されている。
また、図12の情報コード400でも、連結ブロック403は、セルが直線状に並んだ構成をなしており、連結ブロック403の幅が、セルの一辺の長さと同一とされている。そして、各セル403a〜403kの両隣に二次元コード410,420の各隣接セルが配置されている。さらに、連結ブロック403は、両二次元コード410、420における当該連結ブロック403に隣接する辺と同一の長さで構成されており、連結ブロック403全体に亘って(即ち、両二次元コード410,420の一辺全体に亘って)色彩が同一の同種セル(緑色セル)が並んだ構成をなしている。
図12のように構成すると、読み取りの際に同種セル(緑色セル403a〜403k)を確認することで二次元コード410,420の境界を良好に特定できるようになる。即ち、情報コード400のように構成すると二次元コード410,420の境界を特定しやすい構成を簡易に実現できることとなる。
[第4実施形態]
次に、第4実施形態について説明する。図13は、第4実施形態に係る情報コードを概念的に説明する説明図である。また、図14は、図13の情報コードで用いられる連結ブロックを各二次元コードと対比して説明する説明図である。なお、図13の情報コード500は、連結ブロック503の構成のみが図1の情報コード1と異なり、それ以外の構成は図1の情報コードと同一である。よって、異なる部分について重点的に説明することとし、同一の部分については図1と同一の符号を付して詳細な説明は省略する。また、図113では、コードブロックについては省略して示している。
図13の情報コード500でも、連結ブロック503は、セルが直線状に並んだ構成をなしており、連結ブロック503の幅が、セルの一辺の長さと同一とされている。また、各セル503a〜503aaの両隣に二次元コード100,200が配置されており、連結ブロック503における二次元コード200に隣接する全セル(即ち、連結ブロック503の全セル503a〜503aa)がそれぞれ、二次元コード200の隣接セルと色彩が異なるように構成されている。また、連結ブロック503は、少なくともエンドパターン103、境界部隣接パターン105,107に隣接する部分の各セルが、当該各セルに隣接するそれらエンドパターン103、境界部隣接パターン105,107の隣接セルと色彩が異なるように構成されている。
更に、本実施形態の連結ブロック503は、色彩が異なる複数種類のセルが予め定められた種類の組み合わせで配置されており、かつ二次元コード100,200の矩形領域内にある複数のセルの色彩を参照するための参照領域として兼用されている。図13の例では、二次元コード100,200に用いられる全色(ここでは8色)のセルが用いられて連結ブロック503が構成されており、各色のセル領域が、二次元コード100,200のコード領域(矩形領域)にある複数のセルの各色を参照するための参照領域として兼用されるようになっている。
具体的には、各色のセルが複数ずつ並んだ構成をなしている。例えば、一端側には、3つの白色セル503a〜503cが並んでおり、それに隣接して3つの青色セル503d〜503f、3つの赤色セル503g〜503i、3つの黄色セル503j〜503l、3つのシアン色セル503m〜503o、3つの黒色セル503p〜503r、3つの緑色セル503s〜503u、3つのマゼンダ色セル503v〜503x、3つの白色セル503y〜503aaが配置されている。
読取処理の際には、上記連結ブロック503が二次元コード100,200のコード領域(矩形領域)に配置されるセルの各色を判断するための参照領域として用いられる。例えば、読み取りの際に、二次元コード100,200のコード領域の各セルが、候補となる複数色(図13の例では8色)のうちのどの色に該当するかを、連結ブロック503の各セルの色に基づいて判断するといったことが可能となる。或いは、ある色として認識されたセルについて、その認識が正確であるか否かを連結ブロック503の各セルの色に基づいて判断するといったことが可能となる。
なお、本実施形態に係る情報コード500の読取処理も基本的に第1実施形態と同様(即ち、図9と同様)であるが、図9のS4の処理を若干変更してもよい。例えば、S4において、第1の特定パターン202に隣接する特定パターン(境界部隣接パターン220)を検出すると共に、それら第1の特定パターン202及び境界部隣接パターン220の各セルに隣接するセルが連結ブロック503における対応セルかを確認する処理を設けることができる。例えば、第1の特定パターン202における黒色セル202a〜202gのそれぞれの隣には、連結ブロック503の白色セル503a〜503c、青色セル503d〜503f、赤色セル503gが配置されているはずなので、各黒色セル202a〜202gの隣にこのような白色セル503a〜503c、青色セル503d〜503f、赤色セル503gが隣接しているかを確認する。隣接していることが確認された場合には、連結ブロック3における黒色セル202a〜202gの隣の部分が適切であるといえるので、黒色セル202a〜202gと、これらセル(白色セル503a〜503c、青色セル503d〜503f、赤色セル503g)との境界が第1境界部201bの一部として特定される。
また、境界部隣接パターン220の各セルについても、対応するセルが配置されているかを確認する。即ち、境界部隣接パターン220の各セルの隣には、各セル503h〜503aaが配置されているはずなので、境界部隣接パターン220の各セルの隣にこれらの503h〜503aaが配置されているかを確認する。各セル503h〜503aaが確認された場合、連結ブロック503における境界部隣接パターン220の隣の部分が適切であるといえるので、それらセル503h〜503aaと、境界部隣接パターン220の各セルとの境界が第1境界部201bの一部として特定される。このように、第1の特定パターン202及び境界部隣接パターン220と、連結ブロック503との間に生じる色の変化を検出することで、第1の特定パターン202及び境界部隣接パターン220の境界位置を推定でき、さらに連結ブロック503の各セルに基づいてその境界位置が適切であるか否かを確認できることとなる。
また、各セル503a〜503aaが確認された場合、それらセル503a〜503aaに隣接する二次元コード100の各セルを確認する。二次元コード100におけるセル503a〜503aaの隣のセルの大部分は、これらセル503a〜503aaと色彩が異なるセルなので、セル503a〜503aaと二次元コード100との間の色の変化を検出する。例えば、セル503a、503b、503cに隣接する位置には、これらセル503a、503b、503cと色彩の異なるセル(エンドパターン103の一部である黒色セル103a、赤色セル103b、黄色セル103c)が配置されているので、これら黒色セル103a、赤色セル103b、黄色セル103cを確認する。同様に、セル503m、503n、503oに隣接する位置には、これらセル503m、503n、503oと色彩の異なるセル(境界部隣接パターン107の一部である黒色セル107a、赤色セル107b、黄色セル107c)が配置されているので、これら黒色セル107a、赤色セル107b、黄色セル107cを確認する。また、セル503y、503z、503aaに隣接する位置には、これらセル503y、503z、503aaと色彩の異なるセル(境界部隣接パターン105の一部である黒色セル105a、赤色セル105b、黄色セル105c)が配置されているので、これら黒色セル105a、赤色セル105b、黄色セル105cを確認する。このように、エンドパターン103や境界部隣接パターン107,105と、連結ブロック503との間に生じる色の変化を検出することで、エンドパターン103及び境界部隣接パターン107,105の境界位置を推定でき、さらに連結ブロック503の各セルに基づいてその境界位置が適切であるか否かを確認できることとなる。なお、二次元コード100におけるエンドパターン103及び境界部隣接パターン107,105以外の部分の境界位置についても、同様の方法で特定できる。
本実施形態の構成では、色彩が異なる複数種類のセルが予め定められた種類の組み合わせで配置されて連結ブロック503が構成されており、かつ二次元コード100,200のコード領域(矩形領域)にある複数のセルの色彩を参照するための参照領域として兼用されている。このように連結ブロック503を参照領域として兼用すれば、二次元コード100,200内に参照領域のためのスペースを大きく確保する必要がなく、データ領域の増大、コード全体の小型化を図ることができる。
また、連結ブロックを参照領域として利用する構成は図13の構成に限られず、例えば図15のような構成としてもよい。図15は、図12で説明した二次元コード410と同様の二次元コードが4つ設けられた情報コード600を例示しており、二次元コード410、420、430、440が2×2のマトリックス状に並んでいる。そして、それら複数の二次元コード410、420、430、440に挟まれるように連結ブロック603が設けられている。連結ブロック603は、十字状に構成されており、縦方向に延びるセル列613と、横方向に延びるセル列623とを有している。
いずれのセル列613、623も、セルが直線状に並んだ構成をなしており、それぞれのセル列613、623の幅が、セルの一辺の長さと同一とされている。セル列613の上部613aは、二次元コード410、420に挟まれており、上部613aの各セルが、少なくとも一方の二次元コード420の隣接セル(境界部隣接パターン424の各セル)と色彩が異なるように構成されている。また、セル列613の下部613bは、二次元コード430、440に挟まれており、下部613bの各セルが、少なくとも一方の二次元コード440の隣接セル(境界部隣接パターン444(境界部隣接パターン414と同様のパターン)の各セル)と色彩が異なるように構成されている。
また、セル列623は、左部623aが、二次元コード410、430に挟まれており、左部623aの各セルが、少なくとも一方の二次元コード320の隣接セル(境界部隣接パターン433(境界部隣接パターン413と同様のパターン)の各セル)と色彩が異なるように構成されている。また、セル列623の右部623bは、二次元コード420、440に挟まれており、右部623bの各セルが、少なくとも一方の二次元コード440の隣接セル(境界部隣接パターン443(境界部隣接パターン413と同様のパターン)の各セル)と色彩が異なるように構成されている。
この構成においても、二次元コード410,420,430、440で用いられる全色(ここでは8色)のセルが用いられて連結ブロック603が構成されており、各色のセル領域が、二次元コード410,420,430、440のコード領域(矩形領域)の各色を参照するための参照領域として兼用されるようになっている。
[第5実施形態]
次に、第5実施形態について説明する。図16は、第5実施形態に係る情報コードを概念的に説明する説明図である。図17は、図16の情報コードに用いる連結ブロックについて各二次元コードと対比して説明する説明図である。なお、図16の情報コード700は、連結ブロック703の構成のみが図1の情報コード1と異なり、それ以外の構成は図1の情報コードと同一である。よって、異なる部分について重点的に説明することとし、同一の部分については図1と同一の符号を付して詳細な説明は省略する。
図16、図17に示すように、本実施形態に係る情報コード700で用いられる連結ブロック703は、一方の二次元コード200に隣接する第1ブロック713と、他方の二次元コード100に隣接する第2ブロック723とを有してなるものである。
図17に示すように、第1ブロック713は、セルが一列に並んだ直線形態となっており、具体的には、図1の連結ブロック3と同一の構成、即ち、各セル713a〜713aaの構成が図1のセル3a〜3aaと同一となっている。この第1ブロック713は、一方側が二次元コード200の第1の特定パターン202及び境界部隣接パターン220と隣接し、他方側が第2ブロック723と隣接するように配置されている。また、第1ブロック713は、一方の二次元コード200の一辺(第1境界部201b)と同一の長さで構成されており、全セル各々が、二次元コード200における当該各々と隣接するセル(隣接セル)と色彩が異なるように構成されている。このように、一方の二次元コード200における第1ブロック713に隣接する全領域において、第1ブロック713と二次元コード200との隣接するセル同士の色彩が互いに異なるように構成されている。
また、第2ブロック723も、セルが一列に並んだ直線形態となっており、二次元コード100と第1ブロック713とに挟まれた格好となっている。この第1ブロック713は、他方の二次元コード100の一辺(第2境界部101c)と同一の長さで構成されており、全セル各々が、二次元コード100における当該各々と隣接するセル(隣接セル)と色彩が異なるように構成されている。例えば、緑色セル723a〜723cの各々が、これら緑色セル723a〜723cに隣接するエンドパターン103の各セル(黒色セル103a、赤色セル103b、黄色セル103c)と色彩が異なるように構成されており、緑色セル723m〜723oの各々が、これら緑色セル723m〜723oに隣接する境界部隣接パターン107の各セル(黒色セル103a、赤色セル103b、黄色セル103c)と色彩が異なるように構成されている。また、緑色セル723y〜723aaの各々が、これら緑色セル723y〜723aaに隣接する境界部隣接パターン105の各セル(黒色セル105a、赤色セル105b、黄色セル105c)と色彩が異なるように構成されている。また、セル723d〜723l、或いはセル723p〜セル723xの各々も同様であり、二次元コード100における当該各々に隣接する隣接セルと色彩が異なるように構成されている。このように、二次元コード100における第2ブロック723に隣接する全領域において、第2ブロック723と二次元コード100との隣接するセル同士の色彩が異なるように構成されている。
本実施形態の構成では、一方の二次元コード200に隣接する第1ブロック713と、他方の二次元コード100に隣接する第2ブロック723とが設けられており、一方の二次元コード200における第1ブロック713に隣接する全領域において、第1ブロック713と二次元コード200との隣接するセル同士の色彩が異なるように構成されている。このようにすると、一方の二次元コード200における第1ブロック713に隣接する全領域において境界を確実に特定できるようになり、他方の二次元コード100についても、第2ブロック723に隣接する全領域において、第2ブロック723と二次元コード100との隣接するセル同士の色彩が異なるように構成されているため、境界を確実に特定できるようになる。特に、第1ブロック713については一方の二次元コード200に対応したセル構成とすることができ、第2ブロック723については、他方の二次元コード100に対応したセル構成とすることができるため、両二次元コード100,200の境界セルがどのような構成であっても良好に区別できる構成となる。
なお、図16、図17で示した第1ブロック713、第2ブロック723はあくまで一例であり、別の構成に変更してもよい。例えば、第2ブロック723における第1の特定パターン202に近接する領域の全てのセル(即ち、第2ブロック723において、第1の特定パターン202に隣接する白色セル713a〜713gの隣に配される複数のセル)を、第1の特定パターン202の外周部(第1ブロック713に隣接するセル202a〜202g)と色彩又は濃度又は輝度が異なるようにしてもよい。その一例としては、図17で示した緑色セル723a〜723c、黒色セル723d〜723f、黄色セル723gを全て白色セルに変更する構成が挙げられる。このように、セル723a〜723gを白色セルに変更して第1の特定パターン202の外周部と色彩が異なるようにすると、第1の特定パターン202の隣に2セル分のマージンを確保できるようになり、第1の特定パターン202をより良好に特定できるようになる。なお、このようにセル723a〜723gを白色セルに変更した場合、これら白色セルの隣のセル(二次元コード100の一部の境界セル108)全部を白色セル以外のセルとすることが望ましい。
[第6実施形態]
次に、図22を参照して第6実施形態について説明する。図22は、第6実施形態に係る情報コードを概略的に説明する説明図である。なお、図22で例示する情報コード1は、第1実施形態で説明した情報コード1(図1、図2等参照)と同一の構成をなし且つ同一の特徴を有しており、更に、連結ブロックによって連結された複数の二次元コード内にそれら複数の二次元コードに関する情報(二次元コード関連情報)が含まれている点が新たな特徴として追加されている。従って、以下の説明では、第1実施形態と同一の構成及び同一の特徴については説明を省略し、新たに追加された具体的特徴について重点的に説明することとする。また、図22は、図1の情報コード1を概略的に示すものであるため、必要に応じて適宜図1を参照して説明することとする。
図22に示す情報コード1は、第1実施形態と同様2つの二次元コード100,200を近接させて配置し一体的に構成してなるものである。一方の二次元コード100は、複数のセルが集合してなるコードブロック130と、セルの位置を特定するための第1の特定パターン102と、を備えると共に、第1の特定パターン102が矩形領域の規定の角部に配置され、かつ複数のコードブロック130が矩形領域内に配置されてなるものである。情報コード1内に配置されるコードブロック130も第1実施形態と同様に複数(例えば8つ)のセルCが集合してなるものであり(図1参照)、複数のコードブロック130のうちのいずれかがデータコードブロック131として構成され、それ以外のいずれかが誤り訂正コードブロック132として構成されている。なお、図22では、いくつかのデータコードブロック131、及びいくつかの誤り訂正コードブロック132を破線にて示しており、それ以外のデータコードブロック及び誤り訂正ブロックについては符号を省略している。また、コードブロック内の具体的セル構成も省略して示している。
他方の、二次元コード200も同様であり、複数のセルが集合してなるコードブロック230と、セルの位置を特定するための第1の特定パターン202と、を備えると共に、第1の特定パターン202が矩形領域の規定の角部に配置され、かつ複数のコードブロック230が矩形領域内に配置された構成をなしている。また、コードブロック230も第1実施形態と同様に複数(例えば8つ)のセルCが集合してなるものであり(図1参照)、複数のコードブロック230のうちのいずれかがデータコードブロック231として構成され、それ以外のいずれかが誤り訂正コードブロック232として構成されている。なお、図22では、いくつかのデータコードブロック231、及びいくつかの誤り訂正コードブロック232を破線にて示しており、それ以外のデータコードブロック及び誤り訂正ブロックについては符号を省略している。また、コードブロック内の具体的セル構成も省略して示している。
このように構成される2つの二次元コード100、200は、複数のセルからなる連結ブロック3を挟んで配置されており、この連結ブロック3によって2つの二次元コード100、200の境界位置が示されている。なお、図22に示す連結ブロック3も第1実施形態のものと同様の構成をなし、同様の特徴を有している。
本実施形態の情報コード1は、上記のような構成(即ち第1実施形態と同様の構成)に加え、連結ブロック3によって連結された2つの二次元コード100,200内にそれら2つの二次元コード100,200に関する情報(二次元コード関連情報)が含まれている点が更に特徴として加わっている。以下、その特徴について詳述する。
まず、二次元コード関連情報の一つであるコード数情報について説明する。
図23の情報コード1は、連結ブロック3によって連結される2つの二次元コード100、200において、それら連結される2つの二次元コードのコード数を表すコード数情報が記録されている。具体的に述べると、図22の情報コード1は2つの二次元コード100、200によって構成されており、情報コード1全体に含まれる二次元コード数が「2」であるため、この「2」という数データをコード数情報としている。この「2」というコード数情報は、当該「2」がコード数情報であることを示すコード数情報特定データ(例えば、コード数情報であることを示す特定の数字列や文字列からなるデータ)と対応付けられており、これらコード数情報及びコード数情報特定データからなるデータが、両二次元コード100、200のそれぞれのデータコードブロック131、231によって表されている。
このように、二次元コード100においてコード数情報がコード数情報特定データと対応付けられてデータとして記録され、二次元コード200においてもコード数情報がコード数情報特定データと対応付けられてデータとして記録されているため、読取装置によっていずれの二次元コードを読み取った場合でも、当該読取装置においてコード数情報を容易に特定でき、かつ当該コード数情報に基づいて情報コード1全体にいくつの二次元コードが含まれているかを当該読取装置において確認できるようになっている。
また、情報コード1を構成する2つの二次元コード100、200には、各二次元コード100、200を特定する各固有情報が、各二次元コード100,200と対応付けられてそれぞれ記録されている。固有情報は、各二次元コードを特定できるものであればよく、本実施形態では、二次元コード100固有のものとされる「ABC」という固有情報と、当該「ABC」が固有情報であることを示す固有情報特定データ(例えば、固有情報であることを示す特定の数字列や文字列などのデータ)とが対応付けられており、これら固有情報及び固有情報特定データからなるデータが、二次元コード100のデータコードブロック131によって表されている。このように構成されているため、読取装置によって二次元コード100を読み取った場合に、固有情報特定データと対応付けられた「ABC」が固有情報であることを当該読取装置によって特定でき、読取対象の二次元コード100が「ABC」に係る二次元コードであることを当該読取装置で確認できるようになっている。
二次元コード200も同様であり、二次元コード200固有のものとされる「DEF」という固有情報と、当該「DEF」が固有情報であることを示す固有情報特定データ(例えば、固有情報であることを示す特定の数字列や文字列などのデータ)とが対応付けられており、これら固有情報及び固有情報特定データからなるデータが、二次元コード200のデータコードブロック231によって表されている。このように構成されているため、読取装置によって二次元コード200を読み取った場合に、固有情報特定データと対応付けられた「DEF」が固有情報であることを当該読取装置にて把握でき、読取対象の二次元コード200が「DEF」に係る二次元コードであることを読取装置側で確認できるようになっている。
また、情報コード1を構成する2つの二次元コード100、200には、連結ブロックで連結されたそれら二次元コード100,200の配置構成を表す配置構成情報が記録されている。この配置構成情報は、情報コードを構成する複数の二次元コードがどのような配置をなしているかを特定する情報である。配置構成情報としては様々なものが考えられるが、複数の二次元コードがマトリックス状に配置されてなる情報コードについて配置構成を表す場合、それら複数の二次元コードのマトリックス構成を特定する列数情報及び行数情報を配置構成情報とすることができる。なお、本発明でいう「マトリックス状」とは、二次元コードが複数行かつ複数列で配置される構成(例えば、図15のような構成)を含むのは勿論のこと、図22のように二次元コードが1行且つ複数列で配置される構成(即ち、横方向に一列で並ぶ構成)なども含み、或いは複数行且つ1列で配置される構成(即ち、縦方向に一列で並ぶ構成)なども概念として含んでいる。
図22の情報コード1の場合、二次元コード100,200が1行2列に配列されたマトリックス構成であるため、例えば、「01」という行数情報と、「02」という列数情報とを配置構成情報とすることができる。本実施形態では、このような「01」「02」という配置構成情報(行数情報及び列数情報)と、当該「01」「02」が配置構成情報であることを示す配置構成情報特定データ(例えば配置構成情報であることを示す特定の数字列や文字列からなるデータ)とが対応付けられており、これら配置構成情報及び配置構成情報特定データからなるデータが、両二次元コード100、200のそれぞれのデータコードブロック131、231によって表されている。
このように、二次元コード100において配置構成情報が配置構成情報特定データと対応付けられてデータとして記録され、二次元コード200においても配置構成情報が配置構成情報特定データと対応付けられてデータとして記録されているため、いずれの二次元コードを読取装置によって読み取った場合でも、コード内のどの情報が配置構成情報であるかを容易に特定でき、且つその特定される配置構成情報に基づき情報コードを構成する複数の二次元コードがどのような配置構成をなしているかを当該読取装置において容易に特定できるようになる。
本実施形態の構成によれば例えば以下のような効果が得られる。
本実施形態の情報コード1では、連結ブロック3にて連結される2つの二次元コード100,200において、それら連結される2つの二次元コード100,200のコード数を表すコード数情報が記録されている。このように構成すると、読み取りの際に、情報コード1内に含まれる二次元コードの数を把握することができ、各種確認(例えば、全二次元コードのうちのどの程度の二次元コードが読み取られたか否かの確認、或いは、全ての二次元コードの読み取りが完了したか否かの確認等)を容易に行うことができる。
また、連結ブロック3にて連結される2つの二次元コード100,200において、各二次元コード100,200を特定する固有情報が、各二次元コード100,200と対応付けられてそれぞれ記録されている。このようにすると、情報コード1を読み取る際にどの二次元コードを読み取ったかを読取装置側で的確に把握できるようになる。
また、連結ブロック3にて連結される2つの二次元コード100,200において、それら連結される2つの二次元コード100,200の配置構成を表す配置構成情報が記録されている。このように構成すると、読み取りの際に、情報コード1内の二次元コードの配置構成を把握することができ、二次元コードの配置構成を考慮した適切な読み取りが可能となる。具体的には例えば、配置構成情報で配置が特定される二次元コードを全て読み取ったか否かの確認などを迅速且つ精度高く行いやすくなる。
また、2つの二次元コード100,200に記録される配置構成情報は、これら2つの二次元コード100,200のマトリックス構成を特定する列数情報及び行数情報を含んだ構成となっている。このようにすると、少ない情報量で2つの二次元コード100,200の配置構成を迅速且つ正確に把握できるようになる。
次に、本実施形態の別例1について説明する。
図22に係る説明では、情報コード1を構成する2つの二次元コード100,200に二次元コード関連情報(コード数情報、固有情報、配置構成情報)を記録しておく一例を示したが、これとは異なる構成の情報コードであっても同様の考えを適用できる。例えば、図23のような複数行、複数列のマトリックス構成をなす情報コード600においても図22の例と同様のコード数情報、固有情報、配置構成情報を二次元コードに記録しておくことができる。以下では、図23の情報コード600を構成する二次元コードに二次元コード関連情報を記録する例について説明する。
図23の情報コード600は、基本的構成は、図15と同様であり、図23は、図15の情報コード600を更に詳しく説明しようとするものである。情報コード600は、図15でも説明したように、4つの二次元コード410、420、430、440がマトリックス状に配置されて連結ブロック603によって連結されたものであり、図23の例ではこのような二次元コード600の各二次元コード410、420、430、440において、それら連結される4つの二次元コード410、420、430、440のコード数を表すコード数情報が記録されている。なお、コード数情報は、情報コード600全体に含まれる二次元コードの数だけでなく、各二次元コードの位置や順番などを対応付けてもよい。例えば、情報コード600において、二次元コード410が1番目と定められ、二次元コード420、430、440がそれぞれ2番目、3番目、4番目と定められる場合、各二次元コードにおいて自身の順番と全コード数とを記録しておくことができる。
例えば、二次元コード410にコード数情報を記録する場合、二次元コード410の順序情報(即ち、1番目の「1」という情報)と情報コード600に含まれる二次元コード数「4」とをコード数情報とし、これら「1」「4」というコード数情報と、コード数情報特定データとを対応付けたデータを二次元コード410のデータコードブロック415によって表すことができる。このようにすると、読取装置によって二次元コード410を読み取ったときに、上記「1」「4」がコード数情報であることを当該読取装置にて特定でき、更に、全体の二次元コード数が4であること、及びその4つの二次元コードにおける1番目の二次元コードを読み取ったことを当該読取装置において確認できるようになる。また、二次元コード420も同様であり、二次元コード420の順序情報(即ち、2番目の「2」という情報)と情報コード600に含まれる二次元コード数「4」とをコード数情報とし、これら「2」「4」というコード数情報と、コード数情報特定データとを対応付けたデータを二次元コード420のデータコードブロック425によって表すようにすればよい。なお、二次元コード430、440も同様であり、二次元コード430には「3」「4」というコード数情報を記録し、二次元コード440には「4」「4」というコード数情報を記録しておくことができる。なお、図23では、一部のデータコードブロックについて破線415、425、435、445にて概念的に示し、他のデータコードブロックの符号については省略している。また、各データコードブロックの具体的構成も省略して示している。
また、図23の情報コード600の場合、二次元コード410、420、430、440が2行2列に配列されたマトリックス構成であるため、例えば、「02」という行数情報と、「02」という列数情報とを配置構成情報とすることができる。具体的には、このような「02」「02」という配置構成情報(行数情報及び列数情報)と、当該「02」「02」が配置構成情報であることを示す配置構成情報特定データとを対応付け、これら配置構成情報及び配置構成情報特定データからなるデータを、各二次元コード410、420、430、440のそれぞれのデータコードブロック415、425、435、445によって表すようにすればよい。このようにすると、読取装置によって二次元コード410を読み取ったときに、上記「02」「02」が配置構成情報であることを当該読取装置にて特定でき、更に、情報コード600を構成する4つの二次元コード410、420、430、440が2行2列のマトリックス状に配置されていることを当該読取装置において把握できるようになる。
次に、本実施形態の別例2について説明する。
図24は、別例2に係る情報コード900を例示するものであり、この情報コード900でも、複数の二次元コード910、920,930,940、950、960が設けられ、これら複数の二次元コード910、920,930,940、950、960が、列状の連結ブロック901、902,903,904,905によって連結されている。情報コード900を構成する各二次元コード910、920,930,940、950、960は、複数のセルが集合してなるコードブロックと、セルの位置を特定するための第1の特定パターンと、を備えると共に、第1の特定パターンが矩形領域の規定の角部に配置され、かつ複数のコードブロックが矩形領域内に配置された構成をなしている。なお、図24では、各二次元コード910、920,930,940、950、960のそれぞれの第1の特定パターンを符号912、922,932,942、952、962で表しており、各二次元コード910、920,930,940、950、960の内部に配置されるコードブロック(データコードブロックや誤り訂正コードブロック)の符号や具体的構成は省略して示している。
上記情報コード900を構成する二次元コード910、920,930,940、950、960には、連結ブロック901〜905で連結されたそれら二次元コード910、920,930,940、950、960の配置構成を表す配置構成情報が記録されている。この配置構成情報は、情報コード900を構成する複数の二次元コードの配置を形状的に特定する形状情報を含んでいる。具体的に言うと、情報コード900は、二次元コードによって構成される2つの列(二次元コード910、920,930、940によって構成される縦方向の列、及び二次元コード940、950,960によって構成される横方向の列)がL字状に結合されてなるものであるため、L字構成であることを示す形状情報(例えば「L」という情報)を配置構成情報としている。また、L字構成の具体的内容が、一方の列(縦方向の列)の配列情報と、他方の列(横方向の列)の配列情報とによって特定されるようになっており、この配列情報と上記形状情報とによって配置構成情報が構成されている。
具体的に述べると、情報コード900は、一方の列(縦方向の列)が4行1列で構成されているため、「4」「1」というデータを一方の列の配列情報とすることができ、他方の列(横方向の列)が1行3列で構成されているため、「1」「3」というデータを他方の列の配列情報とすることができる。情報コード900では、このようにして表される「L」「4」「1」「1」「3」というデータを配置構成情報とし、二次元コード910、920,930,940、950、960を構成するデータコードブロックによって当該配置構成情報を表現している。なお、上記配置構成情報は、全ての二次元コード910、920,930,940、950、960それぞれにデータとして含ませておいてもよく、いずれか一又は複数の二次元コード(例えば、端部の二次元コード)のみにデータとして含ませておいてもよい。
また、図24の情報コード900においても、二次元コード910、920,930,940、950、960の全て或いは一部において、情報コード900を構成する二次元コードの数を示すコード数情報(例えば「6」という情報)を記録しておくことができる。また、情報コード900においても、各二次元コード910、920,930,940、950、960それぞれに、各二次元コード固有の情報(例えば図24下図に示すような固有情報)を記録しておくことができる。
[第7実施形態]
次に、本発明の第7実施形態について説明する。図25(a)は、第7実施形態に係る生成方法によって生成される情報コードを概念的に例示する説明図であり、図25(b)は、図25(a)の情報コードを構成する各二次元コードを説明する説明図である。図26は、第7実施形態に係る生成方法を実現する生成処理を例示するフローチャートである。図27は、図26の生成処理における連結ブロックのセル色決定処理を例示するフローチャートである。図28は、図27の処理における無彩色処理の流れを例示するフローチャートである。図29は、両隣接セルのセル色と、その間の対象セルのセル色との関係を例示する説明図である。図30は、色相環を概略的に例示する説明図である。図31は、図25(a)の情報コードの連結ブロック付近を拡大して説明する説明図である。
本実施形態に係る生成方法によって生成される情報コードは、複数の二次元コードが当該二次元コードの境界位置を示す連結ブロックを挟んで配置されて一体的に構成されるものであり、図25(a)にはそのような情報コードの一例を示している。
図25(a)の情報コードは2つの二次元コード1010、1020がこれら二次元コード1010、1020の境界位置を示す連結ブロック1003を挟んで配置されて一体的に構成されている。一方の二次元コード1010は、複数のセルが集合してなるコードブロック(上記実施形態と同様のデータコードブロックや誤り訂正コードブロック)と、セルの位置を特定するための第1の特定パターン1012と、を備えると共に、第1の特定パターン1012が矩形領域の規定の角部に配置され、かつ複数のコードブロックが矩形領域内に配置された構成をなしている。他方の二次元コード1020も同様であり、複数のセルが集合してなるコードブロック(上記実施形態と同様のデータコードブロックや誤り訂正コードブロック)と、セルの位置を特定するための第1の特定パターン1022と、を備えると共に、第1の特定パターン1022が矩形領域の規定の角部に配置され、かつ複数のコードブロックが矩形領域内に配置された構成をなしている。なお、図25の例では、コードブロックの具体的セル構成については省略して示しており、境界となる辺1011、1021に隣接するセルのみ具体例を示している。
図26は図25(a)のような情報コードを生成する生成処理を例示するフローチャートである。この生成処理は、CPU、メモリ、入力装置などを備えた情報処理装置(例えばコンピュータ)などによって実行されるものであり、当該処理が開始されると、まずS1の二次元コード生成処理が行われる。二次元コード生成処理では、二次元コードを生成する公知の処理を様々に用いることができる。その一例としては、まず入力装置などによって入力された入力データ(コード化すべきデータ)を分析してデータ量の把握等を行い、その後、入力データを符号化し、データコード語を生成する処理を行う。更に、入力データに基づいて誤り訂正コード語を生成する。なお、本実施形態に係る方法では、二次元コードの型番が予め複数種類用意されており、利用者による指示或いは入力されたデータ量などに基づいて型番が選択されるようになっている。従って、上記データコード語を表現するためのデータコードブロックや、誤り訂正コード語を表現する誤り訂正コードブロックは、選択された型番において定められている順序で配置される。
なお、S1の二次元コード生成処理では上記のような生成方法を用いて複数の二次元コードを生成している。複数の二次元コードの生成方法は、入力された一連のデータを複数の二次元コードによって表現する方法(例えば入力された一連のデータを複数に分割し、各分割データについてそれぞれ二次元コードを生成する方法)であってもよく、別々に入力されたデータについてそれぞれ二次元コードを生成する方法であってもよい。
なお、S1の処理は、「二次元コード生成ステップ」の一例に相当する。
S1の二次元コード生成処理にて複数の二次元コードが生成された後には、隣接セルの色相値を検出する処理が行われる(S2)。隣接セルの色相値検出処理は、各二次元コードにおける連結ブロックに隣接する隣接セルの色相値を検出する処理であり、例えば、S1にて図25(b)のように2つの二次元コード1010、1020が生成された場合、これら2つの二次元コード1010、1020のそれぞれにおいて隣接セルの色相値の検出が行われる。
一方の二次元コード1010は、連結ブロック1003との境界となるべき辺1011に隣接する各セル1011a〜1011kが隣接セルとされており(図31も参照)、S2では、これら隣接セル1011a〜1011kの色相値が確認される。他方の二次元コード1020も同様であり、連結ブロック1003との境界となるべき辺1021に隣接する各セル1021a〜1021kが隣接セルとされており(図31も参照)、S2ではそれら各隣接セル1021a〜1021kの色相値も確認される。
その後、連結ブロックを構成する各セルのセル色を設定する処理を行う(S3)。
S3の処理は例えば図27のような流れで行われる。まず、連結ブロックにおけるセル色設定の対象となるセル(以下、対象セルとも称する)の両側の隣接セルが有彩色であるか否かを判断する。例えば、図25(b)の隣接セル1011aと隣接セル1021aの間に配置されるセルを対象セルとする場合、両隣接セル1011a、1021aともに黒色であり、無彩色であるためS11にてNoに進み、S16の無彩色処理を行う。
S16の無彩色処理は、例えば図28のような流れで行われる。当該処理では、まずセル色を設定しようとする対象セルの両側の隣接セルがいずれも無彩色であるか否かを判断する(S101)。例えば、隣接セル1011aと隣接セル1021aの間に配置されるセルを対象セルとしてセル色を設定する場合、対象セルに隣接する両隣接セル1011a、1021aがいずれも黒色であり、無彩色であるため、S101にてYesに進む。一方、対象セルに隣接する両隣接セルのうち一方のみが無彩色の場合にはS101にてNoに進む。S101にてYesに進む場合、対象セルに隣接する両隣接セルがいずれも白色であるか否かを判断する(S102)。対象セルに隣接する両隣接セルがいずれも白色である場合には、S102にてYesに進み、対象セルのセル色を黒色に設定する(S103)。
S102において対象セルに隣接する隣接セルの少なくともいずれかが白色でないと判断される場合には、S102にてNoに進む。S102にてNoに進む場合、対象セルの両側の隣接セルがいずれも黒色であるかを判断する(S104)。例えば、隣接セル1011aと隣接セル1021aの間のセルを対象セルとする場合、隣接する両隣接セルとも黒色であるため、S104にてYesに進み、対象セルのセル色を白色に設定する(S105)。即ち、隣接セル1011aと隣接セル1021aの間のセル色はこのような流れで白色に設定されることとなる(図29も参照)。
S104において対象セルに隣接する隣接セルの少なくともいずれかが黒色でないと判断される場合には、S104にてNoに進む。この場合、対象セルを無彩色に設定すると共に、当該対象セルの輝度を、その両側に配される両隣接セルの輝度の平均値に設定する(S106)。例えば、対象セルの一方側の隣接セルが白色であり、他方側の隣接セルが黒色の場合、対象セルは灰色に設定され(図29参照)、その輝度は両隣接セルの輝度の平均値に設定される。
一方、S101において対象セルに隣接する隣接セルのうち一方のみが無彩色と判断される場合にはS101にてNoに進み、その一方の無彩色セルのセル色が白色か否かを判断する(S107)。一方の無彩色セルが白色である場合にはS107にてYesに進み、対象セルのセル色を黒色に設定する(S108)。なお、図31の隣接セル1011iと隣接セル1021iの間のセルを対象セルとするような場合にこのような設定になされる。
無彩色セルのセル色が白色でない場合にはS107にてNoに進み、対象セルのセル色を白色に設定する(S109)。例えば、図31の隣接セル1011bと隣接セル1021bの間のセルを対象セルとするような場合にこのような設定がなされる。
図27に戻り、S11において両セルとも有彩色と判断される場合について説明する。S11において対象セルに隣接する両隣接セルとも有彩色と判断される場合、S11にてYesに進み、両隣接セルの色相値の差を算出する(S12)。
図30は色相をスペクトルの順序に環状に配列した色相環を概略的に示すものであり、赤色が0°とされ、黄色が60°、緑色が120°、シアン色が180°、青色が240°、マゼンダ色が300°と定められている。本実施形態では、このような色相環で定められる角度を色相値としている。なお、図30では、赤、黄、緑、シアン、青、マゼンタの色相値のみを代表的に示しているが、これら以外の色についても、スペクトルの配列に従って色相値が定められることは言うまでもない。
本実施形態では、このように定められる色相値に関して、対象セルの一方側の隣接セルの色相値X1と、他方側の色相値X2との差を算出し、色相値の差が180°未満であるか否かを判断する(S13)。なお、色相値の差は、X1−X2の絶対値で表すこともできる。両隣接セルの色相値の差が180°未満である場合にはS13にてYesに進み、両セルの色相値X1、X2の中間値Xaを求め、当該中間値Xaに180°を加えた色相値に相当する色を対象セルのセル色に設定する(S14)。例えば、対象セルの一方側の隣接セルが赤色であり、他方側の隣接セルが緑色の場合、一方側の隣接セルの色相値(即ち0°)と他方側の隣接セルの色相値(即ち120°)とに基づいて中間値である60°を求め、この中間値に180°を加えた色相値240°に相当する色(即ち青色)を対象セルの色相値に設定する。なお、隣接セル1011fと隣接セル1021fの間のセルを対象とする場合にこのような設定がなされる(図31参照)。
一方、対象セルに隣接する両隣接セルの色相値の差が180°以上の場合にはS13にてNoに進み、両セルの色相値X1,X2の中間値に相当する色を対象セルのセル色に設定する(S15)。例えば、対象セルの一方側の隣接セルが赤色であり、他方側の隣接セル青色の場合、一方側の隣接セルの色相値(即ち0°)と他方側の隣接セルの色相値(即ち240°)とに基づいて中間値である120°を求め、この中間値に相当する色(即ち緑色)を対象セルの色相値に設定する。なお、隣接セル1011kと隣接セル1021kの間のセルを対象セルとする場合にこのような設定がなされる(図31参照)
以上のような流れでS3の処理(図26)が行われるが、このS3の処理は連結ブロックを構成する各対象セル毎に行われる。具体的には、S3の処理によって対象セルのセル色が設定された後、S4において連結ブロックを構成する全てのセルについてセル色が設定されたか否かを判断し、セル色が設定されていないセルが残っている場合にはS4にてNoに進み、残りのセルについてS3の処理を繰り返す。全てのセルについてセル色が設定された場合にはS4にてYesに進み、連結ブロック生成処理を行う(S5)。連結ブロック生成処理では、図25、図31に示すように、セル色が設定された全セルを並べて連結ブロック1003を構成すると共に、その両側にS1で生成された二次元コード1010、1020を配置し、情報コード1を完成させる。
なお、本実施形態では、S2〜S5の処理が「連結ブロック生成ステップ」の一例に相当する。また、S2の処理が「第1検出ステップ」及び「第2検出ステップ」の一例に相当する。また、S3、S4の処理が「セル色決定ステップ」の一例に相当する。
本実施形態に係る発明によれば、複数の二次元コードを連結ブロックで連結してなる情報コードを良好に生成できる。特に、S2〜S5の処理(連結ブロック生成ステップ)では、一の二次元コード1010における連結ブロックに隣接する各隣接セル1011a〜1011kの色彩(具体的には色相値)、及び他の二次元コード1020における連結ブロックに隣接する各隣接セル1021a〜1021kの色彩(具体的には色相値)をそれぞれ検出し、それら検出された各隣接セル1011a〜1011kの色彩に基づいて連結ブロック1003の各セルの色彩を決定しているため、連結ブロック1003の各セルを、その両側の隣接セルを考慮した適切な色彩に設定でき、ひいては連結ブロック1003全体を、両側の二次元コード1010,1020を特定しやすい適切な構成とすることができる。
また、連結ブロック1003の各セル1003a〜1003kの色彩を、当該各セル1003a〜1003kの一方側に隣接する一の二次元コード1010の隣接セル1011a〜1011kについての色相値と、他方側に隣接する他の二次元コード1021の隣接セル1021a〜1021kについての色相値と、の中間値に基づいて決定している。このようにすると、連結ブロック1003の各セル1003a〜1003kを、当該各セルの両側に配置される隣接セルとより区別しやすい色彩とすることができ、二次元コードの境界や連結ブロックの境界をより一層特定しやすい情報コードを良好に生成できる。
[第8実施形態]
次に、本発明の第8実施形態について説明する。図32は、第8実施形態に係る表示方法を実現する表示処理を例示するフローチャートである。図33(a)は表示の対象となる情報コードを例示する説明図であり、図33(b)は、図33(a)の情報コードを複数のコード要素に分割した例を説明する説明図である。図34は、表示装置における表示例を示す説明図である。なお、図34では、表示装置については画面部分のみを概略的に示している。
図32に示す表示処理は、CPU、メモリなどを供えた情報処理手段(例えばコンピュータ等)と表示装置(例えば、液晶表示器など)とによって実現されるものである。
図32の表示処理が開始されると、まず表示すべき情報コードを取得する処理が行われる(S201)。この情報コード取得処理は、図33(a)にて例示されるような情報コードを取得する処理である。S201の処理での情報コードの取得方法は、外部から情報コードそのものを取得する方法であってもよく、外部から入力データのみを取得し、当該入力データに基づいて情報コードを生成する方法であってもよい。外部から情報コードそのものを取得する方法としては、図33(a)のような情報コードのデータを外部装置から受信してもよく、撮像手段などによって図33(a)のようなコード画像を撮像し、画像データを得る方法であってもよい。なお、図33(a)の情報コード820は、上記実施形態で説明した図19の情報コードと同一であり、内部のコードブロックの具体的セル構成は省略して示している。
S201にて情報コードが取得された後には、当該情報コードを分割する処理が行われる(S202)。例えば、S201にて図33(a)のような情報コード820が取得された場合、S202ではこの情報コード820を図33(b)のように複数のコード要素E1〜E3に分割する。
なお、本実施形態では、S202の処理が「分割ステップ」の一例に相当する。
S202の処理では、図33(b)のように各コード要素E1〜E3それぞれに1つの二次元コードを含ませる構成で情報コード820を分割している。即ち、コード要素E1には1つの二次元コード410が含まれ、コード要素E2には1つの二次元コード420が含まれ、コード要素E3には1つの二次元コード430が含まれている。また、いずれか一つの特定のコード要素(図33(b)ではコード要素E3)に連結ブロックを含ませず、当該特定のコード要素以外のコード要素E1、E2にそれぞれに連結ブロック823,824を含ませた状態で情報コード820を分割している。
S202の処理の後には、分割されたコード要素E1〜E3を序列化する処理が行われる(S203)。分割されたコード要素を序列化する方法が様々に考えられるが、例えば図33(a)のように一列状に並ぶ情報コードの場合、図33(b)のように一端の二次元コード450を含むコード要素E3を最後に表示すべきコード要素として連結ブロックを含ませないようにしておき、当該一端の二次元コード450とは反対側の他端のコード要素E1側から優先的に表示するように序列化できる。この方法によって序列化した場合には、コード要素E1が一番目となり、コード要素E2が二番目となり、連結ブロックを有さないコード要素E3が最後に表示すべき三番目のコード要素となる。
S203の序列化処理の後には、それら序列化されたコード要素E1〜E3を表示装置に表示する処理が行われる(S204)。この処理では、S203の序列化処理によって1番目に設定されたコード要素E1を最初に表示装置Pに表示し(図34(a))、その後、2番目に設定されたコード要素E2を表示装置Pに表示する(図34(b))。そして、最後に3番目に設定されたコード要素E3を表示装置Pに表示する(図34(c))。このように、S204では、連結ブロックを有さない特定のコード要素(即ちコード要素E3)以外のコード要素(即ち連結ブロックを有するコード要素E1,E2)を順次表示した後、特定のコード要素E3を最後に表示するように処理が行われる。
なお、本実施形態では、S203、S204が表示ステップの一例に相当する。
このように表示されるコード要素E1〜E3はそれぞれ読取装置によって読み取ることができる。例えば、表示されたコード要素E1〜E3を読取装置の撮像装置によって撮像した場合、得られる3つのコード画像を連結させた上でデコードしてもよく、それぞれのコード画像を別々にデコードしてもよい。
本実施形態に係る発明によれば、例えば以下のような効果が得られる。
本実施形態に係る発明では、情報コード820を複数のコード要素E1〜E3に分割し、それら分割された複数のコード要素E1〜E3を、表示装置Pの表示画面に順次表示している。このようにすると、情報コードのサイズが大きい場合、少ないスペースで情報コードを表示することができ、表示装置のサイズが小さい場合であっても情報コードの表示や読み取りを良好に行うことができる。また、連結ブロックを有さない特定のコード要素E3以外のコード要素(即ち連結ブロックを備えてなるコード要素E1、E2)を順次表示した後、特定のコード要素E3を最後に表示しているため、複雑な構成や情報を用いることなく最後に表示されるコード要素を確実に特定できるようになる。
また、本実施形態に係る発明では、各コード要素E1〜E3に1つの二次元コードを含ませる構成で情報コード820を分割しているため、各コード要素のE1〜E3のサイズをより小さくすることができ、各コード要素E1〜E3が表示画面により収まりやすくなる。
[他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
上記実施形態では、背景色を白色とした例を挙げて説明したが背景色は白色に限られず様々な色を用いることができる。
上記実施形態では、3種類以上のセル(具体的には3色以上のセル)を用いた情報コードを例示したが、2種類のセルによって情報コードを構成してもよい。例えば、明色セル(白色セル等)と暗色セル(黒色セル等)とによって情報コードを構成してもよい。
また、上記実施形態では、三種類以上のセルによって構成される例として、8色のセルを用いた情報コードを例示したが、使用される色やその種類数はこれに限られない。例えば5色(例えば、R(赤)、G(緑)、B(青),白、黒)や12色等、上記実施形態の色数よりも多くしても、少なくしてもよく、使われる色の組み合わせも上記実施形態と異なる組み合わせとしてもよい。
上記実施形態では、二次元コードのコード領域(矩形領域)として、外形が正方形状に構成される正方形領域を例示したが、これに限定されず、例えば外形が長方形状に構成される長方形領域であってもよい。
上記実施形態では、コードブロックの構成として、主に8つのセルが集合してなるブロックを例示したが、データコードブロック、誤り訂正コードブロックのいずれについても、セル数は8以外であってもよい。例えば、8未満(例えば、2個、4個、6個等)のセルが集合してなるブロックであってもよく、8よりも大きい数(例えば、10個、16個等)のセルが集合してなるブロックであってもよい。
上記実施形態では、第1の特定パターンとしていくつかの例(図1、図12等)を挙げて説明したが、このような構成に限られない。例えば、矩形領域の規定の角部に背景色と異なる色のセルを配置して当該規定の角部を特定しうる構成であれば、使用する色、セル数、形状、配置順序等は様々とすることができる。
上記実施形態では、連結ブロックに隣接する第2の特定パターンとして図1のような例を挙げて説明したが、このような構成に限られない。例えば、矩形領域の境界部に背景色と異なる色のセルを配置して当該境界部を特定しうる構成であれば、使用する色、セル数、形状、配置順序等は様々とすることができる。
上記実施形態では、連結ブロックの少なくとも一部を構成する各セルが、少なくとも一方の二次元コードにおける当該各セルに隣接する隣接セルと色彩が異なるように構成された例を示したが、このような構成に限られない。例えば、連結ブロックの少なくとも一部を構成する各セルが、少なくとも一方の二次元コードにおける当該各セルに隣接する隣接セルと濃度が異なるように構成されていてもよく、連結ブロックの少なくとも一部を構成する各セルが、少なくとも一方の二次元コードにおける当該各セルに隣接する隣接セルと輝度が異なるように構成されていてもよい。
上記実施形態では、同一サイズの複数の二次元コードを連結ブロックによって連結した構成を例示したが、異なるサイズの二次元コードを連結ブロックによって連結してもよい。図18の情報コード800は、その一例を示すものであり、図1の二次元コード100と同一構成の二次元コードと、図12の二次元コード420と同一構成の二次元コードとを連結ブロック803によって連結した構成をなしている。この構成でも、連結ブロック803は、セルが直線状(一列状)に並んだ構成をなしており、連結ブロック803の幅は、セルの一辺の長さと同一とされている。連結ブロック803の長さは、一方の二次元コード420の一辺の長さと同一となっており、連結ブロック803における二次元コード420に隣接する全セル各々が、二次元コード420における当該各々に隣接するセル(隣接セル)と色彩が異なるように構成されている。
上記実施形態では、所定方向に2つの二次元コードが並んだ構成を例示したが、所定方向に3以上の二次元コードを並べ、二次元コード間に上記実施形態と同様の連結ブロックを設けるようにしてもよい。例えば、図19の例では、図12と同一の二次元コード410、420を並べてその間に連結ブロック823を配置している。また、その横に二次元コード410と同様の二次元コード450を並べ、二次元コード420と二次元コード450との間に連結ブロック824を配置している。つまり、3つの二次元コード410、420、450を一方向に並べ、それらの間に連結ブロック823、824を配置して一体的に構成している。この構成でも、連結ブロック823は、セルが直線状(一列状)に並んだ構成をなしており、連結ブロック823の幅は、セルの一辺の長さと同一とされている。また、連結ブロック823における二次元コード420に隣接する全セル各々が、二次元コード420における当該各々に隣接するセル(隣接セル)と色彩が異なるように構成されている。同様に、連結ブロック824も、セルが直線状(一列状)に並んだ構成をなしており、連結ブロック824の幅は、セルの一辺の長さと同一とされている。また、連結ブロック824における二次元コード450に隣接する全セル各々が、二次元コード450における当該各々に隣接するセル(隣接セル)と色彩が異なるように構成されている。なお、図19でも、データコードブロックや誤り訂正コードブロック等のコードブロックを省略して示している。
また、図20のように、情報コードの全体形状が矩形形状ではない構成としてもよい。図20では、図12と同様の二次元コード410、420を所定方向に並べると共にそれらの間に連結ブロック843を配置している。また、二次元コード410、420の並び方向と異なる方向に並ぶように二次元コード410、430を配置し、それらの間に連結ブロック844を配置している。なお、二次元コード430は、二次元コード410と同様の構成、即ち、第1の特定パターン432、境界部隣接パターン433、434が二次元コード410の第1の特定パターン412、境界部隣接パターン413、414と同一となる構成となっている。なお、図20でも、データコードブロックや誤り訂正コードブロック等のコードブロックを省略して示している。
第3実施形態では、図12のようなコード構成をなすものにおいて、同種セルが並んでなる連結ブロックを用いた例を示したが、同種セルを並べて情報コードを構成する例はこれに限られず、例えば、図1のようなコード構成をなすものにおいて同様の考えを適用してもよい。図21の情報コード860は、その一例であり、連結ブロック863の構成のみが図1と異なっている。この連結ブロック863は、第1の特定パターン202に隣接する領域において当該第1の特定パターン202の外周部セル(即ち黒色セル)と色彩の異なる白色セルが第1の特定パターン202の長さ分だけ並んでおり、境界部隣接パターン220に隣接する領域においては、これとは異なる色のセル(黒色セル)が境界部隣接パターン220の長さ分だけ並んでいる。
上記実施形態では、連結ブロックの少なくとも一部を構成する各セルが、少なくとも一方の二次元コードにおける当該各セルに隣接する隣接セルと色彩が異なるように構成された例を重点的に説明したが、このような構成に限られない。いずれの実施形態の構成についても、連結ブロックの少なくとも一部を構成する各セルが、少なくとも一方の二次元コードにおける当該各セルに隣接する隣接セルと濃度が異なるように構成されていてもよく、連結ブロックの少なくとも一部を構成する各セルが、少なくとも一方の二次元コードにおける当該各セルに隣接する隣接セルと輝度が異なるように構成されていてもよい。例えば、図1のような構成、即ち、一方の二次元コード200における第1の特定パターン202と隣接するように連結ブロック3が配置されている構成のものにおいて、連結ブロック3における、第1の特定パターン202と隣接する部分の全セル各々が、第1の特定パターン202における隣接するセル202a〜202gと濃度が異なるように構成されていてもよい。即ち、セル3a〜3gは、セル200a〜202gと濃度が異なるセル(例えば、セル200a〜202gの濃度値よりも低い濃度値のセル)であれば白色でなくてもよい。この場合、情報コード1は、濃度の異なる複数種類のセルによって構成されることとなる。
或いは、図1の連結ブロック3における、第1の特定パターン202と隣接する部分の全セル各々が、第1の特定パターン202における隣接するセル202a〜202gと輝度が異なるように構成されていてもよい。即ち、セル3a〜3gは、セル200a〜202gと輝度が異なるセル(例えば、セル200a〜202gの輝度値よりも高い輝度値のセル)であればよい。この場合、情報コード1は、輝度の異なる複数種類のセルによって構成されることとなる。
第6実施形態では、情報コードを構成する複数の二次元コードに、コード数情報、各二次元コードの固有情報、配置構成情報が記録された例をいくつか示したが、本明細書の他のいずれの情報コードも、このようなコード数情報、固有情報、配置構成情報を二次元コードに記録しておくことができる。また、第6実施形態で説明した情報コードや、本明細書の他の情報コードにおいて、二次元コードにコード数情報、固有情報、配置構成情報を記録する場合、これらの全ての種類の情報を記録するのではなく、いずれか1種のみ(例えば、コード数情報のみ)又は2種のみ(例えば、コード数情報と固有情報のみ)を記録しておくこともできる。
第6実施形態では、情報コードを構成する二次元コード全てにコード数情報を記録する例を示したが、一部の二次元コードのみ(例えば、端部の二次元コードのみ)にコード数情報を記録してもよい。
第6実施形態では、情報コードを構成する二次元コード全てに配置構成情報を記録する例を示したが、一部の二次元コードのみ(例えば、端部の二次元コードのみ)に配置構成情報を記録してもよい。
第6実施形態では、各二次元コード内に、各二次元コードの固有情報が記録される構成を例示したが、複数の二次元コードの固有情報をまとめていずれかの二次元コードに記録してもよい。例えば、各二次元コードの固有情報と各二次元コードの順序情報や位置情報を対応付けていずれかの二次元コードに記録しておけば、当該いずれかの二次元コードを読み取ったときに、各二次元コードに係る固有情報が把握できる。
第7実施形態では、連結コードを構成する各セルの両側に配置される隣接セルの色相値に基づいて各セルのセル色を決定する方法を例示したが、これに限られない。例えば、連結コードを構成する各セルの両側にそれぞれ配置される両隣接セルの濃度に基づいて、当該両隣接セル間のセルの濃度を決定してもよい。例えば、連結ブロックの各セルの濃度が、当該各セルの両側に配置される両隣接セルのいずれの濃度に対しても差が所定値以上となるように各セルの濃度を設定するようにしてもよい。
或いは、連結コードを構成する各セルの輝度を、当該各セルの両側にそれぞれ配置される両隣接セルの輝度に基づいて決定するようにしてもよい。例えば、連結ブロックの各セルの輝度が、当該各セルの両側に配置される両隣接セルのいずれの輝度に対しても、差が所定値以上となるように各セルの輝度を設定するようにしてもよい。
第7実施形態では、連結コードを構成する各セルの両側に配置される両隣接セルの色相値に基づいて各セルのセル色を決定する方法を例示したが、連結コードの各セルの色相値を、各セルの一方側に配置される隣接セルのみの色相値に基づいて決定するようにしてもよい。その例としては、例えば、連結ブロックの各セルのセル色を、各セルの一方側に隣接する隣接セルのセル色の補色となるように設定してもよい。
第8実施形態では、各コード要素に1つの二次元コードを配置する構成で情報コードを分割したが、これに限られない。例えば、分割される複数のコード要素のいずれかに複数の二次元コードが含まれていてもよい。
第8実施形態では、情報コードを分割する方法や序列化する方法の一例を示したが、分割方法や序列化方法はこれに限られない。例えば、情報コード820を構成する二次元コードにおいてこれら二次元コードを序列化する序列化情報が記録されているような場合、この序列化情報に従って、情報コードを分割し、序列化処理を行うことができる。具体的に述べると、例えば、二次元コード410のデータとして3番目という序列化情報が記録され、二次元コード420のデータとして2番目という序列化情報が記録され、二次元コード450のデータとして1番目という序列化情報が記録される場合、S202ではこれら序列化情報に基づいて情報コード820を分割することができる。この場合、二次元コード450と連結ブロック824とによってコード要素を構成し、かつ二次元コード420と連結ブロック823とによってコード要素を構成するように分割がなされる。また、序列化情報によって3番目とされている二次元コード410については連結ブロックが付されないこととなる。このような場合、既に序列化されているため、S203の処理は省略でき、序列化された順序(即ち、二次元コード450、二次元コード420、二次元コード410の順序)で表示装置Pにおいて表示が行われる。