(57)【要約】【課題】媒体上の指示位置と媒体から読み取った画像と媒体上の位置の検出に用いる画像との間にズレがあっても、媒体上の指示位置を精度よく求めることができるようにする。【解決手段】画像を読み取る画像読取部２１と、画像からドット配列を生成するドット配列生成部２２と、ドット配列上でブロックを検出して符号配列を生成するブロック検出部２３と、符号配列上で同期符号を検出する同期符号検出部２４と、符号配列から識別情報を取り出す識別符号検出部３０等と、符号配列から座標情報を取り出すＸ座標符号検出部４０、Ｙ座標符号検出部４５等と、座標情報を補正する座標補正部５０とを備える。座標情報の補正には、画像読取部２１が読み取った画像に対するペン先の相対位置や、Ｘ座標符号検出部４０、Ｙ座標符号検出部４５等で用いる画像に対する画像読取部２１が読み取った画像の相対位置等が用いられる。【選択図】図１１
2008299508.tif 000002
【特許請求の範囲】
【請求項１】
媒体上の位置を指示する指示手段と、
前記媒体に印刷された画像に含まれる第１の部分画像を読み取る読取手段と、
前記読取手段により読み取られた前記第１の部分画像から、前記媒体上での自身の位置を表す第２の部分画像を抽出する抽出手段と、
前記抽出手段により抽出された前記第２の部分画像を用いて、前記媒体上での当該第２の部分画像の位置を検出する検出手段と、
前記指示手段により指示された位置の前記第１の部分画像に対する相対位置を示す第１の情報と、前記第１の部分画像の前記第２の部分画像に対する相対位置を示す第２の情報とを取得する取得手段と、
前記検出手段により検出された前記第２の部分画像の位置を、前記第１の情報と前記第２の情報とを用いて補正する補正手段と
を備えたことを特徴とする位置検出装置。
【請求項２】
前記取得手段は、前記指示手段により指示された位置の前記第１の部分画像の中心からの距離及び方向を特定する情報を、前記第１の情報として取得することを特徴とする請求項１記載の位置検出装置。
【請求項３】
前記抽出手段は、前記第１の部分画像から第３の部分画像を抽出した後、当該第３の部分画像から前記第２の部分画像を抽出し、
前記取得手段は、前記第２の情報を、前記第１の部分画像の前記第３の部分画像に対する相対位置を示す第３の情報と、前記第３の部分画像の前記第２の部分画像に対する相対位置を示す第４の情報とに分けて取得することを特徴とする請求項１記載の位置検出装置。
【請求項４】
前記取得手段は、前記第１の部分画像の中心の前記第３の部分画像の中心からの距離及び方向を特定する情報を、前記第３の情報として取得することを特徴とする請求項３記載の位置検出装置。
【請求項５】
前記取得手段は、前記第１の部分画像の前記第３の部分画像に対する回転角度を特定する情報を、前記第３の情報として更に取得することを特徴とする請求項４記載の位置検出装置。
【請求項６】
前記第２の部分画像及び前記第３の部分画像は、垂直軸及び水平軸を共有する矩形をなしており、
前記取得手段は、前記第３の部分画像の１つの頂点の前記第２の部分画像の１つの頂点からの前記垂直軸方向及び前記水平軸方向の変位を特定する情報を、前記第４の情報として取得することを特徴とする請求項３記載の位置検出装置。
【請求項７】
前記第２の部分画像は、ｍ（ｍ≧４）箇所のうちのｎ（２≦ｎ＜ｍ）箇所に単位画像を配置したパターン画像を前記垂直軸方向にＡｘ（Ａｘ≧２）個、前記水平軸方向にＡｙ（Ａｙ≧２）個配置してなる画像であり、
前記抽出手段は、前記パターン画像と略同じ大きさの区画を前記垂直軸方向にＡｘ個、前記水平軸方向にＡｙ個配置してなる枠を、前記第３の部分画像上で移動し、ｎ個の単位画像を含む区画が所定数以上となる移動位置を求め、当該移動位置における当該枠内の画像を前記第２の部分画像として抽出し、
前記取得手段は、前記移動位置までの前記枠の前記垂直軸方向及び前記水平軸方向の移動量を、前記変位を特定する情報として取得することを特徴とする請求項６記載の位置検出装置。
【請求項８】
コンピュータに、
媒体に印刷された画像から読み取られた当該画像の第１の部分画像から、当該媒体上での自身の位置を表す第２の部分画像を抽出する機能と、
抽出された前記第２の部分画像を用いて、前記媒体上での当該第２の部分画像の位置を検出する機能と、
指示手段により指示された前記媒体上の位置の前記第１の部分画像に対する相対位置を示す第１の情報と、前記第１の部分画像の前記第２の部分画像に対する相対位置を示す第２の情報とを取得する機能と、
検出された前記第２の部分画像の位置を、前記第１の情報と前記第２の情報とを用いて補正する機能と
を実現させるためのプログラム。
【請求項９】
前記抽出する機能では、前記第１の部分画像から第３の部分画像を抽出した後、当該第３の部分画像から前記第２の部分画像を抽出し、
前記取得する機能では、前記第２の情報を、前記第１の部分画像の前記第３の部分画像に対する相対位置を示す第３の情報と、前記第３の部分画像の前記第２の部分画像に対する相対位置を示す第４の情報とに分けて取得することを特徴とする請求項８記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置検出装置、プログラムに関する。
【背景技術】
【０００２】
表面上の複数の位置を符号化する位置コードを提供する方法は知られている（例えば、特許文献１参照）。この特許文献１では、循環数字列を表面に沿って複数回印刷する。その際、循環数字列の異なるローテーションを、隣り合う数字列間で所定のずれが起こるように使用し、表面を分割した複数のコードウィンドウが、少なくとも３つの循環数字列を備えると共に、隣り合うコードウィンドウの１つの数字列と重なり合う１つの数字列を有するものであり、また、コードウィンドウの位置を、そのコードウィンドウに属している循環数字列間のずれによって符号化している。
【０００３】
論理的に順位付けられたデジタル量子の機械読取り可能なエンコーディングを記録した記録媒体からのエンコーディングの空間的に非同期的な読取りを可能にする技術も知られている（例えば、特許文献２参照）。この特許文献２では、本質的に同一であるエンコーディングの多数のコピーを形成し、機械認識可能な空間同期指標をエンコーディングのコピーの各々の中のプリント位置に組み合わせて、エンコーディングの空間的に同期可能な多数の事例を提供し、それらの事例をレイアウト規則に従って記録媒体における空間的に周期的な中心の格子に書き込んでいる。
【０００４】
取り込まれた画像の位置をより大きい画像から決定するためのシステム及び方法も知られている（例えば、特許文献３参照）。この特許文献３では、非反復的な系列を、所定のサイズのサブウィンドウ毎に固有とされた非反復的な配列に折り畳み、その取り込まれた位置を非反復的な配列内のサブウィンドウ毎に決定することによって、取り込まれた画像の位置を、より大きいサブウィンドウの画像から決定している。
【０００５】
光学的に読み取り可能に記録されるマルチメディア情報の長時間記録及び繰り返し再生を可能とする技術も知られている（例えば、特許文献４参照）。この特許文献４において、記録装置は、プリンタシステムや印刷用製版システムにより、オーディオ情報、映像情報、ディジタルコードデータ等を含めた所謂マルチメディア情報を光学的に読み取り可能なドットコードとして、画像や文字と一緒に紙等の媒体上に記録する。ペン型の情報再生装置は、ドットコードの手動走査に応じてそのドットコードを順次取り込んで、元のオーディオ情報を音声出力器にて、元の映像情報を表示装置にて、元のディジタルコードデータをページプリンタ等にて出力する。
【０００６】
タブレットを使用せずに、媒体上の座標を精緻に検出できるようにする技術も知られている（例えば、特許文献５参照）。この特許文献５において、ペン型の座標入力装置は、媒体上に形成されその媒体上の座標を示すコードシンボルを光学的に読み取り、この読み取ったコードシンボルをデコードし、読み取った画像中におけるコードシンボルの位置、向き及び歪み量を検出する。そして、デコード後の情報と、コードシンボルの位置、向き及び歪み量とにより、先端部の媒体上での位置の座標を検出する。
【０００７】
【特許文献１】特表２００３−５１１７６２号公報
【特許文献２】特開平９−１８５６６９号公報
【特許文献３】特開２００４−１５２２７３号公報
【特許文献４】特開平６−２３１４６６号公報
【特許文献５】特開２０００−２９３３０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ここで、従来、媒体上の指示された位置と、媒体から読み取られた部分画像と、媒体上の位置の検出に用いられる部分画像との間にズレがある場合には、媒体上の指示された位置を精度よく求めることはできないという課題があった。
本発明の目的は、媒体上の指示された位置と、媒体から読み取られた部分画像と、媒体上の位置の検出に用いられる部分画像との間にズレがあっても、媒体上の指示された位置を精度よく求めることができるようにすることにある。
【課題を解決するための手段】
【０００９】
請求項１に記載の発明は、媒体上の位置を指示する指示手段と、前記媒体に印刷された画像に含まれる第１の部分画像を読み取る読取手段と、前記読取手段により読み取られた前記第１の部分画像から、前記媒体上での自身の位置を表す第２の部分画像を抽出する抽出手段と、前記抽出手段により抽出された前記第２の部分画像を用いて、前記媒体上での当該第２の部分画像の位置を検出する検出手段と、前記指示手段により指示された位置の前記第１の部分画像に対する相対位置を示す第１の情報と、前記第１の部分画像の前記第２の部分画像に対する相対位置を示す第２の情報とを取得する取得手段と、前記検出手段により検出された前記第２の部分画像の位置を、前記第１の情報と前記第２の情報とを用いて補正する補正手段とを備えたことを特徴とする位置検出装置である。
請求項２に記載の発明は、前記取得手段は、前記指示手段により指示された位置の前記第１の部分画像の中心からの距離及び方向を特定する情報を、前記第１の情報として取得することを特徴とする請求項１記載の位置検出装置である。
請求項３に記載の発明は、前記抽出手段は、前記第１の部分画像から第３の部分画像を抽出した後、当該第３の部分画像から前記第２の部分画像を抽出し、前記取得手段は、前記第２の情報を、前記第１の部分画像の前記第３の部分画像に対する相対位置を示す第３の情報と、前記第３の部分画像の前記第２の部分画像に対する相対位置を示す第４の情報とに分けて取得することを特徴とする請求項１記載の位置検出装置である。
請求項４に記載の発明は、前記取得手段は、前記第１の部分画像の中心の前記第３の部分画像の中心からの距離及び方向を特定する情報を、前記第３の情報として取得することを特徴とする請求項３記載の位置検出装置である。
請求項５に記載の発明は、前記取得手段は、前記第１の部分画像の前記第３の部分画像に対する回転角度を特定する情報を、前記第３の情報として更に取得することを特徴とする請求項４記載の位置検出装置である。
請求項６に記載の発明は、前記第２の部分画像及び前記第３の部分画像は、垂直軸及び水平軸を共有する矩形をなしており、前記取得手段は、前記第３の部分画像の１つの頂点の前記第２の部分画像の１つの頂点からの前記垂直軸方向及び前記水平軸方向の変位を特定する情報を、前記第４の情報として取得することを特徴とする請求項３記載の位置検出装置である。
請求項７に記載の発明は、前記第２の部分画像は、ｍ（ｍ≧４）箇所のうちのｎ（２≦ｎ＜ｍ）箇所に単位画像を配置したパターン画像を前記垂直軸方向にＡｘ（Ａｘ≧２）個、前記水平軸方向にＡｙ（Ａｙ≧２）個配置してなる画像であり、前記抽出手段は、前記パターン画像と略同じ大きさの区画を前記垂直軸方向にＡｘ個、前記水平軸方向にＡｙ個配置してなる枠を、前記第３の部分画像上で移動し、ｎ個の単位画像を含む区画が所定数以上となる移動位置を求め、当該移動位置における当該枠内の画像を前記第２の部分画像として抽出し、前記取得手段は、前記移動位置までの前記枠の前記垂直軸方向及び前記水平軸方向の移動量を、前記変位を特定する情報として取得することを特徴とする請求項６記載の位置検出装置である。
請求項８に記載の発明は、コンピュータに、媒体に印刷された画像から読み取られた当該画像の第１の部分画像から、当該媒体上での自身の位置を表す第２の部分画像を抽出する機能と、抽出された前記第２の部分画像を用いて、前記媒体上での当該第２の部分画像の位置を検出する機能と、指示手段により指示された前記媒体上の位置の前記第１の部分画像に対する相対位置を示す第１の情報と、前記第１の部分画像の前記第２の部分画像に対する相対位置を示す第２の情報とを取得する機能と、検出された前記第２の部分画像の位置を、前記第１の情報と前記第２の情報とを用いて補正する機能とを実現させるためのプログラムである。
請求項９に記載の発明は、前記抽出する機能では、前記第１の部分画像から第３の部分画像を抽出した後、当該第３の部分画像から前記第２の部分画像を抽出し、前記取得する機能では、前記第２の情報を、前記第１の部分画像の前記第３の部分画像に対する相対位置を示す第３の情報と、前記第３の部分画像の前記第２の部分画像に対する相対位置を示す第４の情報とに分けて取得することを特徴とする請求項８記載のプログラムである。
【発明の効果】
【００１０】
請求項１の発明は、媒体上の指示された位置と、媒体から読み取られた部分画像と、媒体上の位置の検出に用いられる部分画像との間にズレがあっても、本構成を有していない場合に比較して、媒体上の指示された位置を精度よく求めることができるという効果を有する。
請求項２の発明は、本構成を有していない場合に比較して、媒体から読み取られた部分画像から媒体上の指示された位置を求める計算が容易になるという効果を有する。
請求項３の発明は、媒体から読み取られた部分画像の一部を抽出し、そこから媒体上の位置の検出に用いられる部分画像を抽出する必要があっても、本構成を有していない場合に比較して、媒体上の指示された位置を精度よく求めることができるという効果を有する。
請求項４の発明は、本構成を有していない場合に比較して、媒体から読み取られた部分画像をそこから抽出した一部の画像から求める計算が容易になるという効果を有する。
請求項５の発明は、媒体から読み取られた部分画像とそこから抽出した一部の画像とに角度の違いがあったとしても、媒体から読み取られた部分画像をそこから抽出した一部の画像から求めることができるという効果を有する。
請求項６の発明は、媒体から読み取られた部分画像の一部の画像を媒体上の位置の検出に用いられる部分画像から求める計算が容易になるという効果を有する。
請求項７の発明は、ｍＣｎ方式を用いた場合の復号処理における結果を用いて、媒体から読み取られた部分画像の一部の画像を媒体上の位置の検出に用いられる部分画像を求めることができるという効果を有する。
請求項８の発明は、媒体上の指示された位置と、媒体から読み取られた部分画像と、媒体上の位置の検出に用いられる部分画像との間にズレがあっても、本構成を有していない場合に比較して、媒体上の指示された位置を精度よく求めることができるという効果を有する。
請求項９の発明は、媒体から読み取られた部分画像の一部を抽出し、そこから媒体上の位置の検出に用いられる部分画像を抽出する必要があっても、本構成を有していない場合に比較して、媒体上の指示された位置を精度よく求めることができるという効果を有する。
【発明を実施するための最良の形態】
【００１１】
以下、添付図面を参照して、本発明を実施するための最良の形態（以下、「実施の形態」という）について詳細に説明する。
まず、読み込む符号画像を構成する符号パターンについて説明する。
本実施の形態では、ｍ（ｍ≧３）箇所から選択したｎ（１≦ｎ＜ｍ）箇所に単位画像を配置してなるパターン画像（以下、「単位符号パターン」という）によってｍＣｎ（＝ｍ！／｛（ｍ−ｎ）！×ｎ！｝）通りの情報を表現する。つまり、１つの単位画像を情報に対応させるのではなく、複数の単位画像を情報に対応させている。仮に１つの単位画像を情報に対応させたとすると、単位画像が欠損したり、ノイズが加わったりした場合に、誤った情報を表現してしまうという欠点がある。これに対して、例えば２つの単位画像を情報に対応させたとすると、単位画像が１つであったり３つであったりした場合に、容易に誤りであることが分かる。更に、１つの単位画像で１ビット、又は、高々２ビットを表現する方法では、情報を表現するパターンと視覚的に似たパターンで、情報パターンの読出しを制御する同期パターンを表現することができない。このようなことから、本実施の形態では、上記のような符号化方式を採用している。以下では、このような符号化方式をｍＣｎ方式と称する。
ここで、単位画像としては、如何なる形状のものを用いてもよい。本実施の形態では、単位画像の一例としてドット画像（以下、単に「ドット」という）を用いるが、例えば、斜線パターン等、他の形状の画像であってもよい。
【００１２】
図１に、ｍＣｎ方式における単位符号パターンの例を示す。
図では、黒色の領域と斜線の領域をドット配置可能な領域とし、その間にある白色の領域をドット配置不可能な領域としている。そして、ドット配置可能な領域のうち、黒色の領域にドットが配置され、斜線の領域にはドットが配置されていないことを示している。即ち、図１は、縦３ドット、横３ドットの合計９ドットを配置可能な領域を設けた例を示しており、（ａ）は、ドット配置可能な領域に２ドットを配置する９Ｃ２方式における単位符号パターンであり、（ｂ）は、ドット配置可能な領域に３ドットを配置する９Ｃ３方式における単位符号パターンである。
【００１３】
ところで、図１で配置されるドット（黒色の領域）は、あくまで情報表現のためのドットであり、画像を構成する最小単位であるドット（図１の最小の四角）とは必ずしも一致しない。本実施の形態において、「ドット」というときは前者のドットを指し、後者のドットは「ピクセル」と呼ぶことにすれば、ドットは、６００ｄｐｉにおける２ピクセル×２ピクセルの大きさを有することになる。６００ｄｐｉにおける１ピクセルの大きさは０．０４２３ｍｍなので、ドットの一辺は、８４．６μｍ（＝０．０４２３ｍｍ×２）である。ドットは、大きくなればなるほど目に付きやすくなるため、できるだけ小さいほうが好ましい。ところが、あまり小さくすると、プリンタで印刷できなくなってしまう。そこで、ドットの大きさとして、５０μｍより大きく１００μｍより小さい上記の値を採用している。但し、上記の値８４．６μｍは、あくまで計算上の数値であり、実際に印刷されたトナー像では１００μｍ程度になる。
【００１４】
また、図２に、単位符号パターンの他の例を示す。尚、この図では、ドット間の空白を省略している。
図２（ａ）は、図１（ａ）に示した９Ｃ２方式における全ての単位符号パターンを示している。９Ｃ２方式では、これらの単位符号パターンを用いて、３６（＝９Ｃ２）通りの情報を表現する。また、図２（ｂ）は、図１（ｂ）に示した９Ｃ３方式における全ての単位符号パターンを示している。９Ｃ３方式では、これらの単位符号パターンを用いて、８４（＝９Ｃ３）通りの情報を表現する。
【００１５】
尚、単位符号パターンは、ｍ＝９の場合に限定されるものではなく、ｍの値として、例えば、４、１６等の値を採用してもよい。また、ｎの値も１≦ｎ＜ｍを満たしていれば如何なる値を採用してもよい。
また、ｍの値としては、平方数（整数の２乗）だけでなく、異なる２つの整数の積を採用してもよい。つまり、ドットを配置可能な領域は、３ドット×３ドットを配置する場合のような正方形の領域に限らず、３ドット×４ドットを配置する場合のような長方形の領域であってもよい。尚、本明細書において、長方形とは、隣り合う２辺の長さが等しくない矩形のことをいうものとする。
【００１６】
ところで、ｍＣｎ方式における全ての単位符号パターンには、各単位符号パターンを識別するための番号であるパターン値が付されている。
図３に、９Ｃ２方式における単位符号パターンとパターン値との対応を示す。９Ｃ２方式における単位符号パターンは３６個であるので、パターン値としては０〜３５が用いられる。但し、図３に示した対応はあくまで一例であり、どの単位符号パターンにどのパターン値を割り当ててもよい。尚、９Ｃ３方式については、図示しないが、各単位符号パターンに０〜８３のパターン値が付されることになる。
【００１７】
このように、ｍ箇所からｎ箇所を選択することでｍＣｎ種類の単位符号パターンを用意しているが、本実施の形態では、これらの単位符号パターンのうち、特定のパターンを情報パターンとして利用し、残りを同期パターンとして利用する。ここで、情報パターンとは、媒体に埋め込む情報を表現するパターンである。また、同期パターンとは、媒体に印刷された情報パターンを取り出すために用いられるパターンである。例えば、情報パターンの位置を特定したり、画像の回転を検出したりするために用いられる。尚、媒体としては、画像を印刷することが可能であれば、如何なるものを用いてもよい。紙が代表例なので、以下では媒体を紙として説明するが、金属、プラスチック、繊維等であってもよい。
【００１８】
ここで、同期パターンについて説明する。
図４は、９Ｃ２方式における同期パターンの例である。このようにｍＣｎ方式におけるｍが平方数である場合は、画像の回転の検出のために４種類の単位符号パターンを同期パターンとして用意する必要がある。ここでは、パターン値３２の単位符号パターンを正立した同期パターンとしている。また、パターン値３３の単位符号パターンを右に９０度回転した同期パターン、パターン値３４の単位符号パターンを右に１８０度回転した同期パターン、パターン値３５の単位符号パターンを右に２７０度回転した同期パターンとしている。この場合、３６種類の単位符号パターンからこの４種類の同期パターンを除いた残りを情報パターンとし、５ビットの情報を表現するとよい。但し、３６種類の単位符号パターンの情報パターンと同期パターンへの振り分け方は、これには限らない。例えば、４種類で１組を構成する同期パターンの組を５つ用意し、残りの１６種類の情報パターンで４ビットの情報を表現してもよい。
【００１９】
尚、図示しないが、ｍＣｎにおけるｍが異なる２つの整数の積である場合は、画像の回転の検出のために２種類の単位符号パターンを同期パターンとして用意すればよい。例えば、縦３ドット×横４ドットを配置可能な領域が検出されるべきなのに、縦４ドット×横３ドットを配置可能な領域が検出された場合は、その時点で画像が９０度又は２７０度回転していることが分かるからである。
【００２０】
次に、このような符号パターンを配置して識別情報と座標情報を表現する方法を述べる。
まず、上述した単位符号パターンから構成される符号ブロックについて説明する。
図５は、符号ブロックの一例を示したものである。図では、９Ｃ２方式における単位符号パターンを使用していることも同時に示している。即ち、３６種類の単位符号パターンを、例えば、同期パターンとして使用する４パターンと、情報パターンとして使用する３２パターンとに分け、各パターンをレイアウトに従って配置する。
図では、レイアウトとして、３ドット×３ドットを配置可能な領域（以下、「ブロック」という）を５個×５個の２５個並べたものを採用している。そして、この２５個のブロックのうち、左上の１ブロックに同期パターンを配置している。また、同期パターンの右の４ブロックに紙面上のＸ方向の座標を特定するＸ座標情報を表す情報パターンを配置し、同期パターンの下の４ブロックに紙面上のＹ方向の座標を特定するＹ座標情報を表す情報パターンを配置している。更に、これらの座標情報を表す情報パターンで囲まれた１６ブロックに、紙面又は紙面に印刷される文書の識別情報を表す情報パターンを配置している。
尚、９Ｃ２方式における単位符号パターンはあくまで例であり、図の左下に示すように、９Ｃ３方式における単位符号パターンを使用してもよい。
【００２１】
次いで、本実施の形態における識別情報と座標情報を表現するためのレイアウトについて説明する。
図６に、このようなレイアウトの一部を示す。
このレイアウトでは、図５に示した符号ブロックを基本単位とし、この符号ブロックを紙面全体に周期的に配置する。図では、同期パターンを「Ｓ」で表している。また、座標情報は、紙面の縦及び横に渡ってＭ系列で表現する。図では、Ｘ座標を表すパターンを「Ｘ１」、「Ｘ２」、…で表し、Ｙ座標を表すパターンを「Ｙ１」、「Ｙ２」、…で表している。更に、識別情報の符号化には、幾つかの方法の利用が考えられるが、本実施の形態では、ＲＳ符号化が適している。ＲＳ符号は多値の符号法であり、この場合、ブロックの表現をＲＳ符号の多値に対応させるとよいからである。図では、識別情報を表すパターンを「ＩＸＹ」（Ｘ＝１〜４，Ｙ＝１〜４）で表している。
【００２２】
ここで、座標情報を表現するのに用いるＭ系列について説明する。
Ｍ系列とは、その部分列が、他の部分列と一致することがない系列である。例えば、１１次のＭ系列は、２０４７ビットのビット列である。そして、この２０４７ビットのビット列の中から取り出された１１ビット以上の部分列と同じ並びは、この２０４７ビットのビット列の中に自身以外には存在しない。本実施の形態では、１６個の単位符号パターンを４ビットに対応付ける。即ち、２０４７ビットのビット列を４ビットごとに１０進数で表し、図３の対応に従って単位符号パターンを決定し、座標符号として紙面の横と縦に渡って表現する。従って、復号の際は、３つの連続する単位符号パターンを特定することにより、ビット列上の位置が特定されることになる。
【００２３】
図７に、Ｍ系列を用いた座標情報の符号化の例を示す。
（ａ）は、１１次のＭ系列の例として、「０１１１０００１０１０１１０１００００１１００１０…」というビット列を示している。本実施の形態では、これを４ビットずつに区切り、１つ目の部分列「０１１１」をパターン値７の単位符号パターンとして、２つ目の部分列「０００１」をパターン値１の単位符号パターンとして、３つ目の部分列「０１０１」をパターン値５の単位符号パターンとして、４つ目の部分列「１０１０」をパターン値１０の単位符号パターンとして、それぞれ紙面上に配置する。
【００２４】
また、このように４ビットずつ区切って単位符号パターンに割り当てると、（ｂ）に示すように、４周期で全てのパターン列を表現できる。即ち、１１次のＭ系列は、２０４７ビットなので、この系列を４ビットごとに切り出し、単位符号パターンで表現していくと、最後に３ビットあまることになる。この３ビットに、Ｍ系列の最初の１ビットを加えて４ビットとし単位符号パターンで表す。更に、Ｍ系列の２ビット目から４ビットごとに切り出し単位符号パターンで表す。すると、次の周期は、Ｍ系列の３ビット目から始まり、その次の周期は、Ｍ系列の４ビット目から始まる。更に、５周期目は、５ビット目からとなるが、これは最初の周期と一致する。従って、Ｍ系列の４周期を４ビットごとに切り出していくと、２０４７個の単位符号パターンで全てを尽くすことができる。Ｍ系列は１１次であるので、３つの連続する単位符号パターンは、他のどの位置の連続する符号パターンとも一致することはない。そこで、読出し時には３つの単位符号パターンを読み出せば、復号が可能である。但し、本実施の形態では、誤りの発生を考慮し、４つの単位符号パターンで座標情報を表現している。
尚、４周期のＭ系列は、２０４７個のブロックに分割して格納される。１つのブロックの一辺の長さは、先に述べた印刷条件、即ち、ドットが６００ｄｐｉにおける２ピクセル×２ピクセルの大きさである場合、０．５０８ｍｍである。図６のレイアウトを採用する場合、連続する２０４７個のブロックの４ブロックごとに、同期ブロックが挿入される。そこで、５／４倍して、全体で約２５５８ブロックなので、長さは１２９９．５ｍｍである。つまり、１２９９．５ｍｍの長さが符号化されることになる
【００２５】
次いで、このような画像を生成する画像生成装置１０について説明する。
図８は、画像生成装置１０の構成例を示したブロック図である。
図示するように、画像生成装置１０は、情報取得部１１と、識別符号生成部１２と、Ｘ座標符号生成部１３と、Ｙ座標符号生成部１４と、符号配列生成部１５と、パターン画像記憶部１６と、符号画像生成部１７とを備える。
【００２６】
情報取得部１１は、紙面又は紙面に印刷される文書の識別情報、及び、紙面上での座標情報を取得する。そして、前者を識別符号生成部１２に出力し、後者のうち、Ｘ座標情報をＸ座標符号生成部１３に、Ｙ座標情報をＹ座標符号生成部１４に出力する。
【００２７】
識別符号生成部１２は、情報取得部１１から取得した識別情報を符号化し、符号化された識別情報である識別符号を符号配列生成部１５に出力する。この識別情報の符号化は、ブロック分割、ＲＳ符号化の処理を含む。
このうち、ブロック分割は、識別情報を構成するビット列を、ＲＳ符号化を行うために複数のブロックに分割する処理である。例えば、９Ｃ２方式で５ビットの情報を表現可能な情報パターンを用いる場合、６０ビットの識別情報は、ブロック長が５ビットの１２個のブロックに分割される。
また、ＲＳ符号化は、分割されたブロックに対してＲＳ符号化を行い、誤り訂正のための冗長ブロックを付加する処理である。先の例において２ブロックの誤りを訂正可能なＲＳ符号を採用したとすると、符号長は１６ブロックとなる。
【００２８】
Ｘ座標符号生成部１３は、Ｘ座標情報を符号化する。Ｙ座標符号生成部１４は、Ｙ座標情報を符号化する。そして、これらは、符号化された座標情報である座標符号を符号配列生成部１５に出力する。この座標情報の符号化は、Ｍ系列符号化、ブロック分割の処理を含む。
このうち、Ｍ系列符号化は、Ｍ系列を使用して座標情報を符号化する処理である。例えば、符号化したい座標情報の長さから必要なＭ系列の次数を求め、Ｍ系列を動的に生成することで座標符号を生成する。但し、予め符号化したい座標情報の長さが分かっている場合には、Ｍ系列を画像生成装置１０のメモリ等に格納しておき、画像生成時にそれを読み出す構成としてもよい。
また、ブロック分割は、Ｍ系列を複数のブロックに分割する処理である。例えば、情報パターンとして１６種類の単位符号パターンを選択したとすると、符号ブロックにおける各ブロックには４ビットの情報が格納される。従って、図５のようなレイアウトを有する符号ブロックに対して、Ｘ座標情報は、１６ビット分格納される。そして、図７を参照して述べたような方法で、座標情報が単位符号パターンによって表される。
【００２９】
符号配列生成部１５は、識別符号生成部１２にて生成された識別符号と、Ｘ座標符号生成部１３及びＹ座標符号生成部１４にて生成された座標符号と、識別符号及び座標符号の読出しを制御する同期符号とを２次元平面に配置して２次元の符号配列を生成する。ここで、同期符号とは、同期パターンに対応する符号である。
パターン画像記憶部１６は、例えば図２に示したｍＣｎ方式における単位符号パターンを記憶する。ここで、単位符号パターンには、上述したようにパターン値が付されており、各単位符号パターンはパターン値をキーとして読み出し可能になっている。尚、本実施の形態において、このパターン画像記憶部１６は、予め定められたｍ及びｎに対応するｍＣｎ方式における単位符号パターンを少なくとも記憶していればよい。
符号画像生成部１７は、符号配列生成部１５が生成した２次元の符号配列を参照し、各符号値に対応した単位符号パターンを選択して符号画像を生成する。
【００３０】
そして、この符号画像は、図示しない画像形成部に渡され、画像形成部が紙面に符号画像を形成する。このとき、画像形成部は、電子文書の文書画像と符号画像とを重畳した重畳画像を紙面に形成するようにしてもよい。また、このように重畳画像を形成する場合には、紙面に対するペンデバイスによる筆記データが電子文書上の適切な位置に反映されるよう電子文書上の位置と紙面上の位置との対応関係を管理することが望ましい。
【００３１】
また、画像形成部は、符号画像を、例えば電子写真方式を用いて、Ｋトナー（カーボンを含む赤外光吸収トナー）、又は、特殊トナーにより形成する。
ここで、特殊トナーとしては、可視光領域（４００ｎｍ〜７００ｎｍ）における最大吸収率が７％以下であり、近赤外領域（８００ｎｍ〜１０００ｎｍ）における吸収率が３０％以上の不可視トナーが例示される。ここで、「可視」及び「不可視」は、目視により認識できるかどうかとは関係しない。印刷された媒体に形成された画像が可視光領域における特定の波長の吸収に起因する発色性の有無により認識できるかどうかで「可視」と「不可視」とを区別している。また、可視光領域における特定の波長の吸収に起因する発色性が若干あるが、人間の目で認識し難いものも「不可視」に含める。
【００３２】
尚、これらの機能は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、画像生成装置１０のＣＰＵ９１（図２６参照）が、情報取得部１１、識別符号生成部１２、Ｘ座標符号生成部１３、Ｙ座標符号生成部１４、符号配列生成部１５、符号画像生成部１７を実現するプログラムを、例えば、磁気ディスク装置９３（図２６参照）からメインメモリ９２（図２６参照）に読み込んで実行することにより、実現される。また、パターン画像記憶部１６は、例えば、磁気ディスク装置９３（図２６参照）を用いて実現するとよい。更に、磁気ディスク装置９３（図２６参照）に記憶されるプログラムやデータは、ＣＤ等の記録媒体からロードしてもよいし、インターネット等の通信手段を介してダウンロードしてもよい。
【００３３】
以上説明した単位符号パターンを印刷した画像上の所定位置をペンデバイスで指示すると、ペンデバイスに設けられた撮像素子が、画像の一部を読み取る。そして、この画像からドットパターンが読み取られ、復号処理が行われる。ところが、この場合において、復号された座標情報は、撮像素子が読み取った画像の位置を表しており、厳密には、ペンデバイスで指示した位置を表していない。
以下、このズレの発生について具体的に説明する。
図９は、この説明のためのペンデバイスの概略図である。
図示するように、ペンの中心を通るペン中心線が紙面と交差する点（ペン先中心）と、撮像素子の中心を通る撮像素子中心線が紙面と交差する点（撮像領域中心）との間には、ペンデバイスに固有のズレＩＰがある。
【００３４】
また、復号された座標情報とペンデバイスで指示した位置とのズレには、この固定のズレだけでなく、画像処理の結果に応じて動的に決定されるズレも含まれるので、このことを紙面上の座標を用いて説明する。
図１０は、ペンデバイスの撮像素子が撮像する領域（以下、「撮像領域」という）及びその領域の中心点（以下、「撮像領域中心」という）と、その中でペンデバイスが復号のために読み込む領域（以下、「読み込み領域」という）とその領域の中心点（以下、「読み込み領域中心」という）と、ペンデバイスのペン先が指示する点（以下、「ペン先中心」という）との関係を示した図である。
【００３５】
ここでは、（ａ）に示すように、撮像領域中心に対するペン先中心の相対座標を（ＩＰＸ，ＩＰＹ）とする。この座標は、ペンデバイスの傾きによって変化するが、標準的な傾きを定め、ペンデバイスがこの標準的な傾きで置かれたときの値を設定すればよい。尚、本明細書では、撮像領域の横枠に平行にＸ軸をとり、右方向をＸの正方向とし、撮像領域の縦枠に平行にＹ軸をとり、下方向をＹの正方向として、撮像画像上の座標を表すものとする。
また、紙の回転によって、撮像領域の垂直水平方向が、ドット列の方向と一致しているとは限らない。そこで、ドット列の方向から撮像領域の垂直方向への角度をＩＲＤとする。ドット列の方向は、２つあるが、撮像素子の垂直方向と最も近い方向とする。このとき、ＩＲＤは、−９０°から９０°までの角度をとる。尚、本明細書では、角度は右回りを正方向とする。
【００３６】
さて、ペンデバイスは、撮像領域から、復号のために必要な１７ドット×１７ドットの領域を読み込む。これが読み込み領域であるが、復号するのに適切な読み込み領域は必ずしも撮像領域の中心付近に存在するとは限らない。照明等の影響により、適切な読み込み領域が中心部からずれた位置にある場合もある。
（ｂ）に、（ａ）のうち撮像領域中心と読み込み領域中心を含む部分の拡大図を示す。ここでは、読み込み領域中心に対する撮像領域中心の相対座標を（ＩＲＸ，ＩＲＹ）とする。
【００３７】
次に、紙面に形成された符号画像を読み取って処理する画像処理装置２０について説明する。
図１１は、画像処理装置２０の構成例を示したブロック図である。
図示するように、画像処理装置２０は、画像読取部２１と、ドット配列生成部２２と、ブロック検出部２３と、同期符号検出部２４と、回転判定部２５と、符号配列回転部２６とを備える。また、識別符号検出部３０と、識別符号復元部３１と、識別符号復号部３２と、識別符号誤り検出部３３と、識別符号誤り訂正部３４とを備える。更に、Ｘ座標符号検出部４０と、Ｘ座標符号復号部４２と、Ｘ座標符号誤り検出部４３と、Ｘ座標符号誤り訂正部４４と、Ｙ座標符号検出部４５と、Ｙ座標符号復号部４７と、Ｙ座標符号誤り検出部４８と、Ｙ座標符号誤り訂正部４９と、座標補正部５０と、情報出力部５５とを備える。
【００３８】
画像読取部２１は、ＣＣＤ（Charge Coupled Devices）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の撮像素子を用いて、紙面に印刷された符号画像を読み取る。本実施の形態では、第１の部分画像を読み取る読取手段の一例として、画像読取部２１を備えている。
【００３９】
ドット配列生成部２２は、読み取った符号画像からドットを検出し、ドットの位置を参照して、ドット配列を生成する。ここで、ドットの検出は、次のように行う。即ち、まず、読み取った符号画像の中から、ドットを検出し易い領域を特定する。そして、その領域内で、２値化処理によりドット画像の部分と、その他の背景画像の部分とを切り分け、２値化された個々の画像位置からドットの位置を検出する。また、ドット配列の生成は、２次元の配列上で、例えば、ドットがある位置を「１」、ドットがない位置を「０」というように、画像として検出したドットをデジタルデータに置き換えることにより行う。本実施の形態では、抽出手段の第３の部分画像を抽出する機能の一例として、ドット配列生成部２２を備えている。
【００４０】
ブロック検出部２３は、ドット配列上で、符号ブロック内の単位符号パターンに対応するブロックを検出する。即ち、単位符号パターンと同じ大きさをもつ矩形のブロック区切りをドット配列上で適宜動かし、ブロック内のドット数が均等になる位置を正しいブロック区切り位置とし、各ブロック内のパターン値を格納した符号配列を生成する。本実施の形態では、抽出手段の第２の部分画像を抽出する機能の一例として、ブロック検出部２３を備えている。
【００４１】
同期符号検出部２４は、ドット配列から検出された各単位符号パターンの種類を参照して、同期符号を検出する。
回転判定部２５は、検出した同期符号に基づいて、画像の回転を判定する。例えば、正方形の単位符号パターンを用いた場合、９０度単位で回転している可能性がある。そこで、検出した同期符号が４種類の同期パターンのいずれに対応しているかによって、その向きを検出する。また、長方形の単位符号パターンを用いた場合、１８０度単位で回転している可能性がある。そこで、検出された同期符号が２種類の同期パターンのいずれに対応しているかによって、その向きを検出する。
符号配列回転部２６は、回転判定部２５で検出された回転角度だけ符号配列を回転させて、符号配列を正しい向きに設定する。
【００４２】
識別符号検出部３０は、角度が補正された符号配列から、同期符号の位置を基準にして識別符号を検出する。本実施の形態では、ビット列を検出する検出手段、ビット列を決定する決定手段の一例として、識別符号検出部３０を設けている。
識別符号復元部３１は、検出された識別符号を正しい符号順に並べ替える。
識別符号復号部３２は、図８を参照して説明したＲＳ符号の符号化処理で用いたパラメータ（ブロック数等）と同じパラメータを用いて識別符号を復号し、識別情報を出力する。
識別符号誤り検出部３３は、復号された識別符号の誤りを検出し、識別符号誤り訂正部３４は、検出した誤りが訂正可能な誤りである場合に、その誤りを訂正する。
【００４３】
Ｘ座標符号検出部４０は、角度が補正された符号配列から、同期符号の位置を基準にしてＸ座標符号を検出する。
Ｘ座標符号復号部４２は、検出されたＸ座標符号からＭ系列の部分系列を取り出し、画像生成に使用したＭ系列におけるこの部分系列の位置を参照し、この位置を同期符号によるオフセットで補正した値をＸ座標情報として出力する。
Ｘ座標符号誤り検出部４３は、復号されたＸ座標符号の誤りを検出し、Ｘ座標符号誤り訂正部４４は、検出した誤りが訂正可能な誤りである場合に、その誤りを訂正する。
【００４４】
Ｙ座標符号検出部４５は、角度が補正された符号配列から、同期符号の位置を基準にしてＹ座標符号を検出する。
Ｙ座標符号復号部４７は、検出されたＹ座標符号からＭ系列の部分系列を取り出し、画像生成に使用したＭ系列におけるこの部分系列の位置を参照し、この位置を同期符号によるオフセットで補正した値をＹ座標情報として出力する。
Ｙ座標符号誤り検出部４８は、復号されたＹ座標符号の誤りを検出し、Ｙ座標符号誤り訂正部４９は、検出した誤りが訂正可能な誤りである場合に、その誤りを訂正する。
【００４５】
尚、本実施の形態では、第２の部分画像の位置を検出する検出手段の一例として、Ｘ座標符号検出部４０、Ｘ座標符号復号部４２、Ｘ座標符号誤り検出部４３、Ｘ座標符号誤り訂正部４４、Ｙ座標符号検出部４５、Ｙ座標符号復号部４７、Ｙ座標符号誤り検出部４８、Ｙ座標符号誤り訂正部４９を備えている。
【００４６】
座標補正部５０は、Ｘ座標符号復号部４２から出力されたＸ座標情報とＹ座標符号復号部４７から出力されたＹ座標情報とからなる座標情報を補正して、ペン先中心の座標情報を取得する。ここで、補正は、予め与えられたペン先中心の撮像領域中心に対する相対座標や、画像読取部２１から与えられた撮像領域中心の読み込み領域中心に対する相対座標等を用いて行う。本実施の形態では、第２の部分画像の位置を補正するために用いる情報を取得する取得手段の一例として、また、第２の部分画像の位置を補正する補正手段の一例として、座標補正部５０を設けている。
情報出力部５５は、識別符号復号部３２、座標補正部５０からそれぞれ取得した識別情報、ペン先中心のＸ座標情報及びＹ座標情報を出力する。
【００４７】
尚、これらの機能は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、画像処理装置２０のＣＰＵ９１（図２６参照）が、ドット配列生成部２２、ブロック検出部２３、同期符号検出部２４、回転判定部２５、符号配列回転部２６、識別符号検出部３０、識別符号復元部３１、識別符号復号部３２、識別符号誤り検出部３３、識別符号誤り訂正部３４、Ｘ座標符号検出部４０、Ｘ座標符号復号部４２、Ｘ座標符号誤り検出部４３、Ｘ座標符号誤り訂正部４４、Ｙ座標符号検出部４５、Ｙ座標符号復号部４７、Ｙ座標符号誤り検出部４８、Ｙ座標符号誤り訂正部４９、座標補正部５０、情報出力部５５を実現するプログラムを、例えば、磁気ディスク装置９３（図２６参照）からメインメモリ９２（図２６参照）に読み込んで実行することにより、実現される。また、磁気ディスク装置９３（図２６参照）に記憶されるプログラムやデータは、ＣＤ等の記録媒体からロードしてもよいし、インターネット等の通信手段を介してダウンロードしてもよい。
【００４８】
次いで、この画像処理装置２０の動作の概略を説明する。
最初に、画像読取部２１は、紙面に印刷された符号画像を撮像素子で読み取る。
そして、ドット配列生成部２２が、読み取った符号画像からドットの検出に適した領域を切り出す。この領域の切り出しは、公知の画像処理によって行えばよいが、例えば、次のような方法が考えられる。即ち、まず、撮像領域を複数の小領域に分割する。この場合、各小領域は１つのドットより大きなものとなるようにする。次に、小領域ごとに、その中のドットの部分とドット以外の部分とのコントラストを評価する。そして、最も高コントラストであった小領域を中心として、次に高コントラストであった周囲の小領域を連結していく。これを繰り返し、１７ドット×１７ドット分の大きさをカバーできる程度の大きさになるまで領域を広げていき、最終的に得られた領域を撮像領域から切り出す。
【００４９】
このようにしてドットの検出に適した領域を切り出すと、ドット配列生成部２２は、その領域の中から１７ドット×１７ドット分の大きさの読み込み領域を検出する。また、このドット画像におけるドット列の傾きも求める。
この場合、読み込み領域は、切り出した領域の中心部から選択すればよいが、その際もドットの部分とドット以外の部分とのコントラストの評価情報を用いるようにするとよい。
また、ドット列の傾きを求める方法にも種々のものがあるが、例えば、次のような方法を用いるとよい。即ち、まず、切り出した領域内のドットから、２つのドットからなる複数のドット対を検出する。この場合、ドット対としては、２つのドット間の距離が予め定められた距離に等しいものを選択する。本実施の形態では、図１のようなｍＣｎ方式の単位符号パターンで情報を表現するので、ここでの予め定められた距離としては、図１の左右又は上下の隣接する位置に２つのドットが配置された場合の距離を採用する。その後、この複数のドット対を、その傾きが直交する２つのグループに分け、それぞれの傾きを求めることでドット列の傾きを求める。
【００５０】
ドット配列生成部２２では、例えば、以上のような画像処理を行うことにより、撮像領域から読み込み領域を特定するが、その際、撮像領域中心の読み込み領域中心に対する相対位置（ＩＲＸ，ＩＲＹ）が分かるので、これを図示しないメモリに記憶しておく。また、上記で求めたドット列の傾きについても、ＩＲＤとして図示しないメモリに記憶しておく。但し、ＩＲＤは、ドット列の傾きから撮像領域の垂直方向への角度である。ドット列の方向は撮像素子の垂直方向と最も近いほうをとる。従って、ＩＲＤは、−９０°から９０°までの角度をとる。
【００５１】
次に、ドット配列生成部２２におけるドット配列の生成について説明する。
図１２は、ドット配列生成部２２によるドット画像からドット配列への変換を示した図である。図示するように、ドット配列生成部２２は、読み込み領域内の画像を１７×１７のドットの配列へと変換する。この配列の各要素には、対応する位置にドットがあれば「1」が、対応する位置にドットがなければ「０」が格納される。
【００５２】
また、ブロック検出部２３は、読み込み領域に対応するドット配列上で、情報表現の最小単位であるブロックを検出する。
図１３は、ブロック区切りを移動させてブロックを検出する際の処理を具体的に示した図である。ここでは、９Ｃ２方式で符号化が行われたことが分かっており、９Ｃ２方式で復号する場合について示している。
まず、ブロック検出部２３は、ドット配列生成部２２からドット配列を取得する。ここで取得するドット配列のサイズは予め設定されており、（復号に必要なブロック数×ブロックの一辺のドット数＋ブロックの一辺のドット数−１）２である。ところが、このドット配列は、画像の任意に選択された領域に対応しているので、ブロック区切りの位置は分からない。そこで、初めに、ドット配列の端を基準にブロック分割を行う。この例では、ｍ＝９なので、３ドット×３ドットの大きさのブロックからなるブロック区切りを重ねる。次に、各ブロック内のドットを数える。この例では、ｎ＝２なので、各ブロック内に２ドットずつ存在する場合のブロック区切りの位置が正しい区切り位置であるが、この位置ではドット数がばらついており、正しくないことが分かる。そこで、ブロック区切りをずらしてブロック内のドット数を数える。即ち、右方向への開始位置、１ドット分移動した位置、２ドット分移動した位置について同様の動作を行う。また、これらの位置のそれぞれに対し、下方向への開始位置、１ドット移動した位置、２ドット移動した位置についても同様の動作を行う。その結果、右方向に１ドット移動し、下方向に２ドット移動した位置において、全てのブロック内のドット数が「２」となる。従って、この位置を正しい区切り位置とする。
【００５３】
図１４に、ブロック検出部２３により決定された正しい区切り位置について示す。
ここでは、太線で示した位置にブロック区切りを重ねた場合に、全てのブロックに２つの「１」が含まれるので、この位置が正しいブロック区切りの位置となる。また、ブロックの検出はどの位置から開始してもよいが、ここでも、ドット配列の開始位置（左上）を起点としており、この起点から正しいブロック区切りの位置までのＸ方向の移動量をＭＸ、Ｙ方向の移動量をＭＹとしている。図では、ＭＸ＝０、ＭＹ＝１である。以下、この正しい区切り位置にブロック区切りを重ねることで得られる５ブロック×５ブロックの領域を「復号領域」と称する。
【００５４】
また、ブロック検出部２３は、各ブロックにおけるドット位置（「０」及び「１」の配置）からパターン値を求める。このとき、図３に示したドット位置とパターン値との対応を参照する。
図１５は、各ブロックにパターン値を割り当てた場合の例を示した図である。
例えば、左上のブロックでは、ブロック内の左上と右下にドットがあることが示されているので、図３の対応からパターン値０となる。また、その右のブロックでは、ブロック内の左上と右中央にドットがあることが示されているので、図３の対応からパターン値１２となる。
【００５５】
次に、同期符号検出部２４は、この中から、同期符号のパターン値を探す。本実施の形態では、パターン値３２〜３５の単位符号パターンを同期パターンとしているので、この番号を探す。図１５の例では、パターン値３５が同期符号となる。
図４を参照すると、パターン値３５の同期符号は、正立した同期符号であるパターン値３２の同期符号を右に２７０度回転した同期符号である。従って、符号配列を正立した方向にするには、符号配列を左に２７０度回転する必要がある。その場合、符号配列内の各要素のパターン値は、左に２７０度回転した場合のパターン値に変更する必要がある。
【００５６】
図１６は、正立位置の単位符号パターンのパターン値と、正立位置の単位符号パターンを右に９０度回転した単位符号パターンのパターン値と、正立位置の単位符号パターンを右に１８０度回転した単位符号パターンのパターン値と、正立位置の単位符号パターンを右に２７０度回転した単位符号パターンのパターン値との対応表である。このような対応表を図示しないメモリに記憶し、同期符号検出部２４は、この対応表を参照してパターン値を付け替えるようにすればよい。
【００５７】
図１７（ａ）は、このときのパターン値の変更を具体的に示したものである。例えば、左上のパターン値０のブロックは、左に２７０度回転することで、右上のパターン値１のブロックとなる。また、その右のパターン値１２のブロックは、左に２７０度回転することで、最右列の上から２番目のパターン値１３のブロックとなる。
また、符号配列を回転させた場合、復号領域から読み込み領域への変換や、撮像画像上の座標から符号画像上の座標への変換に用いる値も変更となる。前者は、復号領域の左上点に対する読み込み領域の左上点の相対座標（ＲＤＸ，ＲＤＹ）であり、後者は、読み込み領域に対する撮像領域の角度ＲＤＤである。
そこで、同期符号検出部２４は、図１７（ｂ）に示すように、各同期パターンに対し、回転角度に加え、これらの情報を求め、対応付けて図示しないメモリに記憶しておく。
【００５８】
その後、Ｘ座標符号検出部４０、Ｘ座標符号復号部４２、Ｘ座標符号誤り検出部４３、Ｘ座標符号誤り訂正部４４は、同期符号が配置された行の同期符号が配置されたブロック以外の４ブロックから各ブロックのＸ方向の位置を求める。また、Ｙ座標符号検出部４５、Ｙ座標符号復号部４７、Ｙ座標符号誤り検出部４８、Ｙ座標符号誤り訂正部４９は、同期符号が配置された列の同期符号が配置されたブロック以外の４ブロックから各ブロックのＹ方向の位置を求める。
図１８において、右図は、同期符号が、左から２つ目、上から２つ目のブロックに配置されている例である。同期符号が配置された行における同期符号を挟むブロックを「Ｘ１」、「Ｘ２」、「Ｘ３」、「Ｘ４」とする。これらのブロックに配置された単位符号パターンのパターン値の組み合わせを、図７に示したパターン列と照合することで、「Ｘ１」がパターン列の何番目のブロックかが分かる。そして、同期パターンが配置されたブロック数を加算する補正を行うことで、「Ｘ１」のＸ方向のブロック位置ＢＸを求める。また、Ｙ方向についても同様にして「Ｙ１」のＹ方向のブロック位置ＢＹを求める。
【００５９】
このようにＸ方向、Ｙ方向のブロック位置が求まると、座標補正部５０は、復号領域内の座標情報をペン先中心の座標情報へ変換する一連の処理を開始する。
図１８において、左図には、復号領域の開始点のピクセル位置（ＤＳＸ，ＤＳＹ）を灰色で示している。つまり、「Ｘ１」の左端のピクセル位置はＤＳＸであり、「Ｙ１」の上端のピクセル位置はＤＳＹである。１ブロックは１２ピクセルなので、（ＤＳＸ，ＤＳＹ）は、ＤＳＸ＝（ＢＸ−１）×１２＋１
ＤＳＹ＝（ＢＹ−１）×１２＋１
により求められる。
【００６０】
以上の処理により、復号領域の左上のピクセル位置は求められるが、先に述べたように、復号領域と読み込み領域とは同じ位置ではないので、読み込み領域の位置を求めるためには、補正が必要である。この補正では、図１７（ｂ）に示した（ＲＤＸ，ＲＤＹ）を用いる。この値から、読み込み領域の左上の座標（ＲＳＸ，ＲＳＹ）は、
ＲＳＸ＝ＤＳＸ＋ＲＤＸ
ＲＳＹ＝ＤＳＹ＋ＲＤＹ
により求められる。
【００６１】
また、読み込み領域の幅と高さは予め決められた設計値である。そこで、これらをそれぞれＤＡＷ，ＤＡＨとすると、読み込み領域中心（ＣＲＸ，ＣＲＹ）は、
ＣＲＸ＝ＲＳＸ＋ＤＡＷ／２
ＣＲＹ＝ＲＳＹ＋ＤＡＨ／２
により求められる。尚、ここまでの各座標は、符号画像上での座標である。
【００６２】
更に、撮像領域中心を求める必要がある。読み込み領域中心に対する撮像領域中心の相対座標（ＩＲＸ，ＩＲＹ）は、ドット配列生成部２２によって既に与えられている。また、ペンデバイスの仕様から、撮像領域中心に対するペン先中心の相対座標（ＩＰＸ，ＩＰＹ）も定まっている。これにより、読み込み領域中心に対するペン先中心の相対座標は、（ＩＲＸ＋ＩＰＸ，ＩＲＹ＋ＩＰＹ）となる。しかし、この座標は、撮像画像上の座標であるので、符号画像上の座標に変換する必要がある。これら２つの座標は、読み込み領域中心を軸として、右方向に一定角度回転している。そこで、符号画像上での座標は、回転の座標変換により、
（（ＩＲＸ＋ＩＰＸ）ｃｏｓＲＤＤ＋（ＩＲＹ＋ＩＰＹ）ｓｉｎＲＤＤ，
−（ＩＲＸ＋ＩＰＸ）ｓｉｎＲＤＤ＋（ＩＲＹ＋ＩＰＹ）ｃｏｓＲＤＤ）
となる。
【００６３】
これらを総合すると、ペン先中心の符号画像上での座標（ＰＰＸ，ＰＰＹ）は、
ＰＰＸ＝（ＩＲＸ＋ＩＰＸ）ｃｏｓＲＤＤ＋（ＩＲＹ＋ＩＰＹ）ｓｉｎＲＤＤ＋ＤＳＸ＋ＲＤＸ＋ＤＡＷ／２
ＰＰＹ＝−（ＩＲＸ＋ＩＰＸ）ｓｉｎＲＤＤ＋（ＩＲＹ＋ＩＰＹ）ｃｏｓＲＤＤ＋ＤＳＹ＋ＲＤＹ＋ＤＡＨ／２
と求められる。
【００６４】
図１９に、ペン先中心の座標を求めるのに用いられる各座標の位置関係を示す。本実施の形態では、上述したように、復号領域開始点から読み込み領域開始点が求められ、読み込み領域開始点から読み込み領域中心が求められる。また、読み込み領域中心から撮像領域中心が求められ、撮像領域中心からペン先中心が求められる。また、図１９では、符号画像の上部方向と撮像画像の上部方向も示されている。このように、符号画像と撮像画像には角度差があるので、読み込み領域中心から撮像領域中心やペン先中心を求める際には、この角度差を考慮している。
【００６５】
以上の手順を整理すると、次のようになる。
図２０は、この手順を説明するための図である。尚、以下の手順の番号と図中の番号とは対応している。
（１）復号領域の開始点（左上点）の座標（ＤＳＸ，ＤＳＹ）を求める。
（２）予め求められていた（ＲＤＸ，ＲＤＹ）を用いて、読み込み領域の開始点（左上点）の座標（ＤＳＸ＋ＲＤＸ，ＤＳＹ＋ＲＤＹ）を求める。
（３）復号に必要な領域のサイズ（ＤＡＷ，ＤＡＨ）から、読み込み領域中心の座標を求める。
（４）撮像画像上で、撮像領域中心及びペン先中心の読み込み領域中心に対する座標を求める。
（５）（４）で求めた座標を符号画像上での座標に変換し、（３）で求めた読み込み領域中心の座標に加算することで、符号画像上でのペン先中心の座標（ＰＰＸ，ＰＰＹ）を求める。
【００６６】
尚、本実施の形態では、媒体から読み取られた第１の部分画像の一例として、撮像領域を用い、媒体上での自身の位置を表す第２の部分画像の一例として、復号領域を用いている。そして、第１の部分画像から抽出された部分画像であって、第２の部分画像の抽出に用いられる部分画像である第３の部分画像の一例として、読み込み領域を用いている。
また、指示手段により指示された位置の第１の部分画像の中心からの距離及び方向を特定する情報の一例として、（ＩＰＸ，ＩＰＹ）を用いている。更に、第１の部分画像の中心の第３の部分画像の中心からの距離及び方向を特定する情報の一例として、（ＩＲＸ，ＩＲＹ）を用いている。更にまた、第１の部分画像の第３の部分画像に対する回転角度を特定する情報の一例として、ＩＲＤを用いている。また、第３の部分画像の１つの頂点の第２の部分画像の１つの頂点からの垂直軸方向及び水平軸方向の変位を特定する情報の一例として、（ＲＤＸ，ＲＤＹ）を用いている。
【００６７】
次いで、画像処理装置２０の動作について更に詳しく説明する。尚、この動作の説明では、９Ｃ２方式の単位符号パターンが図５に示したレイアウトで配置されていることを前提とする。
まず、ブロック検出部２３の動作について説明する。
図２１は、ブロック検出部２３の動作例を示したフローチャートである。
まず、ブロック検出部２３は、ドット配列生成部２２からドット配列を取得する（ステップ２０１）。このドット配列の大きさは、上述したように、（復号に必要なブロック数×ブロックの一辺のドット数＋ブロックの一辺のドット数−１）２である。本実施の形態では、復号に必要なブロック数は５×５であり、ブロックの一辺のドット数が３であるので、１７×１７のドット配列を取得する。
【００６８】
次に、取得したドット配列に、ブロック区切りを重ね合わせる（ステップ２０２）。本実施の形態では、５×５のブロック区切りが用いられる。そして、カウンタＩ、Ｊに「０」を代入し、ＭａｘＢＮにも「０」を代入する（ステップ２０３）。
ここで、Ｉ、Ｊは、ブロック区切りを初期位置から移動させたステップ数をカウントするものである。画像の１ラインごとにブロック区切りを移動させ、そのとき移動させたライン数をカウンタＩ、Ｊでカウントする。また、ＭａｘＢＮは、ブロック内で検出されるドット数が「２」となるブロック数をブロック区切りを移動させながらカウントしていったときに、最大となるカウント値を記録するものである。
【００６９】
次に、ブロック検出部２３は、ブロック区切りをＸ方向にＩ、Ｙ方向にＪ移動させる（ステップ２０４）。初期状態においてＩ、Ｊは「０」であるので、ブロック区切りは移動しない。そして、ブロック区切りの各ブロックに含まれるドット数をカウントして、ドット数が「２」となるブロックの数をカウントする。カウントしたブロック数はＩＢ［Ｉ，Ｊ］に格納する（ステップ２０５）。ＩＢ［Ｉ，Ｊ］のＩ、Ｊには、ブロック区切りの移動量を示すＩとＪの値がそれぞれ記録される。
【００７０】
次に、ブロック検出部２３は、ＩＢ［Ｉ，Ｊ］とＭａｘＢＮとを比較する（ステップ２０６）。ＭａｘＢＮは初期値が「０」であるので、最初の比較では、ＩＢ［Ｉ，Ｊ］がＭａｘＢＮよりも大きくなる。この場合、ＭａｘＢＮにＩＢ［Ｉ，Ｊ］の値を代入すると共に、ＩにＭＸの値を、ＪにＭＹの値を代入する（ステップ２０７）。尚、ＩＢ［Ｉ，Ｊ］がＭａｘＢＮ以下である場合は、ＭａｘＢＮ、ＭＸ、ＭＹの値はそのままにしておく。
【００７１】
その後、ブロック検出部２３は、Ｉ＝２であるかどうかを判定する（ステップ２０８）。
ここで、Ｉ＝２でない場合には、Ｉに「１」を加算する（ステップ２０９）。そして、ステップ２０４、２０５の処理を繰り返し行い、ＩＢ［Ｉ，Ｊ］とＭａｘＢＮとを比較していく（ステップ２０６）。
ＩＢ［Ｉ，Ｊ］が前回までのＩＢ［Ｉ，Ｊ］の最大値であるＭａｘＢＮよりも大きいと、ＭａｘＢＮにＩＢ［Ｉ，Ｊ］の値を代入し、そのときのＩにＭＸの値を、ＪにＭＹの値を代入する（ステップ２０７）。また、ＭａｘＢＮのほうがＩＢ［Ｉ，Ｊ］よりも大きい場合には、Ｉ＝２であるかどうかを判定する（ステップ２０８）。Ｉ＝２となると、次にＪ＝２であるかどうかを判定する（ステップ２１０）。Ｊ＝２でない場合には、Ｉに「０」を代入し、Ｊに「１」を加算する（ステップ２１１）。このような手順を繰り返し行い、（Ｉ，Ｊ）が（０，０）から（２，２）までで、ＩＢ［Ｉ，Ｊ］が最大のものを検出する。
【００７２】
Ｉ＝２、Ｊ＝２までの処理が終了すると、ブロック検出部２３は、保存しているＭａｘＢＮと閾値ＴＢとを比較する（ステップ２１２）。閾値ＴＢは、ドット数が「２」のブロックの数が復号可能な程度のものかを判定するための閾値である。
ここで、ＭａｘＢＮが閾値ＴＢよりも大きい場合には、ブロック区切りをＭＸ、ＭＹの位置に固定し、その位置で各ブロックのパターン値を検出する。そして、検出したパターン値を、各ブロックを識別する変数Ｘ、Ｙと共に符号配列ＰＡ［Ｘ，Ｙ］としてメモリに記録する（ステップ２１３）。尚、このとき、対応するパターン値に変換することができなければ、パターン値として用いられていない「９９」を記録する。そして、ブロック検出部２３は、ＭＸ、ＭＹと、符号配列ＰＡ［Ｘ，Ｙ］とを同期符号検出部２４に出力する（ステップ２１４）。
一方、ＭａｘＢＮが閾値ＴＢ以下である場合には、画像のノイズが大きく復号は不可能と判定し、復号不能を出力する（ステップ２１５）。
【００７３】
次に、同期符号検出部２４の動作について説明する。
図２２は、同期符号検出部２４の動作例を示したフローチャートである。
まず、同期符号検出部２４は、ブロック検出部２３からＭＸ、ＭＹと、符号配列ＰＡ［Ｘ，Ｙ］とを取得する（ステップ２５１）。
次に、同期符号検出部２４は、Ｋ、Ｌに「１」を代入する（ステップ２５２）。尚、ＫはＸ方向のブロック数を示すカウンタであり、ＬはＹ方向のブロック数を示すカウンタである。
【００７４】
次に、同期符号検出部２４は、ＰＡ［Ｋ，Ｌ］のパターン値が３２かどうかを判定する（ステップ２５３）。
ＰＡ［Ｋ，Ｌ］のパターン値が３２であれば、符号配列ＰＡ［Ｘ，Ｙ］の回転は必要ないと判定し、同期符号のあるブロックのＸ座標ＳＸにＫを代入し、Ｙ座標ＳＹにＬを代入する。また、ブロック区切りのＸ方向への移動量ＳｈｉｆｔＸにＭＸを代入し、Ｙ方向への移動量ＳｈｉｆｔＹにＭＹを代入する（ステップ２５４）。
尚、本実施の形態では、このとき、図１７（ｂ）に示すように、復号領域開始点から読み込み領域開始点への補正量ＲＤＸ、ＲＤＹと、撮像画像上での座標を符号画像上での座標に変換する際の回転量ＲＤＤとを記憶しておく。具体的には、ＲＤＸ＝−ＭＸ×４、ＲＤＹ＝−ＭＹ×４、ＲＤＤ＝ＩＲＤにより、各値を求めて記憶しておく。ここで、１ドットの間隔が４ピクセルであることから、ドットで数えた座標からピクセルで数えた座標へと変換するために４を掛けている。
【００７５】
次に、同期符号検出部２４は、ＰＡ［Ｋ，Ｌ］のパターン値が３３かどうかを判定する（ステップ２５５）。
ＰＡ［Ｋ，Ｌ］のパターン値が３３であれば、符号配列ＰＡ［Ｘ，Ｙ］を左方向に９０度回転させる（ステップ２５６）。図４に示すようにパターン値３３の単位符号パターンは、パターン値３２の単位符号パターンを右方向に９０度回転させた画像であるので、逆方向に９０度回転させて画像を正立させている。尚、このとき、符号配列ＰＡ［Ｘ，Ｙ］内の全てのパターン値が、左方向に９０度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのＸ座標ＳＸにＬを代入し、Ｙ座標ＳＹに６−Ｋを代入する。また、ブロック区切りのＸ方向への移動量ＳｈｉｆｔＸにＭＹを代入し、Ｙ方向への移動量ＳｈｉｆｔＹに２−ＭＸを代入する（ステップ２５７）。
尚、本実施の形態では、このとき、図１７（ｂ）に示すように、復号領域開始点から読み込み領域開始点への補正量ＲＤＸ、ＲＤＹと、撮像画像上での座標を符号画像上での座標に変換する際の回転量ＲＤＤとを記憶しておく。具体的には、ＲＤＸ＝−ＭＹ×４、ＲＤＹ＝−（２−ＭＸ）×４、ＲＤＤ＝２７０＋ＩＲＤにより、各値を求めて記憶しておく。ＲＤＤは、符号画像上の垂直方向からの回転角に変換している。
【００７６】
次に、同期符号検出部２４は、ＰＡ［Ｋ，Ｌ］のパターン値が３４かどうかを判定する（ステップ２５８）。
ＰＡ［Ｋ，Ｌ］のパターン値が３４であれば、符号配列ＰＡ［Ｘ，Ｙ］を左方向に１８０度回転させる（ステップ２５９）。図４に示すようにパターン値３４の単位符号パターンは、パターン値３２の単位符号パターンを１８０度回転させた画像であるので、パターン値３４の単位符号パターンを１８０度回転させて画像を正立させている。尚、このとき、符号配列ＰＡ［Ｘ，Ｙ］内の全てのパターン値が、１８０度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのＸ座標ＳＸに６−Ｋを代入し、Ｙ座標ＳＹに６−Ｌを代入する。また、ブロック区切りのＸ方向への移動量ＳｈｉｆｔＸに２−ＭＸを代入し、Ｙ方向への移動量ＳｈｉｆｔＹに２−ＭＹを代入する（ステップ２６０）。
尚、本実施の形態では、このとき、図１７（ｂ）に示すように、復号領域開始点から読み込み領域開始点への補正量ＲＤＸ、ＲＤＹと、撮像画像上での座標を符号画像上での座標に変換する際の回転量ＲＤＤとを記憶しておく。具体的には、ＲＤＸ＝−（２−ＭＸ）×４、ＲＤＹ＝−（２−ＭＹ）×４、ＲＤＤ＝１８０＋ＩＲＤにより、各値を求めて記憶しておく。
【００７７】
次に、同期符号検出部２４は、ＰＡ［Ｋ，Ｌ］のパターン値が３５かどうかを判定する（ステップ２６１）。
ＰＡ［Ｋ，Ｌ］のパターン値が３５であれば、符号配列ＰＡ［Ｘ，Ｙ］を左方向に２７０度回転させる（ステップ２６２）。図４に示すようにパターン値３５の単位符号パターンは、パターン値３２の単位符号パターンを右に２７０度回転させた画像であるので、逆方向に２７０度回転させて画像を正立させている。尚、このとき、符号配列ＰＡ［Ｘ，Ｙ］内の全てのパターン値が、左方向に２７０度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのＸ座標ＳＸに６−Ｌを代入し、Ｙ座標ＳＹにＫを代入する。また、ブロック区切りのＸ方向への移動量ＳｈｉｆｔＸに２−ＭＹを代入し、Ｙ方向への移動量ＳｈｉｆｔＹにＭＸを代入する（ステップ２６３）。
尚、本実施の形態では、このとき、図１７（ｂ）に示すように、復号領域開始点から読み込み領域開始点への補正量ＲＤＸ、ＲＤＹと、撮像画像上での座標を符号画像上での座標に変換する際の回転量ＲＤＤとを記憶しておく。具体的には、ＲＤＸ＝−（２−ＭＹ）×４、ＲＤＹ＝−ＭＸ×４、ＲＤＤ＝９０＋ＩＲＤにより、各値を求めて記憶しておく。
【００７８】
そして、ステップ２５４、２５７、２６０、２６３で、ＳＸ、ＳＹ、ＳｈｉｆｔＸ、ＳｈｉｆｔＹに値が代入された場合、同期符号検出部２４は、これらの値を識別符号検出部３０、Ｘ座標符号検出部４０、Ｙ座標符号検出部４５に出力する（ステップ２６４）。
また、ＰＡ［Ｋ，Ｌ］がパターン値３２〜３５のいずれでもなければ、同期符号検出部２４は、Ｋ＝５であるかどうかを判定する（ステップ２６５）。Ｋ＝５でない場合には、Ｋに「１」を加算し（ステップ２６６）、ステップ２５３に戻る。Ｋ＝５であれば、Ｌ＝５であるかどうかを判定する（ステップ２６７）。Ｌ＝５でない場合には、Ｋに「１」を代入し、Ｌに「１」を加算し（ステップ２６８）、ステップ２５３に戻る。即ち、ステップ２５３〜２６４の処理を、パターン値３２〜３５のブロックを検出するまでＫ、Ｌの値を変更しながら繰り返し行う。また、Ｋ＝５、Ｌ＝５になっても、パターン値３２〜３５のブロックを検出することができなかった場合には、復号不能の判定信号を出力する（ステップ２６９）。
【００７９】
尚、ステップ２５３、２５５、２５８、２６１の処理は、同期符号検出部２４による制御の下、回転判定部２５が行うようにするとよい。また、ステップ２５４、２５６、２５７、２５９、２６０、２６２、２６３の処理は、同期符号検出部２４による制御の下、符号配列回転部２６が行うようにするとよい。
【００８０】
次に、Ｘ座標符号検出部４０の動作について説明する。
図２３は、Ｘ座標符号検出部４０の動作例を示したフローチャートである。
まず、Ｘ座標符号検出部４０は、同期符号検出部２４から符号配列ＰＡ［Ｘ，Ｙ］、ＳＸ、ＳＹを取得する（ステップ４０１）。
次に、Ｘ座標符号検出部４０は、Ｘ座標符号配列ＸＡ［Ｘ，０］の全ての要素を「９９」で初期化する（ステップ４０２）。尚、この「９９」は、パターン値として用いられていない番号とする。そして、符号ブロックにおける各ブロックを識別するためのカウンタＩＸ、ＩＹに「１」を代入する。ここで、ＩＸは、Ｘ方向のブロック数を示すカウンタであり、ＩＹは、Ｙ方向のブロック数を示すカウンタである。更に、Ｘ座標符号検出部４０は、Ｘ座標符号配列における各要素を識別するためのカウンタＫＸにも「１」を代入する（ステップ４０３）。
【００８１】
また、Ｘ座標符号検出部４０は、ＩＹ−ＳＹが「５」で割り切れるかどうかを判定する（ステップ４０４）。即ち、ＩＹで特定されるブロックに同期符号が配置されているかどうかを判定する。
ここで、ＩＹ−ＳＹが「５」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合は、Ｘ座標符号を取り出す対象ではないため、ＩＹに「１」を加算し（ステップ４０５）、ステップ４０４へ進む。
一方、ＩＹ−ＳＹが「５」で割り切れた場合、つまり、このブロックに同期符号が配置されている場合、Ｘ座標符号検出部４０は、ＩＸ−ＳＸが「５」で割り切れるかどうかを判定する（ステップ４０６）。即ち、ＩＸで特定されるブロックに同期符号が配置されているかどうかを判定する。
【００８２】
ここで、ＩＸ−ＳＸが「５」で割り切れた場合、つまり、このブロックに同期符号が配置されている場合は、Ｘ座標符号を取り出す対象ではないため、ＩＸに「１」を加算し（ステップ４０７）、ステップ４０６へ進む。
一方、ＩＸ−ＳＸが「５」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合、Ｘ座標符号検出部４０は、ＸＡ［ＫＸ，０］にＰＡ［ＩＸ，ＩＹ］を代入する（ステップ４０８）。
【００８３】
そして、ＩＸ＝５であるかどうかを判定する（ステップ４０９）。
ここで、ＩＸ＝５でない場合には、ＫＸに「１」を加算し（ステップ４１０）、ＩＸに「１」を加算して（ステップ４０７）、ステップ４０６〜４０８の処理をＩＸ＝５となるまで繰り返し行う。また、ＩＸ＝５となると、次に、ＩＹ＝５であるかどうかを判定する（ステップ４１１）。ＩＹ＝５でない場合には、ＩＸ、ＫＸに「１」を代入し（ステップ４１２）、ＩＹに「１」を加算して（ステップ４０５）、ステップ４０４〜４１０の処理をＩＹ＝５となるまで繰り返し行う。また、ＩＹ＝５となると、Ｘ座標符号検出部４０は、Ｘ座標符号配列ＸＡ［Ｘ，０］をＸ座標符号復号部４２に出力する（ステップ４１３）。
尚、ここでは、Ｘ座標符号検出部４０の動作のみ説明したが、Ｙ座標符号検出部４５も同様の動作を行う。
以上により、本実施の形態における画像処理装置２０の詳細な動作説明を終了する。
【００８４】
次に、座標補正部５０の動作について説明する。
図２４は、座標補正部５０の動作例を示したフローチャートである。
まず、座標補正部５０は、撮像領域中心に対するペン先中心の相対座標（ＩＰＸ，ＩＰＹ）と、読み込み領域中心に対する撮像領域中心の相対座標（ＩＲＸ，ＩＲＹ）とを取得する（ステップ５０１）。ここで、（ＩＰＸ，ＩＰＹ）は、ペンデバイスの仕様として、図示しないメモリに予め記憶されているので、それを読み出す。また、（ＩＲＸ，ＩＲＹ）は、ドット配列生成部２２によるドット画像の検出時にメモリに記憶されているので、それを読み出す。
【００８５】
次に、座標補正部５０は、ブロック区切りの移動量のピクセル数（ＲＤＸ，ＲＤＹ）と、撮像領域の読み込み領域に対する回転角ＲＤＤを取得する（ステップ５０２）。ここで、これらの値は、同期符号検出部２４による回転検出時にメモリに記憶されているので、それを読み出す。
また、座標補正部５０は、Ｘ座標符号復号部４２から符号ブロックの左端のブロックの位置ＢＸを取得すると共に、Ｙ座標符号復号部４７から符号ブロックの上端のブロックの位置ＢＹを取得する（ステップ５０３）。
【００８６】
その後、座標補正部５０は、復号領域開始点のピクセル位置（ＤＳＸ，ＤＳＹ）を求め（ステップ５０４）、更に、これを読み込み領域開始点のピクセル位置（ＲＳＸ，ＲＳＹ）に変換する（ステップ５０５）。そして、最後に、読み込み領域中心のピクセル位置（ＣＲＸ，ＣＲＹ）を求め（ステップ５０６）、ペン先中心のピクセル位置（ＰＰＸ，ＰＰＹ）を求める（ステップ５０７）。尚、これらのステップにおけるピクセル位置の変換式については、これまでの説明で詳しく述べているので、ここでの説明は省略する。
【００８７】
以上により、本実施の形態の動作の説明を終了する。
ところで、本実施の形態では、まず、復号領域の位置を求め、次に、読み込み領域の位置を求め、更に、撮像領域の位置を求めて、ペン先の位置を求めるようにした。しかしながら、必ずしもこれらの全ての位置を求めなければならないわけではない。例えば、ｍＣｎ方式以外の符号化方式を採用した場合、復号領域と読み込み領域を同一視できる場合もあると考えられる。そのような場合は、復号領域から直接撮像領域を求めるようにしてもよい。
【００８８】
次に、本実施の形態における画像処理装置２０の具体的なハードウェア構成について説明する。
まず、画像処理装置２０を実現するペンデバイス６０について説明する。
図２５は、ペンデバイス６０の機構を示した図である。
図示するように、ペンデバイス６０は、ペン全体の動作を制御する制御回路６１を備える。また、制御回路６１は、入力画像から検出した符号画像を処理する画像処理部６１ａと、そこでの処理結果から識別情報及び位置情報を抽出するデータ処理部６１ｂとを含む。
そして、制御回路６１には、ペンデバイス６０による筆記動作をペンチップ６９に加わる圧力によって検出する圧力センサ６２が接続されている。また、媒体上に赤外光を照射する赤外ＬＥＤ６３と、画像を入力する赤外ＣＭＯＳ６４も接続されている。更に、識別情報及び位置情報を記憶するための情報メモリ６５と、外部装置と通信するための通信回路６６と、ペンを駆動するためのバッテリ６７と、ペンの識別情報（ペンＩＤ）を記憶するペンＩＤメモリ６８も接続されている。
【００８９】
尚、図１１に示した画像読取部２１は、例えば、図２５の赤外ＣＭＯＳ６４にて実現される。また、ドット配列生成部２２は、例えば、図２５の画像処理部６１ａにて実現される。更に、図１１に示したブロック検出部２３、同期符号検出部２４、回転判定部２５、符号配列回転部２６、識別符号検出部３０、識別符号復元部３１、識別符号復号部３２、識別符号誤り検出部３３、識別符号誤り訂正部３４、Ｘ座標符号検出部４０、Ｘ座標符号復号部４２、Ｘ座標符号誤り検出部４３、Ｘ座標符号誤り訂正部４４、Ｙ座標符号検出部４５、Ｙ座標符号復号部４７、Ｙ座標符号誤り検出部４８、Ｙ座標符号誤り訂正部４９、座標補正部５０、情報出力部５５は、例えば、図２５のデータ処理部６１ｂにて実現される。
【００９０】
また、本実施の形態では、媒体上の位置を指示する指示手段の一例として、ペンデバイス６０のペンチップ６９を設けたが、これには限らない。媒体に筆記を行うための構成ではなく、単に媒体上の所定位置をポイントするための構成を指示手段として捉えてもよい。
【００９１】
また、図２５の画像処理部６１ａ又はデータ処理部６１ｂにて実現される処理は、例えば、汎用のコンピュータで実現してもよい。そこで、かかる処理をコンピュータ９０で実現するものとし、コンピュータ９０のハードウェア構成について説明する。
図２６は、コンピュータ９０のハードウェア構成を示した図である。
図示するように、コンピュータ９０は、演算手段であるＣＰＵ（Central Processing Unit）９１と、記憶手段であるメインメモリ９２及び磁気ディスク装置（ＨＤＤ：Hard Disk Drive）９３とを備える。ここで、ＣＰＵ９１は、ＯＳ（Operating System）やアプリケーション等の各種ソフトウェアを実行し、上述した各機能を実現する。また、メインメモリ９２は、各種ソフトウェアやその実行に用いるデータ等を記憶する記憶領域であり、磁気ディスク装置９３は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。
更に、コンピュータ９０は、外部との通信を行うための通信Ｉ／Ｆ９４と、ビデオメモリやディスプレイ等からなる表示機構９５と、キーボードやマウス等の入力デバイス９６とを備える。
【００９２】
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭ等の記録媒体に格納して提供することも可能である。
【図面の簡単な説明】
【００９３】
【図１】９Ｃｎ方式における単位符号パターンの一例を示した図である。
【図２】９Ｃｎ方式における単位符号パターンの他の例を示した図である。
【図３】９Ｃ２方式における単位符号パターンとパターン値の対応を示した図である。
【図４】９Ｃ２方式における同期パターンの例を示した図である。
【図５】符号ブロックの基本的なレイアウトの例を示した図である。
【図６】符号ブロックの紙面上のレイアウトの例を示した図である。
【図７】Ｍ系列による座標の表現について説明するための図である。
【図８】本実施の形態における画像生成装置の機能構成を示したブロック図である。
【図９】ペン先中心と撮像領域中心とのズレについて説明するための図である。
【図１０】ペン先中心と撮像領域と読み込み領域とのズレについて説明するための図である。
【図１１】本実施の形態における画像処理装置の機能構成を示したブロック図である。
【図１２】ドット配列を生成する際の処理を説明するための図である。
【図１３】ドット配列上でブロックを検出する際の処理を説明するための図である。
【図１４】ドット配列上でブロックを検出した後の状態を説明するための図である。
【図１５】ドット配列から符号配列へ変換する際の処理を説明するための図である。
【図１６】回転角度とパターン番号の対応を示した図である。
【図１７】符号配列の回転及び回転に伴う情報の記憶について説明するための図である。
【図１８】復号領域開始点を求める際の処理について説明するための図である。
【図１９】復号領域開始点からペン先中心を求めるまでの各座標の関係を示した図である。
【図２０】座標の変換についてまとめた図である。
【図２１】本実施の形態におけるブロック検出部の動作例を示したフローチャートである。
【図２２】本実施の形態における同期符号検出部の動作例を示したフローチャートである。
【図２３】本実施の形態におけるＸ座標符号検出部の動作例を示したフローチャートである。
【図２４】本実施の形態における座標補正部の動作例を示したフローチャートである。
【図２５】本実施の形態における画像処理装置を実現可能なペンデバイスの機構を示した図である。
【図２６】本実施の形態を適用可能なコンピュータのハードウェア構成図である。
【符号の説明】
【００９４】
１０…画像生成装置、２０…画像処理装置、２１…画像読取部、２２…ドット配列生成部、２３…ブロック検出部、２４…同期符号検出部、２５…回転判定部、２６…符号配列回転部、３０…識別符号検出部、３１…識別符号復元部、３２…識別符号復号部、３３…識別符号誤り検出部、３４…識別符号誤り訂正部、４０…Ｘ座標符号検出部、４２…Ｘ座標符号復号部、４３…Ｘ座標符号誤り検出部、４４…Ｘ座標符号誤り訂正部、４５…Ｙ座標符号検出部、４７…Ｙ座標符号復号部、４８…Ｙ座標符号誤り検出部、４９…Ｙ座標符号誤り訂正部、５０…座標補正部、５５…情報出力部
【図１】
2008299508.tif 000003
【図２】
2008299508.tif 000004
【図３】
2008299508.tif 000005
【図４】
2008299508.tif 000006
【図５】
2008299508.tif 000007
【図６】
2008299508.tif 000008
【図７】
2008299508.tif 000009
【図８】
2008299508.tif 000010
【図９】
2008299508.tif 000011
【図１０】
2008299508.tif 000012
【図１１】
2008299508.tif 000013
【図１２】
2008299508.tif 000014
【図１３】
2008299508.tif 000015
【図１４】
2008299508.tif 000016
【図１５】
2008299508.tif 000017
【図１６】
2008299508.tif 000018
【図１７】
2008299508.tif 000019
【図１８】
2008299508.tif 000020
【図１９】
2008299508.tif 000021
【図２０】
2008299508.tif 000022
【図２１】
2008299508.tif 000023
【図２２】
2008299508.tif 000024
【図２３】
2008299508.tif 000025
【図２４】
2008299508.tif 000026
【図２５】
2008299508.tif 000027
【図２６】
2008299508.tif 000028