(57)【特許請求の範囲】
【請求項１】
複数の情報表示単位セルがマトリックス状に配列されてなり、所定個数の前記情報表示単位セルによってデータコードワードを表現する複数のデータコードブロックと、前記各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロックとを備えた情報コードを読み取る情報コード読取装置であって、
前記情報コードの一部が物体に基づいて隠された画像を取得する画像取得手段と、
前記画像取得手段によって取得された前記情報コードの画像からコード外形位置を検出するコード外形位置検出手段と、
前記画像取得手段によって取得された前記情報コードのコード画像において誤り発生ブロックを特定する誤り検出手段と、
前記誤り検出手段によって検出された前記誤り発生ブロックの誤りを、前記誤り訂正コードブロックの記録内容に基づいて訂正する誤り訂正手段と、
前記誤り訂正手段による誤り訂正結果を反映して前記情報コードのデコードを行うデコード手段と、
前記誤り検出手段によって検出された前記誤り発生ブロックの領域と、前記コード外形位置検出手段によって検出された前記コード外形位置とに基づき、前記撮像手段によって撮像された前記コード画像において前記物体による指示位置を検出する指示位置検出手段と、
を備えたことを特徴とする情報コード読取装置。
【請求項２】
前記情報コードに記録される複数種類のデータの中から、前記指示位置検出手段によって検出された指示位置に対応するデータを解読する対応データ解読手段を備えたことを特徴とする請求項１に記載の情報コード読取装置。
【請求項３】
前記指示位置検出手段は、
前記コード外形位置検出手段によって検出された前記コード外形位置において、前記誤り発生ブロックの領域が隣接する隣接辺を検出する隣接辺検出手段と、
前記誤り検出手段によって検出された１又は複数の前記誤り発生ブロックにおいて、前記隣接辺検出手段によって検出された前記隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出する遠距離ブロック検出手段と、
を備え、
前記遠距離ブロック検出手段によって検出された前記所定個数の前記遠距離ブロックの位置に基づいて前記物体による前記指示位置を検出することを特徴とする請求項１又は請求項２に記載の情報コード読取装置。
【請求項４】
前記隣接辺検出手段は、前記コード外形位置において前記誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、前記誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺を検出し、
前記遠距離ブロック検出手段は、前記誤り検出手段によって検出された１又は複数の前記誤り発生ブロックにおいて、前記隣接辺検出手段によって検出された前記特定隣接辺からの距離の大きさが上位となる前記所定個数の前記遠距離ブロックを検出することを特徴とする請求項３に記載の情報コード読取装置。
【請求項５】
読取対象となる前記情報コードは、前記データコードワード毎に対応付けて、前記各データコードワードの誤り検出に用いる誤り検出用パリティが付されており、前記誤り検出用パリティのビット数が前記データコードワードのビット数よりも少なくなるように構成されていることを特徴とする請求項１から請求項４のいずれか一項に記載の情報コード読取装置。
【請求項６】
前記誤り検出用パリティは、対応付けられた前記データコードワードの各ビット値を合計した合計値に１を加えた値に基づいて生成されたものであることを特徴とする請求項５に記載の情報コード読取装置。
【請求項７】
前記データコードワードが８ビットで表わされ、前記誤り検出用パリティが２ビットで表わされることを特徴とする請求項５又は請求項６に記載の情報コード読取装置。
【請求項８】
前記誤り訂正コードワードの数が、前記データコードワードの数の２倍よりも少ないことを特徴とする請求項５から請求項７のいずれか一項に記載の情報コード読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報コード読取装置に関するものである。
【背景技術】
【０００２】
従来から用いられているＱＲコード（登録商標）などの二次元コードは、複数のセルがマトリックス状に配置された構成をなしており、コード領域内にデータコードワードを表わした複数のデータコードブロックと、各データコードブロックの誤り訂正に用いる誤り訂正コードワードを表わした複数の誤り訂正コードブロックとが設けられた構成が一般的である。
【０００３】
この種の二次元コードでは、データコードワードとして、例えば、数ビット（例えば８ビット）の情報を一単位としてデータを構成する単位要素を表わしており、また、誤り訂正コードワードとしては、そのデータコードワードの誤り訂正を行うための符号を数ビット（例えば８ビット）の情報で表わしたものなどが用いられている。なお、誤り訂正コードワードとしては、例えば、リードソロモン方式によって誤り訂正を行うための符号（ＲＳ符号）などが広く用いられている。なお、このような二次元コードに関連する技術としては特許文献１のようなものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２５４０３７公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、近年では、非常に広範な分野で情報コードが使用されており、情報コードの利用分野も多様化しつつある。他方、情報コードも高機能化が進展しつつあり、それに伴い、情報コードのより高度な利用方法が求められつつある。例えば、最近では、情報コードの大容量化が進んでいるが、このような大容量の情報コードの内部に様々な種類のデータを記録しておく場合、このような情報コードの記録内容の中から特定位置のデータのみを選択的に取り出す要望が想定される。また、ユーザが情報コードの特定位置を指示したときに、その指示位置を正確に把握することが求められることがある。
【０００６】
本発明は、上述した課題を解決するためになされたものであり、情報コードの一部が物体によって隠されて特定位置が指示される場合に、情報コードの解読に加え、その指示位置の特定を正確に行い得る情報コード読取装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明は、
複数の情報表示単位セルがマトリックス状に配列されてなり、所定個数の前記情報表示単位セルによってデータコードワードを表現する複数のデータコードブロックと、前記各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロックとを備えた情報コードを読み取る情報コード読取装置であって、
前記情報コードの一部が物体で隠された画像を取得する画像取得手段と、
前記画像取得手段によって取得された前記情報コードの画像からコード外形位置を検出するコード外形位置検出手段と、
前記画像取得手段によって取得された前記情報コードのコード画像において誤り発生ブロックを特定する誤り検出手段と、
前記誤り検出手段によって検出された前記誤り発生ブロックの誤りを、前記誤り訂正コードブロックの記録内容に基づいて訂正する誤り訂正手段と、
前記誤り訂正手段による誤り訂正結果を反映して前記情報コードのデコードを行うデコード手段と、
前記誤り検出手段によって検出された前記誤り発生ブロックの領域と、前記コード外形位置検出手段によって検出された前記コード外形位置とに基づき、前記撮像手段によって撮像された前記コード画像において前記物体による指示位置を検出する指示位置検出手段と、
を備えたことを特徴とする。
【発明の効果】
【０００８】
請求項１の発明では、情報コードの一部が物体で隠された画像が画像取得手段によって取得された場合に、誤り検出手段により、画像取得手段によって取得された情報コードのコード画像において誤り発生ブロックが検出されるようになっている。そして、その検出された誤り発生ブロックの誤りが、誤り訂正コードブロックの記録内容に基づいて誤り訂正手段によって訂正され、その上で、デコード手段によってデコード処理が行われるようになっている。更に、指示位置検出手段が設けられ、誤り検出手段によって検出された誤り発生ブロックの領域と、コード外形位置検出手段によって検出されたコード外形位置とに基づき、撮像手段によって撮像されたコード画像において物体による指示位置が検出されるようになっている。
この構成によれば、情報コードの一部が物体によって隠されて特定位置が指示される場合に、情報コードの解読できることは勿論のこと、その物体による指示位置をも検出することができるようになる。従って、情報コードを、情報を記録する媒体としてだけでなく、入力のインターフェースとして使うことができ、情報コードの用途の拡大を図ることができる。
【０００９】
請求項２の発明では、情報コードに記録される複数種類のデータの中から、指示位置検出手段によって検出された指示位置に対応するデータを解読する対応データ解読手段が設けられている。
この構成によれば、情報コードを入力のインターフェースとして用い、特定の指示位置に対応するデータを選択的に解読するといった使い方が可能となる。
【００１０】
請求項３の発明では、指示位置検出手段は、コード外形位置検出手段によって検出されたコード外形位置において、誤り発生ブロックの領域が隣接する隣接辺を検出する隣接辺検出手段と、誤り検出手段によって検出された１又は複数の誤り発生ブロックにおいて、隣接辺検出手段によって検出された隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出する遠距離ブロック検出手段と、を備えている。そして、遠距離ブロック検出手段によって検出された所定個数の遠距離ブロックの位置に基づいて物体による指示位置を検出している。
この構成によれば、コード外形位置側からコード内部側に延びるように配置された物体の先端部によって指示される位置を簡易な方法で正確に検出することができる。
【００１１】
請求項４の発明では、隣接辺検出手段は、コード外形位置において誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺を検出し、遠距離ブロック検出手段は、誤り検出手段によって検出された１又は複数の誤り発生ブロックにおいて、隣接辺検出手段によって検出された特定隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出している。
誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺側の方が物体が配置されている確実性が高く、このような特定隣接辺を利用して指示位置を検出すれば、検出精度をより高めることができる。
【００１２】
請求項５の発明では、読取対象となる情報コードは、データコードワード毎に対応付けて、各データコードワードの誤り検出に用いる誤り検出用パリティが付されており、誤り検出用パリティのビット数がデータコードワードのビット数よりも少なくなっている。
このようにすると、データコードワードのビット数よりも少ないビット数で各データコードワードに誤りが生じているか否かを検出することができ、より少ないデータで誤り発生ブロックを特定すること可能となる。また、このような誤り位置の検出に基づき、誤り訂正コードブロックをより少ないデータ量に抑えて消失訂正を行うことができるようになる。
【００１３】
請求項６の発明では、誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に１を加えた値に基づいて生成されている。このようにすると、例えば、データコードブロックが全て暗色（例えば黒）で汚れる場合や、全て明色（例えば白）で汚れる場合であっても誤りの検出漏れを防ぎやすくなる。
【００１４】
請求項７の発明では、データコードワードが８ビットで表わされ、誤り検出用パリティが２ビットで表わされている。このようにすると、各データ要素を８ビットのデータコードワードで好適に表現しつつ、データコードワードのビット数よりも大幅に抑えたビット数でデータコードをワードの誤りを良好に検出できるようになる。
【００１５】
請求項８の発明では、誤り訂正コードワードの数が、データコードワードの数の２倍よりも少なくなっている。このようにすると、１つのデータコードワードの誤り訂正を２つの誤り訂正コードワードを用いて行う方式と比較して誤り訂正に必要なデータ量を抑えることができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、第１実施形態に係る情報コード読取装置で読み取る情報コードを概略的に説明する説明図である。
【図２】図２は、図１の情報コードで用いられるデータコードブロックとこのデータコードブロックに割り当てられる誤り検出用パリティについての具体的セル構成を例示する説明図である。
【図３】図３は、図１の情報コードで用いられるデータコードワードとそのデータコードワードに割り当てられる誤り検出用パリティを例示する説明図である。
【図４】図４は、第１実施形態に係る情報コード読取装置を概略的に例示するブロック図である。
【図５】図５は、第１実施形態に係る情報コード読取装置で行われる読取処理の流れを例示するフローチャートである。
【図６】図６は、図５の読取処理における指示位置検出処理の流れを例示するフローチャートである。
【図７】図７は、第１実施形態に係る情報コード読取装置で読み取る情報コードについての図１とは異なる一例を概念的に示す概念図である。
【図８】図８は、図７の情報コードを物体と共に撮像したときの撮像画像を概念的に示す概念図である。
【図９】図９は、図８の撮像画像での誤り発生ブロックの特定方法について概念的に説明する説明図である。
【図１０】図１０（Ａ）は、特定された誤り発生ブロックに基づいて指示位置を検出する方法を概念的に説明する説明図であり、図１０（Ｂ）は、検出された複数の遠距離ブロックから中心位置を検出する例を説明する説明図である。
【図１１】図１１は、データコードワードと誤り検出用パリティの組み合わせを複数例示して説明する説明図である。
【発明を実施するための形態】
【００１７】
[第１実施形態]
以下、本発明を具現化した第１実施形態について、図面を参照して説明する。
（情報コードの構成）
本実施形態に係る情報コード読取装置２０は、以下で説明する情報コード１と共に情報コード読取システムを構成するものである。まず、図１〜図３を参照して本実施形態に係る情報コードの構成を説明する。
図１は、第１実施形態に係る情報コード読取装置で読み取る情報コードを概略的に説明する説明図である。図２は、図１の情報コードで用いられるデータコードブロックとこのデータコードブロックに割り当てられる誤り検出用パリティについての具体的セル構成を例示する説明図である。図３は、図１の情報コードで用いられるデータコードワードとそのデータコードワードに割り当てられる誤り検出用パリティを例示する説明図である。
【００１８】
情報コード１は、図１に示すように、複数の情報表示単位セル（以下、単に「セル」とも称する）Ｃがマトリックス状に配列されてなるものであり、複数のコードブロック１０と、第１の特定パターン２と、第２の特定パターン３、４と、第３の特定パターン５とを備えた構成をなしている。この情報コード１は、外形が正方形状に構成されたセルＣが集合してマトリックス状に配置されたセル集合体として構成されており、図１の例では、セル数が縦横同数（１１セル×１１セル）となる配列で構成されている。また、情報コード１を構成するコード領域（セルＣが配置される領域）は、外形が矩形状の矩形領域とされており、図１の代表例では外形が正方形状の正方形領域とされている。なお、図１では、一部のセルのみについて符号Ｃを付しており、他のセルの符号は省略している。
【００１９】
情報コード１は、色彩又は濃度又は輝度の異なる複数種類のセルが配列されてなるものであり、図１に示す代表例では、色彩又は濃度又は輝度の異なる２種類のセル（具体的には、黒色セル及び白色セル）が用いられて情報コード１が構成されている。なお、図１等では黒色セルについては符号Ｃｂで示し、白色セルについては符号Ｃｗで示すこととする。
【００２０】
コードブロック１０は、複数のセルＣが集合してなるものであり、図１の情報コード１では、データコードブロック１１と、誤り訂正コードブロック１２とに分けられている。なお、図１では、データコードブロック１１、誤り訂正コードブロック１２、誤り訂正用パリティのブロック１５の領域をそれぞれハッチング、破線枠、網掛けにて概念的に示しているが、これら領域は、具体的には図２のように黒色セルＣｂ或いは白色セルＣｗが配列された構成をなしている。
【００２１】
データコードブロック１１は、例えば図２のような構成をなしており、デコードの対象となるデータの各データ要素を符号化した符号化データ（データコードワード）を複数のセルによって表現したブロックとして構成されている。このデータコードブロック１１を構成する各セルは、予め定められた複数種類のセル（図２の例では黒色セルＣｂと白色セルＣｗの二種類）の中からいずれかの種類のセルが選択されて用いられており、図２の例では、これら複数（図２では８つ）のセルがマトリックス状に集合した構成をなしている。なお、セル配列やブロック形状は図２の構成に限られず、様々な配列、形状とすることができる。また、一部のデータコードブロック１１については２以上の領域に跨って構成されていてもよい。
【００２２】
また、各データコードブロック１１は、全体として、デコードすべき符号化データ（データコード語）に対応したセルの配列で構成されるようになっている。本実施形態では、セルの色が、数値に対応付けられており、例えば、データ値「０」に対して白色セル、データ値「１」に対して黒色セルがそれぞれ対応付けられている。図２の例では、データコードブロック１１によって「００００００１１」という８ビットの値を８つのセルによって表現している。このデータコードブロック１１では、右上から下方側へ順番に１番目、２番目、３番目、４番目のセルが縦に続き、左下から上方側に順番に５番目、６番目、７番目、８番目のセルが縦に続いている。
【００２３】
また、本実施形態では、各データコードブロックを構成する各データコードワードに対応付けて、各データコードワードの誤り検出に用いる誤り検出用パリティが付されている。この誤り検出用パリティのビット数は、データコードワードのビット数よりも少なくされており、図１、図２等に示す代表例では、データコードワードが８ビットで表わされ、誤り検出用パリティが２ビットで表わされている（即ち、データコードワードを表現するデータコードブロック１１が８つのセルによって構成されており、誤り検出用パリティを表現するブロック１５が２つのセルによって構成されている）。なお、図１では、データコードブロック１１とそれに対応する誤り検出用パリティの組み合わせを太線枠にて概念的に示している。
【００２４】
誤り訂正コードブロック１２は、各データコードブロック１１にて表現される各データコードワードの誤り訂正に用いるコードブロックであり、例えば各データコードブロック１１に対応して１つずつ設けられている。この誤り訂正コードブロック１２は、対応するデータコードブロック１１のデータコードワードに基づいて所定方式で生成された誤り訂正コードワードを符号化して表現するものであり、誤り訂正コードワードを符号化したデータを複数個のセルＣによって表現している。
【００２５】
本実施形態では、後述する誤り訂正方法により、誤りが生じているデータコードブロック１１を特定した上で、その誤りが生じているデータコードブロック１１に対応する１つの誤り訂正コードブロック１２によって誤り訂正（消失訂正）を行うものとされており、誤り訂正コードブロック１２の内容（即ち誤り訂正コードワード）は、このような消失訂正が可能な構成であれば公知の様々な方式の符号を用いることができる。本実施形態の代表例では、その一例として公知のリード・ソロモン誤り訂正方式を用いており、具体的には、データコードワード毎に各データコードワードと同じビット数でリード・ソロモン符号（ＲＳ符号）が生成され、各データコードワードに対応する各ＲＳ符号をそれぞれ誤り訂正コードブロック１２によって表現している。
【００２６】
（誤り検出用パリティの内容）
次に、誤り検出用パリティについて説明する。
上述したように、情報コード１では、データコードブロック１１毎に、各データコードブロック１１の誤り検出に用いる誤り検出用パリティが付されている。この誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に１を加えた値を所定の数（具体的には、例えば誤り検出用パリティのビット数で表現可能な数）で割った剰余の値とされている。
【００２７】
例えば、図１、図２に示すように、データコードワードが８ビットで表わされ、誤り検出用パリティが２ビットで表わされる場合、検出用パリティで表現可能な数は４であるため、前記「所定の数」として「４」を好適に用いることができる。この場合、例えば、データコードワードの値が「０００００００１」という内容であれば、データコードワードの各ビット値を合計した合計値が「１」であり、これに１を加えた値が２となる。従って、これを「４」で割った値は２であるため、この「２」を２進数で表した値「１０」が誤り検出用パリティとして付されることとなる。同様に、データコードワードの値が「００００００１１」という内容であれば、データコードワードの各ビット値を合計した合計値が「２」であり、これに１を加えた値が３となる。従って、これを「４」で割った値は３であるため、この「３」を２進数で表した値「１１」が誤り検出用パリティとして付されることとなる。また、図３の中段の例でも同様であり、この例ではデータコードワードの値が「００１１１１１」であり、データコードワードの各ビット値を合計した合計値が「５」であり、これに１を加えた値が６となる。従って、これを「４」で割った値は２であるため、この「２」を２進数で表した値「１０」が誤り検出用パリティとして付されることとなる。
【００２８】
また、本実施形態では、データコードワードの各ビット値を合計した合計値に１を加えているが、このような方法を用いることで、誤り検出をより正確に行うことができるようになる。即ち、情報コード１に汚れなどが生じて誤りが発生する場合、いずれかのデータコードブロック１１の全てのセルＣが暗色に汚れたり、全てのセルＣが明色に汚れる場合が多い。この場合、データコードワードが「００００００００」となるため、データコードワードの各ビット値を合計した合計値そのものを誤り検出用パリティとすると「００」となって整合がとれてしまい、誤りが検出できなくなってしまう。これに対し、本実施形態では、データコードワードの各ビット値を合計した合計値に１を加えた値を誤り検出用パリティとしているため、上述のように全てのセルＣが明色に汚れたとしても、整合がとれにくくなる。
【００２９】
なお、上記実施形態では、８ビットのデータコードワードに対して２ビットの誤り検出用パリティを割り当てる構成を例示したが、図３上段のように、８ビットのデータコードワードに対して１ビットの誤り検出用パリティを割り当ててもよい。この場合、誤り検出用パリティのビット数で表現可能な数は「２」であるため、前記「所定の数」として「２」を用い、誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に１を加えた値を「２」で割った剰余の値とすることができる。例えば、図３上段のような「０００１１１１１」という８ビットのデータコードワードの場合、各ビットの合計値が「５」であり、これに１を加えた値が「６」であるため、この「６」を前記「所定の数」である「２」で割った値（即ち、「０」）を誤り検出用パリティとすることができる。この場合、データコードワードの各ビット値を合計した合計値に１を加えた値が偶数なら誤り検出用パリティは「０」となり、奇数なら誤り検出用パリティは「１」となる。
【００３０】
或いは、図３下段のように、８ビットのデータコードワードに対して３ビットの誤り検出用パリティを割り当ててもよい。この場合、誤り検出用パリティのビット数で表現可能な数は「８」であるため、前記「所定の数」として「８」を用い、誤り検出用パリティは、対応付けられたデータコードワードの各ビット値を合計した合計値に１を加えた値を「８」で割った剰余の値とすることができる。例えば、図３下段のような「０００１１１１１」という８ビットのデータコードワードの場合、各ビットの合計値が「５」であり、これに１を加えた値が「６」であるため、この「６」を前記「所定の数」である「８」で割った値（即ち、「６」）を３ビットの２進数で表した値「１１０」を誤り検出用パリティとすることができる。
【００３１】
（情報コードの作成方法）
次に、上記のような情報コード１を作成する方法について説明する。
上記情報コード１は、例えば、ＣＰＵ、メモリ、入力装置（マウス、キーボード）、通信部（ＬＡＮインターフェース等）などを備えた情報処理装置（パーソナルコンピュータなど）を用いて以下のような方法で作成することができる。
【００３２】
まず、上記情報処理装置において、コード化すべき解読対象データを取得する取得ステップを行う。この取得ステップでは、例えば、キーボードからの入力、通信部を介した外部入力、或いは情報処理装置に既に記憶されているデータを読み出す等の方法によってコード化すべきデータを取得する。
【００３３】
そして、その取得ステップで取得した解読対象データに基づいて各データコードワードを生成する第１生成ステップを行う。この第１生成ステップでは、解読対象データを構成する各データ要素（例えば、各文字、各数字等）を予め規定された方式に従って符号化する。本実施形態では、各データコードワードはバイナリデータで生成される。
【００３４】
その後、第１生成ステップで生成された各データコードワードに対応する各誤り検出用パリティを生成する第２生成ステップを行う。この第２生成ステップでは、各データコードワードに対応する各誤り検出用パリティを上述の方法で生成する。なお、誤り検出用パリティもバイナリデータで生成される。更に、各データコードワードに対応する誤り訂正コードワードを規定の方式（例えばリード・ソロモン方式）で生成する第３生成ステップを行う。本実施形態では、誤り訂正コードワードもバイナリデータで生成されることとなる。そして、このように生成された各データコードワード、各誤り検出用パリティ、各誤り訂正コードワードについてのそれぞれのバイナリデータを黒色セル及び白色セルで表現し、これらを例えば図１のような規定のフォーマットに従い、規定された順序で配置することで情報コード１の描画データを取得する。なお、このような描画データは印刷装置などによって印刷して用いてもよく、携帯端末などの表示装置に表示して用いてもよい。
【００３５】
（情報コード読取装置の構成）
次に、本実施形態に係る情報コード読取装置について説明する。
本実施形態に係る情報コード読取装置２０は、例えば図４のような構成をなしており、主に、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等の光学系と、メモリ３５、制御回路４０、操作スイッチ４２、液晶表示装置４６等のマイクロコンピュータ（以下「マイコン」という）系と、電源スイッチ４１、電池４９等の電源系と、から構成されている。
【００３６】
光学系は、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等から構成されている。照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、ＬＥＤとこのＬＥＤの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ２３を挟んだ両側に照明光源２１が設けられており、ハウジングの読取口（図４では図示略）を介して読取対象物Ｒに向けて照明光Ｌｆを照射可能に構成されている。この読取対象物Ｒは、例えば、紙、樹脂、金属といった媒体、或いは表示装置などが相当し、上述の情報コード１は、このような読取対象物Ｒに、印刷、ダイレクトマーキング、画像表示等によって付されている。
【００３７】
受光センサ２３は、読取対象物Ｒや情報コード１に照射されて反射した反射光Ｌｒを受光可能に構成されるもので、例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子を２次元に配列したエリアセンサが、これに相当する。受光センサ２３は、結像レンズ２７を介して入射する入射光を受光面２３ａで受光可能にプリント配線板（図示略）に実装されている。また、フィルタ２５は、反射光Ｌｒの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、反射光Ｌｒの波長相当を超える不要な光が受光センサ２３に入射することを抑制している。また、結像レンズ２７は、外部から読取口を介して入射する入射光を集光して受光センサ２３の受光面２３ａに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。
【００３８】
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示装置４６、通信インタフェース４８等から構成されている。このマイコン系は、その名の通り、マイコン（情報処理装置）として機能し得る制御回路４０およびメモリ３５と中心に構成されるもので、前述した光学系によって撮像された情報コード１の画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。また制御回路４０は、当該情報コード読取装置２０の全体システムに関する制御も行っている。
【００３９】
光学系の受光センサ２３から出力される画像信号（アナログ信号）は、増幅回路３１に入力されることで所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ（画像情報）は、メモリ３５に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路３８は、受光センサ２３およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００４０】
メモリ３５は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。このメモリ３５のうちのＲＡＭには、前述した画像データ蓄積領域のほかに、制御回路４０が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またＲＯＭには、後述する読取処理、解析処理等を実行可能な所定プログラムやその他、照明光源２１、受光センサ２３等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００４１】
制御回路４０は、情報コード読取装置２０全体を制御可能なマイコンで、ＣＰＵ、システムバス、入出力インタフェース等からなるもので、メモリ３５とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路４０は、内蔵された入出力インタフェースを介して種々の入出力装置（周辺装置）と接続可能に構成されており、本実施形態の場合、電源スイッチ４１、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示装置４６、通信インタフェース４８等が制御回路４０に接続されている。なお、通信インタフェース４８には、当該情報コード読取装置２０の上位システムに相当するホストコンピュータＨＳＴ等が接続される。また、電源系は、電源スイッチ４１、電池４９等によって構成されており、制御回路４０による電源スイッチ４１のオンオフ制御により、電池４９から上述した各装置や各回路に供給される駆動電圧の導通や遮断が制御されている。
【００４２】
（情報コードの読取処理）
次に、情報コード読取装置２０で行われる読取処理について説明する。
図５は、第１実施形態に係る情報コード読取装置で行われる読取処理の流れを例示するフローチャートである。図６は、図５の読取処理における指示位置検出処理の流れを例示するフローチャートである。図７は、第１実施形態に係る情報コード読取装置で読み取る情報コードについての図１とは異なる一例を概念的に示す概念図である。図８は、図７の情報コードを物体と共に撮像したときの撮像画像を概念的に示す概念図である。図９は、図８の撮像画像での誤り発生ブロックの特定方法について概念的に説明する説明図である。図１０（Ａ）は、特定された誤り発生ブロックに基づいて指示位置を検出する方法を概念的に説明する説明図であり、図１０（Ｂ）は、検出された複数の遠距離ブロックから中心位置を検出する例を説明する説明図である。
【００４３】
図５に示す読取処理は、例えば作業者が所定操作（例えば、操作スイッチ４２のオン操作）を行うことで開始され、まず上記情報コード１を撮像する処理を行う。この撮像処理では、上記情報コード１の画像を含んだ画像データが取得され、メモリ３５に記憶される。
【００４４】
図７では、撮像対象となる情報コードの一例を示している。この情報コード１は、基本的には、図１の情報コード１よりもデータコードブロック１１や誤り訂正コードブロック１２の数を増やし、且つ特定パターン（情報コードの領域や各セル位置を認識するためのパターン）を図１とは異ならせただけであり、それ以外は図１と同様の情報コードとして構成され、複数の情報表示単位セルがマトリックス状に配列された構成をなしている。また、この情報コード１も、所定個数の情報表示単位セルＣによってデータコードワードを表現する複数のデータコードブロック１１と、各データコードワードの誤り訂正に用いる誤り訂正コードワードを表現する複数の誤り訂正コードブロック１２とを備えている。これらデータコードブロック１１や誤り訂正コードブロック１２の構成は、図１等の情報コードと同様であり、更に、各データコードブロック１１には図１〜図３と同様の誤り訂正用パリティのブロックが付されている。なお、図７では、データコードブロック１１や誤り訂正コードブロック１２の構成は概略的に示しているが、その構成や配置は様々とすることができる。また、以下では、説明の便宜上、図７のような大型の情報コードを読み取る場合を例に挙げて説明するが、図１のような情報コードも以下の方法と同様に読み取ることができることは勿論である。
【００４５】
コード画像が撮像された後には、その画像データにおいて、コード領域の位置及び向きを特定すると共にコード領域に含まれる各セルの位置を特定する。具体的には、撮像された画像データの中から情報コード１に含まれる予め定められた境界の特定パターン６ａ〜６ｌの位置を抽出し、それた特定パターン６ａ〜６ｌの外側の辺を境界位置とするように、コード領域の外形を決定する。なお、コード外形位置の検出は、境界位置が検出可能な方法であればよく、公知の二次元コードで行われる一般的なラべリング処理などを用いてもよい。
【００４６】
なお、本実施形態では、図５の処理を行うプログラムに基づいてＳ１の処理を行う制御回路４０が「コード外形位置検出手段」の一例に相当し、受光センサ２３（画像取得手段）によって取得された情報コード１の画像からコード外形位置を検出するように機能する。
【００４７】
Ｓ１でコード画像が取得され、コード外形位置が検出された後には、そのコード領域（矩形領域）に基づいて誤り訂正・デコード処理を行う（Ｓ２）。本実施形態では、例えば情報コード読取装置２０の内部に情報コード１のフォーマットが登録されており、そのフォーマットに従って、各データコードブロック１に記録される各データコードワードを解読する。
【００４８】
各データコードブロック１１のデータコードワードを解読する際には、対応する誤り検出用パリティを参照しており、データコードワードとの整合性がとれているか（即ち、認識されたデータコードワードの値に基づいて上記生成方法で誤り検出用パリティを生成した場合に、認識された誤り検出用パリティの値と一致するか）を判断する。この判断処理において整合がとれていると判断される場合には当該データコードブロック１１のデータコードワードを正常なコードワードとして出力対象とする。一方、整合がとれていないと判断される場合には、そのデータコードブロック１１のデータコードワードをエラーコードワードとして扱い、当該データコードブロック１１に対応する誤り訂正コードブロック１２のコードワード（ＲＳコードワード）を用いて消失訂正を行う。そして、その消失訂正結果に基づいて、情報コード１に記録されたデータをデコードする。
【００４９】
本実施形態では、図８のように情報コード１の一部が物体（図８では指Ｆ）で隠されたときの当該情報コード１の画像が「画像取得手段」に相当する受光センサ２３（図４）によって撮像されるようになっている。したがって、図８のように物体によって一部が隠されたコード画像では、物体で隠された領域に配置されるコードブロックにおいて誤りが発生する可能性が高くなる。
【００５０】
なお、本実施形態では、上記Ｓ２の処理を行う制御回路４０が「誤り検出手段」の一例に相当し、受光センサ２３（画像取得手段）によって取得された情報コード１のコード画像において誤り発生ブロックを特定するように機能する。また、制御回路４０は、「誤り訂正手段」の一例に相当し、その検出された誤り発生ブロックの誤りを、誤り訂正コードブロック１２の記録内容に基づいて訂正するように機能する。また、制御回路４０は、「デコード手段」の一例に相当し、その誤り訂正結果を反映して情報コード１のデコードを行うように機能する。
【００５１】
また、Ｓ２の処理の後には、図２で誤りが検出されたブロックの領域を抽出する。例えば、図８のようなコード画像が撮像され、図９のように指Ｆで隠されたコードブロックの位置が誤り発生ブロック１７と認識された場合、Ｓ３では、その認識された領域全体を抽出・特定する。なお、図９では、誤り発生ブロック１７の領域を極太線で囲んで示している。
【００５２】
そして、Ｓ３で認識された領域に基づいて、指示位置を検出する処理を行う（Ｓ４）。このＳ４の処理では、Ｓ２、Ｓ３で検出された誤り発生ブロックの中から境界に隣接するブロックのまとまりを抽出する。例えば、図９の画像では、領域ＡＲ１と、領域ＡＲ２が抽出されることになる。
【００５３】
なお、本実施形態では、制御回路４０が「隣接辺検出手段」の一例に相当し、コード外形位置検出手段によって検出されたコード外形位置において、誤り発生ブロック１７の領域が隣接する隣接辺Ｂ１、Ｂ２を検出するように機能しており、コード外形位置において誤り発生ブロック１７の領域が隣接する隣接辺が複数ある場合、誤り発生ブロック１７の隣接領域が最も大きくなる特定隣接辺（図９では、Ｂ１）を検出するように機能している。なお、隣接辺、特定隣接辺の検出は、これらを特定できる部分を検出できればよく、Ｓ１０〜Ｓ１３、図９のように、隣接辺を構成する誤り発生ブロック１７の位置を特定してもよく、隣接辺自体の位置を検出してもよい。
【００５４】
そして、Ｓ１０において抽出された集合が複数あるか（即ち、誤り発生ブロック１７の領域がコード画像の複数の境界辺に跨っているか）否かを判断し、抽出された集合が複数ある場合には、Ｓ１１にてＹｅｓに進み、それら集合の中から面積の広い集合を選択し、その集合の中心位置を検出する（Ｓ１２）。一方、抽出された集合が１つであると判断された場合には、Ｓ１１にてＮｏに進み、その集合の中心位置を検出する（Ｓ１３）。Ｓ１２、Ｓ１３のいずれにおいても、例えば対象となる集合の重心（図心）位置を中心位置として検出する。なお、図１０の例では、面積の広い集合の領域ＡＲ１の重心（図心）Ｐ０が中心位置として検出されることになる。
【００５５】
Ｓ１２又はＳ１３の処理の後には、Ｓ３で認識された領域のブロックの中で、Ｓ１２又はＳ１３で検出された中心位置からの遠さが上位Ｎ個に該当するブロック（遠距離ブロック）を抽出する（Ｓ１４）。本実施形態の代表例では、Ｎ＝２としており、図１０の例では、検出さが誤り発生ブロック１７の中から、Ｓ１２で検出された中心位置Ｐ０からの遠さが上位２個に該当する遠距離ブロック１７ａ、１７ｂを抽出している。
【００５６】
本実施形態では、制御回路４０が遠距離ブロック検出手段の一例に相当し、誤り検出手段によって検出された複数の誤り発生ブロック１７において、隣接辺検出手段によって検出された特定隣接辺Ｂ１からの距離の大きさが上位となる所定個数（図１０では２個）の遠距離ブロック１７ａ、１７ｂを検出するように機能している。
【００５７】
Ｓ１４の後には、Ｓ１４で抽出された上位Ｎ個のブロックの中心位置から平均位置（平均座標）を求め、この平均位置を物体による指示位置として認識する（Ｓ１５）。図１０の例では、図１０（Ｂ）のように、Ｓ１４で抽出された上位２個の遠距離ブロック１７ａ、１７ｂの各中心位置（各重心（図心）位置）Ｐ１、Ｐ２を検出し、これら中心位置Ｐ１，Ｐ２の座標の平均位置（中心位置）Ｐ３を指示位置として認識することになる。
【００５８】
なお、本実施形態では、Ｓ４の処理（図６の処理）を行う制御回路４０が指示位置検出手段の一例に相当し、誤り検出手段によって検出された誤り発生ブロック１７の領域と、コード外形位置検出手段によって検出されたコード外形位置とに基づき、受光センサ２３（撮像手段）によって撮像されたコード画像において物体による指示位置を検出するように機能する。具体的には、遠距離ブロック検出手段によって検出された所定個数（図１０では２個）の遠距離ブロック１７ａ，１７ｂの位置に基づいて物体による指示位置を検出するように機能している。
【００５９】
Ｓ４の処理の後には、データの出力処理を行う（Ｓ５）。このＳ５の処理では、Ｓ２で行われたデコード処理での解読結果と共に、或いはＳ２のデコード処理での解読結果に換えて、Ｓ４で検出された指示位置に対応したデータを出力する。例えば、情報コード１の中に複数種類のデータ（例えば複数のＵＲＬのデータ）が記録されている場合、それら複数種類のデータの中からＳ４で検出された指示位置に対応したデータを抽出して表示画面に表示する。この場合、情報コード１において、コード内に領域を複数設けておき、各領域に対し出力するデータ範囲を記録しておけば、ユーザがいずれかの領域を指示したときに領域に対応する種類のデータが出力されることになる。
【００６０】
なお、本実施形態では、Ｓ５の処理を行う制御回路４０が「対応データ解読手段」の一例に相当し、情報コード１に記録される複数種類のデータの中から、指示位置検出手段によって検出された指示位置に対応するデータを解読するように機能する。
【００６１】
（本実施形態の主な効果）
本実施形態に係る情報コード読取装置２０では、情報コード１の一部が物体で隠された画像が「画像取得手段」によって取得された場合に、「誤り検出手段」により、その取得された情報コード１のコード画像において誤り発生ブロックが検出されるようになっている。そして、その検出された誤り発生ブロックの誤りが、誤り訂正コードブロックの記録内容に基づいて「誤り訂正手段」によって訂正され、その上で、「デコード手段」によってデコード処理が行われるようになっている。更に、「指示位置検出手段」が設けられており、「誤り検出手段」によって検出された誤り発生ブロックの領域と、「コード外形位置検出手段」によって検出されたコード外形位置とに基づき、撮像されたコード画像において物体による指示位置が検出されるようになっている。
この構成によれば、情報コード１の一部が物体によって隠されて特定位置が指示される場合に、情報コード１の解読できることは勿論のこと、その物体による指示位置をも検出することができるようになる。従って、情報コード１を、情報を記録する媒体としてだけでなく、入力のインターフェースとして使うことができ、情報コード１の用途の拡大を図ることができる。
【００６２】
また、本実施形態に係る情報コード読取装置２０には、「対応データ解読手段」が設けられ、情報コード１に記録される複数種類のデータの中から、「指示位置検出手段」によって検出された指示位置に対応するデータを解読するように構成されている。
この構成によれば、情報コード１を入力のインターフェースとして用い、特定の指示位置に対応するデータを選択的に解読するといった使い方が可能となる。
【００６３】
また、本実施形態では、「隣接辺検出手段」が設けられ、「コード外形位置検出手段」によって検出されたコード外形位置において、誤り発生ブロックの領域が隣接する隣接辺を検出している。更に、「遠距離ブロック検出手段」が設けられ、「誤り検出手段」によって検出された１又は複数の誤り発生ブロックにおいて、「隣接辺検出手段」によって検出された隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出している。そして、「遠距離ブロック検出手段」によって検出された所定個数の遠距離ブロックの位置に基づいて物体による指示位置を検出している。
この構成によれば、コード外形位置側からコード内部側に延びるように配置された物体の先端部によって指示される位置を簡易な方法で正確に検出することができる。
【００６４】
また、本実施形態では、「隣接辺検出手段」が設けられ、コード外形位置において誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺を検出している。更に、「遠距離ブロック検出手段」は、「誤り検出手段」によって検出された１又は複数の誤り発生ブロックにおいて、「隣接辺検出手段」によって検出された特定隣接辺からの距離の大きさが上位となる所定個数の遠距離ブロックを検出している。
誤り発生ブロックの領域が隣接する隣接辺が複数ある場合、誤り発生ブロックの隣接領域が最も大きくなる特定隣接辺側の方が物体が配置されている確実性が高く、このような特定隣接辺を利用して指示位置を検出すれば、検出精度をより高めることができる。
【００６５】
また、本実施形態では、読取対象となる情報コード１において、データコードワード毎に対応付けて、各データコードワードの誤り検出に用いる誤り検出用パリティが付されており、誤り検出用パリティのビット数がデータコードワードのビット数よりも少なくなっている。
このようにすると、データコードワードのビット数よりも少ないビット数で各データコードワードに誤りが生じているか否かを検出することができ、より少ないデータで誤り発生ブロックを特定すること可能となる。また、このような誤り位置の検出に基づき、誤り訂正コードブロックをより少ないデータ量に抑えて消失訂正を行うことができるようになる。
【００６６】
上記効果は、図１１のような説明図で具体的に説明することもできる。図１１の例では、データコードワードの正しい値（正解値）が「０００００００１」であり、誤り検出用パリティ（以下、パリティとも称する）の正しい値（正解値）が「１０」のときの誤りパターンを列挙して例示すものである。なお、パターン１は、データコードワード及び誤り検出用パリティがいずれも正しい値（正解値）を示すパターンである。例えば、パターン２は、データコードワードが正しい値（正解値）が「０００００００１」であり、パリティが誤っている例であるが、この場合、データコードワードが正しいのに、誤りと判断してしまうことになる。この場合、当該データコードワードに誤りが生じているものとして消失訂正を行うことになる。
【００６７】
一方、パターン３は、データコードワードが「００００００１１」と誤って認識され、パリティが「１０」と正確に認識された例である。このケースでは、誤って認識されたデータコードワードによってビット合計に１を加えた値が２＋１＝３となっており、他方、パリティが２を示しているため不一致となり誤りを検出することができる。従って、当該データコードワードに対応する１つの誤り訂正コードブロック１２を用いて消失訂正を行うことができる。なお、従来の一般的な方法では、このような場合に２つの誤り訂正コードブロックを用いているため、このパターン３では、従来方法と比較して少ないデータ量で正確に復元できることが読み取れる。
【００６８】
また、パターン４は、データコードワードが「０００１１１１１」と誤って認識され、パリティが「１１」と誤って認識された例である。この例では、パリティが誤って認識されているが、データコードワードとパリティとの整合性が取れず誤りが検出されることとなる。従って、当該データコードワードに対応する１つの誤り訂正コードブロック１２を用いて消失訂正を行うことができる。なお、従来の一般的な方法では、このような場合に２つの誤り訂正コードブロックを用いて誤り訂正を行うため、このパターン４でも、従来方法と比較して少ないデータ量で正確に復元できることが読み取れる。
【００６９】
なお、パターン２ではデータコードワードは正しいがパリティによって誤りと判断され、使わなくてもよい誤り訂正コードワードを１つ使用している。しかし、このパターン２は、データコードワードが誤らずにパリティのみが誤るケースであるため、データコードワードの長さとパリティの長さ（この例の場合８：２）を考慮するとパターン２が生じる確率は極めて低いといえる。
【００７０】
また、本実施形態に係る情報コード１では、誤り検出用パリティが、対応付けられたデータコードワードの各ビット値を合計した合計値に１を加えた値に基づいて生成されている。このようにすると、例えば、データコードブロック１１が全て暗色（例えば黒）で汚れる場合や、全て明色（例えば白）で汚れる場合であっても誤りの検出漏れを防ぎやすくなる。
【００７１】
また、本実施形態に係る情報コード１では、データコードワードが８ビットで表わされ、誤り検出用パリティが２ビットで表わされている。このようにすると、各データ要素を８ビットのデータコードワードで好適に表現しつつ、データコードワードのビット数よりも大幅に抑えたビット数でデータコードをワードの誤りを良好に検出できるようになる。
【００７２】
また、本実施形態に係る情報コード１では、誤り訂正コードワードの数がデータコードワードの数の２倍よりも少なくなっている。このようにすると、１つのデータコードワードの誤り訂正を２つの誤り訂正コードワードを用いて行う方式と比較して誤り訂正に必要なデータ量を抑えることができる。
【００７３】
［他の実施形態]
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【００７４】
上記実施形態では、読取対象となる情報コードの例として１１行１１列（図１）、５５行５５列（図６）で配列された情報コード１を例示したが、セルの配列はこれに限られず、行数を増減してもよく、列数を増減してもよい。
【００７５】
上記実施形態では、読取対象となる情報コードの例として、データコードブロック１１、誤り訂正コードブロック１２、誤り検出用パリティのブロックをいずれも２種類のセルによって表現する例を示したが、これらを３種類以上のセルによって表現するような情報コードであってもよい。
【００７６】
上記実施形態では、読取対象となる情報コードのデータコードワード及び誤り訂正コードワードをいずれも８ビットの２進データで構成し、誤り訂正用パリティを２ビットの２進データで構成した例を示したが、これらいずれか又は全てのビット数を変更してもよい。例えば、誤り訂正用パリティを上述したように１ビット或いは３ビット以上の２進データで構成してもよい。或いは、データコードワード及び誤り訂正コードワードを８ビットよりも大きい２進データ（例えば１６ビットの２進データ）で構成してもよい。
【００７７】
上記実施形態では、読取対象となる情報コードにおいて、各データコードブロック１１に対して１つの誤り訂正コードブロック１２を割り当てた構成を例示したが、いずれかのデータコードブロック１１（例えば重要視するデータコードブロック）については２つの誤り訂正コードブロックを割り当て、他のデータコードブロック１１については上記実施形態と同様に１つの誤り訂正コードブロックを割り当てるようにしてもよい。この場合、前記いずれかのデータコードブロック１１については、当該データコードブロック１１に誤りが生じた場合に誤り検出用パリティを用いて誤りの検出を試み、誤りが検出された場合に消失訂正を行うことができる。他方、誤りが検出できなかった場合には、２つの誤り訂正コードブロックを用いて「検出訂正」を行うことができるようになる。従って、特定のデータコードブロックの誤り訂正レベルを高めることができる。
【００７８】
上記実施形態では、指で隠された情報コードを受光センサで撮像し、指先の位置で支持されるコードブロックを検出する例を示したが、物体で隠された情報コードを撮像する方法はこれに限定されない。例えば、既に画像データとして構成された情報コードを表示媒体によって表示した上で、その表示される情報コードを指し示すための物体画像を合成し、その合成された画像について図６、図８、図９と同様の方法で指示位置を検出するようにしてもよい。このように情報コードの一部を物体によって指示する方法は、例えば拡張現実などの分野においても好適に利用することができる。例えば、生成された情報コードの画像、或いは撮像された情報コードの画像を一般的な表示装置（液晶表示装置等）、或いはヘッドマウンテッドディスプレイなどの表示装置に表示すると共に、指先や他の物体（スティック等）などの物体の動きを検出し、表示装置に表示される当該指先又は物体の画像の位置がコード画像に対してリアルタイムに変化するように合成画像を生成するようにしてもよい。この場合、表示装置に表示される情報コードの画像内の所望の位置に指先や物体が配置された状態で、所定の決定操作がなされたときに、情報コードの画像がその指示する物体によって隠された合成画像を生成するようにしてもよい。そして、このような合成画像に基づいて、図５〜図１０と同様の方法で指示位置を検出し、出力を行うようにしてもよい。
【符号の説明】
【００７９】
１…情報コード
１１…データコードブロック
１２…誤り訂正コードブロック
１７…誤り発生ブロック
１７ａ，１７ｂ…遠距離ブロック
２０…情報コード読取装置
２３…受光センサ（画像取得手段）
４０…制御回路（コード外形位置検出手段、誤り検出手段、誤り訂正手段、デコード手段、指示位置検出手段、対応データ解読手段、隣接辺検出手段、遠距離ブロック検出手段）
Ｂ１…隣接辺（特定隣接辺）
Ｂ２…隣接辺
Ｃ…情報表示単位セル
【図１】
0005522104.tif 000002
【図２】
0005522104.tif 000003
【図３】
0005522104.tif 000004
【図４】
0005522104.tif 000005
【図５】
0005522104.tif 000006
【図６】
0005522104.tif 000007
【図７】
0005522104.tif 000008
【図８】
0005522104.tif 000009
【図９】
0005522104.tif 000010
【図１０】
0005522104.tif 000011
【図１１】
0005522104.tif 000012