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