位置検出装置及びプログラム
【課題】媒体上の指示位置と媒体から読み取った画像と媒体上の位置の検出に用いる画像との間にズレがあっても、媒体上の指示位置を精度よく求めることができるようにする。
【解決手段】画像を読み取る画像読取部21と、画像からドット配列を生成するドット配列生成部22と、ドット配列上でブロックを検出して符号配列を生成するブロック検出部23と、符号配列上で同期符号を検出する同期符号検出部24と、符号配列から識別情報を取り出す識別符号検出部30等と、符号配列から座標情報を取り出すX座標符号検出部40、Y座標符号検出部45等と、座標情報を補正する座標補正部50とを備える。座標情報の補正には、画像読取部21が読み取った画像に対するペン先の相対位置や、X座標符号検出部40、Y座標符号検出部45等で用いる画像に対する画像読取部21が読み取った画像の相対位置等が用いられる。
【解決手段】画像を読み取る画像読取部21と、画像からドット配列を生成するドット配列生成部22と、ドット配列上でブロックを検出して符号配列を生成するブロック検出部23と、符号配列上で同期符号を検出する同期符号検出部24と、符号配列から識別情報を取り出す識別符号検出部30等と、符号配列から座標情報を取り出すX座標符号検出部40、Y座標符号検出部45等と、座標情報を補正する座標補正部50とを備える。座標情報の補正には、画像読取部21が読み取った画像に対するペン先の相対位置や、X座標符号検出部40、Y座標符号検出部45等で用いる画像に対する画像読取部21が読み取った画像の相対位置等が用いられる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、位置検出装置、プログラムに関する。
【背景技術】
【0002】
表面上の複数の位置を符号化する位置コードを提供する方法は知られている(例えば、特許文献1参照)。この特許文献1では、循環数字列を表面に沿って複数回印刷する。その際、循環数字列の異なるローテーションを、隣り合う数字列間で所定のずれが起こるように使用し、表面を分割した複数のコードウィンドウが、少なくとも3つの循環数字列を備えると共に、隣り合うコードウィンドウの1つの数字列と重なり合う1つの数字列を有するものであり、また、コードウィンドウの位置を、そのコードウィンドウに属している循環数字列間のずれによって符号化している。
【0003】
論理的に順位付けられたデジタル量子の機械読取り可能なエンコーディングを記録した記録媒体からのエンコーディングの空間的に非同期的な読取りを可能にする技術も知られている(例えば、特許文献2参照)。この特許文献2では、本質的に同一であるエンコーディングの多数のコピーを形成し、機械認識可能な空間同期指標をエンコーディングのコピーの各々の中のプリント位置に組み合わせて、エンコーディングの空間的に同期可能な多数の事例を提供し、それらの事例をレイアウト規則に従って記録媒体における空間的に周期的な中心の格子に書き込んでいる。
【0004】
取り込まれた画像の位置をより大きい画像から決定するためのシステム及び方法も知られている(例えば、特許文献3参照)。この特許文献3では、非反復的な系列を、所定のサイズのサブウィンドウ毎に固有とされた非反復的な配列に折り畳み、その取り込まれた位置を非反復的な配列内のサブウィンドウ毎に決定することによって、取り込まれた画像の位置を、より大きいサブウィンドウの画像から決定している。
【0005】
光学的に読み取り可能に記録されるマルチメディア情報の長時間記録及び繰り返し再生を可能とする技術も知られている(例えば、特許文献4参照)。この特許文献4において、記録装置は、プリンタシステムや印刷用製版システムにより、オーディオ情報、映像情報、ディジタルコードデータ等を含めた所謂マルチメディア情報を光学的に読み取り可能なドットコードとして、画像や文字と一緒に紙等の媒体上に記録する。ペン型の情報再生装置は、ドットコードの手動走査に応じてそのドットコードを順次取り込んで、元のオーディオ情報を音声出力器にて、元の映像情報を表示装置にて、元のディジタルコードデータをページプリンタ等にて出力する。
【0006】
タブレットを使用せずに、媒体上の座標を精緻に検出できるようにする技術も知られている(例えば、特許文献5参照)。この特許文献5において、ペン型の座標入力装置は、媒体上に形成されその媒体上の座標を示すコードシンボルを光学的に読み取り、この読み取ったコードシンボルをデコードし、読み取った画像中におけるコードシンボルの位置、向き及び歪み量を検出する。そして、デコード後の情報と、コードシンボルの位置、向き及び歪み量とにより、先端部の媒体上での位置の座標を検出する。
【0007】
【特許文献1】特表2003−511762号公報
【特許文献2】特開平9−185669号公報
【特許文献3】特開2004−152273号公報
【特許文献4】特開平6−231466号公報
【特許文献5】特開2000−293303号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
ここで、従来、媒体上の指示された位置と、媒体から読み取られた部分画像と、媒体上の位置の検出に用いられる部分画像との間にズレがある場合には、媒体上の指示された位置を精度よく求めることはできないという課題があった。
本発明の目的は、媒体上の指示された位置と、媒体から読み取られた部分画像と、媒体上の位置の検出に用いられる部分画像との間にズレがあっても、媒体上の指示された位置を精度よく求めることができるようにすることにある。
【課題を解決するための手段】
【0009】
請求項1に記載の発明は、媒体上の位置を指示する指示手段と、前記媒体に印刷された画像に含まれる第1の部分画像を読み取る読取手段と、前記読取手段により読み取られた前記第1の部分画像から、前記媒体上での自身の位置を表す第2の部分画像を抽出する抽出手段と、前記抽出手段により抽出された前記第2の部分画像を用いて、前記媒体上での当該第2の部分画像の位置を検出する検出手段と、前記指示手段により指示された位置の前記第1の部分画像に対する相対位置を示す第1の情報と、前記第1の部分画像の前記第2の部分画像に対する相対位置を示す第2の情報とを取得する取得手段と、前記検出手段により検出された前記第2の部分画像の位置を、前記第1の情報と前記第2の情報とを用いて補正する補正手段とを備えたことを特徴とする位置検出装置である。
請求項2に記載の発明は、前記取得手段は、前記指示手段により指示された位置の前記第1の部分画像の中心からの距離及び方向を特定する情報を、前記第1の情報として取得することを特徴とする請求項1記載の位置検出装置である。
請求項3に記載の発明は、前記抽出手段は、前記第1の部分画像から第3の部分画像を抽出した後、当該第3の部分画像から前記第2の部分画像を抽出し、前記取得手段は、前記第2の情報を、前記第1の部分画像の前記第3の部分画像に対する相対位置を示す第3の情報と、前記第3の部分画像の前記第2の部分画像に対する相対位置を示す第4の情報とに分けて取得することを特徴とする請求項1記載の位置検出装置である。
請求項4に記載の発明は、前記取得手段は、前記第1の部分画像の中心の前記第3の部分画像の中心からの距離及び方向を特定する情報を、前記第3の情報として取得することを特徴とする請求項3記載の位置検出装置である。
請求項5に記載の発明は、前記取得手段は、前記第1の部分画像の前記第3の部分画像に対する回転角度を特定する情報を、前記第3の情報として更に取得することを特徴とする請求項4記載の位置検出装置である。
請求項6に記載の発明は、前記第2の部分画像及び前記第3の部分画像は、垂直軸及び水平軸を共有する矩形をなしており、前記取得手段は、前記第3の部分画像の1つの頂点の前記第2の部分画像の1つの頂点からの前記垂直軸方向及び前記水平軸方向の変位を特定する情報を、前記第4の情報として取得することを特徴とする請求項3記載の位置検出装置である。
請求項7に記載の発明は、前記第2の部分画像は、m(m≧4)箇所のうちのn(2≦n<m)箇所に単位画像を配置したパターン画像を前記垂直軸方向にAx(Ax≧2)個、前記水平軸方向にAy(Ay≧2)個配置してなる画像であり、前記抽出手段は、前記パターン画像と略同じ大きさの区画を前記垂直軸方向にAx個、前記水平軸方向にAy個配置してなる枠を、前記第3の部分画像上で移動し、n個の単位画像を含む区画が所定数以上となる移動位置を求め、当該移動位置における当該枠内の画像を前記第2の部分画像として抽出し、前記取得手段は、前記移動位置までの前記枠の前記垂直軸方向及び前記水平軸方向の移動量を、前記変位を特定する情報として取得することを特徴とする請求項6記載の位置検出装置である。
請求項8に記載の発明は、コンピュータに、媒体に印刷された画像から読み取られた当該画像の第1の部分画像から、当該媒体上での自身の位置を表す第2の部分画像を抽出する機能と、抽出された前記第2の部分画像を用いて、前記媒体上での当該第2の部分画像の位置を検出する機能と、指示手段により指示された前記媒体上の位置の前記第1の部分画像に対する相対位置を示す第1の情報と、前記第1の部分画像の前記第2の部分画像に対する相対位置を示す第2の情報とを取得する機能と、検出された前記第2の部分画像の位置を、前記第1の情報と前記第2の情報とを用いて補正する機能とを実現させるためのプログラムである。
請求項9に記載の発明は、前記抽出する機能では、前記第1の部分画像から第3の部分画像を抽出した後、当該第3の部分画像から前記第2の部分画像を抽出し、前記取得する機能では、前記第2の情報を、前記第1の部分画像の前記第3の部分画像に対する相対位置を示す第3の情報と、前記第3の部分画像の前記第2の部分画像に対する相対位置を示す第4の情報とに分けて取得することを特徴とする請求項8記載のプログラムである。
【発明の効果】
【0010】
請求項1の発明は、媒体上の指示された位置と、媒体から読み取られた部分画像と、媒体上の位置の検出に用いられる部分画像との間にズレがあっても、本構成を有していない場合に比較して、媒体上の指示された位置を精度よく求めることができるという効果を有する。
請求項2の発明は、本構成を有していない場合に比較して、媒体から読み取られた部分画像から媒体上の指示された位置を求める計算が容易になるという効果を有する。
請求項3の発明は、媒体から読み取られた部分画像の一部を抽出し、そこから媒体上の位置の検出に用いられる部分画像を抽出する必要があっても、本構成を有していない場合に比較して、媒体上の指示された位置を精度よく求めることができるという効果を有する。
請求項4の発明は、本構成を有していない場合に比較して、媒体から読み取られた部分画像をそこから抽出した一部の画像から求める計算が容易になるという効果を有する。
請求項5の発明は、媒体から読み取られた部分画像とそこから抽出した一部の画像とに角度の違いがあったとしても、媒体から読み取られた部分画像をそこから抽出した一部の画像から求めることができるという効果を有する。
請求項6の発明は、媒体から読み取られた部分画像の一部の画像を媒体上の位置の検出に用いられる部分画像から求める計算が容易になるという効果を有する。
請求項7の発明は、mCn方式を用いた場合の復号処理における結果を用いて、媒体から読み取られた部分画像の一部の画像を媒体上の位置の検出に用いられる部分画像を求めることができるという効果を有する。
請求項8の発明は、媒体上の指示された位置と、媒体から読み取られた部分画像と、媒体上の位置の検出に用いられる部分画像との間にズレがあっても、本構成を有していない場合に比較して、媒体上の指示された位置を精度よく求めることができるという効果を有する。
請求項9の発明は、媒体から読み取られた部分画像の一部を抽出し、そこから媒体上の位置の検出に用いられる部分画像を抽出する必要があっても、本構成を有していない場合に比較して、媒体上の指示された位置を精度よく求めることができるという効果を有する。
【発明を実施するための最良の形態】
【0011】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
まず、読み込む符号画像を構成する符号パターンについて説明する。
本実施の形態では、m(m≧3)箇所から選択したn(1≦n<m)箇所に単位画像を配置してなるパターン画像(以下、「単位符号パターン」という)によってmCn(=m!/{(m−n)!×n!})通りの情報を表現する。つまり、1つの単位画像を情報に対応させるのではなく、複数の単位画像を情報に対応させている。仮に1つの単位画像を情報に対応させたとすると、単位画像が欠損したり、ノイズが加わったりした場合に、誤った情報を表現してしまうという欠点がある。これに対して、例えば2つの単位画像を情報に対応させたとすると、単位画像が1つであったり3つであったりした場合に、容易に誤りであることが分かる。更に、1つの単位画像で1ビット、又は、高々2ビットを表現する方法では、情報を表現するパターンと視覚的に似たパターンで、情報パターンの読出しを制御する同期パターンを表現することができない。このようなことから、本実施の形態では、上記のような符号化方式を採用している。以下では、このような符号化方式をmCn方式と称する。
ここで、単位画像としては、如何なる形状のものを用いてもよい。本実施の形態では、単位画像の一例としてドット画像(以下、単に「ドット」という)を用いるが、例えば、斜線パターン等、他の形状の画像であってもよい。
【0012】
図1に、mCn方式における単位符号パターンの例を示す。
図では、黒色の領域と斜線の領域をドット配置可能な領域とし、その間にある白色の領域をドット配置不可能な領域としている。そして、ドット配置可能な領域のうち、黒色の領域にドットが配置され、斜線の領域にはドットが配置されていないことを示している。即ち、図1は、縦3ドット、横3ドットの合計9ドットを配置可能な領域を設けた例を示しており、(a)は、ドット配置可能な領域に2ドットを配置する9C2方式における単位符号パターンであり、(b)は、ドット配置可能な領域に3ドットを配置する9C3方式における単位符号パターンである。
【0013】
ところで、図1で配置されるドット(黒色の領域)は、あくまで情報表現のためのドットであり、画像を構成する最小単位であるドット(図1の最小の四角)とは必ずしも一致しない。本実施の形態において、「ドット」というときは前者のドットを指し、後者のドットは「ピクセル」と呼ぶことにすれば、ドットは、600dpiにおける2ピクセル×2ピクセルの大きさを有することになる。600dpiにおける1ピクセルの大きさは0.0423mmなので、ドットの一辺は、84.6μm(=0.0423mm×2)である。ドットは、大きくなればなるほど目に付きやすくなるため、できるだけ小さいほうが好ましい。ところが、あまり小さくすると、プリンタで印刷できなくなってしまう。そこで、ドットの大きさとして、50μmより大きく100μmより小さい上記の値を採用している。但し、上記の値84.6μmは、あくまで計算上の数値であり、実際に印刷されたトナー像では100μm程度になる。
【0014】
また、図2に、単位符号パターンの他の例を示す。尚、この図では、ドット間の空白を省略している。
図2(a)は、図1(a)に示した9C2方式における全ての単位符号パターンを示している。9C2方式では、これらの単位符号パターンを用いて、36(=9C2)通りの情報を表現する。また、図2(b)は、図1(b)に示した9C3方式における全ての単位符号パターンを示している。9C3方式では、これらの単位符号パターンを用いて、84(=9C3)通りの情報を表現する。
【0015】
尚、単位符号パターンは、m=9の場合に限定されるものではなく、mの値として、例えば、4、16等の値を採用してもよい。また、nの値も1≦n<mを満たしていれば如何なる値を採用してもよい。
また、mの値としては、平方数(整数の2乗)だけでなく、異なる2つの整数の積を採用してもよい。つまり、ドットを配置可能な領域は、3ドット×3ドットを配置する場合のような正方形の領域に限らず、3ドット×4ドットを配置する場合のような長方形の領域であってもよい。尚、本明細書において、長方形とは、隣り合う2辺の長さが等しくない矩形のことをいうものとする。
【0016】
ところで、mCn方式における全ての単位符号パターンには、各単位符号パターンを識別するための番号であるパターン値が付されている。
図3に、9C2方式における単位符号パターンとパターン値との対応を示す。9C2方式における単位符号パターンは36個であるので、パターン値としては0〜35が用いられる。但し、図3に示した対応はあくまで一例であり、どの単位符号パターンにどのパターン値を割り当ててもよい。尚、9C3方式については、図示しないが、各単位符号パターンに0〜83のパターン値が付されることになる。
【0017】
このように、m箇所からn箇所を選択することでmCn種類の単位符号パターンを用意しているが、本実施の形態では、これらの単位符号パターンのうち、特定のパターンを情報パターンとして利用し、残りを同期パターンとして利用する。ここで、情報パターンとは、媒体に埋め込む情報を表現するパターンである。また、同期パターンとは、媒体に印刷された情報パターンを取り出すために用いられるパターンである。例えば、情報パターンの位置を特定したり、画像の回転を検出したりするために用いられる。尚、媒体としては、画像を印刷することが可能であれば、如何なるものを用いてもよい。紙が代表例なので、以下では媒体を紙として説明するが、金属、プラスチック、繊維等であってもよい。
【0018】
ここで、同期パターンについて説明する。
図4は、9C2方式における同期パターンの例である。このようにmCn方式におけるmが平方数である場合は、画像の回転の検出のために4種類の単位符号パターンを同期パターンとして用意する必要がある。ここでは、パターン値32の単位符号パターンを正立した同期パターンとしている。また、パターン値33の単位符号パターンを右に90度回転した同期パターン、パターン値34の単位符号パターンを右に180度回転した同期パターン、パターン値35の単位符号パターンを右に270度回転した同期パターンとしている。この場合、36種類の単位符号パターンからこの4種類の同期パターンを除いた残りを情報パターンとし、5ビットの情報を表現するとよい。但し、36種類の単位符号パターンの情報パターンと同期パターンへの振り分け方は、これには限らない。例えば、4種類で1組を構成する同期パターンの組を5つ用意し、残りの16種類の情報パターンで4ビットの情報を表現してもよい。
【0019】
尚、図示しないが、mCnにおけるmが異なる2つの整数の積である場合は、画像の回転の検出のために2種類の単位符号パターンを同期パターンとして用意すればよい。例えば、縦3ドット×横4ドットを配置可能な領域が検出されるべきなのに、縦4ドット×横3ドットを配置可能な領域が検出された場合は、その時点で画像が90度又は270度回転していることが分かるからである。
【0020】
次に、このような符号パターンを配置して識別情報と座標情報を表現する方法を述べる。
まず、上述した単位符号パターンから構成される符号ブロックについて説明する。
図5は、符号ブロックの一例を示したものである。図では、9C2方式における単位符号パターンを使用していることも同時に示している。即ち、36種類の単位符号パターンを、例えば、同期パターンとして使用する4パターンと、情報パターンとして使用する32パターンとに分け、各パターンをレイアウトに従って配置する。
図では、レイアウトとして、3ドット×3ドットを配置可能な領域(以下、「ブロック」という)を5個×5個の25個並べたものを採用している。そして、この25個のブロックのうち、左上の1ブロックに同期パターンを配置している。また、同期パターンの右の4ブロックに紙面上のX方向の座標を特定するX座標情報を表す情報パターンを配置し、同期パターンの下の4ブロックに紙面上のY方向の座標を特定するY座標情報を表す情報パターンを配置している。更に、これらの座標情報を表す情報パターンで囲まれた16ブロックに、紙面又は紙面に印刷される文書の識別情報を表す情報パターンを配置している。
尚、9C2方式における単位符号パターンはあくまで例であり、図の左下に示すように、9C3方式における単位符号パターンを使用してもよい。
【0021】
次いで、本実施の形態における識別情報と座標情報を表現するためのレイアウトについて説明する。
図6に、このようなレイアウトの一部を示す。
このレイアウトでは、図5に示した符号ブロックを基本単位とし、この符号ブロックを紙面全体に周期的に配置する。図では、同期パターンを「S」で表している。また、座標情報は、紙面の縦及び横に渡ってM系列で表現する。図では、X座標を表すパターンを「X1」、「X2」、…で表し、Y座標を表すパターンを「Y1」、「Y2」、…で表している。更に、識別情報の符号化には、幾つかの方法の利用が考えられるが、本実施の形態では、RS符号化が適している。RS符号は多値の符号法であり、この場合、ブロックの表現をRS符号の多値に対応させるとよいからである。図では、識別情報を表すパターンを「IXY」(X=1〜4,Y=1〜4)で表している。
【0022】
ここで、座標情報を表現するのに用いるM系列について説明する。
M系列とは、その部分列が、他の部分列と一致することがない系列である。例えば、11次のM系列は、2047ビットのビット列である。そして、この2047ビットのビット列の中から取り出された11ビット以上の部分列と同じ並びは、この2047ビットのビット列の中に自身以外には存在しない。本実施の形態では、16個の単位符号パターンを4ビットに対応付ける。即ち、2047ビットのビット列を4ビットごとに10進数で表し、図3の対応に従って単位符号パターンを決定し、座標符号として紙面の横と縦に渡って表現する。従って、復号の際は、3つの連続する単位符号パターンを特定することにより、ビット列上の位置が特定されることになる。
【0023】
図7に、M系列を用いた座標情報の符号化の例を示す。
(a)は、11次のM系列の例として、「0111000101011010000110010…」というビット列を示している。本実施の形態では、これを4ビットずつに区切り、1つ目の部分列「0111」をパターン値7の単位符号パターンとして、2つ目の部分列「0001」をパターン値1の単位符号パターンとして、3つ目の部分列「0101」をパターン値5の単位符号パターンとして、4つ目の部分列「1010」をパターン値10の単位符号パターンとして、それぞれ紙面上に配置する。
【0024】
また、このように4ビットずつ区切って単位符号パターンに割り当てると、(b)に示すように、4周期で全てのパターン列を表現できる。即ち、11次のM系列は、2047ビットなので、この系列を4ビットごとに切り出し、単位符号パターンで表現していくと、最後に3ビットあまることになる。この3ビットに、M系列の最初の1ビットを加えて4ビットとし単位符号パターンで表す。更に、M系列の2ビット目から4ビットごとに切り出し単位符号パターンで表す。すると、次の周期は、M系列の3ビット目から始まり、その次の周期は、M系列の4ビット目から始まる。更に、5周期目は、5ビット目からとなるが、これは最初の周期と一致する。従って、M系列の4周期を4ビットごとに切り出していくと、2047個の単位符号パターンで全てを尽くすことができる。M系列は11次であるので、3つの連続する単位符号パターンは、他のどの位置の連続する符号パターンとも一致することはない。そこで、読出し時には3つの単位符号パターンを読み出せば、復号が可能である。但し、本実施の形態では、誤りの発生を考慮し、4つの単位符号パターンで座標情報を表現している。
尚、4周期のM系列は、2047個のブロックに分割して格納される。1つのブロックの一辺の長さは、先に述べた印刷条件、即ち、ドットが600dpiにおける2ピクセル×2ピクセルの大きさである場合、0.508mmである。図6のレイアウトを採用する場合、連続する2047個のブロックの4ブロックごとに、同期ブロックが挿入される。そこで、5/4倍して、全体で約2558ブロックなので、長さは1299.5mmである。つまり、1299.5mmの長さが符号化されることになる
【0025】
次いで、このような画像を生成する画像生成装置10について説明する。
図8は、画像生成装置10の構成例を示したブロック図である。
図示するように、画像生成装置10は、情報取得部11と、識別符号生成部12と、X座標符号生成部13と、Y座標符号生成部14と、符号配列生成部15と、パターン画像記憶部16と、符号画像生成部17とを備える。
【0026】
情報取得部11は、紙面又は紙面に印刷される文書の識別情報、及び、紙面上での座標情報を取得する。そして、前者を識別符号生成部12に出力し、後者のうち、X座標情報をX座標符号生成部13に、Y座標情報をY座標符号生成部14に出力する。
【0027】
識別符号生成部12は、情報取得部11から取得した識別情報を符号化し、符号化された識別情報である識別符号を符号配列生成部15に出力する。この識別情報の符号化は、ブロック分割、RS符号化の処理を含む。
このうち、ブロック分割は、識別情報を構成するビット列を、RS符号化を行うために複数のブロックに分割する処理である。例えば、9C2方式で5ビットの情報を表現可能な情報パターンを用いる場合、60ビットの識別情報は、ブロック長が5ビットの12個のブロックに分割される。
また、RS符号化は、分割されたブロックに対してRS符号化を行い、誤り訂正のための冗長ブロックを付加する処理である。先の例において2ブロックの誤りを訂正可能なRS符号を採用したとすると、符号長は16ブロックとなる。
【0028】
X座標符号生成部13は、X座標情報を符号化する。Y座標符号生成部14は、Y座標情報を符号化する。そして、これらは、符号化された座標情報である座標符号を符号配列生成部15に出力する。この座標情報の符号化は、M系列符号化、ブロック分割の処理を含む。
このうち、M系列符号化は、M系列を使用して座標情報を符号化する処理である。例えば、符号化したい座標情報の長さから必要なM系列の次数を求め、M系列を動的に生成することで座標符号を生成する。但し、予め符号化したい座標情報の長さが分かっている場合には、M系列を画像生成装置10のメモリ等に格納しておき、画像生成時にそれを読み出す構成としてもよい。
また、ブロック分割は、M系列を複数のブロックに分割する処理である。例えば、情報パターンとして16種類の単位符号パターンを選択したとすると、符号ブロックにおける各ブロックには4ビットの情報が格納される。従って、図5のようなレイアウトを有する符号ブロックに対して、X座標情報は、16ビット分格納される。そして、図7を参照して述べたような方法で、座標情報が単位符号パターンによって表される。
【0029】
符号配列生成部15は、識別符号生成部12にて生成された識別符号と、X座標符号生成部13及びY座標符号生成部14にて生成された座標符号と、識別符号及び座標符号の読出しを制御する同期符号とを2次元平面に配置して2次元の符号配列を生成する。ここで、同期符号とは、同期パターンに対応する符号である。
パターン画像記憶部16は、例えば図2に示したmCn方式における単位符号パターンを記憶する。ここで、単位符号パターンには、上述したようにパターン値が付されており、各単位符号パターンはパターン値をキーとして読み出し可能になっている。尚、本実施の形態において、このパターン画像記憶部16は、予め定められたm及びnに対応するmCn方式における単位符号パターンを少なくとも記憶していればよい。
符号画像生成部17は、符号配列生成部15が生成した2次元の符号配列を参照し、各符号値に対応した単位符号パターンを選択して符号画像を生成する。
【0030】
そして、この符号画像は、図示しない画像形成部に渡され、画像形成部が紙面に符号画像を形成する。このとき、画像形成部は、電子文書の文書画像と符号画像とを重畳した重畳画像を紙面に形成するようにしてもよい。また、このように重畳画像を形成する場合には、紙面に対するペンデバイスによる筆記データが電子文書上の適切な位置に反映されるよう電子文書上の位置と紙面上の位置との対応関係を管理することが望ましい。
【0031】
また、画像形成部は、符号画像を、例えば電子写真方式を用いて、Kトナー(カーボンを含む赤外光吸収トナー)、又は、特殊トナーにより形成する。
ここで、特殊トナーとしては、可視光領域(400nm〜700nm)における最大吸収率が7%以下であり、近赤外領域(800nm〜1000nm)における吸収率が30%以上の不可視トナーが例示される。ここで、「可視」及び「不可視」は、目視により認識できるかどうかとは関係しない。印刷された媒体に形成された画像が可視光領域における特定の波長の吸収に起因する発色性の有無により認識できるかどうかで「可視」と「不可視」とを区別している。また、可視光領域における特定の波長の吸収に起因する発色性が若干あるが、人間の目で認識し難いものも「不可視」に含める。
【0032】
尚、これらの機能は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、画像生成装置10のCPU91(図26参照)が、情報取得部11、識別符号生成部12、X座標符号生成部13、Y座標符号生成部14、符号配列生成部15、符号画像生成部17を実現するプログラムを、例えば、磁気ディスク装置93(図26参照)からメインメモリ92(図26参照)に読み込んで実行することにより、実現される。また、パターン画像記憶部16は、例えば、磁気ディスク装置93(図26参照)を用いて実現するとよい。更に、磁気ディスク装置93(図26参照)に記憶されるプログラムやデータは、CD等の記録媒体からロードしてもよいし、インターネット等の通信手段を介してダウンロードしてもよい。
【0033】
以上説明した単位符号パターンを印刷した画像上の所定位置をペンデバイスで指示すると、ペンデバイスに設けられた撮像素子が、画像の一部を読み取る。そして、この画像からドットパターンが読み取られ、復号処理が行われる。ところが、この場合において、復号された座標情報は、撮像素子が読み取った画像の位置を表しており、厳密には、ペンデバイスで指示した位置を表していない。
以下、このズレの発生について具体的に説明する。
図9は、この説明のためのペンデバイスの概略図である。
図示するように、ペンの中心を通るペン中心線が紙面と交差する点(ペン先中心)と、撮像素子の中心を通る撮像素子中心線が紙面と交差する点(撮像領域中心)との間には、ペンデバイスに固有のズレIPがある。
【0034】
また、復号された座標情報とペンデバイスで指示した位置とのズレには、この固定のズレだけでなく、画像処理の結果に応じて動的に決定されるズレも含まれるので、このことを紙面上の座標を用いて説明する。
図10は、ペンデバイスの撮像素子が撮像する領域(以下、「撮像領域」という)及びその領域の中心点(以下、「撮像領域中心」という)と、その中でペンデバイスが復号のために読み込む領域(以下、「読み込み領域」という)とその領域の中心点(以下、「読み込み領域中心」という)と、ペンデバイスのペン先が指示する点(以下、「ペン先中心」という)との関係を示した図である。
【0035】
ここでは、(a)に示すように、撮像領域中心に対するペン先中心の相対座標を(IPX,IPY)とする。この座標は、ペンデバイスの傾きによって変化するが、標準的な傾きを定め、ペンデバイスがこの標準的な傾きで置かれたときの値を設定すればよい。尚、本明細書では、撮像領域の横枠に平行にX軸をとり、右方向をXの正方向とし、撮像領域の縦枠に平行にY軸をとり、下方向をYの正方向として、撮像画像上の座標を表すものとする。
また、紙の回転によって、撮像領域の垂直水平方向が、ドット列の方向と一致しているとは限らない。そこで、ドット列の方向から撮像領域の垂直方向への角度をIRDとする。ドット列の方向は、2つあるが、撮像素子の垂直方向と最も近い方向とする。このとき、IRDは、−90°から90°までの角度をとる。尚、本明細書では、角度は右回りを正方向とする。
【0036】
さて、ペンデバイスは、撮像領域から、復号のために必要な17ドット×17ドットの領域を読み込む。これが読み込み領域であるが、復号するのに適切な読み込み領域は必ずしも撮像領域の中心付近に存在するとは限らない。照明等の影響により、適切な読み込み領域が中心部からずれた位置にある場合もある。
(b)に、(a)のうち撮像領域中心と読み込み領域中心を含む部分の拡大図を示す。ここでは、読み込み領域中心に対する撮像領域中心の相対座標を(IRX,IRY)とする。
【0037】
次に、紙面に形成された符号画像を読み取って処理する画像処理装置20について説明する。
図11は、画像処理装置20の構成例を示したブロック図である。
図示するように、画像処理装置20は、画像読取部21と、ドット配列生成部22と、ブロック検出部23と、同期符号検出部24と、回転判定部25と、符号配列回転部26とを備える。また、識別符号検出部30と、識別符号復元部31と、識別符号復号部32と、識別符号誤り検出部33と、識別符号誤り訂正部34とを備える。更に、X座標符号検出部40と、X座標符号復号部42と、X座標符号誤り検出部43と、X座標符号誤り訂正部44と、Y座標符号検出部45と、Y座標符号復号部47と、Y座標符号誤り検出部48と、Y座標符号誤り訂正部49と、座標補正部50と、情報出力部55とを備える。
【0038】
画像読取部21は、CCD(Charge Coupled Devices)やCMOS(Complementary Metal Oxide Semiconductor)等の撮像素子を用いて、紙面に印刷された符号画像を読み取る。本実施の形態では、第1の部分画像を読み取る読取手段の一例として、画像読取部21を備えている。
【0039】
ドット配列生成部22は、読み取った符号画像からドットを検出し、ドットの位置を参照して、ドット配列を生成する。ここで、ドットの検出は、次のように行う。即ち、まず、読み取った符号画像の中から、ドットを検出し易い領域を特定する。そして、その領域内で、2値化処理によりドット画像の部分と、その他の背景画像の部分とを切り分け、2値化された個々の画像位置からドットの位置を検出する。また、ドット配列の生成は、2次元の配列上で、例えば、ドットがある位置を「1」、ドットがない位置を「0」というように、画像として検出したドットをデジタルデータに置き換えることにより行う。本実施の形態では、抽出手段の第3の部分画像を抽出する機能の一例として、ドット配列生成部22を備えている。
【0040】
ブロック検出部23は、ドット配列上で、符号ブロック内の単位符号パターンに対応するブロックを検出する。即ち、単位符号パターンと同じ大きさをもつ矩形のブロック区切りをドット配列上で適宜動かし、ブロック内のドット数が均等になる位置を正しいブロック区切り位置とし、各ブロック内のパターン値を格納した符号配列を生成する。本実施の形態では、抽出手段の第2の部分画像を抽出する機能の一例として、ブロック検出部23を備えている。
【0041】
同期符号検出部24は、ドット配列から検出された各単位符号パターンの種類を参照して、同期符号を検出する。
回転判定部25は、検出した同期符号に基づいて、画像の回転を判定する。例えば、正方形の単位符号パターンを用いた場合、90度単位で回転している可能性がある。そこで、検出した同期符号が4種類の同期パターンのいずれに対応しているかによって、その向きを検出する。また、長方形の単位符号パターンを用いた場合、180度単位で回転している可能性がある。そこで、検出された同期符号が2種類の同期パターンのいずれに対応しているかによって、その向きを検出する。
符号配列回転部26は、回転判定部25で検出された回転角度だけ符号配列を回転させて、符号配列を正しい向きに設定する。
【0042】
識別符号検出部30は、角度が補正された符号配列から、同期符号の位置を基準にして識別符号を検出する。本実施の形態では、ビット列を検出する検出手段、ビット列を決定する決定手段の一例として、識別符号検出部30を設けている。
識別符号復元部31は、検出された識別符号を正しい符号順に並べ替える。
識別符号復号部32は、図8を参照して説明したRS符号の符号化処理で用いたパラメータ(ブロック数等)と同じパラメータを用いて識別符号を復号し、識別情報を出力する。
識別符号誤り検出部33は、復号された識別符号の誤りを検出し、識別符号誤り訂正部34は、検出した誤りが訂正可能な誤りである場合に、その誤りを訂正する。
【0043】
X座標符号検出部40は、角度が補正された符号配列から、同期符号の位置を基準にしてX座標符号を検出する。
X座標符号復号部42は、検出されたX座標符号からM系列の部分系列を取り出し、画像生成に使用したM系列におけるこの部分系列の位置を参照し、この位置を同期符号によるオフセットで補正した値をX座標情報として出力する。
X座標符号誤り検出部43は、復号されたX座標符号の誤りを検出し、X座標符号誤り訂正部44は、検出した誤りが訂正可能な誤りである場合に、その誤りを訂正する。
【0044】
Y座標符号検出部45は、角度が補正された符号配列から、同期符号の位置を基準にしてY座標符号を検出する。
Y座標符号復号部47は、検出されたY座標符号からM系列の部分系列を取り出し、画像生成に使用したM系列におけるこの部分系列の位置を参照し、この位置を同期符号によるオフセットで補正した値をY座標情報として出力する。
Y座標符号誤り検出部48は、復号されたY座標符号の誤りを検出し、Y座標符号誤り訂正部49は、検出した誤りが訂正可能な誤りである場合に、その誤りを訂正する。
【0045】
尚、本実施の形態では、第2の部分画像の位置を検出する検出手段の一例として、X座標符号検出部40、X座標符号復号部42、X座標符号誤り検出部43、X座標符号誤り訂正部44、Y座標符号検出部45、Y座標符号復号部47、Y座標符号誤り検出部48、Y座標符号誤り訂正部49を備えている。
【0046】
座標補正部50は、X座標符号復号部42から出力されたX座標情報とY座標符号復号部47から出力されたY座標情報とからなる座標情報を補正して、ペン先中心の座標情報を取得する。ここで、補正は、予め与えられたペン先中心の撮像領域中心に対する相対座標や、画像読取部21から与えられた撮像領域中心の読み込み領域中心に対する相対座標等を用いて行う。本実施の形態では、第2の部分画像の位置を補正するために用いる情報を取得する取得手段の一例として、また、第2の部分画像の位置を補正する補正手段の一例として、座標補正部50を設けている。
情報出力部55は、識別符号復号部32、座標補正部50からそれぞれ取得した識別情報、ペン先中心のX座標情報及びY座標情報を出力する。
【0047】
尚、これらの機能は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、画像処理装置20のCPU91(図26参照)が、ドット配列生成部22、ブロック検出部23、同期符号検出部24、回転判定部25、符号配列回転部26、識別符号検出部30、識別符号復元部31、識別符号復号部32、識別符号誤り検出部33、識別符号誤り訂正部34、X座標符号検出部40、X座標符号復号部42、X座標符号誤り検出部43、X座標符号誤り訂正部44、Y座標符号検出部45、Y座標符号復号部47、Y座標符号誤り検出部48、Y座標符号誤り訂正部49、座標補正部50、情報出力部55を実現するプログラムを、例えば、磁気ディスク装置93(図26参照)からメインメモリ92(図26参照)に読み込んで実行することにより、実現される。また、磁気ディスク装置93(図26参照)に記憶されるプログラムやデータは、CD等の記録媒体からロードしてもよいし、インターネット等の通信手段を介してダウンロードしてもよい。
【0048】
次いで、この画像処理装置20の動作の概略を説明する。
最初に、画像読取部21は、紙面に印刷された符号画像を撮像素子で読み取る。
そして、ドット配列生成部22が、読み取った符号画像からドットの検出に適した領域を切り出す。この領域の切り出しは、公知の画像処理によって行えばよいが、例えば、次のような方法が考えられる。即ち、まず、撮像領域を複数の小領域に分割する。この場合、各小領域は1つのドットより大きなものとなるようにする。次に、小領域ごとに、その中のドットの部分とドット以外の部分とのコントラストを評価する。そして、最も高コントラストであった小領域を中心として、次に高コントラストであった周囲の小領域を連結していく。これを繰り返し、17ドット×17ドット分の大きさをカバーできる程度の大きさになるまで領域を広げていき、最終的に得られた領域を撮像領域から切り出す。
【0049】
このようにしてドットの検出に適した領域を切り出すと、ドット配列生成部22は、その領域の中から17ドット×17ドット分の大きさの読み込み領域を検出する。また、このドット画像におけるドット列の傾きも求める。
この場合、読み込み領域は、切り出した領域の中心部から選択すればよいが、その際もドットの部分とドット以外の部分とのコントラストの評価情報を用いるようにするとよい。
また、ドット列の傾きを求める方法にも種々のものがあるが、例えば、次のような方法を用いるとよい。即ち、まず、切り出した領域内のドットから、2つのドットからなる複数のドット対を検出する。この場合、ドット対としては、2つのドット間の距離が予め定められた距離に等しいものを選択する。本実施の形態では、図1のようなmCn方式の単位符号パターンで情報を表現するので、ここでの予め定められた距離としては、図1の左右又は上下の隣接する位置に2つのドットが配置された場合の距離を採用する。その後、この複数のドット対を、その傾きが直交する2つのグループに分け、それぞれの傾きを求めることでドット列の傾きを求める。
【0050】
ドット配列生成部22では、例えば、以上のような画像処理を行うことにより、撮像領域から読み込み領域を特定するが、その際、撮像領域中心の読み込み領域中心に対する相対位置(IRX,IRY)が分かるので、これを図示しないメモリに記憶しておく。また、上記で求めたドット列の傾きについても、IRDとして図示しないメモリに記憶しておく。但し、IRDは、ドット列の傾きから撮像領域の垂直方向への角度である。ドット列の方向は撮像素子の垂直方向と最も近いほうをとる。従って、IRDは、−90°から90°までの角度をとる。
【0051】
次に、ドット配列生成部22におけるドット配列の生成について説明する。
図12は、ドット配列生成部22によるドット画像からドット配列への変換を示した図である。図示するように、ドット配列生成部22は、読み込み領域内の画像を17×17のドットの配列へと変換する。この配列の各要素には、対応する位置にドットがあれば「1」が、対応する位置にドットがなければ「0」が格納される。
【0052】
また、ブロック検出部23は、読み込み領域に対応するドット配列上で、情報表現の最小単位であるブロックを検出する。
図13は、ブロック区切りを移動させてブロックを検出する際の処理を具体的に示した図である。ここでは、9C2方式で符号化が行われたことが分かっており、9C2方式で復号する場合について示している。
まず、ブロック検出部23は、ドット配列生成部22からドット配列を取得する。ここで取得するドット配列のサイズは予め設定されており、(復号に必要なブロック数×ブロックの一辺のドット数+ブロックの一辺のドット数−1)2である。ところが、このドット配列は、画像の任意に選択された領域に対応しているので、ブロック区切りの位置は分からない。そこで、初めに、ドット配列の端を基準にブロック分割を行う。この例では、m=9なので、3ドット×3ドットの大きさのブロックからなるブロック区切りを重ねる。次に、各ブロック内のドットを数える。この例では、n=2なので、各ブロック内に2ドットずつ存在する場合のブロック区切りの位置が正しい区切り位置であるが、この位置ではドット数がばらついており、正しくないことが分かる。そこで、ブロック区切りをずらしてブロック内のドット数を数える。即ち、右方向への開始位置、1ドット分移動した位置、2ドット分移動した位置について同様の動作を行う。また、これらの位置のそれぞれに対し、下方向への開始位置、1ドット移動した位置、2ドット移動した位置についても同様の動作を行う。その結果、右方向に1ドット移動し、下方向に2ドット移動した位置において、全てのブロック内のドット数が「2」となる。従って、この位置を正しい区切り位置とする。
【0053】
図14に、ブロック検出部23により決定された正しい区切り位置について示す。
ここでは、太線で示した位置にブロック区切りを重ねた場合に、全てのブロックに2つの「1」が含まれるので、この位置が正しいブロック区切りの位置となる。また、ブロックの検出はどの位置から開始してもよいが、ここでも、ドット配列の開始位置(左上)を起点としており、この起点から正しいブロック区切りの位置までのX方向の移動量をMX、Y方向の移動量をMYとしている。図では、MX=0、MY=1である。以下、この正しい区切り位置にブロック区切りを重ねることで得られる5ブロック×5ブロックの領域を「復号領域」と称する。
【0054】
また、ブロック検出部23は、各ブロックにおけるドット位置(「0」及び「1」の配置)からパターン値を求める。このとき、図3に示したドット位置とパターン値との対応を参照する。
図15は、各ブロックにパターン値を割り当てた場合の例を示した図である。
例えば、左上のブロックでは、ブロック内の左上と右下にドットがあることが示されているので、図3の対応からパターン値0となる。また、その右のブロックでは、ブロック内の左上と右中央にドットがあることが示されているので、図3の対応からパターン値12となる。
【0055】
次に、同期符号検出部24は、この中から、同期符号のパターン値を探す。本実施の形態では、パターン値32〜35の単位符号パターンを同期パターンとしているので、この番号を探す。図15の例では、パターン値35が同期符号となる。
図4を参照すると、パターン値35の同期符号は、正立した同期符号であるパターン値32の同期符号を右に270度回転した同期符号である。従って、符号配列を正立した方向にするには、符号配列を左に270度回転する必要がある。その場合、符号配列内の各要素のパターン値は、左に270度回転した場合のパターン値に変更する必要がある。
【0056】
図16は、正立位置の単位符号パターンのパターン値と、正立位置の単位符号パターンを右に90度回転した単位符号パターンのパターン値と、正立位置の単位符号パターンを右に180度回転した単位符号パターンのパターン値と、正立位置の単位符号パターンを右に270度回転した単位符号パターンのパターン値との対応表である。このような対応表を図示しないメモリに記憶し、同期符号検出部24は、この対応表を参照してパターン値を付け替えるようにすればよい。
【0057】
図17(a)は、このときのパターン値の変更を具体的に示したものである。例えば、左上のパターン値0のブロックは、左に270度回転することで、右上のパターン値1のブロックとなる。また、その右のパターン値12のブロックは、左に270度回転することで、最右列の上から2番目のパターン値13のブロックとなる。
また、符号配列を回転させた場合、復号領域から読み込み領域への変換や、撮像画像上の座標から符号画像上の座標への変換に用いる値も変更となる。前者は、復号領域の左上点に対する読み込み領域の左上点の相対座標(RDX,RDY)であり、後者は、読み込み領域に対する撮像領域の角度RDDである。
そこで、同期符号検出部24は、図17(b)に示すように、各同期パターンに対し、回転角度に加え、これらの情報を求め、対応付けて図示しないメモリに記憶しておく。
【0058】
その後、X座標符号検出部40、X座標符号復号部42、X座標符号誤り検出部43、X座標符号誤り訂正部44は、同期符号が配置された行の同期符号が配置されたブロック以外の4ブロックから各ブロックのX方向の位置を求める。また、Y座標符号検出部45、Y座標符号復号部47、Y座標符号誤り検出部48、Y座標符号誤り訂正部49は、同期符号が配置された列の同期符号が配置されたブロック以外の4ブロックから各ブロックのY方向の位置を求める。
図18において、右図は、同期符号が、左から2つ目、上から2つ目のブロックに配置されている例である。同期符号が配置された行における同期符号を挟むブロックを「X1」、「X2」、「X3」、「X4」とする。これらのブロックに配置された単位符号パターンのパターン値の組み合わせを、図7に示したパターン列と照合することで、「X1」がパターン列の何番目のブロックかが分かる。そして、同期パターンが配置されたブロック数を加算する補正を行うことで、「X1」のX方向のブロック位置BXを求める。また、Y方向についても同様にして「Y1」のY方向のブロック位置BYを求める。
【0059】
このようにX方向、Y方向のブロック位置が求まると、座標補正部50は、復号領域内の座標情報をペン先中心の座標情報へ変換する一連の処理を開始する。
図18において、左図には、復号領域の開始点のピクセル位置(DSX,DSY)を灰色で示している。つまり、「X1」の左端のピクセル位置はDSXであり、「Y1」の上端のピクセル位置はDSYである。1ブロックは12ピクセルなので、(DSX,DSY)は、DSX=(BX−1)×12+1
DSY=(BY−1)×12+1
により求められる。
【0060】
以上の処理により、復号領域の左上のピクセル位置は求められるが、先に述べたように、復号領域と読み込み領域とは同じ位置ではないので、読み込み領域の位置を求めるためには、補正が必要である。この補正では、図17(b)に示した(RDX,RDY)を用いる。この値から、読み込み領域の左上の座標(RSX,RSY)は、
RSX=DSX+RDX
RSY=DSY+RDY
により求められる。
【0061】
また、読み込み領域の幅と高さは予め決められた設計値である。そこで、これらをそれぞれDAW,DAHとすると、読み込み領域中心(CRX,CRY)は、
CRX=RSX+DAW/2
CRY=RSY+DAH/2
により求められる。尚、ここまでの各座標は、符号画像上での座標である。
【0062】
更に、撮像領域中心を求める必要がある。読み込み領域中心に対する撮像領域中心の相対座標(IRX,IRY)は、ドット配列生成部22によって既に与えられている。また、ペンデバイスの仕様から、撮像領域中心に対するペン先中心の相対座標(IPX,IPY)も定まっている。これにより、読み込み領域中心に対するペン先中心の相対座標は、(IRX+IPX,IRY+IPY)となる。しかし、この座標は、撮像画像上の座標であるので、符号画像上の座標に変換する必要がある。これら2つの座標は、読み込み領域中心を軸として、右方向に一定角度回転している。そこで、符号画像上での座標は、回転の座標変換により、
((IRX+IPX)cosRDD+(IRY+IPY)sinRDD,
−(IRX+IPX)sinRDD+(IRY+IPY)cosRDD)
となる。
【0063】
これらを総合すると、ペン先中心の符号画像上での座標(PPX,PPY)は、
PPX=(IRX+IPX)cosRDD+(IRY+IPY)sinRDD+DSX+RDX+DAW/2
PPY=−(IRX+IPX)sinRDD+(IRY+IPY)cosRDD+DSY+RDY+DAH/2
と求められる。
【0064】
図19に、ペン先中心の座標を求めるのに用いられる各座標の位置関係を示す。本実施の形態では、上述したように、復号領域開始点から読み込み領域開始点が求められ、読み込み領域開始点から読み込み領域中心が求められる。また、読み込み領域中心から撮像領域中心が求められ、撮像領域中心からペン先中心が求められる。また、図19では、符号画像の上部方向と撮像画像の上部方向も示されている。このように、符号画像と撮像画像には角度差があるので、読み込み領域中心から撮像領域中心やペン先中心を求める際には、この角度差を考慮している。
【0065】
以上の手順を整理すると、次のようになる。
図20は、この手順を説明するための図である。尚、以下の手順の番号と図中の番号とは対応している。
(1)復号領域の開始点(左上点)の座標(DSX,DSY)を求める。
(2)予め求められていた(RDX,RDY)を用いて、読み込み領域の開始点(左上点)の座標(DSX+RDX,DSY+RDY)を求める。
(3)復号に必要な領域のサイズ(DAW,DAH)から、読み込み領域中心の座標を求める。
(4)撮像画像上で、撮像領域中心及びペン先中心の読み込み領域中心に対する座標を求める。
(5)(4)で求めた座標を符号画像上での座標に変換し、(3)で求めた読み込み領域中心の座標に加算することで、符号画像上でのペン先中心の座標(PPX,PPY)を求める。
【0066】
尚、本実施の形態では、媒体から読み取られた第1の部分画像の一例として、撮像領域を用い、媒体上での自身の位置を表す第2の部分画像の一例として、復号領域を用いている。そして、第1の部分画像から抽出された部分画像であって、第2の部分画像の抽出に用いられる部分画像である第3の部分画像の一例として、読み込み領域を用いている。
また、指示手段により指示された位置の第1の部分画像の中心からの距離及び方向を特定する情報の一例として、(IPX,IPY)を用いている。更に、第1の部分画像の中心の第3の部分画像の中心からの距離及び方向を特定する情報の一例として、(IRX,IRY)を用いている。更にまた、第1の部分画像の第3の部分画像に対する回転角度を特定する情報の一例として、IRDを用いている。また、第3の部分画像の1つの頂点の第2の部分画像の1つの頂点からの垂直軸方向及び水平軸方向の変位を特定する情報の一例として、(RDX,RDY)を用いている。
【0067】
次いで、画像処理装置20の動作について更に詳しく説明する。尚、この動作の説明では、9C2方式の単位符号パターンが図5に示したレイアウトで配置されていることを前提とする。
まず、ブロック検出部23の動作について説明する。
図21は、ブロック検出部23の動作例を示したフローチャートである。
まず、ブロック検出部23は、ドット配列生成部22からドット配列を取得する(ステップ201)。このドット配列の大きさは、上述したように、(復号に必要なブロック数×ブロックの一辺のドット数+ブロックの一辺のドット数−1)2である。本実施の形態では、復号に必要なブロック数は5×5であり、ブロックの一辺のドット数が3であるので、17×17のドット配列を取得する。
【0068】
次に、取得したドット配列に、ブロック区切りを重ね合わせる(ステップ202)。本実施の形態では、5×5のブロック区切りが用いられる。そして、カウンタI、Jに「0」を代入し、MaxBNにも「0」を代入する(ステップ203)。
ここで、I、Jは、ブロック区切りを初期位置から移動させたステップ数をカウントするものである。画像の1ラインごとにブロック区切りを移動させ、そのとき移動させたライン数をカウンタI、Jでカウントする。また、MaxBNは、ブロック内で検出されるドット数が「2」となるブロック数をブロック区切りを移動させながらカウントしていったときに、最大となるカウント値を記録するものである。
【0069】
次に、ブロック検出部23は、ブロック区切りをX方向にI、Y方向にJ移動させる(ステップ204)。初期状態においてI、Jは「0」であるので、ブロック区切りは移動しない。そして、ブロック区切りの各ブロックに含まれるドット数をカウントして、ドット数が「2」となるブロックの数をカウントする。カウントしたブロック数はIB[I,J]に格納する(ステップ205)。IB[I,J]のI、Jには、ブロック区切りの移動量を示すIとJの値がそれぞれ記録される。
【0070】
次に、ブロック検出部23は、IB[I,J]とMaxBNとを比較する(ステップ206)。MaxBNは初期値が「0」であるので、最初の比較では、IB[I,J]がMaxBNよりも大きくなる。この場合、MaxBNにIB[I,J]の値を代入すると共に、IにMXの値を、JにMYの値を代入する(ステップ207)。尚、IB[I,J]がMaxBN以下である場合は、MaxBN、MX、MYの値はそのままにしておく。
【0071】
その後、ブロック検出部23は、I=2であるかどうかを判定する(ステップ208)。
ここで、I=2でない場合には、Iに「1」を加算する(ステップ209)。そして、ステップ204、205の処理を繰り返し行い、IB[I,J]とMaxBNとを比較していく(ステップ206)。
IB[I,J]が前回までのIB[I,J]の最大値であるMaxBNよりも大きいと、MaxBNにIB[I,J]の値を代入し、そのときのIにMXの値を、JにMYの値を代入する(ステップ207)。また、MaxBNのほうがIB[I,J]よりも大きい場合には、I=2であるかどうかを判定する(ステップ208)。I=2となると、次にJ=2であるかどうかを判定する(ステップ210)。J=2でない場合には、Iに「0」を代入し、Jに「1」を加算する(ステップ211)。このような手順を繰り返し行い、(I,J)が(0,0)から(2,2)までで、IB[I,J]が最大のものを検出する。
【0072】
I=2、J=2までの処理が終了すると、ブロック検出部23は、保存しているMaxBNと閾値TBとを比較する(ステップ212)。閾値TBは、ドット数が「2」のブロックの数が復号可能な程度のものかを判定するための閾値である。
ここで、MaxBNが閾値TBよりも大きい場合には、ブロック区切りをMX、MYの位置に固定し、その位置で各ブロックのパターン値を検出する。そして、検出したパターン値を、各ブロックを識別する変数X、Yと共に符号配列PA[X,Y]としてメモリに記録する(ステップ213)。尚、このとき、対応するパターン値に変換することができなければ、パターン値として用いられていない「99」を記録する。そして、ブロック検出部23は、MX、MYと、符号配列PA[X,Y]とを同期符号検出部24に出力する(ステップ214)。
一方、MaxBNが閾値TB以下である場合には、画像のノイズが大きく復号は不可能と判定し、復号不能を出力する(ステップ215)。
【0073】
次に、同期符号検出部24の動作について説明する。
図22は、同期符号検出部24の動作例を示したフローチャートである。
まず、同期符号検出部24は、ブロック検出部23からMX、MYと、符号配列PA[X,Y]とを取得する(ステップ251)。
次に、同期符号検出部24は、K、Lに「1」を代入する(ステップ252)。尚、KはX方向のブロック数を示すカウンタであり、LはY方向のブロック数を示すカウンタである。
【0074】
次に、同期符号検出部24は、PA[K,L]のパターン値が32かどうかを判定する(ステップ253)。
PA[K,L]のパターン値が32であれば、符号配列PA[X,Y]の回転は必要ないと判定し、同期符号のあるブロックのX座標SXにKを代入し、Y座標SYにLを代入する。また、ブロック区切りのX方向への移動量ShiftXにMXを代入し、Y方向への移動量ShiftYにMYを代入する(ステップ254)。
尚、本実施の形態では、このとき、図17(b)に示すように、復号領域開始点から読み込み領域開始点への補正量RDX、RDYと、撮像画像上での座標を符号画像上での座標に変換する際の回転量RDDとを記憶しておく。具体的には、RDX=−MX×4、RDY=−MY×4、RDD=IRDにより、各値を求めて記憶しておく。ここで、1ドットの間隔が4ピクセルであることから、ドットで数えた座標からピクセルで数えた座標へと変換するために4を掛けている。
【0075】
次に、同期符号検出部24は、PA[K,L]のパターン値が33かどうかを判定する(ステップ255)。
PA[K,L]のパターン値が33であれば、符号配列PA[X,Y]を左方向に90度回転させる(ステップ256)。図4に示すようにパターン値33の単位符号パターンは、パターン値32の単位符号パターンを右方向に90度回転させた画像であるので、逆方向に90度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、左方向に90度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXにLを代入し、Y座標SYに6−Kを代入する。また、ブロック区切りのX方向への移動量ShiftXにMYを代入し、Y方向への移動量ShiftYに2−MXを代入する(ステップ257)。
尚、本実施の形態では、このとき、図17(b)に示すように、復号領域開始点から読み込み領域開始点への補正量RDX、RDYと、撮像画像上での座標を符号画像上での座標に変換する際の回転量RDDとを記憶しておく。具体的には、RDX=−MY×4、RDY=−(2−MX)×4、RDD=270+IRDにより、各値を求めて記憶しておく。RDDは、符号画像上の垂直方向からの回転角に変換している。
【0076】
次に、同期符号検出部24は、PA[K,L]のパターン値が34かどうかを判定する(ステップ258)。
PA[K,L]のパターン値が34であれば、符号配列PA[X,Y]を左方向に180度回転させる(ステップ259)。図4に示すようにパターン値34の単位符号パターンは、パターン値32の単位符号パターンを180度回転させた画像であるので、パターン値34の単位符号パターンを180度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、180度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXに6−Kを代入し、Y座標SYに6−Lを代入する。また、ブロック区切りのX方向への移動量ShiftXに2−MXを代入し、Y方向への移動量ShiftYに2−MYを代入する(ステップ260)。
尚、本実施の形態では、このとき、図17(b)に示すように、復号領域開始点から読み込み領域開始点への補正量RDX、RDYと、撮像画像上での座標を符号画像上での座標に変換する際の回転量RDDとを記憶しておく。具体的には、RDX=−(2−MX)×4、RDY=−(2−MY)×4、RDD=180+IRDにより、各値を求めて記憶しておく。
【0077】
次に、同期符号検出部24は、PA[K,L]のパターン値が35かどうかを判定する(ステップ261)。
PA[K,L]のパターン値が35であれば、符号配列PA[X,Y]を左方向に270度回転させる(ステップ262)。図4に示すようにパターン値35の単位符号パターンは、パターン値32の単位符号パターンを右に270度回転させた画像であるので、逆方向に270度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、左方向に270度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXに6−Lを代入し、Y座標SYにKを代入する。また、ブロック区切りのX方向への移動量ShiftXに2−MYを代入し、Y方向への移動量ShiftYにMXを代入する(ステップ263)。
尚、本実施の形態では、このとき、図17(b)に示すように、復号領域開始点から読み込み領域開始点への補正量RDX、RDYと、撮像画像上での座標を符号画像上での座標に変換する際の回転量RDDとを記憶しておく。具体的には、RDX=−(2−MY)×4、RDY=−MX×4、RDD=90+IRDにより、各値を求めて記憶しておく。
【0078】
そして、ステップ254、257、260、263で、SX、SY、ShiftX、ShiftYに値が代入された場合、同期符号検出部24は、これらの値を識別符号検出部30、X座標符号検出部40、Y座標符号検出部45に出力する(ステップ264)。
また、PA[K,L]がパターン値32〜35のいずれでもなければ、同期符号検出部24は、K=5であるかどうかを判定する(ステップ265)。K=5でない場合には、Kに「1」を加算し(ステップ266)、ステップ253に戻る。K=5であれば、L=5であるかどうかを判定する(ステップ267)。L=5でない場合には、Kに「1」を代入し、Lに「1」を加算し(ステップ268)、ステップ253に戻る。即ち、ステップ253〜264の処理を、パターン値32〜35のブロックを検出するまでK、Lの値を変更しながら繰り返し行う。また、K=5、L=5になっても、パターン値32〜35のブロックを検出することができなかった場合には、復号不能の判定信号を出力する(ステップ269)。
【0079】
尚、ステップ253、255、258、261の処理は、同期符号検出部24による制御の下、回転判定部25が行うようにするとよい。また、ステップ254、256、257、259、260、262、263の処理は、同期符号検出部24による制御の下、符号配列回転部26が行うようにするとよい。
【0080】
次に、X座標符号検出部40の動作について説明する。
図23は、X座標符号検出部40の動作例を示したフローチャートである。
まず、X座標符号検出部40は、同期符号検出部24から符号配列PA[X,Y]、SX、SYを取得する(ステップ401)。
次に、X座標符号検出部40は、X座標符号配列XA[X,0]の全ての要素を「99」で初期化する(ステップ402)。尚、この「99」は、パターン値として用いられていない番号とする。そして、符号ブロックにおける各ブロックを識別するためのカウンタIX、IYに「1」を代入する。ここで、IXは、X方向のブロック数を示すカウンタであり、IYは、Y方向のブロック数を示すカウンタである。更に、X座標符号検出部40は、X座標符号配列における各要素を識別するためのカウンタKXにも「1」を代入する(ステップ403)。
【0081】
また、X座標符号検出部40は、IY−SYが「5」で割り切れるかどうかを判定する(ステップ404)。即ち、IYで特定されるブロックに同期符号が配置されているかどうかを判定する。
ここで、IY−SYが「5」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合は、X座標符号を取り出す対象ではないため、IYに「1」を加算し(ステップ405)、ステップ404へ進む。
一方、IY−SYが「5」で割り切れた場合、つまり、このブロックに同期符号が配置されている場合、X座標符号検出部40は、IX−SXが「5」で割り切れるかどうかを判定する(ステップ406)。即ち、IXで特定されるブロックに同期符号が配置されているかどうかを判定する。
【0082】
ここで、IX−SXが「5」で割り切れた場合、つまり、このブロックに同期符号が配置されている場合は、X座標符号を取り出す対象ではないため、IXに「1」を加算し(ステップ407)、ステップ406へ進む。
一方、IX−SXが「5」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合、X座標符号検出部40は、XA[KX,0]にPA[IX,IY]を代入する(ステップ408)。
【0083】
そして、IX=5であるかどうかを判定する(ステップ409)。
ここで、IX=5でない場合には、KXに「1」を加算し(ステップ410)、IXに「1」を加算して(ステップ407)、ステップ406〜408の処理をIX=5となるまで繰り返し行う。また、IX=5となると、次に、IY=5であるかどうかを判定する(ステップ411)。IY=5でない場合には、IX、KXに「1」を代入し(ステップ412)、IYに「1」を加算して(ステップ405)、ステップ404〜410の処理をIY=5となるまで繰り返し行う。また、IY=5となると、X座標符号検出部40は、X座標符号配列XA[X,0]をX座標符号復号部42に出力する(ステップ413)。
尚、ここでは、X座標符号検出部40の動作のみ説明したが、Y座標符号検出部45も同様の動作を行う。
以上により、本実施の形態における画像処理装置20の詳細な動作説明を終了する。
【0084】
次に、座標補正部50の動作について説明する。
図24は、座標補正部50の動作例を示したフローチャートである。
まず、座標補正部50は、撮像領域中心に対するペン先中心の相対座標(IPX,IPY)と、読み込み領域中心に対する撮像領域中心の相対座標(IRX,IRY)とを取得する(ステップ501)。ここで、(IPX,IPY)は、ペンデバイスの仕様として、図示しないメモリに予め記憶されているので、それを読み出す。また、(IRX,IRY)は、ドット配列生成部22によるドット画像の検出時にメモリに記憶されているので、それを読み出す。
【0085】
次に、座標補正部50は、ブロック区切りの移動量のピクセル数(RDX,RDY)と、撮像領域の読み込み領域に対する回転角RDDを取得する(ステップ502)。ここで、これらの値は、同期符号検出部24による回転検出時にメモリに記憶されているので、それを読み出す。
また、座標補正部50は、X座標符号復号部42から符号ブロックの左端のブロックの位置BXを取得すると共に、Y座標符号復号部47から符号ブロックの上端のブロックの位置BYを取得する(ステップ503)。
【0086】
その後、座標補正部50は、復号領域開始点のピクセル位置(DSX,DSY)を求め(ステップ504)、更に、これを読み込み領域開始点のピクセル位置(RSX,RSY)に変換する(ステップ505)。そして、最後に、読み込み領域中心のピクセル位置(CRX,CRY)を求め(ステップ506)、ペン先中心のピクセル位置(PPX,PPY)を求める(ステップ507)。尚、これらのステップにおけるピクセル位置の変換式については、これまでの説明で詳しく述べているので、ここでの説明は省略する。
【0087】
以上により、本実施の形態の動作の説明を終了する。
ところで、本実施の形態では、まず、復号領域の位置を求め、次に、読み込み領域の位置を求め、更に、撮像領域の位置を求めて、ペン先の位置を求めるようにした。しかしながら、必ずしもこれらの全ての位置を求めなければならないわけではない。例えば、mCn方式以外の符号化方式を採用した場合、復号領域と読み込み領域を同一視できる場合もあると考えられる。そのような場合は、復号領域から直接撮像領域を求めるようにしてもよい。
【0088】
次に、本実施の形態における画像処理装置20の具体的なハードウェア構成について説明する。
まず、画像処理装置20を実現するペンデバイス60について説明する。
図25は、ペンデバイス60の機構を示した図である。
図示するように、ペンデバイス60は、ペン全体の動作を制御する制御回路61を備える。また、制御回路61は、入力画像から検出した符号画像を処理する画像処理部61aと、そこでの処理結果から識別情報及び位置情報を抽出するデータ処理部61bとを含む。
そして、制御回路61には、ペンデバイス60による筆記動作をペンチップ69に加わる圧力によって検出する圧力センサ62が接続されている。また、媒体上に赤外光を照射する赤外LED63と、画像を入力する赤外CMOS64も接続されている。更に、識別情報及び位置情報を記憶するための情報メモリ65と、外部装置と通信するための通信回路66と、ペンを駆動するためのバッテリ67と、ペンの識別情報(ペンID)を記憶するペンIDメモリ68も接続されている。
【0089】
尚、図11に示した画像読取部21は、例えば、図25の赤外CMOS64にて実現される。また、ドット配列生成部22は、例えば、図25の画像処理部61aにて実現される。更に、図11に示したブロック検出部23、同期符号検出部24、回転判定部25、符号配列回転部26、識別符号検出部30、識別符号復元部31、識別符号復号部32、識別符号誤り検出部33、識別符号誤り訂正部34、X座標符号検出部40、X座標符号復号部42、X座標符号誤り検出部43、X座標符号誤り訂正部44、Y座標符号検出部45、Y座標符号復号部47、Y座標符号誤り検出部48、Y座標符号誤り訂正部49、座標補正部50、情報出力部55は、例えば、図25のデータ処理部61bにて実現される。
【0090】
また、本実施の形態では、媒体上の位置を指示する指示手段の一例として、ペンデバイス60のペンチップ69を設けたが、これには限らない。媒体に筆記を行うための構成ではなく、単に媒体上の所定位置をポイントするための構成を指示手段として捉えてもよい。
【0091】
また、図25の画像処理部61a又はデータ処理部61bにて実現される処理は、例えば、汎用のコンピュータで実現してもよい。そこで、かかる処理をコンピュータ90で実現するものとし、コンピュータ90のハードウェア構成について説明する。
図26は、コンピュータ90のハードウェア構成を示した図である。
図示するように、コンピュータ90は、演算手段であるCPU(Central Processing Unit)91と、記憶手段であるメインメモリ92及び磁気ディスク装置(HDD:Hard Disk Drive)93とを備える。ここで、CPU91は、OS(Operating System)やアプリケーション等の各種ソフトウェアを実行し、上述した各機能を実現する。また、メインメモリ92は、各種ソフトウェアやその実行に用いるデータ等を記憶する記憶領域であり、磁気ディスク装置93は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。
更に、コンピュータ90は、外部との通信を行うための通信I/F94と、ビデオメモリやディスプレイ等からなる表示機構95と、キーボードやマウス等の入力デバイス96とを備える。
【0092】
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、CD−ROM等の記録媒体に格納して提供することも可能である。
【図面の簡単な説明】
【0093】
【図1】9Cn方式における単位符号パターンの一例を示した図である。
【図2】9Cn方式における単位符号パターンの他の例を示した図である。
【図3】9C2方式における単位符号パターンとパターン値の対応を示した図である。
【図4】9C2方式における同期パターンの例を示した図である。
【図5】符号ブロックの基本的なレイアウトの例を示した図である。
【図6】符号ブロックの紙面上のレイアウトの例を示した図である。
【図7】M系列による座標の表現について説明するための図である。
【図8】本実施の形態における画像生成装置の機能構成を示したブロック図である。
【図9】ペン先中心と撮像領域中心とのズレについて説明するための図である。
【図10】ペン先中心と撮像領域と読み込み領域とのズレについて説明するための図である。
【図11】本実施の形態における画像処理装置の機能構成を示したブロック図である。
【図12】ドット配列を生成する際の処理を説明するための図である。
【図13】ドット配列上でブロックを検出する際の処理を説明するための図である。
【図14】ドット配列上でブロックを検出した後の状態を説明するための図である。
【図15】ドット配列から符号配列へ変換する際の処理を説明するための図である。
【図16】回転角度とパターン番号の対応を示した図である。
【図17】符号配列の回転及び回転に伴う情報の記憶について説明するための図である。
【図18】復号領域開始点を求める際の処理について説明するための図である。
【図19】復号領域開始点からペン先中心を求めるまでの各座標の関係を示した図である。
【図20】座標の変換についてまとめた図である。
【図21】本実施の形態におけるブロック検出部の動作例を示したフローチャートである。
【図22】本実施の形態における同期符号検出部の動作例を示したフローチャートである。
【図23】本実施の形態におけるX座標符号検出部の動作例を示したフローチャートである。
【図24】本実施の形態における座標補正部の動作例を示したフローチャートである。
【図25】本実施の形態における画像処理装置を実現可能なペンデバイスの機構を示した図である。
【図26】本実施の形態を適用可能なコンピュータのハードウェア構成図である。
【符号の説明】
【0094】
10…画像生成装置、20…画像処理装置、21…画像読取部、22…ドット配列生成部、23…ブロック検出部、24…同期符号検出部、25…回転判定部、26…符号配列回転部、30…識別符号検出部、31…識別符号復元部、32…識別符号復号部、33…識別符号誤り検出部、34…識別符号誤り訂正部、40…X座標符号検出部、42…X座標符号復号部、43…X座標符号誤り検出部、44…X座標符号誤り訂正部、45…Y座標符号検出部、47…Y座標符号復号部、48…Y座標符号誤り検出部、49…Y座標符号誤り訂正部、50…座標補正部、55…情報出力部
【技術分野】
【0001】
本発明は、位置検出装置、プログラムに関する。
【背景技術】
【0002】
表面上の複数の位置を符号化する位置コードを提供する方法は知られている(例えば、特許文献1参照)。この特許文献1では、循環数字列を表面に沿って複数回印刷する。その際、循環数字列の異なるローテーションを、隣り合う数字列間で所定のずれが起こるように使用し、表面を分割した複数のコードウィンドウが、少なくとも3つの循環数字列を備えると共に、隣り合うコードウィンドウの1つの数字列と重なり合う1つの数字列を有するものであり、また、コードウィンドウの位置を、そのコードウィンドウに属している循環数字列間のずれによって符号化している。
【0003】
論理的に順位付けられたデジタル量子の機械読取り可能なエンコーディングを記録した記録媒体からのエンコーディングの空間的に非同期的な読取りを可能にする技術も知られている(例えば、特許文献2参照)。この特許文献2では、本質的に同一であるエンコーディングの多数のコピーを形成し、機械認識可能な空間同期指標をエンコーディングのコピーの各々の中のプリント位置に組み合わせて、エンコーディングの空間的に同期可能な多数の事例を提供し、それらの事例をレイアウト規則に従って記録媒体における空間的に周期的な中心の格子に書き込んでいる。
【0004】
取り込まれた画像の位置をより大きい画像から決定するためのシステム及び方法も知られている(例えば、特許文献3参照)。この特許文献3では、非反復的な系列を、所定のサイズのサブウィンドウ毎に固有とされた非反復的な配列に折り畳み、その取り込まれた位置を非反復的な配列内のサブウィンドウ毎に決定することによって、取り込まれた画像の位置を、より大きいサブウィンドウの画像から決定している。
【0005】
光学的に読み取り可能に記録されるマルチメディア情報の長時間記録及び繰り返し再生を可能とする技術も知られている(例えば、特許文献4参照)。この特許文献4において、記録装置は、プリンタシステムや印刷用製版システムにより、オーディオ情報、映像情報、ディジタルコードデータ等を含めた所謂マルチメディア情報を光学的に読み取り可能なドットコードとして、画像や文字と一緒に紙等の媒体上に記録する。ペン型の情報再生装置は、ドットコードの手動走査に応じてそのドットコードを順次取り込んで、元のオーディオ情報を音声出力器にて、元の映像情報を表示装置にて、元のディジタルコードデータをページプリンタ等にて出力する。
【0006】
タブレットを使用せずに、媒体上の座標を精緻に検出できるようにする技術も知られている(例えば、特許文献5参照)。この特許文献5において、ペン型の座標入力装置は、媒体上に形成されその媒体上の座標を示すコードシンボルを光学的に読み取り、この読み取ったコードシンボルをデコードし、読み取った画像中におけるコードシンボルの位置、向き及び歪み量を検出する。そして、デコード後の情報と、コードシンボルの位置、向き及び歪み量とにより、先端部の媒体上での位置の座標を検出する。
【0007】
【特許文献1】特表2003−511762号公報
【特許文献2】特開平9−185669号公報
【特許文献3】特開2004−152273号公報
【特許文献4】特開平6−231466号公報
【特許文献5】特開2000−293303号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
ここで、従来、媒体上の指示された位置と、媒体から読み取られた部分画像と、媒体上の位置の検出に用いられる部分画像との間にズレがある場合には、媒体上の指示された位置を精度よく求めることはできないという課題があった。
本発明の目的は、媒体上の指示された位置と、媒体から読み取られた部分画像と、媒体上の位置の検出に用いられる部分画像との間にズレがあっても、媒体上の指示された位置を精度よく求めることができるようにすることにある。
【課題を解決するための手段】
【0009】
請求項1に記載の発明は、媒体上の位置を指示する指示手段と、前記媒体に印刷された画像に含まれる第1の部分画像を読み取る読取手段と、前記読取手段により読み取られた前記第1の部分画像から、前記媒体上での自身の位置を表す第2の部分画像を抽出する抽出手段と、前記抽出手段により抽出された前記第2の部分画像を用いて、前記媒体上での当該第2の部分画像の位置を検出する検出手段と、前記指示手段により指示された位置の前記第1の部分画像に対する相対位置を示す第1の情報と、前記第1の部分画像の前記第2の部分画像に対する相対位置を示す第2の情報とを取得する取得手段と、前記検出手段により検出された前記第2の部分画像の位置を、前記第1の情報と前記第2の情報とを用いて補正する補正手段とを備えたことを特徴とする位置検出装置である。
請求項2に記載の発明は、前記取得手段は、前記指示手段により指示された位置の前記第1の部分画像の中心からの距離及び方向を特定する情報を、前記第1の情報として取得することを特徴とする請求項1記載の位置検出装置である。
請求項3に記載の発明は、前記抽出手段は、前記第1の部分画像から第3の部分画像を抽出した後、当該第3の部分画像から前記第2の部分画像を抽出し、前記取得手段は、前記第2の情報を、前記第1の部分画像の前記第3の部分画像に対する相対位置を示す第3の情報と、前記第3の部分画像の前記第2の部分画像に対する相対位置を示す第4の情報とに分けて取得することを特徴とする請求項1記載の位置検出装置である。
請求項4に記載の発明は、前記取得手段は、前記第1の部分画像の中心の前記第3の部分画像の中心からの距離及び方向を特定する情報を、前記第3の情報として取得することを特徴とする請求項3記載の位置検出装置である。
請求項5に記載の発明は、前記取得手段は、前記第1の部分画像の前記第3の部分画像に対する回転角度を特定する情報を、前記第3の情報として更に取得することを特徴とする請求項4記載の位置検出装置である。
請求項6に記載の発明は、前記第2の部分画像及び前記第3の部分画像は、垂直軸及び水平軸を共有する矩形をなしており、前記取得手段は、前記第3の部分画像の1つの頂点の前記第2の部分画像の1つの頂点からの前記垂直軸方向及び前記水平軸方向の変位を特定する情報を、前記第4の情報として取得することを特徴とする請求項3記載の位置検出装置である。
請求項7に記載の発明は、前記第2の部分画像は、m(m≧4)箇所のうちのn(2≦n<m)箇所に単位画像を配置したパターン画像を前記垂直軸方向にAx(Ax≧2)個、前記水平軸方向にAy(Ay≧2)個配置してなる画像であり、前記抽出手段は、前記パターン画像と略同じ大きさの区画を前記垂直軸方向にAx個、前記水平軸方向にAy個配置してなる枠を、前記第3の部分画像上で移動し、n個の単位画像を含む区画が所定数以上となる移動位置を求め、当該移動位置における当該枠内の画像を前記第2の部分画像として抽出し、前記取得手段は、前記移動位置までの前記枠の前記垂直軸方向及び前記水平軸方向の移動量を、前記変位を特定する情報として取得することを特徴とする請求項6記載の位置検出装置である。
請求項8に記載の発明は、コンピュータに、媒体に印刷された画像から読み取られた当該画像の第1の部分画像から、当該媒体上での自身の位置を表す第2の部分画像を抽出する機能と、抽出された前記第2の部分画像を用いて、前記媒体上での当該第2の部分画像の位置を検出する機能と、指示手段により指示された前記媒体上の位置の前記第1の部分画像に対する相対位置を示す第1の情報と、前記第1の部分画像の前記第2の部分画像に対する相対位置を示す第2の情報とを取得する機能と、検出された前記第2の部分画像の位置を、前記第1の情報と前記第2の情報とを用いて補正する機能とを実現させるためのプログラムである。
請求項9に記載の発明は、前記抽出する機能では、前記第1の部分画像から第3の部分画像を抽出した後、当該第3の部分画像から前記第2の部分画像を抽出し、前記取得する機能では、前記第2の情報を、前記第1の部分画像の前記第3の部分画像に対する相対位置を示す第3の情報と、前記第3の部分画像の前記第2の部分画像に対する相対位置を示す第4の情報とに分けて取得することを特徴とする請求項8記載のプログラムである。
【発明の効果】
【0010】
請求項1の発明は、媒体上の指示された位置と、媒体から読み取られた部分画像と、媒体上の位置の検出に用いられる部分画像との間にズレがあっても、本構成を有していない場合に比較して、媒体上の指示された位置を精度よく求めることができるという効果を有する。
請求項2の発明は、本構成を有していない場合に比較して、媒体から読み取られた部分画像から媒体上の指示された位置を求める計算が容易になるという効果を有する。
請求項3の発明は、媒体から読み取られた部分画像の一部を抽出し、そこから媒体上の位置の検出に用いられる部分画像を抽出する必要があっても、本構成を有していない場合に比較して、媒体上の指示された位置を精度よく求めることができるという効果を有する。
請求項4の発明は、本構成を有していない場合に比較して、媒体から読み取られた部分画像をそこから抽出した一部の画像から求める計算が容易になるという効果を有する。
請求項5の発明は、媒体から読み取られた部分画像とそこから抽出した一部の画像とに角度の違いがあったとしても、媒体から読み取られた部分画像をそこから抽出した一部の画像から求めることができるという効果を有する。
請求項6の発明は、媒体から読み取られた部分画像の一部の画像を媒体上の位置の検出に用いられる部分画像から求める計算が容易になるという効果を有する。
請求項7の発明は、mCn方式を用いた場合の復号処理における結果を用いて、媒体から読み取られた部分画像の一部の画像を媒体上の位置の検出に用いられる部分画像を求めることができるという効果を有する。
請求項8の発明は、媒体上の指示された位置と、媒体から読み取られた部分画像と、媒体上の位置の検出に用いられる部分画像との間にズレがあっても、本構成を有していない場合に比較して、媒体上の指示された位置を精度よく求めることができるという効果を有する。
請求項9の発明は、媒体から読み取られた部分画像の一部を抽出し、そこから媒体上の位置の検出に用いられる部分画像を抽出する必要があっても、本構成を有していない場合に比較して、媒体上の指示された位置を精度よく求めることができるという効果を有する。
【発明を実施するための最良の形態】
【0011】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
まず、読み込む符号画像を構成する符号パターンについて説明する。
本実施の形態では、m(m≧3)箇所から選択したn(1≦n<m)箇所に単位画像を配置してなるパターン画像(以下、「単位符号パターン」という)によってmCn(=m!/{(m−n)!×n!})通りの情報を表現する。つまり、1つの単位画像を情報に対応させるのではなく、複数の単位画像を情報に対応させている。仮に1つの単位画像を情報に対応させたとすると、単位画像が欠損したり、ノイズが加わったりした場合に、誤った情報を表現してしまうという欠点がある。これに対して、例えば2つの単位画像を情報に対応させたとすると、単位画像が1つであったり3つであったりした場合に、容易に誤りであることが分かる。更に、1つの単位画像で1ビット、又は、高々2ビットを表現する方法では、情報を表現するパターンと視覚的に似たパターンで、情報パターンの読出しを制御する同期パターンを表現することができない。このようなことから、本実施の形態では、上記のような符号化方式を採用している。以下では、このような符号化方式をmCn方式と称する。
ここで、単位画像としては、如何なる形状のものを用いてもよい。本実施の形態では、単位画像の一例としてドット画像(以下、単に「ドット」という)を用いるが、例えば、斜線パターン等、他の形状の画像であってもよい。
【0012】
図1に、mCn方式における単位符号パターンの例を示す。
図では、黒色の領域と斜線の領域をドット配置可能な領域とし、その間にある白色の領域をドット配置不可能な領域としている。そして、ドット配置可能な領域のうち、黒色の領域にドットが配置され、斜線の領域にはドットが配置されていないことを示している。即ち、図1は、縦3ドット、横3ドットの合計9ドットを配置可能な領域を設けた例を示しており、(a)は、ドット配置可能な領域に2ドットを配置する9C2方式における単位符号パターンであり、(b)は、ドット配置可能な領域に3ドットを配置する9C3方式における単位符号パターンである。
【0013】
ところで、図1で配置されるドット(黒色の領域)は、あくまで情報表現のためのドットであり、画像を構成する最小単位であるドット(図1の最小の四角)とは必ずしも一致しない。本実施の形態において、「ドット」というときは前者のドットを指し、後者のドットは「ピクセル」と呼ぶことにすれば、ドットは、600dpiにおける2ピクセル×2ピクセルの大きさを有することになる。600dpiにおける1ピクセルの大きさは0.0423mmなので、ドットの一辺は、84.6μm(=0.0423mm×2)である。ドットは、大きくなればなるほど目に付きやすくなるため、できるだけ小さいほうが好ましい。ところが、あまり小さくすると、プリンタで印刷できなくなってしまう。そこで、ドットの大きさとして、50μmより大きく100μmより小さい上記の値を採用している。但し、上記の値84.6μmは、あくまで計算上の数値であり、実際に印刷されたトナー像では100μm程度になる。
【0014】
また、図2に、単位符号パターンの他の例を示す。尚、この図では、ドット間の空白を省略している。
図2(a)は、図1(a)に示した9C2方式における全ての単位符号パターンを示している。9C2方式では、これらの単位符号パターンを用いて、36(=9C2)通りの情報を表現する。また、図2(b)は、図1(b)に示した9C3方式における全ての単位符号パターンを示している。9C3方式では、これらの単位符号パターンを用いて、84(=9C3)通りの情報を表現する。
【0015】
尚、単位符号パターンは、m=9の場合に限定されるものではなく、mの値として、例えば、4、16等の値を採用してもよい。また、nの値も1≦n<mを満たしていれば如何なる値を採用してもよい。
また、mの値としては、平方数(整数の2乗)だけでなく、異なる2つの整数の積を採用してもよい。つまり、ドットを配置可能な領域は、3ドット×3ドットを配置する場合のような正方形の領域に限らず、3ドット×4ドットを配置する場合のような長方形の領域であってもよい。尚、本明細書において、長方形とは、隣り合う2辺の長さが等しくない矩形のことをいうものとする。
【0016】
ところで、mCn方式における全ての単位符号パターンには、各単位符号パターンを識別するための番号であるパターン値が付されている。
図3に、9C2方式における単位符号パターンとパターン値との対応を示す。9C2方式における単位符号パターンは36個であるので、パターン値としては0〜35が用いられる。但し、図3に示した対応はあくまで一例であり、どの単位符号パターンにどのパターン値を割り当ててもよい。尚、9C3方式については、図示しないが、各単位符号パターンに0〜83のパターン値が付されることになる。
【0017】
このように、m箇所からn箇所を選択することでmCn種類の単位符号パターンを用意しているが、本実施の形態では、これらの単位符号パターンのうち、特定のパターンを情報パターンとして利用し、残りを同期パターンとして利用する。ここで、情報パターンとは、媒体に埋め込む情報を表現するパターンである。また、同期パターンとは、媒体に印刷された情報パターンを取り出すために用いられるパターンである。例えば、情報パターンの位置を特定したり、画像の回転を検出したりするために用いられる。尚、媒体としては、画像を印刷することが可能であれば、如何なるものを用いてもよい。紙が代表例なので、以下では媒体を紙として説明するが、金属、プラスチック、繊維等であってもよい。
【0018】
ここで、同期パターンについて説明する。
図4は、9C2方式における同期パターンの例である。このようにmCn方式におけるmが平方数である場合は、画像の回転の検出のために4種類の単位符号パターンを同期パターンとして用意する必要がある。ここでは、パターン値32の単位符号パターンを正立した同期パターンとしている。また、パターン値33の単位符号パターンを右に90度回転した同期パターン、パターン値34の単位符号パターンを右に180度回転した同期パターン、パターン値35の単位符号パターンを右に270度回転した同期パターンとしている。この場合、36種類の単位符号パターンからこの4種類の同期パターンを除いた残りを情報パターンとし、5ビットの情報を表現するとよい。但し、36種類の単位符号パターンの情報パターンと同期パターンへの振り分け方は、これには限らない。例えば、4種類で1組を構成する同期パターンの組を5つ用意し、残りの16種類の情報パターンで4ビットの情報を表現してもよい。
【0019】
尚、図示しないが、mCnにおけるmが異なる2つの整数の積である場合は、画像の回転の検出のために2種類の単位符号パターンを同期パターンとして用意すればよい。例えば、縦3ドット×横4ドットを配置可能な領域が検出されるべきなのに、縦4ドット×横3ドットを配置可能な領域が検出された場合は、その時点で画像が90度又は270度回転していることが分かるからである。
【0020】
次に、このような符号パターンを配置して識別情報と座標情報を表現する方法を述べる。
まず、上述した単位符号パターンから構成される符号ブロックについて説明する。
図5は、符号ブロックの一例を示したものである。図では、9C2方式における単位符号パターンを使用していることも同時に示している。即ち、36種類の単位符号パターンを、例えば、同期パターンとして使用する4パターンと、情報パターンとして使用する32パターンとに分け、各パターンをレイアウトに従って配置する。
図では、レイアウトとして、3ドット×3ドットを配置可能な領域(以下、「ブロック」という)を5個×5個の25個並べたものを採用している。そして、この25個のブロックのうち、左上の1ブロックに同期パターンを配置している。また、同期パターンの右の4ブロックに紙面上のX方向の座標を特定するX座標情報を表す情報パターンを配置し、同期パターンの下の4ブロックに紙面上のY方向の座標を特定するY座標情報を表す情報パターンを配置している。更に、これらの座標情報を表す情報パターンで囲まれた16ブロックに、紙面又は紙面に印刷される文書の識別情報を表す情報パターンを配置している。
尚、9C2方式における単位符号パターンはあくまで例であり、図の左下に示すように、9C3方式における単位符号パターンを使用してもよい。
【0021】
次いで、本実施の形態における識別情報と座標情報を表現するためのレイアウトについて説明する。
図6に、このようなレイアウトの一部を示す。
このレイアウトでは、図5に示した符号ブロックを基本単位とし、この符号ブロックを紙面全体に周期的に配置する。図では、同期パターンを「S」で表している。また、座標情報は、紙面の縦及び横に渡ってM系列で表現する。図では、X座標を表すパターンを「X1」、「X2」、…で表し、Y座標を表すパターンを「Y1」、「Y2」、…で表している。更に、識別情報の符号化には、幾つかの方法の利用が考えられるが、本実施の形態では、RS符号化が適している。RS符号は多値の符号法であり、この場合、ブロックの表現をRS符号の多値に対応させるとよいからである。図では、識別情報を表すパターンを「IXY」(X=1〜4,Y=1〜4)で表している。
【0022】
ここで、座標情報を表現するのに用いるM系列について説明する。
M系列とは、その部分列が、他の部分列と一致することがない系列である。例えば、11次のM系列は、2047ビットのビット列である。そして、この2047ビットのビット列の中から取り出された11ビット以上の部分列と同じ並びは、この2047ビットのビット列の中に自身以外には存在しない。本実施の形態では、16個の単位符号パターンを4ビットに対応付ける。即ち、2047ビットのビット列を4ビットごとに10進数で表し、図3の対応に従って単位符号パターンを決定し、座標符号として紙面の横と縦に渡って表現する。従って、復号の際は、3つの連続する単位符号パターンを特定することにより、ビット列上の位置が特定されることになる。
【0023】
図7に、M系列を用いた座標情報の符号化の例を示す。
(a)は、11次のM系列の例として、「0111000101011010000110010…」というビット列を示している。本実施の形態では、これを4ビットずつに区切り、1つ目の部分列「0111」をパターン値7の単位符号パターンとして、2つ目の部分列「0001」をパターン値1の単位符号パターンとして、3つ目の部分列「0101」をパターン値5の単位符号パターンとして、4つ目の部分列「1010」をパターン値10の単位符号パターンとして、それぞれ紙面上に配置する。
【0024】
また、このように4ビットずつ区切って単位符号パターンに割り当てると、(b)に示すように、4周期で全てのパターン列を表現できる。即ち、11次のM系列は、2047ビットなので、この系列を4ビットごとに切り出し、単位符号パターンで表現していくと、最後に3ビットあまることになる。この3ビットに、M系列の最初の1ビットを加えて4ビットとし単位符号パターンで表す。更に、M系列の2ビット目から4ビットごとに切り出し単位符号パターンで表す。すると、次の周期は、M系列の3ビット目から始まり、その次の周期は、M系列の4ビット目から始まる。更に、5周期目は、5ビット目からとなるが、これは最初の周期と一致する。従って、M系列の4周期を4ビットごとに切り出していくと、2047個の単位符号パターンで全てを尽くすことができる。M系列は11次であるので、3つの連続する単位符号パターンは、他のどの位置の連続する符号パターンとも一致することはない。そこで、読出し時には3つの単位符号パターンを読み出せば、復号が可能である。但し、本実施の形態では、誤りの発生を考慮し、4つの単位符号パターンで座標情報を表現している。
尚、4周期のM系列は、2047個のブロックに分割して格納される。1つのブロックの一辺の長さは、先に述べた印刷条件、即ち、ドットが600dpiにおける2ピクセル×2ピクセルの大きさである場合、0.508mmである。図6のレイアウトを採用する場合、連続する2047個のブロックの4ブロックごとに、同期ブロックが挿入される。そこで、5/4倍して、全体で約2558ブロックなので、長さは1299.5mmである。つまり、1299.5mmの長さが符号化されることになる
【0025】
次いで、このような画像を生成する画像生成装置10について説明する。
図8は、画像生成装置10の構成例を示したブロック図である。
図示するように、画像生成装置10は、情報取得部11と、識別符号生成部12と、X座標符号生成部13と、Y座標符号生成部14と、符号配列生成部15と、パターン画像記憶部16と、符号画像生成部17とを備える。
【0026】
情報取得部11は、紙面又は紙面に印刷される文書の識別情報、及び、紙面上での座標情報を取得する。そして、前者を識別符号生成部12に出力し、後者のうち、X座標情報をX座標符号生成部13に、Y座標情報をY座標符号生成部14に出力する。
【0027】
識別符号生成部12は、情報取得部11から取得した識別情報を符号化し、符号化された識別情報である識別符号を符号配列生成部15に出力する。この識別情報の符号化は、ブロック分割、RS符号化の処理を含む。
このうち、ブロック分割は、識別情報を構成するビット列を、RS符号化を行うために複数のブロックに分割する処理である。例えば、9C2方式で5ビットの情報を表現可能な情報パターンを用いる場合、60ビットの識別情報は、ブロック長が5ビットの12個のブロックに分割される。
また、RS符号化は、分割されたブロックに対してRS符号化を行い、誤り訂正のための冗長ブロックを付加する処理である。先の例において2ブロックの誤りを訂正可能なRS符号を採用したとすると、符号長は16ブロックとなる。
【0028】
X座標符号生成部13は、X座標情報を符号化する。Y座標符号生成部14は、Y座標情報を符号化する。そして、これらは、符号化された座標情報である座標符号を符号配列生成部15に出力する。この座標情報の符号化は、M系列符号化、ブロック分割の処理を含む。
このうち、M系列符号化は、M系列を使用して座標情報を符号化する処理である。例えば、符号化したい座標情報の長さから必要なM系列の次数を求め、M系列を動的に生成することで座標符号を生成する。但し、予め符号化したい座標情報の長さが分かっている場合には、M系列を画像生成装置10のメモリ等に格納しておき、画像生成時にそれを読み出す構成としてもよい。
また、ブロック分割は、M系列を複数のブロックに分割する処理である。例えば、情報パターンとして16種類の単位符号パターンを選択したとすると、符号ブロックにおける各ブロックには4ビットの情報が格納される。従って、図5のようなレイアウトを有する符号ブロックに対して、X座標情報は、16ビット分格納される。そして、図7を参照して述べたような方法で、座標情報が単位符号パターンによって表される。
【0029】
符号配列生成部15は、識別符号生成部12にて生成された識別符号と、X座標符号生成部13及びY座標符号生成部14にて生成された座標符号と、識別符号及び座標符号の読出しを制御する同期符号とを2次元平面に配置して2次元の符号配列を生成する。ここで、同期符号とは、同期パターンに対応する符号である。
パターン画像記憶部16は、例えば図2に示したmCn方式における単位符号パターンを記憶する。ここで、単位符号パターンには、上述したようにパターン値が付されており、各単位符号パターンはパターン値をキーとして読み出し可能になっている。尚、本実施の形態において、このパターン画像記憶部16は、予め定められたm及びnに対応するmCn方式における単位符号パターンを少なくとも記憶していればよい。
符号画像生成部17は、符号配列生成部15が生成した2次元の符号配列を参照し、各符号値に対応した単位符号パターンを選択して符号画像を生成する。
【0030】
そして、この符号画像は、図示しない画像形成部に渡され、画像形成部が紙面に符号画像を形成する。このとき、画像形成部は、電子文書の文書画像と符号画像とを重畳した重畳画像を紙面に形成するようにしてもよい。また、このように重畳画像を形成する場合には、紙面に対するペンデバイスによる筆記データが電子文書上の適切な位置に反映されるよう電子文書上の位置と紙面上の位置との対応関係を管理することが望ましい。
【0031】
また、画像形成部は、符号画像を、例えば電子写真方式を用いて、Kトナー(カーボンを含む赤外光吸収トナー)、又は、特殊トナーにより形成する。
ここで、特殊トナーとしては、可視光領域(400nm〜700nm)における最大吸収率が7%以下であり、近赤外領域(800nm〜1000nm)における吸収率が30%以上の不可視トナーが例示される。ここで、「可視」及び「不可視」は、目視により認識できるかどうかとは関係しない。印刷された媒体に形成された画像が可視光領域における特定の波長の吸収に起因する発色性の有無により認識できるかどうかで「可視」と「不可視」とを区別している。また、可視光領域における特定の波長の吸収に起因する発色性が若干あるが、人間の目で認識し難いものも「不可視」に含める。
【0032】
尚、これらの機能は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、画像生成装置10のCPU91(図26参照)が、情報取得部11、識別符号生成部12、X座標符号生成部13、Y座標符号生成部14、符号配列生成部15、符号画像生成部17を実現するプログラムを、例えば、磁気ディスク装置93(図26参照)からメインメモリ92(図26参照)に読み込んで実行することにより、実現される。また、パターン画像記憶部16は、例えば、磁気ディスク装置93(図26参照)を用いて実現するとよい。更に、磁気ディスク装置93(図26参照)に記憶されるプログラムやデータは、CD等の記録媒体からロードしてもよいし、インターネット等の通信手段を介してダウンロードしてもよい。
【0033】
以上説明した単位符号パターンを印刷した画像上の所定位置をペンデバイスで指示すると、ペンデバイスに設けられた撮像素子が、画像の一部を読み取る。そして、この画像からドットパターンが読み取られ、復号処理が行われる。ところが、この場合において、復号された座標情報は、撮像素子が読み取った画像の位置を表しており、厳密には、ペンデバイスで指示した位置を表していない。
以下、このズレの発生について具体的に説明する。
図9は、この説明のためのペンデバイスの概略図である。
図示するように、ペンの中心を通るペン中心線が紙面と交差する点(ペン先中心)と、撮像素子の中心を通る撮像素子中心線が紙面と交差する点(撮像領域中心)との間には、ペンデバイスに固有のズレIPがある。
【0034】
また、復号された座標情報とペンデバイスで指示した位置とのズレには、この固定のズレだけでなく、画像処理の結果に応じて動的に決定されるズレも含まれるので、このことを紙面上の座標を用いて説明する。
図10は、ペンデバイスの撮像素子が撮像する領域(以下、「撮像領域」という)及びその領域の中心点(以下、「撮像領域中心」という)と、その中でペンデバイスが復号のために読み込む領域(以下、「読み込み領域」という)とその領域の中心点(以下、「読み込み領域中心」という)と、ペンデバイスのペン先が指示する点(以下、「ペン先中心」という)との関係を示した図である。
【0035】
ここでは、(a)に示すように、撮像領域中心に対するペン先中心の相対座標を(IPX,IPY)とする。この座標は、ペンデバイスの傾きによって変化するが、標準的な傾きを定め、ペンデバイスがこの標準的な傾きで置かれたときの値を設定すればよい。尚、本明細書では、撮像領域の横枠に平行にX軸をとり、右方向をXの正方向とし、撮像領域の縦枠に平行にY軸をとり、下方向をYの正方向として、撮像画像上の座標を表すものとする。
また、紙の回転によって、撮像領域の垂直水平方向が、ドット列の方向と一致しているとは限らない。そこで、ドット列の方向から撮像領域の垂直方向への角度をIRDとする。ドット列の方向は、2つあるが、撮像素子の垂直方向と最も近い方向とする。このとき、IRDは、−90°から90°までの角度をとる。尚、本明細書では、角度は右回りを正方向とする。
【0036】
さて、ペンデバイスは、撮像領域から、復号のために必要な17ドット×17ドットの領域を読み込む。これが読み込み領域であるが、復号するのに適切な読み込み領域は必ずしも撮像領域の中心付近に存在するとは限らない。照明等の影響により、適切な読み込み領域が中心部からずれた位置にある場合もある。
(b)に、(a)のうち撮像領域中心と読み込み領域中心を含む部分の拡大図を示す。ここでは、読み込み領域中心に対する撮像領域中心の相対座標を(IRX,IRY)とする。
【0037】
次に、紙面に形成された符号画像を読み取って処理する画像処理装置20について説明する。
図11は、画像処理装置20の構成例を示したブロック図である。
図示するように、画像処理装置20は、画像読取部21と、ドット配列生成部22と、ブロック検出部23と、同期符号検出部24と、回転判定部25と、符号配列回転部26とを備える。また、識別符号検出部30と、識別符号復元部31と、識別符号復号部32と、識別符号誤り検出部33と、識別符号誤り訂正部34とを備える。更に、X座標符号検出部40と、X座標符号復号部42と、X座標符号誤り検出部43と、X座標符号誤り訂正部44と、Y座標符号検出部45と、Y座標符号復号部47と、Y座標符号誤り検出部48と、Y座標符号誤り訂正部49と、座標補正部50と、情報出力部55とを備える。
【0038】
画像読取部21は、CCD(Charge Coupled Devices)やCMOS(Complementary Metal Oxide Semiconductor)等の撮像素子を用いて、紙面に印刷された符号画像を読み取る。本実施の形態では、第1の部分画像を読み取る読取手段の一例として、画像読取部21を備えている。
【0039】
ドット配列生成部22は、読み取った符号画像からドットを検出し、ドットの位置を参照して、ドット配列を生成する。ここで、ドットの検出は、次のように行う。即ち、まず、読み取った符号画像の中から、ドットを検出し易い領域を特定する。そして、その領域内で、2値化処理によりドット画像の部分と、その他の背景画像の部分とを切り分け、2値化された個々の画像位置からドットの位置を検出する。また、ドット配列の生成は、2次元の配列上で、例えば、ドットがある位置を「1」、ドットがない位置を「0」というように、画像として検出したドットをデジタルデータに置き換えることにより行う。本実施の形態では、抽出手段の第3の部分画像を抽出する機能の一例として、ドット配列生成部22を備えている。
【0040】
ブロック検出部23は、ドット配列上で、符号ブロック内の単位符号パターンに対応するブロックを検出する。即ち、単位符号パターンと同じ大きさをもつ矩形のブロック区切りをドット配列上で適宜動かし、ブロック内のドット数が均等になる位置を正しいブロック区切り位置とし、各ブロック内のパターン値を格納した符号配列を生成する。本実施の形態では、抽出手段の第2の部分画像を抽出する機能の一例として、ブロック検出部23を備えている。
【0041】
同期符号検出部24は、ドット配列から検出された各単位符号パターンの種類を参照して、同期符号を検出する。
回転判定部25は、検出した同期符号に基づいて、画像の回転を判定する。例えば、正方形の単位符号パターンを用いた場合、90度単位で回転している可能性がある。そこで、検出した同期符号が4種類の同期パターンのいずれに対応しているかによって、その向きを検出する。また、長方形の単位符号パターンを用いた場合、180度単位で回転している可能性がある。そこで、検出された同期符号が2種類の同期パターンのいずれに対応しているかによって、その向きを検出する。
符号配列回転部26は、回転判定部25で検出された回転角度だけ符号配列を回転させて、符号配列を正しい向きに設定する。
【0042】
識別符号検出部30は、角度が補正された符号配列から、同期符号の位置を基準にして識別符号を検出する。本実施の形態では、ビット列を検出する検出手段、ビット列を決定する決定手段の一例として、識別符号検出部30を設けている。
識別符号復元部31は、検出された識別符号を正しい符号順に並べ替える。
識別符号復号部32は、図8を参照して説明したRS符号の符号化処理で用いたパラメータ(ブロック数等)と同じパラメータを用いて識別符号を復号し、識別情報を出力する。
識別符号誤り検出部33は、復号された識別符号の誤りを検出し、識別符号誤り訂正部34は、検出した誤りが訂正可能な誤りである場合に、その誤りを訂正する。
【0043】
X座標符号検出部40は、角度が補正された符号配列から、同期符号の位置を基準にしてX座標符号を検出する。
X座標符号復号部42は、検出されたX座標符号からM系列の部分系列を取り出し、画像生成に使用したM系列におけるこの部分系列の位置を参照し、この位置を同期符号によるオフセットで補正した値をX座標情報として出力する。
X座標符号誤り検出部43は、復号されたX座標符号の誤りを検出し、X座標符号誤り訂正部44は、検出した誤りが訂正可能な誤りである場合に、その誤りを訂正する。
【0044】
Y座標符号検出部45は、角度が補正された符号配列から、同期符号の位置を基準にしてY座標符号を検出する。
Y座標符号復号部47は、検出されたY座標符号からM系列の部分系列を取り出し、画像生成に使用したM系列におけるこの部分系列の位置を参照し、この位置を同期符号によるオフセットで補正した値をY座標情報として出力する。
Y座標符号誤り検出部48は、復号されたY座標符号の誤りを検出し、Y座標符号誤り訂正部49は、検出した誤りが訂正可能な誤りである場合に、その誤りを訂正する。
【0045】
尚、本実施の形態では、第2の部分画像の位置を検出する検出手段の一例として、X座標符号検出部40、X座標符号復号部42、X座標符号誤り検出部43、X座標符号誤り訂正部44、Y座標符号検出部45、Y座標符号復号部47、Y座標符号誤り検出部48、Y座標符号誤り訂正部49を備えている。
【0046】
座標補正部50は、X座標符号復号部42から出力されたX座標情報とY座標符号復号部47から出力されたY座標情報とからなる座標情報を補正して、ペン先中心の座標情報を取得する。ここで、補正は、予め与えられたペン先中心の撮像領域中心に対する相対座標や、画像読取部21から与えられた撮像領域中心の読み込み領域中心に対する相対座標等を用いて行う。本実施の形態では、第2の部分画像の位置を補正するために用いる情報を取得する取得手段の一例として、また、第2の部分画像の位置を補正する補正手段の一例として、座標補正部50を設けている。
情報出力部55は、識別符号復号部32、座標補正部50からそれぞれ取得した識別情報、ペン先中心のX座標情報及びY座標情報を出力する。
【0047】
尚、これらの機能は、ソフトウェアとハードウェア資源とが協働することにより実現される。具体的には、画像処理装置20のCPU91(図26参照)が、ドット配列生成部22、ブロック検出部23、同期符号検出部24、回転判定部25、符号配列回転部26、識別符号検出部30、識別符号復元部31、識別符号復号部32、識別符号誤り検出部33、識別符号誤り訂正部34、X座標符号検出部40、X座標符号復号部42、X座標符号誤り検出部43、X座標符号誤り訂正部44、Y座標符号検出部45、Y座標符号復号部47、Y座標符号誤り検出部48、Y座標符号誤り訂正部49、座標補正部50、情報出力部55を実現するプログラムを、例えば、磁気ディスク装置93(図26参照)からメインメモリ92(図26参照)に読み込んで実行することにより、実現される。また、磁気ディスク装置93(図26参照)に記憶されるプログラムやデータは、CD等の記録媒体からロードしてもよいし、インターネット等の通信手段を介してダウンロードしてもよい。
【0048】
次いで、この画像処理装置20の動作の概略を説明する。
最初に、画像読取部21は、紙面に印刷された符号画像を撮像素子で読み取る。
そして、ドット配列生成部22が、読み取った符号画像からドットの検出に適した領域を切り出す。この領域の切り出しは、公知の画像処理によって行えばよいが、例えば、次のような方法が考えられる。即ち、まず、撮像領域を複数の小領域に分割する。この場合、各小領域は1つのドットより大きなものとなるようにする。次に、小領域ごとに、その中のドットの部分とドット以外の部分とのコントラストを評価する。そして、最も高コントラストであった小領域を中心として、次に高コントラストであった周囲の小領域を連結していく。これを繰り返し、17ドット×17ドット分の大きさをカバーできる程度の大きさになるまで領域を広げていき、最終的に得られた領域を撮像領域から切り出す。
【0049】
このようにしてドットの検出に適した領域を切り出すと、ドット配列生成部22は、その領域の中から17ドット×17ドット分の大きさの読み込み領域を検出する。また、このドット画像におけるドット列の傾きも求める。
この場合、読み込み領域は、切り出した領域の中心部から選択すればよいが、その際もドットの部分とドット以外の部分とのコントラストの評価情報を用いるようにするとよい。
また、ドット列の傾きを求める方法にも種々のものがあるが、例えば、次のような方法を用いるとよい。即ち、まず、切り出した領域内のドットから、2つのドットからなる複数のドット対を検出する。この場合、ドット対としては、2つのドット間の距離が予め定められた距離に等しいものを選択する。本実施の形態では、図1のようなmCn方式の単位符号パターンで情報を表現するので、ここでの予め定められた距離としては、図1の左右又は上下の隣接する位置に2つのドットが配置された場合の距離を採用する。その後、この複数のドット対を、その傾きが直交する2つのグループに分け、それぞれの傾きを求めることでドット列の傾きを求める。
【0050】
ドット配列生成部22では、例えば、以上のような画像処理を行うことにより、撮像領域から読み込み領域を特定するが、その際、撮像領域中心の読み込み領域中心に対する相対位置(IRX,IRY)が分かるので、これを図示しないメモリに記憶しておく。また、上記で求めたドット列の傾きについても、IRDとして図示しないメモリに記憶しておく。但し、IRDは、ドット列の傾きから撮像領域の垂直方向への角度である。ドット列の方向は撮像素子の垂直方向と最も近いほうをとる。従って、IRDは、−90°から90°までの角度をとる。
【0051】
次に、ドット配列生成部22におけるドット配列の生成について説明する。
図12は、ドット配列生成部22によるドット画像からドット配列への変換を示した図である。図示するように、ドット配列生成部22は、読み込み領域内の画像を17×17のドットの配列へと変換する。この配列の各要素には、対応する位置にドットがあれば「1」が、対応する位置にドットがなければ「0」が格納される。
【0052】
また、ブロック検出部23は、読み込み領域に対応するドット配列上で、情報表現の最小単位であるブロックを検出する。
図13は、ブロック区切りを移動させてブロックを検出する際の処理を具体的に示した図である。ここでは、9C2方式で符号化が行われたことが分かっており、9C2方式で復号する場合について示している。
まず、ブロック検出部23は、ドット配列生成部22からドット配列を取得する。ここで取得するドット配列のサイズは予め設定されており、(復号に必要なブロック数×ブロックの一辺のドット数+ブロックの一辺のドット数−1)2である。ところが、このドット配列は、画像の任意に選択された領域に対応しているので、ブロック区切りの位置は分からない。そこで、初めに、ドット配列の端を基準にブロック分割を行う。この例では、m=9なので、3ドット×3ドットの大きさのブロックからなるブロック区切りを重ねる。次に、各ブロック内のドットを数える。この例では、n=2なので、各ブロック内に2ドットずつ存在する場合のブロック区切りの位置が正しい区切り位置であるが、この位置ではドット数がばらついており、正しくないことが分かる。そこで、ブロック区切りをずらしてブロック内のドット数を数える。即ち、右方向への開始位置、1ドット分移動した位置、2ドット分移動した位置について同様の動作を行う。また、これらの位置のそれぞれに対し、下方向への開始位置、1ドット移動した位置、2ドット移動した位置についても同様の動作を行う。その結果、右方向に1ドット移動し、下方向に2ドット移動した位置において、全てのブロック内のドット数が「2」となる。従って、この位置を正しい区切り位置とする。
【0053】
図14に、ブロック検出部23により決定された正しい区切り位置について示す。
ここでは、太線で示した位置にブロック区切りを重ねた場合に、全てのブロックに2つの「1」が含まれるので、この位置が正しいブロック区切りの位置となる。また、ブロックの検出はどの位置から開始してもよいが、ここでも、ドット配列の開始位置(左上)を起点としており、この起点から正しいブロック区切りの位置までのX方向の移動量をMX、Y方向の移動量をMYとしている。図では、MX=0、MY=1である。以下、この正しい区切り位置にブロック区切りを重ねることで得られる5ブロック×5ブロックの領域を「復号領域」と称する。
【0054】
また、ブロック検出部23は、各ブロックにおけるドット位置(「0」及び「1」の配置)からパターン値を求める。このとき、図3に示したドット位置とパターン値との対応を参照する。
図15は、各ブロックにパターン値を割り当てた場合の例を示した図である。
例えば、左上のブロックでは、ブロック内の左上と右下にドットがあることが示されているので、図3の対応からパターン値0となる。また、その右のブロックでは、ブロック内の左上と右中央にドットがあることが示されているので、図3の対応からパターン値12となる。
【0055】
次に、同期符号検出部24は、この中から、同期符号のパターン値を探す。本実施の形態では、パターン値32〜35の単位符号パターンを同期パターンとしているので、この番号を探す。図15の例では、パターン値35が同期符号となる。
図4を参照すると、パターン値35の同期符号は、正立した同期符号であるパターン値32の同期符号を右に270度回転した同期符号である。従って、符号配列を正立した方向にするには、符号配列を左に270度回転する必要がある。その場合、符号配列内の各要素のパターン値は、左に270度回転した場合のパターン値に変更する必要がある。
【0056】
図16は、正立位置の単位符号パターンのパターン値と、正立位置の単位符号パターンを右に90度回転した単位符号パターンのパターン値と、正立位置の単位符号パターンを右に180度回転した単位符号パターンのパターン値と、正立位置の単位符号パターンを右に270度回転した単位符号パターンのパターン値との対応表である。このような対応表を図示しないメモリに記憶し、同期符号検出部24は、この対応表を参照してパターン値を付け替えるようにすればよい。
【0057】
図17(a)は、このときのパターン値の変更を具体的に示したものである。例えば、左上のパターン値0のブロックは、左に270度回転することで、右上のパターン値1のブロックとなる。また、その右のパターン値12のブロックは、左に270度回転することで、最右列の上から2番目のパターン値13のブロックとなる。
また、符号配列を回転させた場合、復号領域から読み込み領域への変換や、撮像画像上の座標から符号画像上の座標への変換に用いる値も変更となる。前者は、復号領域の左上点に対する読み込み領域の左上点の相対座標(RDX,RDY)であり、後者は、読み込み領域に対する撮像領域の角度RDDである。
そこで、同期符号検出部24は、図17(b)に示すように、各同期パターンに対し、回転角度に加え、これらの情報を求め、対応付けて図示しないメモリに記憶しておく。
【0058】
その後、X座標符号検出部40、X座標符号復号部42、X座標符号誤り検出部43、X座標符号誤り訂正部44は、同期符号が配置された行の同期符号が配置されたブロック以外の4ブロックから各ブロックのX方向の位置を求める。また、Y座標符号検出部45、Y座標符号復号部47、Y座標符号誤り検出部48、Y座標符号誤り訂正部49は、同期符号が配置された列の同期符号が配置されたブロック以外の4ブロックから各ブロックのY方向の位置を求める。
図18において、右図は、同期符号が、左から2つ目、上から2つ目のブロックに配置されている例である。同期符号が配置された行における同期符号を挟むブロックを「X1」、「X2」、「X3」、「X4」とする。これらのブロックに配置された単位符号パターンのパターン値の組み合わせを、図7に示したパターン列と照合することで、「X1」がパターン列の何番目のブロックかが分かる。そして、同期パターンが配置されたブロック数を加算する補正を行うことで、「X1」のX方向のブロック位置BXを求める。また、Y方向についても同様にして「Y1」のY方向のブロック位置BYを求める。
【0059】
このようにX方向、Y方向のブロック位置が求まると、座標補正部50は、復号領域内の座標情報をペン先中心の座標情報へ変換する一連の処理を開始する。
図18において、左図には、復号領域の開始点のピクセル位置(DSX,DSY)を灰色で示している。つまり、「X1」の左端のピクセル位置はDSXであり、「Y1」の上端のピクセル位置はDSYである。1ブロックは12ピクセルなので、(DSX,DSY)は、DSX=(BX−1)×12+1
DSY=(BY−1)×12+1
により求められる。
【0060】
以上の処理により、復号領域の左上のピクセル位置は求められるが、先に述べたように、復号領域と読み込み領域とは同じ位置ではないので、読み込み領域の位置を求めるためには、補正が必要である。この補正では、図17(b)に示した(RDX,RDY)を用いる。この値から、読み込み領域の左上の座標(RSX,RSY)は、
RSX=DSX+RDX
RSY=DSY+RDY
により求められる。
【0061】
また、読み込み領域の幅と高さは予め決められた設計値である。そこで、これらをそれぞれDAW,DAHとすると、読み込み領域中心(CRX,CRY)は、
CRX=RSX+DAW/2
CRY=RSY+DAH/2
により求められる。尚、ここまでの各座標は、符号画像上での座標である。
【0062】
更に、撮像領域中心を求める必要がある。読み込み領域中心に対する撮像領域中心の相対座標(IRX,IRY)は、ドット配列生成部22によって既に与えられている。また、ペンデバイスの仕様から、撮像領域中心に対するペン先中心の相対座標(IPX,IPY)も定まっている。これにより、読み込み領域中心に対するペン先中心の相対座標は、(IRX+IPX,IRY+IPY)となる。しかし、この座標は、撮像画像上の座標であるので、符号画像上の座標に変換する必要がある。これら2つの座標は、読み込み領域中心を軸として、右方向に一定角度回転している。そこで、符号画像上での座標は、回転の座標変換により、
((IRX+IPX)cosRDD+(IRY+IPY)sinRDD,
−(IRX+IPX)sinRDD+(IRY+IPY)cosRDD)
となる。
【0063】
これらを総合すると、ペン先中心の符号画像上での座標(PPX,PPY)は、
PPX=(IRX+IPX)cosRDD+(IRY+IPY)sinRDD+DSX+RDX+DAW/2
PPY=−(IRX+IPX)sinRDD+(IRY+IPY)cosRDD+DSY+RDY+DAH/2
と求められる。
【0064】
図19に、ペン先中心の座標を求めるのに用いられる各座標の位置関係を示す。本実施の形態では、上述したように、復号領域開始点から読み込み領域開始点が求められ、読み込み領域開始点から読み込み領域中心が求められる。また、読み込み領域中心から撮像領域中心が求められ、撮像領域中心からペン先中心が求められる。また、図19では、符号画像の上部方向と撮像画像の上部方向も示されている。このように、符号画像と撮像画像には角度差があるので、読み込み領域中心から撮像領域中心やペン先中心を求める際には、この角度差を考慮している。
【0065】
以上の手順を整理すると、次のようになる。
図20は、この手順を説明するための図である。尚、以下の手順の番号と図中の番号とは対応している。
(1)復号領域の開始点(左上点)の座標(DSX,DSY)を求める。
(2)予め求められていた(RDX,RDY)を用いて、読み込み領域の開始点(左上点)の座標(DSX+RDX,DSY+RDY)を求める。
(3)復号に必要な領域のサイズ(DAW,DAH)から、読み込み領域中心の座標を求める。
(4)撮像画像上で、撮像領域中心及びペン先中心の読み込み領域中心に対する座標を求める。
(5)(4)で求めた座標を符号画像上での座標に変換し、(3)で求めた読み込み領域中心の座標に加算することで、符号画像上でのペン先中心の座標(PPX,PPY)を求める。
【0066】
尚、本実施の形態では、媒体から読み取られた第1の部分画像の一例として、撮像領域を用い、媒体上での自身の位置を表す第2の部分画像の一例として、復号領域を用いている。そして、第1の部分画像から抽出された部分画像であって、第2の部分画像の抽出に用いられる部分画像である第3の部分画像の一例として、読み込み領域を用いている。
また、指示手段により指示された位置の第1の部分画像の中心からの距離及び方向を特定する情報の一例として、(IPX,IPY)を用いている。更に、第1の部分画像の中心の第3の部分画像の中心からの距離及び方向を特定する情報の一例として、(IRX,IRY)を用いている。更にまた、第1の部分画像の第3の部分画像に対する回転角度を特定する情報の一例として、IRDを用いている。また、第3の部分画像の1つの頂点の第2の部分画像の1つの頂点からの垂直軸方向及び水平軸方向の変位を特定する情報の一例として、(RDX,RDY)を用いている。
【0067】
次いで、画像処理装置20の動作について更に詳しく説明する。尚、この動作の説明では、9C2方式の単位符号パターンが図5に示したレイアウトで配置されていることを前提とする。
まず、ブロック検出部23の動作について説明する。
図21は、ブロック検出部23の動作例を示したフローチャートである。
まず、ブロック検出部23は、ドット配列生成部22からドット配列を取得する(ステップ201)。このドット配列の大きさは、上述したように、(復号に必要なブロック数×ブロックの一辺のドット数+ブロックの一辺のドット数−1)2である。本実施の形態では、復号に必要なブロック数は5×5であり、ブロックの一辺のドット数が3であるので、17×17のドット配列を取得する。
【0068】
次に、取得したドット配列に、ブロック区切りを重ね合わせる(ステップ202)。本実施の形態では、5×5のブロック区切りが用いられる。そして、カウンタI、Jに「0」を代入し、MaxBNにも「0」を代入する(ステップ203)。
ここで、I、Jは、ブロック区切りを初期位置から移動させたステップ数をカウントするものである。画像の1ラインごとにブロック区切りを移動させ、そのとき移動させたライン数をカウンタI、Jでカウントする。また、MaxBNは、ブロック内で検出されるドット数が「2」となるブロック数をブロック区切りを移動させながらカウントしていったときに、最大となるカウント値を記録するものである。
【0069】
次に、ブロック検出部23は、ブロック区切りをX方向にI、Y方向にJ移動させる(ステップ204)。初期状態においてI、Jは「0」であるので、ブロック区切りは移動しない。そして、ブロック区切りの各ブロックに含まれるドット数をカウントして、ドット数が「2」となるブロックの数をカウントする。カウントしたブロック数はIB[I,J]に格納する(ステップ205)。IB[I,J]のI、Jには、ブロック区切りの移動量を示すIとJの値がそれぞれ記録される。
【0070】
次に、ブロック検出部23は、IB[I,J]とMaxBNとを比較する(ステップ206)。MaxBNは初期値が「0」であるので、最初の比較では、IB[I,J]がMaxBNよりも大きくなる。この場合、MaxBNにIB[I,J]の値を代入すると共に、IにMXの値を、JにMYの値を代入する(ステップ207)。尚、IB[I,J]がMaxBN以下である場合は、MaxBN、MX、MYの値はそのままにしておく。
【0071】
その後、ブロック検出部23は、I=2であるかどうかを判定する(ステップ208)。
ここで、I=2でない場合には、Iに「1」を加算する(ステップ209)。そして、ステップ204、205の処理を繰り返し行い、IB[I,J]とMaxBNとを比較していく(ステップ206)。
IB[I,J]が前回までのIB[I,J]の最大値であるMaxBNよりも大きいと、MaxBNにIB[I,J]の値を代入し、そのときのIにMXの値を、JにMYの値を代入する(ステップ207)。また、MaxBNのほうがIB[I,J]よりも大きい場合には、I=2であるかどうかを判定する(ステップ208)。I=2となると、次にJ=2であるかどうかを判定する(ステップ210)。J=2でない場合には、Iに「0」を代入し、Jに「1」を加算する(ステップ211)。このような手順を繰り返し行い、(I,J)が(0,0)から(2,2)までで、IB[I,J]が最大のものを検出する。
【0072】
I=2、J=2までの処理が終了すると、ブロック検出部23は、保存しているMaxBNと閾値TBとを比較する(ステップ212)。閾値TBは、ドット数が「2」のブロックの数が復号可能な程度のものかを判定するための閾値である。
ここで、MaxBNが閾値TBよりも大きい場合には、ブロック区切りをMX、MYの位置に固定し、その位置で各ブロックのパターン値を検出する。そして、検出したパターン値を、各ブロックを識別する変数X、Yと共に符号配列PA[X,Y]としてメモリに記録する(ステップ213)。尚、このとき、対応するパターン値に変換することができなければ、パターン値として用いられていない「99」を記録する。そして、ブロック検出部23は、MX、MYと、符号配列PA[X,Y]とを同期符号検出部24に出力する(ステップ214)。
一方、MaxBNが閾値TB以下である場合には、画像のノイズが大きく復号は不可能と判定し、復号不能を出力する(ステップ215)。
【0073】
次に、同期符号検出部24の動作について説明する。
図22は、同期符号検出部24の動作例を示したフローチャートである。
まず、同期符号検出部24は、ブロック検出部23からMX、MYと、符号配列PA[X,Y]とを取得する(ステップ251)。
次に、同期符号検出部24は、K、Lに「1」を代入する(ステップ252)。尚、KはX方向のブロック数を示すカウンタであり、LはY方向のブロック数を示すカウンタである。
【0074】
次に、同期符号検出部24は、PA[K,L]のパターン値が32かどうかを判定する(ステップ253)。
PA[K,L]のパターン値が32であれば、符号配列PA[X,Y]の回転は必要ないと判定し、同期符号のあるブロックのX座標SXにKを代入し、Y座標SYにLを代入する。また、ブロック区切りのX方向への移動量ShiftXにMXを代入し、Y方向への移動量ShiftYにMYを代入する(ステップ254)。
尚、本実施の形態では、このとき、図17(b)に示すように、復号領域開始点から読み込み領域開始点への補正量RDX、RDYと、撮像画像上での座標を符号画像上での座標に変換する際の回転量RDDとを記憶しておく。具体的には、RDX=−MX×4、RDY=−MY×4、RDD=IRDにより、各値を求めて記憶しておく。ここで、1ドットの間隔が4ピクセルであることから、ドットで数えた座標からピクセルで数えた座標へと変換するために4を掛けている。
【0075】
次に、同期符号検出部24は、PA[K,L]のパターン値が33かどうかを判定する(ステップ255)。
PA[K,L]のパターン値が33であれば、符号配列PA[X,Y]を左方向に90度回転させる(ステップ256)。図4に示すようにパターン値33の単位符号パターンは、パターン値32の単位符号パターンを右方向に90度回転させた画像であるので、逆方向に90度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、左方向に90度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXにLを代入し、Y座標SYに6−Kを代入する。また、ブロック区切りのX方向への移動量ShiftXにMYを代入し、Y方向への移動量ShiftYに2−MXを代入する(ステップ257)。
尚、本実施の形態では、このとき、図17(b)に示すように、復号領域開始点から読み込み領域開始点への補正量RDX、RDYと、撮像画像上での座標を符号画像上での座標に変換する際の回転量RDDとを記憶しておく。具体的には、RDX=−MY×4、RDY=−(2−MX)×4、RDD=270+IRDにより、各値を求めて記憶しておく。RDDは、符号画像上の垂直方向からの回転角に変換している。
【0076】
次に、同期符号検出部24は、PA[K,L]のパターン値が34かどうかを判定する(ステップ258)。
PA[K,L]のパターン値が34であれば、符号配列PA[X,Y]を左方向に180度回転させる(ステップ259)。図4に示すようにパターン値34の単位符号パターンは、パターン値32の単位符号パターンを180度回転させた画像であるので、パターン値34の単位符号パターンを180度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、180度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXに6−Kを代入し、Y座標SYに6−Lを代入する。また、ブロック区切りのX方向への移動量ShiftXに2−MXを代入し、Y方向への移動量ShiftYに2−MYを代入する(ステップ260)。
尚、本実施の形態では、このとき、図17(b)に示すように、復号領域開始点から読み込み領域開始点への補正量RDX、RDYと、撮像画像上での座標を符号画像上での座標に変換する際の回転量RDDとを記憶しておく。具体的には、RDX=−(2−MX)×4、RDY=−(2−MY)×4、RDD=180+IRDにより、各値を求めて記憶しておく。
【0077】
次に、同期符号検出部24は、PA[K,L]のパターン値が35かどうかを判定する(ステップ261)。
PA[K,L]のパターン値が35であれば、符号配列PA[X,Y]を左方向に270度回転させる(ステップ262)。図4に示すようにパターン値35の単位符号パターンは、パターン値32の単位符号パターンを右に270度回転させた画像であるので、逆方向に270度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、左方向に270度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXに6−Lを代入し、Y座標SYにKを代入する。また、ブロック区切りのX方向への移動量ShiftXに2−MYを代入し、Y方向への移動量ShiftYにMXを代入する(ステップ263)。
尚、本実施の形態では、このとき、図17(b)に示すように、復号領域開始点から読み込み領域開始点への補正量RDX、RDYと、撮像画像上での座標を符号画像上での座標に変換する際の回転量RDDとを記憶しておく。具体的には、RDX=−(2−MY)×4、RDY=−MX×4、RDD=90+IRDにより、各値を求めて記憶しておく。
【0078】
そして、ステップ254、257、260、263で、SX、SY、ShiftX、ShiftYに値が代入された場合、同期符号検出部24は、これらの値を識別符号検出部30、X座標符号検出部40、Y座標符号検出部45に出力する(ステップ264)。
また、PA[K,L]がパターン値32〜35のいずれでもなければ、同期符号検出部24は、K=5であるかどうかを判定する(ステップ265)。K=5でない場合には、Kに「1」を加算し(ステップ266)、ステップ253に戻る。K=5であれば、L=5であるかどうかを判定する(ステップ267)。L=5でない場合には、Kに「1」を代入し、Lに「1」を加算し(ステップ268)、ステップ253に戻る。即ち、ステップ253〜264の処理を、パターン値32〜35のブロックを検出するまでK、Lの値を変更しながら繰り返し行う。また、K=5、L=5になっても、パターン値32〜35のブロックを検出することができなかった場合には、復号不能の判定信号を出力する(ステップ269)。
【0079】
尚、ステップ253、255、258、261の処理は、同期符号検出部24による制御の下、回転判定部25が行うようにするとよい。また、ステップ254、256、257、259、260、262、263の処理は、同期符号検出部24による制御の下、符号配列回転部26が行うようにするとよい。
【0080】
次に、X座標符号検出部40の動作について説明する。
図23は、X座標符号検出部40の動作例を示したフローチャートである。
まず、X座標符号検出部40は、同期符号検出部24から符号配列PA[X,Y]、SX、SYを取得する(ステップ401)。
次に、X座標符号検出部40は、X座標符号配列XA[X,0]の全ての要素を「99」で初期化する(ステップ402)。尚、この「99」は、パターン値として用いられていない番号とする。そして、符号ブロックにおける各ブロックを識別するためのカウンタIX、IYに「1」を代入する。ここで、IXは、X方向のブロック数を示すカウンタであり、IYは、Y方向のブロック数を示すカウンタである。更に、X座標符号検出部40は、X座標符号配列における各要素を識別するためのカウンタKXにも「1」を代入する(ステップ403)。
【0081】
また、X座標符号検出部40は、IY−SYが「5」で割り切れるかどうかを判定する(ステップ404)。即ち、IYで特定されるブロックに同期符号が配置されているかどうかを判定する。
ここで、IY−SYが「5」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合は、X座標符号を取り出す対象ではないため、IYに「1」を加算し(ステップ405)、ステップ404へ進む。
一方、IY−SYが「5」で割り切れた場合、つまり、このブロックに同期符号が配置されている場合、X座標符号検出部40は、IX−SXが「5」で割り切れるかどうかを判定する(ステップ406)。即ち、IXで特定されるブロックに同期符号が配置されているかどうかを判定する。
【0082】
ここで、IX−SXが「5」で割り切れた場合、つまり、このブロックに同期符号が配置されている場合は、X座標符号を取り出す対象ではないため、IXに「1」を加算し(ステップ407)、ステップ406へ進む。
一方、IX−SXが「5」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合、X座標符号検出部40は、XA[KX,0]にPA[IX,IY]を代入する(ステップ408)。
【0083】
そして、IX=5であるかどうかを判定する(ステップ409)。
ここで、IX=5でない場合には、KXに「1」を加算し(ステップ410)、IXに「1」を加算して(ステップ407)、ステップ406〜408の処理をIX=5となるまで繰り返し行う。また、IX=5となると、次に、IY=5であるかどうかを判定する(ステップ411)。IY=5でない場合には、IX、KXに「1」を代入し(ステップ412)、IYに「1」を加算して(ステップ405)、ステップ404〜410の処理をIY=5となるまで繰り返し行う。また、IY=5となると、X座標符号検出部40は、X座標符号配列XA[X,0]をX座標符号復号部42に出力する(ステップ413)。
尚、ここでは、X座標符号検出部40の動作のみ説明したが、Y座標符号検出部45も同様の動作を行う。
以上により、本実施の形態における画像処理装置20の詳細な動作説明を終了する。
【0084】
次に、座標補正部50の動作について説明する。
図24は、座標補正部50の動作例を示したフローチャートである。
まず、座標補正部50は、撮像領域中心に対するペン先中心の相対座標(IPX,IPY)と、読み込み領域中心に対する撮像領域中心の相対座標(IRX,IRY)とを取得する(ステップ501)。ここで、(IPX,IPY)は、ペンデバイスの仕様として、図示しないメモリに予め記憶されているので、それを読み出す。また、(IRX,IRY)は、ドット配列生成部22によるドット画像の検出時にメモリに記憶されているので、それを読み出す。
【0085】
次に、座標補正部50は、ブロック区切りの移動量のピクセル数(RDX,RDY)と、撮像領域の読み込み領域に対する回転角RDDを取得する(ステップ502)。ここで、これらの値は、同期符号検出部24による回転検出時にメモリに記憶されているので、それを読み出す。
また、座標補正部50は、X座標符号復号部42から符号ブロックの左端のブロックの位置BXを取得すると共に、Y座標符号復号部47から符号ブロックの上端のブロックの位置BYを取得する(ステップ503)。
【0086】
その後、座標補正部50は、復号領域開始点のピクセル位置(DSX,DSY)を求め(ステップ504)、更に、これを読み込み領域開始点のピクセル位置(RSX,RSY)に変換する(ステップ505)。そして、最後に、読み込み領域中心のピクセル位置(CRX,CRY)を求め(ステップ506)、ペン先中心のピクセル位置(PPX,PPY)を求める(ステップ507)。尚、これらのステップにおけるピクセル位置の変換式については、これまでの説明で詳しく述べているので、ここでの説明は省略する。
【0087】
以上により、本実施の形態の動作の説明を終了する。
ところで、本実施の形態では、まず、復号領域の位置を求め、次に、読み込み領域の位置を求め、更に、撮像領域の位置を求めて、ペン先の位置を求めるようにした。しかしながら、必ずしもこれらの全ての位置を求めなければならないわけではない。例えば、mCn方式以外の符号化方式を採用した場合、復号領域と読み込み領域を同一視できる場合もあると考えられる。そのような場合は、復号領域から直接撮像領域を求めるようにしてもよい。
【0088】
次に、本実施の形態における画像処理装置20の具体的なハードウェア構成について説明する。
まず、画像処理装置20を実現するペンデバイス60について説明する。
図25は、ペンデバイス60の機構を示した図である。
図示するように、ペンデバイス60は、ペン全体の動作を制御する制御回路61を備える。また、制御回路61は、入力画像から検出した符号画像を処理する画像処理部61aと、そこでの処理結果から識別情報及び位置情報を抽出するデータ処理部61bとを含む。
そして、制御回路61には、ペンデバイス60による筆記動作をペンチップ69に加わる圧力によって検出する圧力センサ62が接続されている。また、媒体上に赤外光を照射する赤外LED63と、画像を入力する赤外CMOS64も接続されている。更に、識別情報及び位置情報を記憶するための情報メモリ65と、外部装置と通信するための通信回路66と、ペンを駆動するためのバッテリ67と、ペンの識別情報(ペンID)を記憶するペンIDメモリ68も接続されている。
【0089】
尚、図11に示した画像読取部21は、例えば、図25の赤外CMOS64にて実現される。また、ドット配列生成部22は、例えば、図25の画像処理部61aにて実現される。更に、図11に示したブロック検出部23、同期符号検出部24、回転判定部25、符号配列回転部26、識別符号検出部30、識別符号復元部31、識別符号復号部32、識別符号誤り検出部33、識別符号誤り訂正部34、X座標符号検出部40、X座標符号復号部42、X座標符号誤り検出部43、X座標符号誤り訂正部44、Y座標符号検出部45、Y座標符号復号部47、Y座標符号誤り検出部48、Y座標符号誤り訂正部49、座標補正部50、情報出力部55は、例えば、図25のデータ処理部61bにて実現される。
【0090】
また、本実施の形態では、媒体上の位置を指示する指示手段の一例として、ペンデバイス60のペンチップ69を設けたが、これには限らない。媒体に筆記を行うための構成ではなく、単に媒体上の所定位置をポイントするための構成を指示手段として捉えてもよい。
【0091】
また、図25の画像処理部61a又はデータ処理部61bにて実現される処理は、例えば、汎用のコンピュータで実現してもよい。そこで、かかる処理をコンピュータ90で実現するものとし、コンピュータ90のハードウェア構成について説明する。
図26は、コンピュータ90のハードウェア構成を示した図である。
図示するように、コンピュータ90は、演算手段であるCPU(Central Processing Unit)91と、記憶手段であるメインメモリ92及び磁気ディスク装置(HDD:Hard Disk Drive)93とを備える。ここで、CPU91は、OS(Operating System)やアプリケーション等の各種ソフトウェアを実行し、上述した各機能を実現する。また、メインメモリ92は、各種ソフトウェアやその実行に用いるデータ等を記憶する記憶領域であり、磁気ディスク装置93は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。
更に、コンピュータ90は、外部との通信を行うための通信I/F94と、ビデオメモリやディスプレイ等からなる表示機構95と、キーボードやマウス等の入力デバイス96とを備える。
【0092】
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、CD−ROM等の記録媒体に格納して提供することも可能である。
【図面の簡単な説明】
【0093】
【図1】9Cn方式における単位符号パターンの一例を示した図である。
【図2】9Cn方式における単位符号パターンの他の例を示した図である。
【図3】9C2方式における単位符号パターンとパターン値の対応を示した図である。
【図4】9C2方式における同期パターンの例を示した図である。
【図5】符号ブロックの基本的なレイアウトの例を示した図である。
【図6】符号ブロックの紙面上のレイアウトの例を示した図である。
【図7】M系列による座標の表現について説明するための図である。
【図8】本実施の形態における画像生成装置の機能構成を示したブロック図である。
【図9】ペン先中心と撮像領域中心とのズレについて説明するための図である。
【図10】ペン先中心と撮像領域と読み込み領域とのズレについて説明するための図である。
【図11】本実施の形態における画像処理装置の機能構成を示したブロック図である。
【図12】ドット配列を生成する際の処理を説明するための図である。
【図13】ドット配列上でブロックを検出する際の処理を説明するための図である。
【図14】ドット配列上でブロックを検出した後の状態を説明するための図である。
【図15】ドット配列から符号配列へ変換する際の処理を説明するための図である。
【図16】回転角度とパターン番号の対応を示した図である。
【図17】符号配列の回転及び回転に伴う情報の記憶について説明するための図である。
【図18】復号領域開始点を求める際の処理について説明するための図である。
【図19】復号領域開始点からペン先中心を求めるまでの各座標の関係を示した図である。
【図20】座標の変換についてまとめた図である。
【図21】本実施の形態におけるブロック検出部の動作例を示したフローチャートである。
【図22】本実施の形態における同期符号検出部の動作例を示したフローチャートである。
【図23】本実施の形態におけるX座標符号検出部の動作例を示したフローチャートである。
【図24】本実施の形態における座標補正部の動作例を示したフローチャートである。
【図25】本実施の形態における画像処理装置を実現可能なペンデバイスの機構を示した図である。
【図26】本実施の形態を適用可能なコンピュータのハードウェア構成図である。
【符号の説明】
【0094】
10…画像生成装置、20…画像処理装置、21…画像読取部、22…ドット配列生成部、23…ブロック検出部、24…同期符号検出部、25…回転判定部、26…符号配列回転部、30…識別符号検出部、31…識別符号復元部、32…識別符号復号部、33…識別符号誤り検出部、34…識別符号誤り訂正部、40…X座標符号検出部、42…X座標符号復号部、43…X座標符号誤り検出部、44…X座標符号誤り訂正部、45…Y座標符号検出部、47…Y座標符号復号部、48…Y座標符号誤り検出部、49…Y座標符号誤り訂正部、50…座標補正部、55…情報出力部
【特許請求の範囲】
【請求項1】
媒体上の位置を指示する指示手段と、
前記媒体に印刷された画像に含まれる第1の部分画像を読み取る読取手段と、
前記読取手段により読み取られた前記第1の部分画像から、前記媒体上での自身の位置を表す第2の部分画像を抽出する抽出手段と、
前記抽出手段により抽出された前記第2の部分画像を用いて、前記媒体上での当該第2の部分画像の位置を検出する検出手段と、
前記指示手段により指示された位置の前記第1の部分画像に対する相対位置を示す第1の情報と、前記第1の部分画像の前記第2の部分画像に対する相対位置を示す第2の情報とを取得する取得手段と、
前記検出手段により検出された前記第2の部分画像の位置を、前記第1の情報と前記第2の情報とを用いて補正する補正手段と
を備えたことを特徴とする位置検出装置。
【請求項2】
前記取得手段は、前記指示手段により指示された位置の前記第1の部分画像の中心からの距離及び方向を特定する情報を、前記第1の情報として取得することを特徴とする請求項1記載の位置検出装置。
【請求項3】
前記抽出手段は、前記第1の部分画像から第3の部分画像を抽出した後、当該第3の部分画像から前記第2の部分画像を抽出し、
前記取得手段は、前記第2の情報を、前記第1の部分画像の前記第3の部分画像に対する相対位置を示す第3の情報と、前記第3の部分画像の前記第2の部分画像に対する相対位置を示す第4の情報とに分けて取得することを特徴とする請求項1記載の位置検出装置。
【請求項4】
前記取得手段は、前記第1の部分画像の中心の前記第3の部分画像の中心からの距離及び方向を特定する情報を、前記第3の情報として取得することを特徴とする請求項3記載の位置検出装置。
【請求項5】
前記取得手段は、前記第1の部分画像の前記第3の部分画像に対する回転角度を特定する情報を、前記第3の情報として更に取得することを特徴とする請求項4記載の位置検出装置。
【請求項6】
前記第2の部分画像及び前記第3の部分画像は、垂直軸及び水平軸を共有する矩形をなしており、
前記取得手段は、前記第3の部分画像の1つの頂点の前記第2の部分画像の1つの頂点からの前記垂直軸方向及び前記水平軸方向の変位を特定する情報を、前記第4の情報として取得することを特徴とする請求項3記載の位置検出装置。
【請求項7】
前記第2の部分画像は、m(m≧4)箇所のうちのn(2≦n<m)箇所に単位画像を配置したパターン画像を前記垂直軸方向にAx(Ax≧2)個、前記水平軸方向にAy(Ay≧2)個配置してなる画像であり、
前記抽出手段は、前記パターン画像と略同じ大きさの区画を前記垂直軸方向にAx個、前記水平軸方向にAy個配置してなる枠を、前記第3の部分画像上で移動し、n個の単位画像を含む区画が所定数以上となる移動位置を求め、当該移動位置における当該枠内の画像を前記第2の部分画像として抽出し、
前記取得手段は、前記移動位置までの前記枠の前記垂直軸方向及び前記水平軸方向の移動量を、前記変位を特定する情報として取得することを特徴とする請求項6記載の位置検出装置。
【請求項8】
コンピュータに、
媒体に印刷された画像から読み取られた当該画像の第1の部分画像から、当該媒体上での自身の位置を表す第2の部分画像を抽出する機能と、
抽出された前記第2の部分画像を用いて、前記媒体上での当該第2の部分画像の位置を検出する機能と、
指示手段により指示された前記媒体上の位置の前記第1の部分画像に対する相対位置を示す第1の情報と、前記第1の部分画像の前記第2の部分画像に対する相対位置を示す第2の情報とを取得する機能と、
検出された前記第2の部分画像の位置を、前記第1の情報と前記第2の情報とを用いて補正する機能と
を実現させるためのプログラム。
【請求項9】
前記抽出する機能では、前記第1の部分画像から第3の部分画像を抽出した後、当該第3の部分画像から前記第2の部分画像を抽出し、
前記取得する機能では、前記第2の情報を、前記第1の部分画像の前記第3の部分画像に対する相対位置を示す第3の情報と、前記第3の部分画像の前記第2の部分画像に対する相対位置を示す第4の情報とに分けて取得することを特徴とする請求項8記載のプログラム。
【請求項1】
媒体上の位置を指示する指示手段と、
前記媒体に印刷された画像に含まれる第1の部分画像を読み取る読取手段と、
前記読取手段により読み取られた前記第1の部分画像から、前記媒体上での自身の位置を表す第2の部分画像を抽出する抽出手段と、
前記抽出手段により抽出された前記第2の部分画像を用いて、前記媒体上での当該第2の部分画像の位置を検出する検出手段と、
前記指示手段により指示された位置の前記第1の部分画像に対する相対位置を示す第1の情報と、前記第1の部分画像の前記第2の部分画像に対する相対位置を示す第2の情報とを取得する取得手段と、
前記検出手段により検出された前記第2の部分画像の位置を、前記第1の情報と前記第2の情報とを用いて補正する補正手段と
を備えたことを特徴とする位置検出装置。
【請求項2】
前記取得手段は、前記指示手段により指示された位置の前記第1の部分画像の中心からの距離及び方向を特定する情報を、前記第1の情報として取得することを特徴とする請求項1記載の位置検出装置。
【請求項3】
前記抽出手段は、前記第1の部分画像から第3の部分画像を抽出した後、当該第3の部分画像から前記第2の部分画像を抽出し、
前記取得手段は、前記第2の情報を、前記第1の部分画像の前記第3の部分画像に対する相対位置を示す第3の情報と、前記第3の部分画像の前記第2の部分画像に対する相対位置を示す第4の情報とに分けて取得することを特徴とする請求項1記載の位置検出装置。
【請求項4】
前記取得手段は、前記第1の部分画像の中心の前記第3の部分画像の中心からの距離及び方向を特定する情報を、前記第3の情報として取得することを特徴とする請求項3記載の位置検出装置。
【請求項5】
前記取得手段は、前記第1の部分画像の前記第3の部分画像に対する回転角度を特定する情報を、前記第3の情報として更に取得することを特徴とする請求項4記載の位置検出装置。
【請求項6】
前記第2の部分画像及び前記第3の部分画像は、垂直軸及び水平軸を共有する矩形をなしており、
前記取得手段は、前記第3の部分画像の1つの頂点の前記第2の部分画像の1つの頂点からの前記垂直軸方向及び前記水平軸方向の変位を特定する情報を、前記第4の情報として取得することを特徴とする請求項3記載の位置検出装置。
【請求項7】
前記第2の部分画像は、m(m≧4)箇所のうちのn(2≦n<m)箇所に単位画像を配置したパターン画像を前記垂直軸方向にAx(Ax≧2)個、前記水平軸方向にAy(Ay≧2)個配置してなる画像であり、
前記抽出手段は、前記パターン画像と略同じ大きさの区画を前記垂直軸方向にAx個、前記水平軸方向にAy個配置してなる枠を、前記第3の部分画像上で移動し、n個の単位画像を含む区画が所定数以上となる移動位置を求め、当該移動位置における当該枠内の画像を前記第2の部分画像として抽出し、
前記取得手段は、前記移動位置までの前記枠の前記垂直軸方向及び前記水平軸方向の移動量を、前記変位を特定する情報として取得することを特徴とする請求項6記載の位置検出装置。
【請求項8】
コンピュータに、
媒体に印刷された画像から読み取られた当該画像の第1の部分画像から、当該媒体上での自身の位置を表す第2の部分画像を抽出する機能と、
抽出された前記第2の部分画像を用いて、前記媒体上での当該第2の部分画像の位置を検出する機能と、
指示手段により指示された前記媒体上の位置の前記第1の部分画像に対する相対位置を示す第1の情報と、前記第1の部分画像の前記第2の部分画像に対する相対位置を示す第2の情報とを取得する機能と、
検出された前記第2の部分画像の位置を、前記第1の情報と前記第2の情報とを用いて補正する機能と
を実現させるためのプログラム。
【請求項9】
前記抽出する機能では、前記第1の部分画像から第3の部分画像を抽出した後、当該第3の部分画像から前記第2の部分画像を抽出し、
前記取得する機能では、前記第2の情報を、前記第1の部分画像の前記第3の部分画像に対する相対位置を示す第3の情報と、前記第3の部分画像の前記第2の部分画像に対する相対位置を示す第4の情報とに分けて取得することを特徴とする請求項8記載のプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【公開番号】特開2008−299508(P2008−299508A)
【公開日】平成20年12月11日(2008.12.11)
【国際特許分類】
【出願番号】特願2007−143628(P2007−143628)
【出願日】平成19年5月30日(2007.5.30)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
【公開日】平成20年12月11日(2008.12.11)
【国際特許分類】
【出願日】平成19年5月30日(2007.5.30)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
[ Back to top ]