JP2009181341A - 位置検出装置及びプログラム - Google Patents

位置検出装置及びプログラム Download PDF

Info

Publication number
JP2009181341A
JP2009181341A JP2008019753A JP2008019753A JP2009181341A JP 2009181341 A JP2009181341 A JP 2009181341A JP 2008019753 A JP2008019753 A JP 2008019753A JP 2008019753 A JP2008019753 A JP 2008019753A JP 2009181341 A JP2009181341 A JP 2009181341A
Authority
JP
Japan
Prior art keywords
code
position information
image
information
pattern
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2008019753A
Other languages
English (en)
Inventor
Takashi Sonoda
隆志 園田
Kenji Onishi
健司 大西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2008019753A priority Critical patent/JP2009181341A/ja
Publication of JP2009181341A publication Critical patent/JP2009181341A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】媒体上の指示された位置に対応する撮像画像上の真の位置と設定値による位置との間にズレがあっても、媒体上の指示された位置を特定する。
【解決手段】画像を読み取る画像読取部21と、画像からドットを検出してドット配列を生成するドット配列生成部22と、ドット配列からブロックを検出して符号配列を生成するブロック検出部23と、符号配列から同期符号を検出する同期符号検出部24と、同期符号に基づいて識別符号を検出する識別符号検出部30と、識別符号を復号して識別情報を取得する識別符号復号部32と、同期符号に基づいて座標符号を検出するX座標符号検出部40及びY座標符号検出部45と、座標符号を復号して座標情報を取得するX座標符号復号部42及びY座標符号復号部47と、座標情報からペン先座標を求めるための補正値を調整してからペン先座標を求める座標補正部50とを備える。
【選択図】図12

Description

本発明は、位置検出装置、プログラムに関する。
表面上の複数の位置を符号化する位置コードを提供する方法は知られている(例えば、特許文献1参照)。この特許文献1では、循環数字列を表面に沿って複数回印刷する。その際、循環数字列の異なるローテーションを、隣り合う数字列間で所定のずれが起こるように使用し、表面を分割した複数のコードウィンドウが、少なくとも3つの循環数字列を備えると共に、隣り合うコードウィンドウの1つの数字列と重なり合う1つの数字列を有するものであり、また、コードウィンドウの位置を、そのコードウィンドウに属している循環数字列間のずれによって符号化している。
論理的に順位付けられたデジタル量子の機械読取り可能なエンコーディングを記録した記録媒体からのエンコーディングの空間的に非同期的な読取りを可能にする技術も知られている(例えば、特許文献2参照)。この特許文献2では、本質的に同一であるエンコーディングの多数のコピーを形成し、機械認識可能な空間同期指標をエンコーディングのコピーの各々の中のプリント位置に組み合わせて、エンコーディングの空間的に同期可能な多数の事例を提供し、それらの事例をレイアウト規則に従って記録媒体における空間的に周期的な中心の格子に書き込んでいる。
取り込まれた画像の位置をより大きい画像から決定するためのシステム及び方法も知られている(例えば、特許文献3参照)。この特許文献3では、非反復的な系列を、所定のサイズのサブウィンドウ毎に固有とされた非反復的な配列に折り畳み、その取り込まれた位置を非反復的な配列内のサブウィンドウ毎に決定することによって、取り込まれた画像の位置を、より大きいサブウィンドウの画像から決定している。
光学的に読み取り可能に記録されるマルチメディア情報の長時間記録及び繰り返し再生を可能とする技術も知られている(例えば、特許文献4参照)。この特許文献4において、記録装置は、プリンタシステムや印刷用製版システムにより、オーディオ情報、映像情報、ディジタルコードデータ等を含めた所謂マルチメディア情報を光学的に読み取り可能なドットコードとして、画像や文字と一緒に紙等の媒体上に記録する。ペン型の情報再生装置は、ドットコードの手動走査に応じてそのドットコードを順次取り込んで、元のオーディオ情報を音声出力器にて、元の映像情報を表示装置にて、元のディジタルコードデータをページプリンタ等にて出力する。
タブレットを使用せずに、媒体上の座標を精緻に検出できるようにする技術も知られている(例えば、特許文献5参照)。この特許文献5において、ペン型の座標入力装置は、媒体上に形成されその媒体上の座標を示すコードシンボルを光学的に読み取り、この読み取ったコードシンボルをデコードし、読み取った画像中におけるコードシンボルの位置、向き及び歪み量を検出する。そして、デコード後の情報と、コードシンボルの位置、向き及び歪み量とにより、先端部の媒体上での位置の座標を検出する。
特表2003−511762号公報 特開平9−185669号公報 特開2004−152273号公報 特開平6−231466号公報 特開2000−293303号公報
ここで、一般に、媒体上の指示された位置に対応する撮像画像上の真の位置は、厳密には、撮像画像上の設定値により決定される位置と異なる。
本発明の目的は、媒体上の指示された位置に対応する撮像画像上の真の位置と設定値による位置との間にズレがあっても、媒体上の指示された位置を特定できる可能性を高めることにある。
請求項1に記載の発明は、媒体上の位置を指示する指示手段と、前記媒体に印刷された印刷画像を撮像した撮像画像を取得する画像取得手段と、前記撮像画像を用いて前記媒体上の前記印刷画像の位置を示す画像位置情報を取得する位置情報取得手段と、前記指示手段により指示された前記媒体上の位置に対応するものとして設定値により決定された前記撮像画像上の位置を示す第1の指示位置情報を、前記指示手段により指示された前記媒体上の位置に対応する前記撮像画像上の位置に対して当該第1の指示位置情報が示す位置よりも接近した位置を示す第2の指示位置情報に修正する修正手段と、前記画像位置情報と、前記第2の指示位置情報とに基づいて、前記指示手段により指示された前記媒体上の位置を特定する特定手段とを備えたことを特徴とする位置検出装置である。
請求項2に記載の発明は、前記位置情報取得手段は、前記媒体上の既知の位置が前記指示手段により指示されると、前記画像位置情報を第3の指示位置情報として取得し、前記修正手段は、前記第3の指示位置情報を用いて、前記第1の指示位置情報を前記第2の指示位置情報に修正することを特徴とする請求項1記載の位置検出装置である。
請求項3に記載の発明は、前記修正手段は、前記第3の指示位置情報と、前記第1の指示位置情報を前記媒体上の位置情報に変換した第4の指示位置情報との差分を用いて、前記第1の指示位置情報を前記第2の指示位置情報に修正することを特徴とする請求項2記載の位置検出装置である。
請求項4に記載の発明は、前記撮像画像から、前記画像位置情報を取得するために用いる部分画像を抽出する抽出手段と、前記部分画像の前記撮像画像に対する傾き角を示す角度情報を取得する角度情報取得手段とを更に備え、前記修正手段は、前記角度情報を用いて、前記第1の指示位置情報を前記第4の指示位置情報に変換することを特徴とする請求項3記載の位置検出装置である。
請求項5に記載の発明は、前記撮像画像における尺度を示す尺度情報を取得する尺度情報取得手段を更に備え、前記修正手段は、前記尺度情報を用いて、前記第1の指示位置情報を前記第4の指示位置情報に変換することを特徴とする請求項3記載の位置検出装置である。
請求項6に記載の発明は、前記位置情報取得手段は、前記媒体上の既知の位置が前記指示手段によりt(t≧2)回指示されると、前記画像位置情報を第3の指示位置情報として取得し、前記修正手段は、前記第3の指示位置情報を用いて前記第1の指示位置情報にt回の修正を施すことにより、前記第2の指示位置情報を得ることを特徴とする請求項1記載の位置検出装置である。
請求項7に記載の発明は、前記修正手段は、前記第3の指示位置情報と、前記第1の指示位置情報を前記媒体上の位置情報に変換した第4の指示位置情報との差分に応じて、前記第1の指示位置情報に対する1回の修正幅を決定することを特徴とする請求項6記載の位置検出装置である。
請求項8に記載の発明は、コンピュータに、媒体に印刷された印刷画像を撮像した撮像画像を取得する機能と、前記撮像画像を用いて前記媒体上の前記印刷画像の位置を示す画像位置情報を取得する機能と、指示手段により指示された前記媒体上の位置に対応するものとして設定値により決定された前記撮像画像上の位置を示す第1の指示位置情報を、前記指示手段により指示された前記媒体上の位置に対応する前記撮像画像上の位置に対して当該第1の指示位置情報が示す位置よりも接近した位置を示す第2の指示位置情報に修正する機能と、前記画像位置情報と、前記第2の指示位置情報とに基づいて、前記指示手段により指示された前記媒体上の位置を特定する機能とを実現させるためのプログラムである。
請求項9に記載の発明は、前記画像位置情報を取得する機能では、前記媒体上の既知の位置が前記指示手段により指示されると、当該画像位置情報を第3の指示位置情報として取得し、前記修正する機能では、前記第3の指示位置情報を用いて、前記第1の指示位置情報を前記第2の指示位置情報に修正することを特徴とする請求項8記載のプログラムである。
請求項1の発明は、本構成を有していない場合に比較して、媒体上の指示された位置に対応する撮像画像上の真の位置と設定値による位置との間にズレがあっても、媒体上の指示された位置を特定できる可能性が高まるという効果を有する。
請求項2の発明は、本構成を有していない場合に比較して、媒体上の指示された位置を正しく特定できる可能性が高まるという効果を有する。
請求項3の発明は、撮像画像上の設定値による位置に対応する媒体上の位置を考慮して、媒体上の指示された位置を特定することができるという効果を有する。
請求項4の発明は、印刷画像を撮像した撮像画像と媒体上の位置を求めるために撮像画像から抽出される部分画像との間に角度の違いがあっても、撮像画像上の設定値による位置に対応する媒体上の位置を考慮することができるという効果を有する。
請求項5の発明は、印刷画像とそれを撮像した撮像画像との間に尺度の違いがあっても、撮像画像上の設定値による位置に対応する媒体上の位置を考慮することができるという効果を有する。
請求項6の発明は、本構成を有していない場合に比較して、媒体上の指示された位置を精度よく特定することができるという効果を有する。
請求項7の発明は、本構成を有していない場合に比較して、媒体上の指示された位置を更に精度よく特定することができるという効果を有する。
請求項8の発明は、本構成を有していない場合に比較して、媒体上の指示された位置に対応する撮像画像上の真の位置と設定値による位置との間にズレがあっても、媒体上の指示された位置を特定できる可能性が高まるという効果を有する。
請求項9の発明は、本構成を有していない場合に比較して、媒体上の指示された位置を正しく特定できる可能性が高まるという効果を有する。
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
まず、本実施の形態で利用する符号化方式について説明する。
本実施の形態における符号化方式では、m(m≧3)箇所から選択したn(1≦n<m)箇所に単位画像を配置してなるパターン画像(以下、「符号パターン」という)によってmCn(=m!/{(m−n)!×n!})通りの情報を表現する。つまり、1つの単位画像を情報に対応させるのではなく、複数の単位画像を情報に対応させている。仮に1つの単位画像を情報に対応させたとすると、単位画像が欠損したり、ノイズが加わったりした場合に、誤った情報を表現してしまうという欠点がある。これに対して、例えば2つの単位画像を情報に対応させたとすると、単位画像が1つであったり3つであったりした場合に、容易に誤りであることが分かる。更に、1つの単位画像で1ビット、又は、高々2ビットを表現する方法では、情報を表現するための情報パターンと視覚的に似たパターンで、情報パターンの読出しを制御する同期パターンを表現することができない。このようなことから、本実施の形態では、上記のような符号化方式を採用している。以下では、このような符号化方式をmCn方式と称する。
ここで、単位画像としては、如何なる形状のものを用いてもよい。本実施の形態では、単位画像の一例としてドット画像(以下、単に「ドット」という)を用いるが、例えば、斜線パターン等、他の形状の画像であってもよい。
図1に、mCn方式における符号パターンの例を示す。
図では、黒色の領域と斜線の領域をドット配置可能な領域とし、その間にある白色の領域をドット配置不可能な領域としている。そして、ドット配置可能な領域のうち、黒色の領域にドットが配置され、斜線の領域にはドットが配置されていないことを示している。即ち、図1は、縦3×横3の合計9個のドット配置可能な領域を設けた例を示しており、このうち、(a)は、9個のドット配置可能な領域に2ドットを配置する9C2方式における符号パターンの一例を、(b)は、9個のドット配置可能な領域に3ドットを配置する9C3方式における符号パターンの一例を示している。
但し、図1で配置されるドット(黒色の領域)は、あくまで情報表現のためのドットであり、画像を構成する最小単位であるドット(図1の最小の四角)とは一致していない。本実施の形態において、「ドット」というときは前者のドットを指し、後者のドットは「ピクセル」と呼ぶことにすれば、ドットは、600dpiにおける2ピクセル×2ピクセルの大きさを有することになる。600dpiにおける1ピクセルの一辺の長さは0.0423mmなので、1ドットの一辺の長さは、84.6μm(=0.0423mm×2)となる。ドットは、大きくなればなるほど目に付きやすくなるため、できるだけ小さいほうが好ましい。ところが、あまり小さくすると、プリンタで印刷できなくなってしまう。そこで、ドットの大きさとして、50μmより大きく100μmより小さい上記の値を採用している。但し、上記の値84.6μmは、あくまで計算上の数値であり、実際に印刷されたトナー像では100μm程度になる。
次いで、図2に、9C2方式における全符号パターンの例を示す。尚、ここでは、ドット間の空白は省略している。図示するように、9C2方式では、36(=)通りの符号パターンが利用される。また、全符号パターンに対して、各符号パターンを一意に識別するための番号であるパターン値が付される。図では、各符号パターンに対するこのパターン値の割り当ての例も示している。但し、図に示した対応はあくまで一例であり、どの符号パターンにどのパターン値を割り当ててもよい。
また、図3に、9C3方式における全符号パターンの例を示す。尚、ここでも、ドット間の空白は省略している。図示するように、9C3方式では、84(=)通りの符号パターンが利用される。また、この場合も、全符号パターンに対して、各符号パターンを一意に識別するための番号であるパターン値が付される。図では、各符号パターンに対するこのパターン値の割り当ての例も示している。但し、この場合も、図に示した対応はあくまで一例であり、どの符号パターンにどのパターン値を割り当ててもよい。
尚、ここでは、符号パターンが配置される領域(以下、「パターンブロック」という)の大きさを、3ドット×3ドットを配置可能な大きさとした。しかしながら、パターンブロックの大きさはこれに限るものではない。つまり、2ドット×2ドット、4ドット×4ドット等を配置可能な大きさであってもよい。
また、パターンブロックの形状として、正方形でなく、例えば3ドット×4ドットを配置する場合のように長方形を採用してもよい。尚、本明細書において、長方形とは、隣り合う2辺の長さが等しくない矩形、つまり、正方形以外の矩形のことをいうものとする。
更に、任意に決めた数のドット配置可能な領域のうち、幾つの領域にドットを配置するかも、表現したい情報の量と許容できる画像濃度とを考慮して、適宜決めるとよい。
このように、本実施の形態では、m箇所からn箇所を選択することでmCn種類の符号パターンを用意している。そして、これらの符号パターンのうち、特定のパターンを情報パターンとして利用し、残りを同期パターンとして利用する。ここで、情報パターンとは、媒体に埋め込む情報を表現するパターンである。また、同期パターンとは、媒体に埋め込まれた情報パターンを取り出すために用いられるパターンである。例えば、情報パターンの位置を特定したり、画像の回転を検出したりするために用いられる。尚、媒体としては、画像を印刷することが可能であれば、如何なるものを用いてもよい。紙が代表例なので、以下では媒体を紙として説明するが、金属、プラスチック、繊維等であってもよい。
ここで、図2又は図3に示した符号パターンのうちの同期パターンについて説明する。尚、これらの符号パターンを利用する場合、パターンブロックの形状は正方形となるため、画像の回転を90度単位で認識する必要がある。従って、4種類の符号パターンで1組の同期パターンが構成される。
図4(a)は、9C2方式における同期パターンの例である。ここでは、36種類の符号パターンのうち、32種類の符号パターンを5ビットの情報を表現する情報パターンとし、残りの4種類の符号パターンで1組の同期パターンを構成するものとする。例えば、パターン値「32」の符号パターンを正立した同期パターン、パターン値「33」の符号パターンを右に90度回転した同期パターン、パターン値「34」の符号パターンを右に180度回転した同期パターン、パターン値「35」の符号パターンを右に270度回転した同期パターンとしている。但し、36種類の符号パターンの情報パターンと同期パターンへの振り分け方は、これには限らない。例えば、16種類の符号パターンを4ビットの情報を表現する情報パターンとし、残りの20種類の符号パターンで5組の同期パターンを構成してもよい。
また、図4(b)は、9C3方式における同期パターンの例である。ここでは、84種類の符号パターンのうち、64種類の符号パターンを6ビットの情報を表現する情報パターンとし、残りの20種類の符号パターンで5組の同期パターンを構成するものとする。図は、この5組の同期パターンのうちの2組を示す。例えば、第1組においては、パターン値「64」の符号パターンを正立した同期パターン、パターン値「65」の符号パターンを右に90度回転した同期パターン、パターン値「66」の符号パターンを右に180度回転した同期パターン、パターン値「67」の符号パターンを右に270度回転した同期パターンとしている。また、第2組においては、パターン値「68」の符号パターンを正立した同期パターン、パターン値「69」の符号パターンを右に90度回転した同期パターン、パターン値「70」の符号パターンを右に180度回転した同期パターン、パターン値「71」の符号パターンを右に270度回転した同期パターンとしている。
尚、図示しないが、パターンブロックの形状が長方形である場合は、画像の回転の検出のために2種類の符号パターンを同期パターンとして用意すればよい。例えば、縦3ドット×横4ドットを配置可能な領域が検出されるべきなのに、縦4ドット×横3ドットを配置可能な領域が検出された場合は、その時点で画像が90度又は270度回転していることが分かるからである。
次に、同期パターンと情報パターンを配置してなる情報表現の最小単位(以下、「符号ブロック」という)について説明する。
図5は、符号ブロックのレイアウトの一例を示したものである。
図中、(a)及び(b)のそれぞれの右側に、符号ブロックのレイアウトを示している。ここでは、レイアウトとして、パターンブロックを5個×5個の25個並べたものを採用している。この25個のパターンブロックのうち、左上の1ブロックに同期パターンを配置している。また、同期パターンの右の4ブロックに紙面上の横方向の座標を特定するX座標情報を表す情報パターンを配置し、同期パターンの下の4ブロックに紙面上の縦方向の座標を特定するY座標情報を表す情報パターンを配置している。更に、これらの座標情報を表す情報パターンで囲まれた16ブロックに、紙面又は紙面に印刷される文書の識別情報を表す情報パターンを配置している。
また、(a)の左側には、9C2方式における符号パターンが各パターンブロックに配置されていることを示している。即ち、36種類の符号パターンを、例えば、4種類の同期パターンと32種類の情報パターンとに分け、各パターンをレイアウトに従って配置している。一方、(b)の左側には、9C3方式における符号パターンが各パターンブロックに配置されていることを示している。即ち、84種類の符号パターンを、例えば、20種類の同期パターンと64種類の情報パターンとに分け、各パターンをレイアウトに従って配置している。
尚、本実施の形態において、座標情報は、紙面の縦方向及び横方向にM系列で表現される。ここで、M系列とは、その部分列が、他の部分列と一致することがない系列である。例えば、11次のM系列は、2047ビットのビット列である。そして、この2047ビットのビット列の中から取り出された11ビット以上の部分列と同じ並びは、この2047ビットのビット列の中に自身以外には存在しない。本実施の形態では、1個の符号パターンを4ビットに対応付ける。即ち、2047ビットのビット列を4ビットごとに10進数で表し、図2又は図3の割り当てに従って符号パターンを決定し、紙面の横と縦に渡って印刷する。従って、復号の際は、3つの連続する符号パターンを特定し、符号パターンと座標との対応関係を格納したテーブルを参照することにより、ビット列上の位置が特定されることになる。
図6に、M系列を用いた座標情報の符号化の例を示す。
(a)は、11次のM系列の例として、「0111000101011010000110010…」というビット列を示している。本実施の形態では、これを4ビットずつに区切り、1つ目の部分列「0111」をパターン値「7」の符号パターンとして、2つ目の部分列「0001」をパターン値「1」の符号パターンとして、3つ目の部分列「0101」をパターン値「5」の符号パターンとして、4つ目の部分列「1010」をパターン値「10」の符号パターンとして、それぞれ紙面上に配置する。
また、このように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つの符号パターンで座標情報を表現している。
また、識別情報の符号化には、幾つかの方法の利用が考えられるが、本実施の形態では、RS符号化が適している。RS符号は多値の符号法であり、各パターンブロックに配置された符号パターンのパターン値をRS符号の多値に対応させるとよいからである。
尚、本実施の形態における符号パターンの利用形態としては、例えば、文書画像に重ねてその識別情報を紙面に印刷し、ペン状のスキャナで紙面上の部分画像を読み込み、そこから文書画像の識別情報を取得する、といったものが想定される。この場合、紙面上の汚れやスキャナの性能によって誤りが発生するが、この誤りはRS符号により訂正される。
ここで、RS符号による訂正及びそのような訂正を行う場合に表現可能な情報量について具体的に説明する。
本実施の形態では、上述したように、1パターンブロック内のドット数が一定である符号パターンを採用している。これにより、仮に1ドットが消失した場合や、1ドットが付加された場合は、パターンブロック内のドット数が変わる。従って、これらは誤りだと分かる誤りとなる。一方で、ドットの消失と付加が同時に起こった場合は、他の符号パターンであると誤認識してしまうので、誤りだと分からない誤りとなる。
例えば、識別情報を表す情報パターンを配置する16ブロックのうち、10ブロックを識別情報そのものを表す情報パターンを配置するブロックとし、6ブロックを訂正のためのブロックとする。この場合、誤りだと分かるブロックは6ブロックまで、誤りだと分からないブロックも3ブロックまで、訂正される。これを例えば9C2方式における32種類の情報パターンで実現したとすると、1ブロックで5ビットの情報が表現されるので、識別情報そのものは10ブロックで50ビット分表現される。また例えば9C3方式における64種類の情報パターンで実現したとすると、1ブロックで6ビットの情報が表現されるので、識別情報そのものは10ブロックで60ビット分表現される。
次いで、上記符号ブロックを含む広範囲のレイアウトについて説明する。
図7は、そのようなレイアウトの一例を示した図である。このレイアウトでは、図5の符号ブロックが基本単位として紙面全体の縦方向及び横方向に周期的に配置されている。
ここで、同期パターンとしては、同じ符号パターンが各符号ブロックにおける左上のパターンブロックに配置されている。図では、同期パターンを「S」で表している。
また、X座標情報としては、符号パターンの同じ並びが、同期パターンが配置されたのと同じ行の各パターンブロックに配置されている。Y座標情報としては、符号パターンの同じ並びが、同期パターンが配置されたのと同じ列の各パターンブロックに配置されている。図では、X座標情報を表すパターンを「X01」、「X02」、…で表し、Y座標情報を表すパターンを「Y01」、「Y02」、…で表している。
更に、識別情報としては、符号パターンの同じ配列が、縦方向及び横方向に周期的に配置されている。図では、識別情報を表すパターンを「I01」、「I02」、…、「I16」で表している。
そして、このようなレイアウトを採用することにより、例えば、図中、丸印で示した範囲が読み取られた場合のように、図5の符号ブロックの全体を含む範囲が読み取られていない場合であっても、後述する処理により、識別情報及び座標情報が得られる。
尚、このようなレイアウトで紙面に印刷される符号画像は、例えば電子写真方式を用いて、Kトナー(カーボンを含む赤外光吸収トナー)、又は、特殊トナーにより形成される。
ここで、特殊トナーとしては、可視光領域(400nm〜700nm)における最大吸収率が7%以下であり、近赤外領域(800nm〜1000nm)における吸収率が30%以上の不可視トナーが例示される。ここで、「可視」及び「不可視」は、目視により認識できるかどうかとは関係しない。印刷された媒体に形成された画像が可視光領域における特定の波長の吸収に起因する発色性の有無により認識できるかどうかで「可視」と「不可視」とを区別している。また、可視光領域における特定の波長の吸収に起因する発色性が若干あるが、人間の目で認識し難いものも「不可視」に含める。
このような符号画像を印刷した画像上の所定位置をペンデバイスで指示すると、ペンデバイスに設けられた撮像素子が、画像の一部を読み取る。そして、この画像からドットパターンが読み取られ、復号処理が行われる。ところが、この場合において、復号された座標情報は、撮像素子が読み取った画像の位置を表しており、厳密には、ペンデバイスで指示した位置を表していない。
以下、このズレの発生について具体的に説明する。
図8は、この説明のためのペンデバイスの概略図である。
図示するように、ペンデバイスの中心を通るペン中心線が紙面と交差する点(ペン先中心)と、撮像素子の中心を通る撮像素子中心線が紙面と交差する点(撮像領域中心)との間には、ペンデバイスに固有のズレIPがある。
また、復号された座標情報とペンデバイスで指示した位置とのズレには、この固定のズレだけでなく、画像処理の結果に応じて動的に決定されるズレも含まれるので、これも併せて説明する。
図9は、ペンデバイスの撮像素子が撮像した領域(以下、「撮像領域」という)上に、ペンデバイスが復号のために読み込む領域(以下、「読み込み領域」という)と、その領域の中心点(以下、「読み込み領域中心」という)と、ペンデバイスのペン先が指示する点(以下、「ペン先中心」という)とを示した図である。
ペンデバイスは、撮像領域から、復号のために必要な17ドット×17ドットの領域を読み込む。これが読み込み領域であるが、復号するのに適切な読み込み領域は必ずしも撮像領域の中心付近に存在するとは限らない。照明等の影響により、適切な読み込み領域が中心部からずれた位置にある場合もある。また、読み込み領域は、必ずしも矩形になっているとは限らず、ペンデバイスの回転及び傾きによって平行四辺形(例えば、菱形)に変形していることが多い。そこで、図では、撮像領域の右下寄りの部分に、太い破線で平行四辺形の読み込み領域を示している。
また、図では、撮像領域上に2つの座標系を示している。
1つは、撮像画像上の座標系である。この座標系では、撮像領域の横枠に平行にX軸をとり、右方向をXの正方向とし、撮像領域の縦枠に平行にY軸をとり、下方向をYの正方向とする。尚、図では、撮像画像上のX軸を「XCCD」と表記し、撮像画像上のY軸を「YCCD」と表記している。
もう1つは、符号画像上の座標系である。これは、撮像画像上の各点に対応する紙面上の各点を表すための座標系である。この座標系では、ドットの列の1つの方向に平行にX軸をとり、右方向をXの正方向とし、ドットの列の別の1つの方向に平行にY軸をとり、下方向をYの正方向とする。尚、図では、符号画像上のX軸を「XCODE」と表記し、符号画像上のY軸を「YCODE」と表記している。
これらの座標系のうち、まず、撮像画像上の座標系において、ペン先中心の位置を算出するのに必要なパラメータを定義する。
即ち、読み込み領域中心をCとし、実際のペン先中心をPとし、PのCに対する相対座標を(P,P)とする。また、初期設定された(初期の設定値により決定された)ペン先中心をP’とし、P’のCに対する相対座標を(P’,P’)とする。このように、実際のペン先中心Pは、ペンデバイスのばらつきにより、初期設定されたペン先中心P’とは異なる位置にある。ここでは、実際のペン先中心Pの初期設定されたペン先中心P’に対する誤差を(e,e)としている。更に、符号画像上のX軸の傾き角をθ、符号画像上のY軸の傾き角をθとする。ここで、これらの傾き角は、撮像領域の垂直線、つまり、撮像画像上のY軸の負方向を基準とし、θは時計回りを、θは反時計回りをそれぞれ正方向として表す。更にまた、符号画像上のX軸の方向のドットの間隔をdとし、符号画像上のY軸の方向のドットの間隔をdとする。
次に、これらのパラメータを用いて、符号画像上のペン先中心の位置を算出する方法について説明する。尚、実際のペン先中心の位置は分からないので、ここでは、初期設定さされたペン先中心の位置から符号画像上のペン先中心の位置を算出するものとする。
まず、図9において、P’から符号画像上のX軸に下ろした垂線の足の符号画像上での座標を(H,0)、符号画像上のY軸に下ろした垂線の足の符号画像上での座標を(0,H)とする。すると、P’、P’、H、H、θ、θの間には、次のような関係が成り立つ。
Figure 2009181341
これにより、H、Hは、P’、P’、θ、θを用いて次のように表される。
Figure 2009181341
即ち、ペン先中心P’のX座標及びY座標が、符号画像上のX軸及びY軸上における数値で表されている。但し、ここで求められるH、Hは、あくまで撮像画像上の尺度に基づくものである。つまり、符号画像上でのドットの間隔は、図1に示したように、X軸方向、Y軸方向共に4ピクセルであるが、撮像画像上では同じ長さとは限らない。そこで、先に述べたように、撮像画像上のドットの間隔をd、dとし、尺度に関する補正を行う必要がある。
図10は、撮像画像上の座標系から符号画像上の座標系への座標変換の様子を示したものである。読み込み領域は、座標変換前の撮像画像上では、図9に示したような平行四辺形になっているが、座標変換後の符号画像上では、矩形になっている。
ここで、撮像画像上の読み込み領域中心に対応する符号画像上の点をCとし、実際のペン先中心Pに対応する符号画像上のペン先中心(以下、「真のペン先中心」という)をQとし、QのCに対する相対座標を(Q,Q)とする。また、初期設定されたペン先中心P’から計算によって求めた符号画像上のペン先中心(以下、「計算によるペン先中心」という)をQ’とし、Q’のCに対する相対座標を(Q’,Q’)とする。すると、Q’、Q’は、上記で求めたH、Hにドットの間隔に関する補正を施すことにより、次のように求められる。
Figure 2009181341
その後、読み込み領域内のパターン画像に基づいて読み込み領域中心の座標が算出され、この座標に上記のQ’、Q’を加えることにより、紙面上のペン先中心の座標が算出される。
ところが、既に述べた通り、ここで求めたペン先中心の座標は、あくまで初期設定に基づく計算値であり、真のペン先中心の座標を表しているわけではない。一般に、ペンデバイスの撮像素子で符号画像を読み込み、読み込んだ符号画像からペン先位置を特定する場合、ペン先位置と撮像素子上の距離等のパラメータセットが必要である。しかしながら、撮像素子を含む光学系にはペンデバイスによるばらつきがある。また、パラメータセットは、標準的なペンの持ち方を想定して設定されているが、ペンの持ち方には個人差がある。従って、初期設定されたパラメータセットを用いても真のペン先中心は得られない。
そこで、本実施の形態では、ペンデバイスごと又はユーザごとに、標準的なパラメータセットとのズレの調整(キャリブレーション)を行う。
即ち、図9に示したように、実際のペン先中心の相対座標(P,P)と、初期設定されたペン先中心の相対座標(P’,P’)との間には、次の関係がある。
Figure 2009181341
従って、この式における誤差(e,e)を求め、その誤差を考慮して紙面上の真のペン先中心の座標を求める。
つまり、誤差(e,e)を求めることが課題であるが、以下、その具体的な方法について述べる。
図11は、この具体的な方法の一例について説明するための図である。
(a)において、左上図は、ペン先を1点に固定し、その点を中心にペンデバイスを回転させたときの様子を示している。この場合、ペン先が固定される点が真のペン先中心の位置であり、「×」で表している。(a)では、このようにペンデバイスを回転させた場合の計算によるペン先中心の軌跡について考える。
もしペン先中心の座標の補正が正しく行われていれば、右上図に示すように、軌跡はペン先を固定した1点になる。一方、ペン先中心の座標の補正が正しく行われていなければ、軌跡は、左下図に示すように、ペン先を固定した点を中心とした円となったり、右下図に示すように、ペン先を固定した点を中心とした多角形となったりする。
このように、実際にペン先を1点に固定することにより、ペン先中心の座標が計算によって求められる。従って、本実施の形態では、この結果を用いて、ペンデバイスごと又はユーザごとに、符号画像から得られる座標をペン先中心の座標に補正するための補正値を調整する。
この場合、まず、ペン先中心の補正値を修正するための点(以下、「修正用点」という)を含む符号画像を印刷した紙面を用いて、真のペン先中心の座標と計算によるペン先中心の座標とのズレを調べることが考えられる。例えば、図7のレイアウトの符号画像から予め決められた修正用点の座標の周辺の部分を切り出して紙面に印刷する。そして、ペンデバイスのペン先を修正用点に固定したときに符号画像から得られる座標を求め、この座標の修正用点の座標に対する相対座標に基づいて補正値を決定する。
しかしながら、1つの方向だけから修正用点をポイントする方法では、満足のいく補正結果を得られない可能性がある。例えば、図11(a)の右下図に示したように、ペンデバイスの方向により、真のペン先中心と計算によるペン先中心との差に変動がある場合、或いは、1つの方向から修正用点をポイントした際にペン先中心を補正するのに相応しいパラメータセットが得られなかった場合等に、そのような可能性がある。このような場合、修正用点を複数の方向からポイントすることにより得られたパラメータセットを用いて、補正値を修正する必要がある。ところが、ユーザが修正に必要な方向を決めるのは困難である。
そこで、本実施の形態では、予め傾けた符号画像を複数用意する。そして、ユーザが複数の符号画像のそれぞれにおいて修正用点を同じ方向からペン先でポイントする操作を行うことで、ペン先位置の補正値を修正する。
(b)は、このときの操作について示したものである。尚、(a)と同様、ペン先中心を固定する点を「×」で表わしている。つまり、「×」は修正用点である。また、「●」が計算によるペン先中心の座標を示している。更に、白抜きの矢印は、各符号画像の上方向を示している。例えば、図7のレイアウトの符号画像から予め決められた修正用点の座標の周辺の部分を切り出し、符号画像ごとに少しずつ傾けて紙面に印刷するとよい。
ユーザがこれらの符号画像における修正用点をペン先で順にポイントしていくと、次のようにして補正値が修正されていく。
まず、前述の通り、撮像画像上の実際のペン先中心の読み込み領域中心に対する相対座標(P,P)は、符号画像上の真のペン先中心の読み込み領域中心に対する相対座標(Q,Q)により、次のように表される。
Figure 2009181341
また、撮像画像上の初期設定されたペン先中心の読み込み領域中心に対する相対座標(P’,P’)は、符号画像上の計算によるペン先中心の読み込み領域中心に対する相対座標(Q’,Q’)により、次のように表される。
Figure 2009181341
更に、これらの差分をとると、次のようになる。
Figure 2009181341
そして、この式を使うと、ペン先位置の補正値の修正式は、次の式で与えられる。
Figure 2009181341
ここで、λは学習係数である。
即ち、(e,e)の初期値を(0,0)とし、修正用点をペン先でポイントすることで得たデータから(Q’,Q’)を計算し、修正式で修正する。これを全ての修正用点について行ったら、最初の修正用点に戻って同じ処理を繰り返す。そして、(ΔQ,ΔQ)がある値(T,T)以下になったら処理を終了する。
以下、このような紙面上のペン先中心の座標の算出及びペン先位置の補正値の修正について、より詳細に説明する。尚、本実施の形態では、如何なるmCn方式を利用してもよいが、以降の説明においては、簡単のため、9C2方式の利用を前提とする。また、以下では、パターンブロックのことを単に「ブロック」ともいう。
まず、紙面に形成された符号画像を読み取って処理する画像処理装置20について説明する。
図12は、画像処理装置20の構成例を示したブロック図である。
図示するように、画像処理装置20は、画像読取部21と、ドット配列生成部22と、ブロック検出部23と、同期符号検出部24とを備える。また、識別符号検出部30と、識別符号復号部32と、X座標符号検出部40と、X座標符号復号部42と、Y座標符号検出部45と、Y座標符号復号部47と、座標補正部50と、情報出力部55とを備える。
画像読取部21は、CCD(Charge Coupled Devices)やCMOS(Complementary Metal Oxide Semiconductor)等の撮像素子を用いて、紙面に印刷された符号画像を読み取る。
ドット配列生成部22は、読み取った符号画像からドットを検出し、ドットの位置を参照して、ドット配列を生成する。尚、符号画像からのドット検出の前処理として、読み取った画像に含まれるノイズを除去するための処理も行う。ここで、ノイズには、例えば、撮像素子感度のばらつきや電子回路により発生するノイズがある。ノイズ除去の処理の種類は、撮像系の特性に合わせるべきだが、ぼかし処理やアンシャープマスキング等の先鋭化処理を適用するとよい。また、ドットの検出は、次のように行う。即ち、まず、2値化処理によりドット画像の部分と、その他の背景画像の部分とを切り分け、2値化された個々の画像位置からドットの位置を検出する。その際、2値化された画像にノイズ成分が多数含まれる場合があるため、2値化された画像の面積や形状によりドットの判定を行うフィルタ処理を組み合わせる必要がある。その後、ドット配列の生成は、2次元の配列上で、例えば、ドットがある位置を「1」、ドットがない位置を「0」というように、画像として検出したドットをデジタルデータに置き換えることにより行う。本実施の形態では、撮像画像を取得する画像取得手段の一例として、ドット配列生成部22を設けている。また、部分画像を抽出する抽出手段、角度情報を取得する角度情報取得手段、尺度情報を取得する尺度情報取得手段の一例として、ドット配列生成部22を設けている。
ブロック検出部23は、ドット配列上で、符号ブロック内のパターンブロックを検出する。即ち、符号ブロックと同じ大きさ及び形状のフレームで、パターンブロックと同じ大きさ及び形状のブロックを有するブロックフレームをドット配列上で適宜動かし、ブロック内のドット数が均等になる位置を正しいフレーム位置とし、各ブロック内のパターン値を格納した符号配列を生成する。
同期符号検出部24は、ドット配列から検出された各符号パターンの種類を参照して、同期符号を検出する。また、同期符号検出部24は、検出した同期符号に基づいて、画像の回転の判定も行う。例えば、正方形の符号パターンを用いた場合、90度単位で回転している可能性がある。そこで、検出した同期符号が4種類の同期パターンのいずれに対応しているかによって、その向きを検出する。また、長方形の符号パターンを用いた場合、180度単位で回転している可能性がある。そこで、検出された同期符号が2種類の同期パターンのいずれに対応しているかによって、その向きを検出する。更に、同期符号検出部24は、このように検出された回転角度だけ符号配列を回転させて、符号配列を正しい向きに設定する。
識別符号検出部30は、角度が補正された符号配列から、同期符号の位置を基準にして、識別符号を検出する。
識別符号復号部32は、上述したRS符号の符号化処理で用いたパラメータ(ブロック数等)と同じパラメータを用いて識別符号を復号し、識別情報を出力する。
X座標符号検出部40は、角度が補正された符号配列から、同期符号の位置を基準にしてX座標符号を検出する。
X座標符号復号部42は、検出されたX座標符号からM系列の部分系列を取り出し、画像生成に使用したM系列におけるこの部分系列の位置を参照し、この位置を符号ブロックのシフト量で補正した値をX座標情報として出力する。本実施の形態では、媒体上の印刷画像の位置を示す画像位置情報の一例として、X座標情報を用い、画像位置情報を取得する位置情報取得手段の一例として、X座標符号復号部42を設けている。
Y座標符号検出部45は、角度が補正された符号配列から、同期符号の位置を基準にしてY座標符号を検出する。
Y座標符号復号部47は、検出されたY座標符号からM系列の部分系列を取り出し、画像生成に使用したM系列におけるこの部分系列の位置を参照し、この位置を符号ブロックのシフト量で補正した値をY座標情報として出力する。本実施の形態では、媒体上の印刷画像の位置を示す画像位置情報の一例として、Y座標情報を用い、画像位置情報を取得する位置情報取得手段の一例として、Y座標符号復号部47を設けている。
座標補正部50は、X座標符号復号部42から出力されたX座標情報とY座標符号復号部47から出力されたY座標情報とからなる座標情報を補正して、紙面上のペン先中心の座標情報を取得する。ここで、補正は、ドット配列生成部22で取得したペン先中心の読み込み領域中心に対する相対座標や、撮像画像上での読み込み領域の傾き角や、撮像画像上でのドットの間隔を用いて行う。本実施の形態では、媒体上の指示された位置に対応するものとして設定値により決定された撮像画像上の位置を示す第1の指示位置情報の一例として、初期設定されたペン先中心の読み込み領域中心に対する相対座標(P’,P’)を用い、媒体上の指示された位置に対応する撮像画像上の位置に対してこれよりも接近した位置を示す第2の指示位置情報の一例として、実際のペン先中心へ向けて調整されたペン先中心の読み込み領域中心に対する相対座標(P’+e(t),P’+e(t))を用いている。また、第1の指示位置情報を第2の指示位置情報に修正する修正手段、媒体上の指示された位置を特定する特定手段の一例として、座標補正部50を設けている。更に、媒体上の既知の位置が指示されると取得される第3の指示位置情報の一例として、真のペン先中心の読み込み領域中心に対する相対座標(Q,Q)を用い、第1の指示位置情報を媒体上の位置情報に変換した第4の指示位置情報の一例として、計算によるペン先中心の読み込み領域中心に対する相対座標(Q’,Q’)を用いている。
情報出力部55は、識別符号復号部32、座標補正部50からそれぞれ取得した識別情報、ペン先中心のX座標情報及びY座標情報を出力する。
次いで、この画像処理装置20の動作を説明する。尚、この動作の説明では、9C2方式の符号パターンが図5のレイアウトで配置されていることを前提とする。
まず、画像読取部21が、紙面に印刷された符号画像を撮像素子で読み取る。
次に、ドット配列生成部22が、読み取った符号画像からドットの検出に適した領域を切り出す。この領域の切り出しは、公知の画像処理によって行えばよいが、例えば、次のような方法が考えられる。即ち、まず、撮像領域を複数の小領域に分割する。この場合、各小領域は1つのドットより大きなものとなるようにする。次に、小領域ごとに、その中のドットの部分とドット以外の部分とのコントラストを評価する。そして、最も高コントラストであった小領域を中心として、次に高コントラストであった周囲の小領域を連結していく。これを繰り返し、17ドット×17ドット分の大きさをカバーできる程度の大きさになるまで領域を広げていき、最終的に得られた領域を撮像領域から切り出す。
このようにしてドットの検出に適した領域を切り出すと、ドット配列生成部22は、その領域の中からドットを検出する。
また、ドット配列生成部22は、ドットの列の傾き角も求める。
図13(a)に、ドットの列の傾き角を求める方法の一例を示す。
まず、左側の図に示すように、近接するドット対を結ぶ直線の傾き角を幾つか求める。そして、それらの傾き角の中から第1軸角度、第2軸角度、第3軸角度を選択し、右側の図に示すように設定する。ここで、第1軸角度は、最も頻度が多い傾き角である。第2軸角度は、第1軸角度から90度オフセットした角度近傍で最も頻度が高い傾き角である。第3軸角度は、第1軸角度から90度オフセットした角度に対する第2軸角度の対称角度近傍で最も頻度が高い傾き角である。そして、例えば、第1軸角度と、第2軸角度及び第3軸角度のうち第1軸角度から90度オフセットした角度に最も近い角度とを、ドットの列の2つの傾き角とする。
また、図13(b)に、ドットの列の傾き角を更に正確に求める方法の一例を示す。
まず、左上の図に示すように、ドットの座標を同期原点からの相対座標に変換する。図において、縦軸と横軸の交点が同期原点であり、例えば、検出された複数のドットの重心に最も近いドットを同期原点に設定するとよい。次に、右上の図に示すように、ドットの座標をθ回転する。更に、右下の図に示すように、回転後のドットの座標に格子を当てはめ、例えば、縦の格子からのドットの座標のずれ量を算出する。そして、左下の図に示すように、同じ列のドットごとに分散を計算して積算し、分散が最小となるθを傾き角とする。尚、傾き角は、X方向とY方向について独立に推定するのが好ましい。
その後、ドット配列生成部22は、ドットを検出した位置に「1」を、ドットを検出しなかった位置に「0」を設定したドット配列を生成する。
図14は、ドット配列生成部22によるドット画像からドット配列への変換を示した図である。図示するように、ドット配列生成部22は、読み込み領域内の17×17のドットを、17×17のドットの配列へと変換する。この配列の各要素には、対応する位置にドットがあれば「1」が、対応する位置にドットがなければ「0」が格納される。尚、この際、復号処理のために切り出した17ドット×17ドットの読み込み領域の中心の撮像領域中心からのズレが分かる。そこで、このズレの情報と、予め分かっているペン先中心と撮像領域中心のズレの情報とから、ペン先中心の読み込み領域中心に対する相対座標(P,P)を求め、図示しないメモリに記憶しておく。
次いで、ブロック検出部23が、読み込み領域に対応するドット配列上で、パターンブロックを検出する。
図15は、ブロックフレームを移動させてパターンブロックを検出する際の処理を具体的に示した図である。ここでは、9C2方式で符号化が行われたことが分かっており、9C2方式で復号する場合について示している。
まず、ブロック検出部23は、ドット配列生成部22からドット配列を取得する。ここで取得するドット配列のサイズは予め設定されており、(復号に必要なパターンブロック数×パターンブロックの一辺のドット数+パターンブロックの一辺のドット数−1)である。ところが、このドット配列は、画像の任意に選択された領域に対応しているので、パターンブロックの区切り位置は分からない。そこで、まず、ドット配列の端を検出開始位置としてブロックフレームを重ねる。この例では、m=9なので、3ドット×3ドットの大きさのフレームを含むブロックフレームを重ねる。次に、各フレーム内のドットを数える。この例では、n=2なので、各フレーム内に2ドットずつ存在する場合のブロックフレームの位置が、パターンブロックの区切り位置を示す。しかしながら、この位置ではドット数がばらついているので、パターンブロックの区切り位置ではないことが分かる。そこで、ブロックフレームをずらしてフレーム内のドット数を数える。即ち、開始位置、右方向へ1ドット分移動した位置、右方向へ2ドット分移動した位置においてドットを数える。また、これらの位置のそれぞれに対し、下方向へ1ドット分移動した位置、下方向へ2ドット分移動した位置においてもドットを数える。その結果、右方向へ1ドット分移動し、下方向へ2ドット分移動した位置において、全てのフレーム内のドット数が「2」となる。従って、このときのブロックフレームの位置がパターンブロックの区切り位置であることが分かる。
図16に、ブロック検出部23により決定されたパターンブロックの区切り位置を示す。
ここでは、太線で示した位置にブロックフレームを重ねた場合に、全てのブロックに2つの「1」が含まれるので、この位置がパターンブロックの区切り位置となっている。また、ブロックの検出はどの位置から開始してもよいが、ここでも、ドット配列の左上を起点としており、この起点からパターンブロックの区切り位置を見つけるまでのブロックフレームの移動量を、X方向にMXドット、Y方向にMYドットとしている。図では、MX=0、MY=1である。以下、ブロックの区切り位置が見つかったときにブロックフレームが重なっている5ブロック×5ブロックの領域(図の太線の枠内の部分)を「復号領域」と称する。
また、ブロック検出部23は、各パターンブロックにおけるドット位置(「0」及び「1」の配置)からパターン値を求める。このとき、図2又は図3に示したドット位置とパターン値との対応を参照する。
図17は、各パターンブロックにパターン値を割り当てた場合の例を示した図である。
例えば、左上のブロックでは、ブロック内の左上と右下にドットがあることが示されているので、図2の対応からパターン値「0」となる。また、その右のブロックでは、ブロック内の左上と右中央にドットがあることが示されているので、図2の対応からパターン値「12」となる。
ここで、ブロック検出部23の詳細な動作について説明する。
図18は、ブロック検出部23の動作例を示したフローチャートである。
まず、ブロック検出部23は、ドット配列生成部22からドット配列を取得する(ステップ201)。このドット配列の大きさは、(復号に必要なブロック数×ブロックの一辺のドット数+ブロックの一辺のドット数−1)である。本実施の形態では、復号に必要なブロック数は5×5であり、ブロックの一辺のドット数が3であるので、17×17のドット配列を取得する。
次に、取得したドット配列に、ブロックフレームを重ね合わせる(ステップ202)。そして、カウンタI、Jに「0」を代入し、MaxBNにも「0」を代入する(ステップ203)。ここで、I、Jは、ブロックフレームを初期位置から移動させたステップ数をカウントするものである。画像の1ラインごとにブロックフレームを移動させ、そのとき移動させたライン数をカウンタI、Jでカウントする。また、MaxBNは、ブロック内で検出されるドット数が「2」となるブロック数をブロックフレームを移動させながらカウントしていったときに、最大となるカウント値を記録するものである。
次に、ブロック検出部23は、ブロックフレームをX方向にI、Y方向にJ移動させる(ステップ204)。初期状態においてI、Jは「0」であるので、ブロックフレームは移動しない。そして、ブロックフレームの各ブロックに含まれるドット数をカウントして、ドット数が「2」となるブロックの数をカウントする。カウントしたブロック数はIB[I,J]に格納する(ステップ205)。IB[I,J]のI、Jには、ブロックフレームの移動量を示すIとJの値がそれぞれ記録される。
次に、ブロック検出部23は、IB[I,J]とMaxBNとを比較する(ステップ206)。MaxBNは初期値が「0」であるので、最初の比較では、IB[I,J]がMaxBNよりも大きくなる。この場合、MaxBNにIB[I,J]の値を代入すると共に、MXにIの値を、MYにJの値を代入する(ステップ207)。尚、IB[I,J]がMaxBN以下である場合は、MaxBN、MX、MYの値はそのままにしておく。
その後、ブロック検出部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]が最大のものを検出する。
I=2、J=2までの処理が終了すると、ブロック検出部23は、保存しているMaxBNと閾値TBとを比較する(ステップ212)。閾値TBは、ドット数が「2」のブロックの数が復号可能な程度のものかを判定するための閾値である。
ここで、MaxBNが閾値TBよりも大きい場合には、ブロックフレームをMX、MYの位置に固定し、その位置で各ブロックのパターン値を検出する。そして、検出したパターン値を、各ブロックを識別する変数X、Yと共に符号配列PA[X,Y]としてメモリに記録する(ステップ213)。尚、このとき、対応するパターン値に変換することができなければ、パターン値として用いられていない「−1」を記録する。そして、ブロック検出部23は、MX、MYと、符号配列PA[X,Y]とを同期符号検出部24に出力する(ステップ214)。
一方、MaxBNが閾値TB以下である場合には、画像のノイズが大きく復号は不可能と判定し、復号不能を出力する(ステップ215)。
次に、同期符号検出部24は、ブロック検出部23が検出したパターン値の中から、同期パターンのパターン値を探す。例えば、本実施の形態では、パターン値32〜35の符号パターンを同期パターンとしているので、この番号を探す。図17の例では、パターン値「35」が同期パターンとなる。
図4を参照すると、パターン値「35」の同期パターンは、正立した同期パターンであるパターン値「32」の同期パターンを右に270度回転した同期パターンである。従って、符号配列を正立した方向にするには、符号配列を左に270度回転する必要がある。その場合、符号配列内の各要素のパターン値は、左に270度回転した場合のパターン値に変更する必要がある。
図19は、正立位置の符号パターンのパターン値と、正立位置の符号パターンを右に90度回転した符号パターンのパターン値と、正立位置の符号パターンを右に180度回転した符号パターンのパターン値と、正立位置の符号パターンを右に270度回転した符号パターンのパターン値との対応表である。このような対応表を図示しないメモリに記憶し、同期符号検出部24は、この対応表を参照してパターン値を付け替えるようにすればよい。
図20(a)は、このときのパターン値の変更を具体的に示したものである。例えば、左上のパターン値「0」のブロックは、左に270度回転することで、右上のパターン値「1」のブロックとなる。また、その右のパターン値「12」のブロックは、左に270度回転することで、最右列の上から2番目のパターン値「13」のブロックとなる。
また、符号配列を回転させた場合、復号領域から読み込み領域への変換に用いる値も異なってくる。つまり、復号領域の左上点から読み込み領域の左上点までのピクセル数を、符号座標上のX軸方向にRDX、符号画像上のY軸方向にRDYとすると、これらの値として異なる値を用いる必要がある。そこで、同期符号検出部24は、図20(b)に示すように、各同期パターンに対し、回転角度に加え、RDX及びRDYの値を図示しないメモリに記憶しておく。
ここで、同期符号検出部24の詳細な動作について説明する。
図21は、同期符号検出部24の動作例を示したフローチャートである。
まず、同期符号検出部24は、ブロック検出部23からMX、MYと、符号配列PA[X,Y]とを取得する(ステップ251)。
次に、同期符号検出部24は、K、Lに「1」を代入する(ステップ252)。尚、KはX方向のブロック数を示すカウンタであり、LはY方向のブロック数を示すカウンタである。
次に、同期符号検出部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)。
次に、同期符号検出部24は、PA[K,L]のパターン値が「33」かどうかを判定する(ステップ255)。
PA[K,L]のパターン値が「33」であれば、符号配列PA[X,Y]を左方向に90度回転させる(ステップ256)。図4(a)に示すようにパターン値「33」の符号パターンは、パターン値「32」の符号パターンを右方向に90度回転させた画像であるので、逆方向に90度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、左方向に90度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXにLを代入し、Y座標SYに6−Kを代入する。また、ブロックフレームのX方向への移動量ShiftXにMYを代入し、Y方向への移動量ShiftYに2−MXを代入する(ステップ257)。
次に、同期符号検出部24は、PA[K,L]のパターン値が「34」かどうかを判定する(ステップ258)。
PA[K,L]のパターン値が「34」であれば、符号配列PA[X,Y]を左方向に180度回転させる(ステップ259)。図4(a)に示すようにパターン値「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)。
次に、同期符号検出部24は、PA[K,L]のパターン値が「35」かどうかを判定する(ステップ261)。
PA[K,L]のパターン値が「35」であれば、符号配列PA[X,Y]を左方向に270度回転させる(ステップ262)。図4(a)に示すようにパターン値「35」の符号パターンは、パターン値「32」の符号パターンを右に270度回転させた画像であるので、逆方向に270度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、左方向に270度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXに6−Lを代入し、Y座標SYにKを代入する。また、ブロックフレームのX方向への移動量ShiftXに2−MYを代入し、Y方向への移動量ShiftYにMXを代入する(ステップ263)。
そして、ステップ254、257、260、263で、SX、SY、ShiftX、ShiftYに値が代入された場合、同期符号検出部24は、PA[X,Y]とこれらの値を識別符号検出部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)。
その後、識別符号検出部30及び識別符号復号部32が、読み込み領域から紙面又は紙面上の画像を識別する識別情報を取得する。
図22は、識別符号検出部30及び識別符号復号部32の動作例を示したフローチャートである。
まず、識別符号検出部30は、同期符号検出部24から符号配列PA[X,Y]、SX、SYを取得する(ステップ301)。
次に、識別符号検出部30は、識別符号配列IA[X,Y]の全ての要素を「−1」で初期化する(ステップ302)。尚、この「−1」は、パターン値として用いられていない番号とする。そして、符号ブロックにおける各ブロックを識別するためのカウンタIX、IYに「1」を代入する(ステップ303)。ここで、IXは、X方向のブロック数を示すカウンタであり、IYは、Y方向のブロック数を示すカウンタである。
また、識別符号検出部30は、IY−SYが「5」で割り切れるかどうかを判定する(ステップ304)。即ち、IYで特定される行に同期符号が配置されているかどうかを判定する。
ここで、IY−SYが「5」で割り切れた場合、つまり、この行に同期符号が配置されている場合は、識別符号を取り出す対象ではないため、IYに「1」を加算し(ステップ305)、ステップ304へ進む。
一方、IY−SYが「5」で割り切れなかった場合、つまり、この行に同期符号が配置されていない場合は、IX−SXが「5」で割り切れるかどうかを判定する(ステップ306)。即ち、IXで特定される列に同期符号が配置されているかどうかを判定する。
ここで、IX−SXが「5」で割り切れた場合、つまり、この列に同期符号が配置されている場合は、識別符号を取り出す対象ではないため、IXに「1」を加算し(ステップ307)、ステップ306へ進む。
一方、IX−SXが「5」で割り切れなかった場合、つまり、この列に同期符号が配置されていない場合、識別符号検出部30は、IA[(IX−SX)mod5,(IY−SY)mod5]にPA[IX,IY]を代入する(ステップ308)。
そして、IX=5であるかどうかを判定する(ステップ309)。
ここで、IX=5でない場合には、IXに「1」を加算して(ステップ307)、ステップ306〜308の処理をIX=5となるまで繰り返し行う。また、IX=5となると、次に、IY=5であるかどうかを判定する(ステップ310)。IY=5でない場合には、IXに「1」を代入し(ステップ311)、IYに「1」を加算して(ステップ305)、ステップ304〜309の処理をIY=5となるまで繰り返し行う。また、IY=5となると、識別符号復号部32の処理に移る。
即ち、識別符号復号部32は、IA[X,Y]を復号できるかどうかを判定する(ステップ312)。
ここで、IA[X,Y]を復号できると判定すると、識別符号復号部32は、IA[X,Y]から識別情報を得る(ステップ313)。また、IA[X,Y]を復号できないと判定すると、識別情報にN/Aを代入する(ステップ314)。
また、X座標符号検出部40及びX座標符号復号部42が、読み込み領域のX方向の位置を取得する。
図23は、X座標符号検出部40及びX座標符号復号部42の動作例を示したフローチャートである。
まず、X座標符号検出部40は、同期符号検出部24から符号配列PA[X,Y]、SX、SY、ShiftX、ShiftYを取得する(ステップ401)。
次に、X座標符号検出部40は、X座標符号配列XA[X]の全ての要素を「−1」で初期化する(ステップ402)。尚、この「−1」は、パターン値として用いられていない番号とする。そして、符号ブロックにおける各ブロックを識別するためのカウンタIX、IYに「1」を代入する。ここで、IXは、X方向のブロック数を示すカウンタであり、IYは、Y方向のブロック数を示すカウンタである。更に、X座標符号検出部40は、X座標符号配列における各要素を識別するためのカウンタKXにも「1」を代入する(ステップ403)。
また、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で特定される列に同期符号が配置されているかどうかを判定する。
ここで、IX−SXが「5」で割り切れた場合、つまり、この列に同期符号が配置されている場合は、X座標符号を取り出す対象ではないため、IXに「1」を加算し(ステップ407)、ステップ406へ進む。
一方、IX−SXが「5」で割り切れなかった場合、つまり、この列に同期符号が配置されていない場合、X座標符号検出部40は、XA[KX]にPA[IX,IY]を代入する(ステップ408)。
そして、IX=5であるかどうかを判定する(ステップ409)。
ここで、IX=5でない場合には、KXに「1」を加算し(ステップ410)、IXに「1」を加算して(ステップ407)、ステップ406〜408の処理をIX=5となるまで繰り返し行う。また、IX=5となると、X座標符号復号部42の処理に移る。
即ち、X座標符号復号部42は、XA[X]を復号できるかどうかを判定する(ステップ411)。
ここで、XA[X]を復号できると判定すると、X座標符号復号部42は、XA[X]とShiftXからX座標情報を復号する(ステップ412)。また、XA[X]が復号できないと判定された場合は、X座標情報にN/Aを代入する(ステップ413)。
尚、ここでは、X座標符号検出部40及びX座標符号復号部42の動作のみ説明したが、Y座標符号検出部45及びY座標符号復号部47も同様の動作を行う。
そして、最後に、座標補正部50が、X座標符号復号部42が取得したX座標情報及びY座標符号復号部47が取得したY座標情報から、紙面上のペン先位置の補正値を調整し、調整された補正値を用いて真のペン先中心の座標を求める。
図24及び図25は、座標補正部50の動作例を示したフローチャートである。
このうち、図24は、ペン先位置の補正値を調整する際の動作例を示したものである。
まず、座標補正部50は、現在のモードがペン先位置の補正値を調整するためのキャリブレーションモードであるかどうかを判定する(ステップ521)。ここで、キャリブレーションモードであるかどうかは、例えばメモリに記憶しておくとよい。
その結果、キャリブレーションモードでないと判定された場合、座標補正部50は、識別符号復号部32から識別情報を取得する(ステップ522)。そして、この識別情報が特定の識別情報であるかどうかを判定する(ステップ523)。図11(b)の説明では、キャリブレーションに用いる符号画像に修正用点の周囲の座標を埋め込むことのみを述べたが、ここでは、その符号画像がキャリブレーション用の符号画像であることを示す特定の識別情報も埋め込むことを想定している。そこで、識別情報を参照することにより、X座標符号復号部42及びY座標符号復号部47からの座標情報がキャリブレーション用の座標情報であるかどうかを判定している。これにより、識別符号復号部32からの識別情報が特定の識別情報でなければ、図25の処理に移るが、特定の識別情報であれば、キャリブレーションモードに設定する(ステップ524)。即ち、キャリブレーションモードである旨の情報をメモリに記憶する。このように、本実施の形態では、キャリブレーションモードでない場合のみ、識別情報を参照して、キャリブレーションのための操作であるかを判別している。これは、1回目の修正用点のポイント時にのみ識別情報を参照してモード情報を設定し、2回目以降の修正用点のポイント時には1回目に設定されたモード情報を参照していることを意味する。
一方、ステップ521でキャリブレーションモードであると判定された場合、及び、ステップ524でキャリブレーションモードに設定された場合は、今回の修正用点のポイント時に取得したパラメータセットを取得する(ステップ525)。ここで、パラメータセットには、撮像画像上での読み込み領域中心に対するペン先中心の相対座標(P’,P’)、撮像領域に対する読み込み領域の傾き角(θ,θ)、撮像画像上のドットの間隔(d,d)がある。尚、このパラメータセットは、ドット配列生成部22がドットを検出した際にメモリに記憶しているので、それを読み出す。
更に、座標補正部50は、X座標符号復号部42からX座標情報を、Y座標符号復号部47からY座標情報を取得する(ステップ526)。尚、この場合、ペン先中心の座標は修正用点の座標であり、既知である。従って、ここで取得された座標と修正用点の座標との差分をとると、これは1つの方向からの修正用点のポイント操作に限れば正しい補正値である。ところが、本実施の形態では、複数の方向からの修正用点のポイント操作に応じて取得したデータを用いて、上記の誤差(e,e)を徐々に修正していく方法を採用している。そこで、ここでは取得したパラメータセット及び座標情報をメモリに蓄積し、n組のパラメータセット及び座標情報を取得したかどうかを判定する(ステップ527)。尚、nは、紙面上に設けられた修正用点の数である。
ここで、n組のパラメータセット及び座標情報を取得していなければ、次の修正用点のポイント操作を待機するため、座標補正部50は、キャリブレーションモードを維持したまま処理を終了する。一方、n組のパラメータセット及び座標情報を取得していれば、これらのパラメータセットに基づく補正値の調整処理へと移る。
補正値の調整処理において、座標補正部50は、まず、修正用点のカウンタsと、修正回数のカウンタtとをリセットする(ステップ528)。ここで、修正用点のカウンタsは、紙面上に印刷された何番目の修正用点に着目しているかを示す変数である。例えば5個の修正用点が印刷されているとすると、1≦s≦5である。また、修正回数のカウンタtは、どの修正用点のポイント操作に基づく修正であるかに関わらず、修正した回数を示す変数である。1≦tであるが、例えば5個の修正用点が印刷されている場合であっても、上限は5とは限らず、6以上の値をとり得る。
そして、座標補正部50は、所定の条件を満足するまで、s及びtの値を変えながら以下の処理を行う。
即ち、まず、座標補正部50は、s番目の修正用点のポイント時に得られたパラメータセットを用いて、補正値Q’を算出する(ステップ529)。即ち、(Q’,Q’)を次の式により算出する。
Figure 2009181341
次に、座標補正部50は、s番目の修正用点のポイント時に得られた座標情報を用いて、補正値Qを算出する(ステップ530)。即ち、s番目の修正用点のポイント時に得られたX座標とs番目の修正用点のX座標との差分をQとし、s番目の修正用点のポイント時に得られたY座標とs番目の修正用点のY座標との差分をQとする。
その後、座標補正部50は、ステップ529で求めた補正値Q’とステップ530で求めた補正値Qとの差分ΔQからΔPを算出し、このΔPを用いてe(t)を更新し、更新後のe(t)を用いて補正値Q’を再計算する(ステップ531)。
尚、ここでの計算は、具体的には次の式により行う。
まず、ΔP(ΔP,ΔP)は、次の式により算出される。
Figure 2009181341
次に、e(t)(e(t),e(t))は、次の式により算出される。
Figure 2009181341
更に、Q’(Q’,Q’)は、次の式により算出される。
Figure 2009181341
その後、座標補正部50は、補正値Qと補正値Q’の差が、予め設定した誤差範囲T未満であるかどうかを判定する(ステップ532)。この場合、例えば、(Q,Q)と(Q’,Q’)との距離が誤差範囲T未満である場合に、補正値Qと補正値Q’の差が誤差範囲T未満であると判定するとよい。或いは、誤差範囲Tを(T,T)と定義し、|Q−Q’|<Tかつ|Q−Q’|<Tの場合に、補正値Qと補正値Q’の差が誤差範囲T未満であると判定してもよい。
そして、補正値Qと補正値Q’の差が誤差範囲T未満であると判定されれば、その時点の補正値Q’を調整補正値としてメモリに記憶し(ステップ538)、キャリブレーションモードを解除して(ステップ539)、処理を終了する。
また、補正値Qと補正値Q’の差が誤差範囲T未満であると判定されなければ、座標補正部50は、修正回数のカウンタtが、収束しない場合の打ち切り回数tMaxを超えたかどうかを判定する(ステップ533)。
そして、tが打ち切り回数tMaxを超えていれば、その時点の補正値Q’を調整補正値としてメモリに記憶し(ステップ538)、キャリブレーションモードを解除して(ステップ539)、処理を終了する。
また、tが打ち切り回数tMaxを超えていなければ、まず、修正回数のカウンタtに「1」を加算する(ステップ534)。そして、修正用点のカウンタsが、修正用点の数nに達したかどうかを判定する(ステップ535)。ここで、sがnに達していれば、sに「1」を代入して(ステップ536)、ステップ529に戻る。即ち、1つ目の修正用点のポイント時に得たデータに戻って調整を継続する。一方、sがnに達していなければ、sに「1」を加算して(ステップ537)、ステップ529に戻る。即ち、次の修正用点のポイント時に得たデータを用いて調整を行う。
尚、キャリブレーションモードに設定されていない状態で特定の識別情報以外の識別情報を取得した場合、即ち、ステップ523で「NO」と判定された場合、X座標符号復号部42及びY座標符号復号部47からの座標情報は、キャリブレーション用の座標情報ではなく、筆記等による座標情報である。そこで、座標補正部50は、この場合は、ペン先中心を補正する処理に移る。
図25は、ペン先中心を補正する際の動作例を示したものである。
まず、座標補正部50は、符号画像上での読み込み領域中心に対するペン先中心の相対座標、即ち、上述した調整補正値(Q’,Q’)をメモリから読み出す(ステップ502)。
次に、座標補正部50は、ブロックフレームの移動量のピクセル数(RDX,RDY)を取得する(ステップ503)。ここで、(RDX,RDY)は、同期符号検出部24が符号画像の回転を検出した際にメモリに記憶しているので、それを読み出す。
また、座標補正部50は、X座標符号復号部42から符号ブロックの左端のパターンブロックの位置BXを取得すると共に、Y座標符号復号部47から符号ブロックの上端のパターンブロックの位置BYを取得する(ステップ504)。
その後、座標補正部50は、復号領域開始点(復号領域の左上点)のピクセル位置(DSX,DSY)を求める(ステップ505)。符号ブロックの左端のパターンブロックにおける左端のピクセル位置がDSXであり、符号ブロックの上端のパターンブロックにおける上端のピクセル位置がDSYである。そして、1ブロックは12ピクセルなので、(DSX,DSY)は、
DSX=(BX−1)×12+1
DSY=(BY−1)×12+1
により求められる。
これまでの処理により、復号領域の左上のピクセル位置は求められるが、先に述べたように、復号領域と読み込み領域とは同じ位置ではないので、読み込み領域中心の位置を求めるためには、補正が必要である。そこで、座標補正部50は、復号領域開始点のピクセル位置(DSX,DSY)を読み込み領域開始点(読み込み領域の左上点)のピクセル位置(RSX,RSY)へと補正する(ステップ506)。この補正において、ステップ503でメモリから読み出した(RDX,RDY)が用いられる。つまり、読み込み領域の左上の座標(RSX,RSY)は、
RSX=DSX+RDX
RSY=DSY+RDY
により求められる。
更に、座標補正部50は、読み込み領域中心のピクセル位置(CRX,CRY)を求める(ステップ507)。ここで、読み込み領域の幅と高さは予め決められた設計値である。そこで、これらをそれぞれDAW,DAHとすると、読み込み領域中心(CRX,CRY)は、
CRX=RSX+DAW/2
CRY=RSY+DAH/2
により求められる。
そして、最後に、ペン先中心のピクセル位置(PPX,PPY)を求める(ステップ508)。ステップ502で読み込み領域中心に対するペン先中心の相対座標(Q’,Q’)を取得したので、これを、ステップ507で求めた読み込み領域中心のピクセル位置に加算する。つまり、(PPX,PPY)は、
PPX=CRX+Q’
PPY=CRY+Q’
により求められる。
以上により、本実施の形態の動作の説明を終了する。
尚、上記説明で示した計算式はあくまで一例である。ペンデバイスに初期的に設定された標準のパラメータセットを実際のペンデバイスの状態等に合うように調整できるものであれば、如何なる計算式を用いてもよい。
但し、紙面上の既知の位置がペンデバイスで指示された際に取得される座標情報を用いて調整を行うような計算式が、正しく調整するという観点からは好ましい。
また、紙面上の既知の位置がペンデバイスで指示された際に取得される座標情報と、初期設定されたペン先位置を変換した紙面上の座標情報との差分を用いて、調整を行うような計算式であれば、更に好ましい。
また、このように初期設定されたペン先位置を紙面上の座標情報に変換する際に、上記では、撮像画像上での読み込み領域中心に対するペン先中心の相対座標(P’,P’)と、撮像領域に対する読み込み領域の傾き角(θ,θ)と、撮像画像上のドットの間隔(d,d)とを用いた。しかしながら、これらの全てのパラメータを必ず用いなければならないわけではない。例えば、読み込み領域が矩形であることが保証されている場合には、2つの方向の傾き角(θ,θ)の代わりに、1つの方向の傾き角θを用いればよく、2つの方向のドット間隔(d,d)の代わりに、1つの方向のドット間隔dを用いればよい。また、撮像領域と読み込み領域との間に角度の違いがないことが保証されている場合には、傾き角(θ,θ)は用いなくてもよい。更に、撮像画像と符号画像との間に尺度の違いがないことが保証されている場合には、ドット間隔(d,d)は用いなくてもよい。
次に、本実施の形態における画像処理装置20の具体的なハードウェア構成について説明する。
まず、画像処理装置20を実現するペンデバイス60について説明する。
図26は、ペンデバイス60の機構を示した図である。
図示するように、ペンデバイス60は、ペン全体の動作を制御する制御回路61を備える。また、制御回路61は、入力画像から検出した符号画像を処理する画像処理部61aと、そこでの処理結果から識別情報及び位置情報を抽出するデータ処理部61bとを含む。
そして、制御回路61には、ペンデバイス60による筆記動作をペンチップ69に加わる圧力によって検出する圧力センサ62が接続されている。また、媒体上に赤外光を照射する赤外LED63と、画像を入力する赤外CMOS64も接続されている。更に、識別情報及び位置情報を記憶するための情報メモリ65と、外部装置と通信するための通信回路66と、ペンを駆動するためのバッテリ67と、ペンの識別情報(ペンID)を記憶するペンIDメモリ68も接続されている。
尚、図12に示した画像読取部21は、例えば、図26の赤外CMOS64にて実現される。また、ドット配列生成部22は、例えば、図26の画像処理部61aにて実現される。更に、図12に示したブロック検出部23、同期符号検出部24、識別符号検出部30、識別符号復号部32、X座標符号検出部40、X座標符号復号部42、Y座標符号検出部45、Y座標符号復号部47、座標補正部50、情報出力部55は、例えば、図26のデータ処理部61bにて実現される。
また、本実施の形態では、媒体上の位置を指示する指示手段の一例として、ペンデバイス60のペンチップ69を設けたが、これには限らない。媒体に筆記を行うための構成ではなく、単に媒体上の所定位置をポイントするための構成を指示手段として捉えてもよい。
また、図26の画像処理部61a又はデータ処理部61bにて実現される処理は、例えば、汎用のコンピュータで実現してもよい。そこで、かかる処理をコンピュータ90で実現するものとし、コンピュータ90のハードウェア構成について説明する。
図27は、コンピュータ90のハードウェア構成を示した図である。
図示するように、コンピュータ90は、演算手段であるCPU(Central Processing Unit)91と、記憶手段であるメインメモリ92及び磁気ディスク装置(HDD:Hard Disk Drive)93とを備える。ここで、CPU91は、OS(Operating System)やアプリケーション等の各種ソフトウェアを実行し、上述した各機能を実現する。また、メインメモリ92は、各種ソフトウェアやその実行に用いるデータ等を記憶する記憶領域であり、磁気ディスク装置93は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。
更に、コンピュータ90は、外部との通信を行うための通信I/F94と、ビデオメモリやディスプレイ等からなる表示機構95と、キーボードやマウス等の入力デバイス96とを備える。
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、CD−ROM等の記録媒体に格納して提供することも可能である。
9C2方式及び9C3方式における符号パターンの一例を示した図である。 9C2方式における全符号パターンの一例を示した図である。 9C3方式における全符号パターンの一例を示した図である。 9C2方式及び9C3方式における同期パターンの例を示した図である。 符号ブロックの基本的なレイアウトの例を示した図である。 M系列による座標の表現について説明するための図である。 符号ブロックの広範囲のレイアウトの例を示した図である。 ペン先中心と撮像領域中心とのズレについて説明するための図である。 撮像画像上にペン先中心、読み込み領域中心等の位置を示した図である。 撮像画像上の座標系から符号画像上の座標系への座標変換について説明するための図である。 本実施の形態における修正用点に対するポイント操作について説明するための図である。 本実施の形態における画像処理装置の機能構成を示したブロック図である。 ドットの列の傾き角の算出について説明するための図である。 ドット配列を生成する際の処理を説明するための図である。 ドット配列上でブロックを検出する際の処理を説明するための図である。 ドット配列上でブロックを検出した後の状態を説明するための図である。 ドット配列から符号配列へ変換する際の処理を説明するための図である。 本実施の形態におけるブロック検出部の動作例を示したフローチャートである。 回転角度とパターン番号の対応を示した図である。 符号配列の回転及び回転に伴う情報の記憶について説明するための図である。 本実施の形態における同期符号検出部の動作例を示したフローチャートである。 本実施の形態における識別符号検出部等の動作例を示したフローチャートである。 本実施の形態におけるX座標符号検出部等の動作例を示したフローチャートである。 本実施の形態における座標補正部の動作例を示したフローチャートである。 本実施の形態における座標補正部の動作例を示したフローチャートである。 本実施の形態における画像処理装置を実現可能なペンデバイスの機構を示した図である。 本実施の形態を適用可能なコンピュータのハードウェア構成図である。
符号の説明
20…画像処理装置、21…画像読取部、22…ドット配列生成部、23…ブロック検出部、24…同期符号検出部、30…識別符号検出部、32…識別符号復号部、40…X座標符号検出部、42…X座標符号復号部、45…Y座標符号検出部、47…Y座標符号復号部、50…座標補正部、55…情報出力部

Claims (9)

  1. 媒体上の位置を指示する指示手段と、
    前記媒体に印刷された印刷画像を撮像した撮像画像を取得する画像取得手段と、
    前記撮像画像を用いて前記媒体上の前記印刷画像の位置を示す画像位置情報を取得する位置情報取得手段と、
    前記指示手段により指示された前記媒体上の位置に対応するものとして設定値により決定された前記撮像画像上の位置を示す第1の指示位置情報を、前記指示手段により指示された前記媒体上の位置に対応する前記撮像画像上の位置に対して当該第1の指示位置情報が示す位置よりも接近した位置を示す第2の指示位置情報に修正する修正手段と、
    前記画像位置情報と、前記第2の指示位置情報とに基づいて、前記指示手段により指示された前記媒体上の位置を特定する特定手段と
    を備えたことを特徴とする位置検出装置。
  2. 前記位置情報取得手段は、前記媒体上の既知の位置が前記指示手段により指示されると、前記画像位置情報を第3の指示位置情報として取得し、
    前記修正手段は、前記第3の指示位置情報を用いて、前記第1の指示位置情報を前記第2の指示位置情報に修正することを特徴とする請求項1記載の位置検出装置。
  3. 前記修正手段は、前記第3の指示位置情報と、前記第1の指示位置情報を前記媒体上の位置情報に変換した第4の指示位置情報との差分を用いて、前記第1の指示位置情報を前記第2の指示位置情報に修正することを特徴とする請求項2記載の位置検出装置。
  4. 前記撮像画像から、前記画像位置情報を取得するために用いる部分画像を抽出する抽出手段と、
    前記部分画像の前記撮像画像に対する傾き角を示す角度情報を取得する角度情報取得手段と
    を更に備え、
    前記修正手段は、前記角度情報を用いて、前記第1の指示位置情報を前記第4の指示位置情報に変換することを特徴とする請求項3記載の位置検出装置。
  5. 前記撮像画像における尺度を示す尺度情報を取得する尺度情報取得手段を更に備え、
    前記修正手段は、前記尺度情報を用いて、前記第1の指示位置情報を前記第4の指示位置情報に変換することを特徴とする請求項3記載の位置検出装置。
  6. 前記位置情報取得手段は、前記媒体上の既知の位置が前記指示手段によりt(t≧2)回指示されると、前記画像位置情報を第3の指示位置情報として取得し、
    前記修正手段は、前記第3の指示位置情報を用いて前記第1の指示位置情報にt回の修正を施すことにより、前記第2の指示位置情報を得ることを特徴とする請求項1記載の位置検出装置。
  7. 前記修正手段は、前記第3の指示位置情報と、前記第1の指示位置情報を前記媒体上の位置情報に変換した第4の指示位置情報との差分に応じて、前記第1の指示位置情報に対する1回の修正幅を決定することを特徴とする請求項6記載の位置検出装置。
  8. コンピュータに、
    媒体に印刷された印刷画像を撮像した撮像画像を取得する機能と、
    前記撮像画像を用いて前記媒体上の前記印刷画像の位置を示す画像位置情報を取得する機能と、
    指示手段により指示された前記媒体上の位置に対応するものとして設定値により決定された前記撮像画像上の位置を示す第1の指示位置情報を、前記指示手段により指示された前記媒体上の位置に対応する前記撮像画像上の位置に対して当該第1の指示位置情報が示す位置よりも接近した位置を示す第2の指示位置情報に修正する機能と、
    前記画像位置情報と、前記第2の指示位置情報とに基づいて、前記指示手段により指示された前記媒体上の位置を特定する機能と
    を実現させるためのプログラム。
  9. 前記画像位置情報を取得する機能では、前記媒体上の既知の位置が前記指示手段により指示されると、当該画像位置情報を第3の指示位置情報として取得し、
    前記修正する機能では、前記第3の指示位置情報を用いて、前記第1の指示位置情報を前記第2の指示位置情報に修正することを特徴とする請求項8記載のプログラム。
JP2008019753A 2008-01-30 2008-01-30 位置検出装置及びプログラム Withdrawn JP2009181341A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008019753A JP2009181341A (ja) 2008-01-30 2008-01-30 位置検出装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008019753A JP2009181341A (ja) 2008-01-30 2008-01-30 位置検出装置及びプログラム

Publications (1)

Publication Number Publication Date
JP2009181341A true JP2009181341A (ja) 2009-08-13

Family

ID=41035277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008019753A Withdrawn JP2009181341A (ja) 2008-01-30 2008-01-30 位置検出装置及びプログラム

Country Status (1)

Country Link
JP (1) JP2009181341A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014020820A1 (ja) * 2012-07-31 2014-02-06 パナソニック株式会社 符号読取装置および符号読取方法
US9176606B2 (en) 2012-09-04 2015-11-03 Panasonic Intellectual Property Management Co., Ltd. Handwriting input system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014020820A1 (ja) * 2012-07-31 2014-02-06 パナソニック株式会社 符号読取装置および符号読取方法
US9129171B2 (en) 2012-07-31 2015-09-08 Panasonic Intellectual Property Management Co., Ltd. Code reading device and code reading method
JPWO2014020820A1 (ja) * 2012-07-31 2016-07-21 パナソニックIpマネジメント株式会社 符号読取装置および符号読取方法
US9176606B2 (en) 2012-09-04 2015-11-03 Panasonic Intellectual Property Management Co., Ltd. Handwriting input system

Similar Documents

Publication Publication Date Title
JP4834872B2 (ja) ストリームドットパターンの形成方法
JP4294025B2 (ja) インターフェース表面を生成する方法、および符号化データを読み取る方法
JP4198456B2 (ja) 2次元コードパターン、2次元コードパターンを担持するパターン担持媒体、2次元コードパターンの生成方法、2次元コード読取装置および読取方法
US20070272750A1 (en) Coding and Decoding of Data
JP2006243818A (ja) 位置同定機能付き印刷物、2次元座標同定装置、画像形成装置及びその方法
JP4985436B2 (ja) 位置検出装置及びプログラム
JP5609469B2 (ja) 画像処理装置、識別装置、電子筆記具及びプログラム
US8019181B2 (en) Image generation apparatus, image processing apparatus, computer readable medium and computer data signal
JP4967823B2 (ja) 位置検出装置及びプログラム
KR20130139225A (ko) 광학 펜을 이용한 절대 위치와 기타 정보용 도트 코드 패턴, 도트 코드 프린팅 방법, 및 도트 코드 읽는 방법
JP2009181341A (ja) 位置検出装置及びプログラム
US8657205B2 (en) Image processing apparatus, identification apparatus, method for determining bit sequence and computer readable medium
JP4973316B2 (ja) 画像処理装置及びプログラム
JP5125548B2 (ja) 画像処理装置及びプログラム
JP5115213B2 (ja) 画像生成装置、画像処理装置、プログラム、及び印刷媒体
JP5125547B2 (ja) 画像生成装置、画像処理装置、プログラム、及び印刷媒体
JP5098441B2 (ja) 画像処理装置及びプログラム
JP4973317B2 (ja) 画像処理装置及びプログラム
JP4915211B2 (ja) 画像生成装置、印刷媒体、及びプログラム
JP2009176251A (ja) 画像処理装置及びプログラム
JP2008301120A (ja) 画像処理装置、画像生成装置、及びプログラム
JP2008109578A (ja) 画像生成装置、情報読み取り装置および記録媒体
JP2009181346A (ja) 画像処理装置、ペン・デバイスおよびプログラム
JP2009181347A (ja) 画像処理装置、ペン・デバイスおよびプログラム
JP2008301128A (ja) 画像処理装置、画像生成装置、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101217

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20111004