(57)【要約】【課題】パターン画像を構成する単位画像が並ぶ方向を特定し、パターン画像の向きを検出できるようにする。【解決手段】所定の角度で交差する少なくとも２方向に沿って配列される単位画像が記録された記録媒体を撮像部により撮像して得られた画像から単位画像（ドット）を検出する位置検出部と、この位置検出部により画像から検出された単位画像に関して、最も近い位置にある単位画像どうしの組み合わせである近接ドット対を検出する近接ドット対検出部２２１と、近接ドット対検出部２２１により検出された近接ドット対を構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する第１軸角度抽出部２２３、第２軸角度抽出部２２４、第３軸角度抽出部２２５、角度特定部２２６とを備える。【選択図】図１４
2009181346.tif 000002
【特許請求の範囲】
【請求項１】
所定の角度で交差する少なくとも２方向に沿って配列される単位画像が記録された記録媒体を撮像装置により撮像して得られた画像から単位画像を検出する単位画像検出手段と、
前記単位画像検出手段により前記画像から検出された前記単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する組み合わせ検出手段と、
前記組み合わせ検出手段により検出された単位画像の前記組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する角度特定手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記角度特定手段により角度が特定された配列における前記単位画像の基準間隔を、単位画像の前記組み合わせを構成する各単位画像の間の距離に基づいて特定する間隔特定手段をさらに備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記角度特定手段は、前記単位画像を結ぶ直線の傾きのうち、出現頻度の最も高い角度を第１の角度とし、当該第１の角度に対して所定の角度だけ遷移させた基準角度を含む一定範囲において出現頻度の最も高い角度を第２の角度とし、当該第１の角度および当該第２の角度を前記２方向の角度とすることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記角度特定手段は、前記基準角度に対して前記第２の角度の対称となる角度を含む一定範囲において出現頻度の最も高い角度を第３の角度とし、所定の基準に基づいて、前記第１の角度と当該第２の角度と当該第３の角度のうち２つを選んで、前記２方向の角度とすることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記単位画像検出手段により検出された単位画像および前記角度特定手段により特定された当該単位画像の配列の角度に基づき、当該単位画像によって符号化されて記録された情報を復号する復号手段をさらに備え、
前記角度特定手段は、前記第１の角度、第２の角度、第３の角度のうち、前記復号手段による復号が成功したときの前記単位画像の配列の角度に近い２つの角度を選択することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
所定の角度で交差する少なくとも２方向に沿って配列される単位画像が記録された記録媒体を撮像する撮像手段と、
前記撮像手段により撮像して得られた画像から単位画像を検出する単位画像検出手段と、
前記単位画像検出手段により前記画像から検出された前記単位画像に関して、最も近い位置にある当該単位画像どうしの組み合わせを検出する組み合わせ検出手段と、
前記組み合わせ検出手段により検出された単位画像の前記組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する角度特定手段と
を備えることを特徴とするペン・デバイス。
【請求項７】
前記角度特定手段により角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する間隔特定手段をさらに備えることを特徴とする請求項６に記載のペン・デバイス。
【請求項８】
コンピュータに、
所定の角度で交差する少なくとも２方向に沿って配列される単位画像が記録された記録媒体を撮像装置により撮像して得られた画像から単位画像を検出する機能と、
前記画像から検出された前記単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する機能と、
検出された単位画像の前記組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する機能と、
を実現させるためのプログラム。
【請求項９】
前記コンピュータに、角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する機能をさらに実現させる請求項８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、ペン・デバイスおよびプログラムに関する。
【背景技術】
【０００２】
印刷用紙等の媒体上にコード化された情報を表すパターン画像や特定の意味を付与されたパターン画像を埋め込み、読み取り装置で読み取ってコード情報を復号したり付与された意味に応じて装置を制御したりすることが、従来から行われている。パターン画像により表される情報としては、パターン画像が埋め込まれた媒体自体の識別情報や媒体に記録された文書の識別情報、媒体上の位置を表す位置情報などがある。
【０００３】
この種の技術では、パターン画像で記述したコード情報を復号するために、読み取り画像におけるパターン画像の向きを検出することが必要である。特に、ペン・デバイスのような使用者が手に持って操作する読み取り装置は、媒体に対する読み取り装置の向きや角度が随時変わるため、適切にパターン画像の向きを検出することが非常に重要である。
【０００４】
特許文献１には、コード枠とコード枠に囲まれたセルとを含む２次元コードにおいて、データ等と共にコードの向きを表すパターンがセルに記録される従来技術が開示されている。
【０００５】
【特許文献１】特開２００６−８５６７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
媒体に埋め込まれるパターン画像は、情報密度を上げるために冗長なパターンを少なくすることが望まれる。
本発明は、以上のような課題に鑑みてなされたものであり、パターン画像を構成する単位画像が並ぶ方向を特定し、パターン画像の向きを検出できるようにすることを目的とする。また、読み取った画像に歪みがある場合でも単位画像が並ぶ方向を特定できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に係る発明は、所定の角度で交差する少なくとも２方向に沿って配列される単位画像が記録された記録媒体を撮像装置により撮像して得られた画像から単位画像を検出する単位画像検出手段と、前記単位画像検出手段により前記画像から検出された単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する組み合わせ検出手段と、前記組み合わせ検出手段により検出された単位画像の組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する角度特定手段とを備えることを特徴とする画像処理装置である。
請求項２に係る発明は、前記角度特定手段により角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する間隔特定手段をさらに備える請求項１に記載の画像処理装置である。
請求項３に係る発明は、前記角度特定手段は、前記単位画像を結ぶ直線の傾きのうち、出現頻度の最も高い角度を第１の角度とし、当該第１の角度に対して所定の角度だけ遷移させた基準角度を含む一定範囲において出現頻度の最も高い角度を第２の角度とし、当該第１の角度および当該第２の角度を前記２方向の角度とすることを特徴とする請求項１に記載の画像処理装置である。
請求項４に係る発明は、前記角度特定手段は、前記基準角度に対して前記第２の角度の対称となる角度を含む一定範囲において出現頻度の最も高い角度を第３の角度とし、所定の基準に基づいて、前記第１の角度と前記第２の角度と当該第３の角度のうち２つを選んで、前記２方向の角度とすることを特徴とする請求項３に記載の画像処理装置である。
請求項５に係る発明は、前記単位画像検出手段により検出された単位画像および前記角度特定手段により特定された当該単位画像の配列の角度に基づき、当該単位画像によって符号化されて記録された情報を復号する復号手段をさらに備え、前記角度特定手段は、前記第１の角度、第２の角度、第３の角度のうち、前記復号手段による復号が成功したときの前記単位画像の配列の角度に近い２つの角度を選択することを特徴とする請求項４に記載の画像処理装置である。
請求項６に係る発明は、所定の角度で交差する少なくとも２方向に沿って配列される単位画像が記録された記録媒体を撮像する撮像手段と、前記撮像手段により撮像して得られた画像から単位画像を検出する単位画像検出手段と、前記単位画像検出手段により前記画像から検出された単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する組み合わせ検出手段と、前記組み合わせ検出手段により検出された単位画像の組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する角度特定手段とを備えることを特徴とするペン・デバイスである。
請求項７に係る発明は、前記角度特定手段により角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する間隔特定手段をさらに備える請求項６に記載のペン・デバイスである。
請求項８に係る発明は、コンピュータに、所定の角度で交差する少なくとも２方向に沿って配列される単位画像が記録された記録媒体を撮像装置により撮像して得られた画像から単位画像を検出する機能と、前記画像から検出された単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する機能と、検出された単位画像の組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する機能と、を実現させるためのプログラムである。
請求項９に係る発明は、前記コンピュータに、角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する機能をさらに実現させる請求項８に記載のプログラムである。
【発明の効果】
【０００８】
請求項１に係る発明によれば、近接する単位画素の組み合わせに基づいて、単位画素の配列の傾きを特定することができる。
請求項２に係る発明によれば、単位画素の配列の傾きと共に、単位画素の基準間隔を特定することができる。
請求項３に係る発明によれば、単位画素の配列における２方向の傾きを特定することができる。
請求項４に係る発明によれば、単位画像の並びが３方向検出される場合でも、単位画素の配列における２方向の傾きを特定することができる。
請求項５に係る発明によれば、情報の復号の成否に基づいて、単位画素の配列における傾きを、より適切に特定することができる。
請求項６に係る発明によれば、ペン・デバイスにおいて、近接する単位画素の組み合わせに基づいて、単位画素の配列の傾きを特定することができる。
請求項７に係る発明によれば、ペン・デバイスにおいて、単位画素の配列の傾きと共に、単位画素の基準間隔を特定することができる。
請求項８に係る発明によれば、画像処理装置の機能を実現するコンピュータにおいて、近接する単位画素の組み合わせに基づいて、単位画素の配列の傾きを特定することができる。
請求項９に係る発明によれば、画像処理装置の機能を実現するコンピュータにおいて、単位画素の配列の傾きと共に、単位画素の基準間隔を特定することができる。
【発明を実施するための最良の形態】
【０００９】
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
本実施形態は、紙等の媒体に印刷されたパターン画像を読み取り、このパターン画像によって記録された情報（コード情報等）を復号する処理に関するものである。本実施形態の前提として、まず、パターン画像の構成例について説明する。
【００１０】
＜パターン画像の構成例＞
本実施形態では、媒体である紙面全体または紙面の特定の領域に、特定の情報を表す情報ブロックが配置される。情報ブロックは、意味のある情報を表現するパターンの最小単位である。この情報ブロックは、複数のパターンブロックの集合で構成され、このパターンブロックには、単位符号パターンが配置される。単位符号パターンは、情報を記録するための符号を表すものであり、パターン画像の最小単位である。
【００１１】
図１は、単位符号パターン、情報ブロック、紙面（媒体）の関係を示す図である。
図１において、単位符号パターンＰ１の集合により、情報ブロックＰ２が構成されている。そして、情報ブロックＰ２の集合により、紙面の太枠で囲まれた領域Ｐ３に情報が記録されている。次に、この単位符号パターンおよび情報ブロックの具体的な構成例について、詳細に説明する。
【００１２】
本実施の形態では、ｍ（ｍ≧３）箇所から選択したｎ（１≦ｎ＜ｍ）箇所に単位画像を配置してなるパターン画像によってｍＣｎ（＝ｍ！／｛（ｍ−ｎ）！×ｎ！｝）通りの情報を表現する。このパターン画像を、単位符号パターンとする。つまり、１つの単位画像を情報に対応させるのではなく、複数の単位画像を情報に対応させている。仮に１つの単位画像を情報に対応させたとすると、単位画像が欠損したり、ノイズが加わったりした場合に、誤った情報を表現してしまうという欠点がある。これに対して、例えば２つの単位画像を情報に対応させたとすると、単位画像が１つであったり３つであったりした場合に、容易に誤りであることが分かる。さらに、１つの単位画像で１ビット、または、高々２ビットを表現する方法では、情報を表現するパターンと視覚的に似たパターンで、情報パターンの読出しを制御する同期パターンを表現することができない。このようなことから、本実施形態では、上記のような符号化方式を採用している。以下では、このような符号化方式をｍＣｎ方式と称する。
ここで、単位画像としては、いかなる形状のものを用いてもよいが、本実施の形態では、単位画像の一例としてドット画像（以下、単に「ドット」という）を用いている。
【００１３】
図２は、ｍＣｎ方式における単位符号パターンの例を示す図である。
図２に示す例では、黒色の領域と斜線の領域をドット配置可能な領域としている。このドット配置可能な領域の間にある白色の領域は、個々のドットを識別するための隙間（空白）を形成するドット配置不可能な領域である。ドット配置可能な領域のうち、黒色の領域にドットが配置され、斜線の領域にはドットが配置されていないことを示している。すなわち、図２は、縦３ドット、横３ドットの合計９ドットを配置可能な領域を設けた例を示しており、（ａ）は、ドット配置可能な領域に２ドットを配置する９Ｃ２方式における単位符号パターンであり、（ｂ）は、ドット配置可能な領域に３ドットを配置する９Ｃ３方式における単位符号パターンである。
【００１４】
ところで、図２で配置されるドット（黒色の領域）は、あくまで情報表現のためのドットであり、画像を構成する最小単位であるドット（図２の最小の四角）とは必ずしも一致しない。本実施形態において、「ドット」というときは前者のドットを指し、後者のドットは「ピクセル」と呼ぶことにすれば、ドットは、６００ｄｐｉにおける２ピクセル×２ピクセルの大きさを有することになる。６００ｄｐｉにおける１ピクセルの大きさは０．０４２３ｍｍなので、ドットの一辺は、８４．６μｍ（＝０．０４２３ｍｍ×２）である。ドットは、大きくなればなるほど目に付きやすくなるため、できるだけ小さいほうが好ましい。ところが、あまり小さくすると、プリンタで印刷できなくなってしまう。そこで、ドットの大きさとして、５０μｍより大きく１００μｍより小さい上記の値を採用している。ただし、上記の値８４．６μｍは、あくまで計算上の数値であり、実際に印刷されたトナー像では１００μｍ程度になる。
【００１５】
図３は、図２に示した単位符号パターンの種類を網羅的に示した図である。なお、この図では、表示の簡略化のためドット間の空白を省略している。
図３（ａ）は、図２（ａ）に示した９Ｃ２方式における全ての単位符号パターンを示している。９Ｃ２方式では、これらの単位符号パターンを用いて、３６（＝９Ｃ２）通りの情報を表現する。また、図３（ｂ）は、図２（ｂ）に示した９Ｃ３方式における全ての単位符号パターンを示している。９Ｃ３方式では、これらの単位符号パターンを用いて、８４（＝９Ｃ３）通りの情報を表現する。
【００１６】
なお、単位符号パターンは、ｍ＝９の場合に限定されるものではなく、ｍの値として、例えば、４、１６等の値を採用してもよい。また、ｎの値も１≦ｎ＜ｍを満たしていればいかなる値を採用してもよい。
また、ｍの値としては、平方数（整数の２乗）だけでなく、異なる２つの整数の積を採用してもよい。つまり、ドットを配置可能な領域は、３ドット×３ドットを配置する場合のような正方形の領域に限らず、３ドット×４ドットを配置する場合のような長方形の領域であってもよい。なお、本明細書において、長方形とは、隣り合う２辺の長さが等しくない矩形のことをいうものとする。
【００１７】
ところで、ｍＣｎ方式における全ての単位符号パターンには、各単位符号パターンを識別するための番号であるパターン値が付されている。
図４に、９Ｃ２方式における単位符号パターンとパターン値との対応を示す。９Ｃ２方式における単位符号パターンは３６個であるので、パターン値としては０〜３５が用いられる。ただし、図４に示した対応はあくまで一例であり、どの単位符号パターンにどのパターン値を割り当ててもよい。なお、９Ｃ３方式については、図示しないが、各単位符号パターンに０〜８３のパターン値が付されることになる。
【００１８】
このように、ｍ箇所からｎ箇所を選択することでｍＣｎ種類の単位符号パターンを用意しているが、本実施形態では、これらの単位符号パターンのうち、特定のパターンを情報パターンとして利用し、残りを同期パターンとして利用する。ここで、情報パターンとは、媒体に埋め込む情報を表現するパターンである。また、同期パターンとは、媒体に埋め込まれた情報パターンを取り出すために用いられるパターンである。例えば、情報パターンの位置を特定したり、画像の回転を検出したりするために用いられる。なお、媒体としては、画像を印刷することが可能であれば、いかなるものを用いてもよい。紙が最も一般的に用いられるので、以下では媒体を紙として説明するが、金属、プラスチック、繊維等であってもよい。
【００１９】
ここで、同期パターンについて説明する。
図５は、９Ｃ２方式における同期パターンの例である。
図５に示すように、単位符号パターンが正方形（縦横のドット数が同じ）である場合は、画像の回転の検出のために４種類の単位符号パターンを同期パターンとして用意する必要がある。ここでは、パターン値３２の単位符号パターンを正立した同期パターンとしている。また、パターン値３３の単位符号パターンを右に９０度回転した同期パターン、パターン値３４の単位符号パターンを右に１８０度回転した同期パターン、パターン値３５の単位符号パターンを右に２７０度回転した同期パターンとしている。この場合、３６種類の単位符号パターンからこの４種類の同期パターンを除いた残りを情報パターンとし、５ビットの情報を表現するとよい。ただし、３６種類の単位符号パターンの情報パターンと同期パターンへの振り分け方は、これには限らない。例えば、４種類で１組を構成する同期パターンの組を５つ用意し、残りの１６種類の情報パターンで４ビットの情報を表現してもよい。
【００２０】
一方、特に図示しないが、単位符号パターンが長方形（縦横のドット数が異なる）である場合は、画像の回転の検出のために２種類の単位符号パターンを同期パターンとして用意すればよい。例えば、縦３ドット×横４ドットを配置可能な領域が検出されるべきなのに、縦４ドット×横３ドットを配置可能な領域が検出された場合は、その時点で画像が９０度または２７０度回転していることが分かるからである。
【００２１】
次に、上記の符号パターンを配置して識別情報と座標情報を表現する方法を述べる。
まず、単位符号パターンにより構成される情報ブロックについて説明する。
図６は、情報ブロックの構成例を示す図である。
図６に示す例では、９Ｃ２方式における単位符号パターンを使用していることも同時に示している。すなわち、３６種類の単位符号パターンを、例えば、同期パターンとして使用する４パターンと、情報パターンとして使用する３２パターンとに分け、各パターンをレイアウトに従って配置する。
【００２２】
また、図６に示す例では、情報ブロックのレイアウトとして、３ドット×３ドットの単位符号パターンを配置可能なパターンブロックを５個×５個の２５個並べたものを採用している。そして、この２５個のパターンブロックのうち、左上の１ブロックに同期パターンを配置している。また、同期パターンの右の４ブロックに紙面上のＸ方向の座標を特定するＸ座標情報を表す情報パターンを配置し、同期パターンの下の４ブロックに紙面上のＹ方向の座標を特定するＹ座標情報を表す情報パターンを配置している。さらに、これらの座標情報を表す情報パターンで囲まれた１６ブロックに、紙面または紙面に印刷される文書の識別情報を表す情報パターンを配置している。
なお、上述した９Ｃ２方式における単位符号パターンは例示に過ぎず、図の左下に示すように、９Ｃ３方式における単位符号パターンを使用してもよい。
【００２３】
次に、本実施形態における識別情報と座標情報を表現するためのレイアウトについて説明する。
図７に、このようなレイアウトの一部を示す。
図７に示すレイアウトでは、図６に示した情報ブロックを基本単位とし、この情報ブロックを紙面全体に周期的に配置する。図では、同期パターンを「Ｓ」で表し、Ｘ座標を表すパターンを「Ｘ１」、「Ｘ２」、…で表し、Ｙ座標を表すパターンを「Ｙ１」、「Ｙ２」、…で表している。座標情報は、例えば紙面の縦及び横に渡ってＭ系列で表現する。また、識別情報の符号化には、幾つかの方法の利用が考えられるが、本実施形態では、ＲＳ符号化が適している。ＲＳ符号は多値の符号法であり、この場合、ブロックの表現をＲＳ符号の多値に対応させるとよいからである。図７では、識別情報を表すパターンを「ＩＸＹ」（Ｘ＝１〜４，Ｙ＝１〜４）で表している。
【００２４】
ここで、座標情報を表現するのに用いるＭ系列について説明する。
Ｍ系列とは、その部分列が、他の部分列と一致することがない系列である。例えば、１１次のＭ系列は、２０４７ビットのビット列である。そして、この２０４７ビットのビット列の中から取り出された１１ビット以上の部分列と同じ並びは、この２０４７ビットのビット列の中に自身以外には存在しない。本実施形態では、１６個の単位符号パターンを４ビットに対応付ける。すなわち、２０４７ビットのビット列を４ビットごとに１０進数で表し、図４に示したような数値対応に従って単位符号パターンを決定し、座標符号として紙面の横と縦に渡って表現する。したがって、復号の際は、３つの連続する単位符号パターンを特定することにより、ビット列上の位置が特定されることになる。
【００２５】
図８に、Ｍ系列を用いた座標情報の符号化の例を示す。
（ａ）は、１１次のＭ系列の例として、「０１１１０００１０１０１１０１００００１１００１０…」というビット列を示している。本実施の形態では、これを４ビットずつに区切り、１つ目の部分列「０１１１」をパターン値７の単位符号パターンとして、２つ目の部分列「０００１」をパターン値１の単位符号パターンとして、３つ目の部分列「０１０１」をパターン値５の単位符号パターンとして、４つ目の部分列「１０１０」をパターン値１０の単位符号パターンとして、それぞれ紙面上に配置する。
【００２６】
このように、４ビットずつ区切って単位符号パターンに割り当てると、（ｂ）に示すように、４周期で全てのパターン列を表現できる。すなわち、１１次のＭ系列は、２０４７ビットなので、この系列を４ビットごとに切り出し、単位符号パターンで表現していくと、最後に３ビットあまることになる。この３ビットに、Ｍ系列の最初の１ビットを加えて４ビットとし単位符号パターンで表す。さらに、Ｍ系列の２ビット目から４ビットごとに切り出し単位符号パターンで表す。すると、次の周期は、Ｍ系列の３ビット目から始まり、その次の周期は、Ｍ系列の４ビット目から始まる。さらに、５周期目は、５ビット目からとなるが、これは最初の周期と一致する。したがって、Ｍ系列の４周期を４ビットごとに切り出していくと、２０４７個の単位符号パターンで全てを尽くすことができる。Ｍ系列は１１次であるので、３つの連続する単位符号パターンは、他のどの位置の連続する符号パターンとも一致することはない。そこで、読出し時には３つの単位符号パターンを読み出せば、復号が可能である。ただし、本実施形態では、誤りの発生を考慮し、４つの単位符号パターンで座標情報を表現している。
【００２７】
ところで、このような符号化を行った場合、４周期のＭ系列は２０４７個のブロックに分割して格納される。そして、図７のようなレイアウトでは、同期パターンを配置したブロックが間に挟まれるので、４周期のＭ系列で２５５８個（≒２０４７個×５／４）のブロック分の長さをカバーすることになる。１つのブロックの一辺の長さは、０．５０８ｍｍ（６００ｄｐｉで１２ピクセル）なので、２５５８個のブロックの長さは１２９９．５ｍｍである。つまり、１２９９．５ｍｍの長さが符号化されることになる。Ａ０サイズの長辺が１１８８．０ｍｍであるので、本実施の形態では、Ａ０サイズの用紙上の座標を符号化することになる。
【００２８】
以上のように構成されるパターン画像は、例えば電子写真方式を用いて、Ｋトナー（カーボンを含む赤外光吸収トナー）、または、特殊トナーにより、媒体である紙面上に形成される。
ここで、特殊トナーとしては、可視光領域（４００ｎｍ〜７００ｎｍ）における最大吸収率が７％以下であり、近赤外領域（８００ｎｍ〜１０００ｎｍ）における吸収率が３０％以上の不可視トナーが例示される。ここで、「可視」及び「不可視」は、目視により認識できるかどうかとは関係しない。印刷された紙面に形成された画像が可視光領域における特定の波長の吸収に起因する発色性の有無により認識できるかどうかで「可視」と「不可視」とを区別している。また、可視光領域における特定の波長の吸収に起因する発色性が若干あるが、人間の目で認識し難いものも「不可視」に含める。
【００２９】
＜画像処理装置の構成および動作＞
次に、紙面上に印刷された（媒体上に形成された）パターン画像を読み取る画像処理装置について説明する。
図９は、画像処理装置の機能構成例を示す図である。
図９に示すように、画像処理装置１０は、パターン画像を撮像する撮像部１００と、パターン画像を形成するドットを検出するドット解析部２００と、検出されたドットにより単位符号パターンや情報ブロックを復元し情報を復号する復号部３００とを備える。
【００３０】
撮像部１００は、ＣＣＤ（Charge Coupled Devices）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の撮像素子を用いて構成され、紙面上に形成されたパターン画像を、連続的な画像フレームとして読み取る。そして、読み取ったパターン画像を、８ビットの画像データとしてドット解析部２００に送る。撮像部１００により読み取られる画像のサイズは、特に限定されないが、ここでは１５６画素×１５６画素とする。
【００３１】
ドット解析部２００は、プログラム制御されたＣＰＵおよびメモリ等で実現され、撮像部１００により撮像された画像からドットを検出し、２次元のビット列を生成する。このドット解析部２００は、画像データを解析する機能として、位置検出部２１０と、角度検出部２２０と、同期化部２３０とを備える。
【００３２】
位置検出部２１０は、撮像部１００から受け取った８ビットの画像からドットの位置を検出する。具体的には、取得した画像フレームからドットを検出し、さらに検出したドットの画像フレーム上での位置情報（座標値）を算出する。したがって、位置検出部２１０は、単位画像であるドットを検出する単位画像検出手段である。
【００３３】
角度検出部２２０は、位置検出部２１０により検出された画像上のドットの整列角度を検出する。ドットの整列角度とは、画像におけるドットの整列方向の傾きであり、ドット本来の配列に対する回転角度である。ドット本来の配列とは、例えば、図３に示したような単位符号パターンにおける縦横のドットの並びである。
【００３４】
同期化部２３０は、位置検出部２１０および角度検出部２２０の検出結果として得られたドットの配列を、２次元のビット配列に変換する。この変換を同期化と呼び、得られたビット配列における各ビットの並びを同期ラインと呼ぶ。また、角度検出部２２０により検出されたドットの整列角度はビット列（同期ライン）の角度となる。
得られたビット配列と、同期ラインの角度および間隔の情報は、復号部３００に送られる。
【００３５】
復号部３００は、プログラム制御されたＣＰＵおよびメモリ等で実現される。この復号部３００は、ドット解析部２００から受け取ったビット配列、同期ラインの角度および間隔の情報に基づいて、３ドット×３ドットのパターンブロックを検出する。そして、得られたパターンブロックを回転補正し、情報ブロックを復元した後、この情報ブロックにより記録された情報を復号する。また、画像処理装置１０が、パターン画像が形成された用紙上に筆記しながらパターン画像を読み取るペン・デバイス（ペン・デバイスの詳細な構成については後述）である場合、ペン先の位置と撮像部１００により撮像される位置との間には、一定のずれがある。そこで、復号部３００は、同期ラインの角度および間隔の情報に基づいて、画像から得られた座標をペン先の座標に変換する。
【００３６】
また、図９に示すように、ドット解析部２００の位置検出部２１０、角度検出部２２０および同期化部２３０には、復号部３００における復号の成否についての情報がフィードバックされる。位置検出部２１０、角度検出部２２０および同期化部２３０は、この復号の成否の情報に基づいて、各々の処理において使用するパラメータを決定する。具体的には、所定のパラメータを使用して処理を行った結果、復号に成功した（正しい復号結果が得られた）場合は、次の画像フレームに対しても同じパラメータを使用して処理を行うこととする。一方、復号に失敗した場合は、次の画像フレームに対しては、過去の処理履歴を参照し、成功率が最も高かったパラメータを選択して使用することとする。
【００３７】
また、画像処理装置１０が後述するペン・デバイスである場合、画像処理装置１０には、ペンによる筆記が行われているか否かを認識する機能が設けられる。そして、ドット解析部２００の位置検出部２１０、角度検出部２２０および同期化部２３０と、復号部３００には、ペンによる筆記が開始されたことを示すストローク開始信号が供給される。ストローク開始信号が供給されると、これらの機能ブロックは、各設定を初期化する。さらにまた、画像処理装置１０がペン・デバイスである場合、復号部３００には、復号結果からペン先を補正するための、ペン先から撮像面までの相対距離情報（ペン−チップ距離情報）が供給される。
【００３８】
図１０は、ドット解析部２００および復号部３００による処理の流れを示すフローチャートである。
初期動作として、撮像部１００により媒体である紙面の撮像が行われたものとする。
図１０に示すように、まず、位置検出部２１０が、メモリにおけるドットの座標格納領域を初期化し（ステップ１００１）、ドットの位置を検出する（ステップ１００２）。位置検出に成功したならば（ステップ１００３でＹｅｓ）、次に、角度検出部２２０が、メモリにおけるドットの整列角度格納領域を初期化し（ステップ１００４）、ドットの整列角度を検出する(ステップ１００５)。角度検出に成功したならば（ステップ１００６でＹｅｓ）、次に、同期化部２３０が、メモリのビット配列格納領域を初期化し（ステップ１００７）、ドット配列をビット配列に同期させる（ステップ１００８）。ドット配列の同期に成功したならば（ステップ１００９でＹｅｓ）、次に、復号部３００が、メモリの復号結果格納領域を初期化し（ステップ１０１０）、復号処理を行う（ステップ１０１１）。復号に成功したならば（ステップ１０１２でＹｅｓ）、復号部３００は、復号に成功したことを示す信号を位置検出部２１０、角度検出部２２０および同期化部２３０に送信し（ステップ１０１３）、復号結果を出力する（ステップ１０１４）。
【００３９】
位置検出部２１０によるドットの位置の検出、角度検出部２２０によるドットの整列角度の検出、同期化部２３０によるドット配列の同期のいずれかに失敗した場合（ステップ１００３、１００６、１００９でＮｏ）は、失敗したステップ以後の処理は行われない。これらの場合、および復号部３００による復号に失敗した場合（ステップ１０１２でＮｏ）は、復号部３００が、復号に失敗したことを示す信号を、位置検出部２１０、角度検出部２２０および同期化部２３０に送信し（ステップ１０１５）、かつ復号結果として出力する（ステップ１０１４）。
【００４０】
＜ドットの整列角度の検出方法＞
ここで、ドットの並びに対する画像の歪みの影響と、本実施形態の角度検出部２２０による角度検出の方法について説明する。
図１１乃至図１３は、撮像部１００により撮像された画像（以下、撮像画像と呼ぶ）の例を示す図である。
図１１は、ドットの整列角度が０度の場合の撮像画像の例であり、図１２は、ドットの整列角度が４５度の場合の撮像画像の例である。これらの図において、撮像画像に対して直交するＸＹ座標系を設定し、横方向をＸ軸、縦方向をＹ軸とする。そして、ドットの整列方向がＸ軸およびＹ軸に沿っている場合を角度０度とする。
【００４１】
図１１および図１２では、撮像部１００の撮像面とドットが形成された紙面とは並行である。これらの図に示す状態では、各ドットは互いに直交する２方向に並んでいる（図中、実線および破線で示した方向がドットの整列方向）。また、隣り合う４つのドットで形成される四角形が正方形をなしている。これらの場合は、近接する２つのドットの位置関係を調べることにより、ドットの整列方向を特定し、ドット本来の配列に対する整列角度を検出することは容易である。
【００４２】
画像処理装置１０が後述するペン・デバイスである場合、紙面に対するペン・デバイスの角度によって、撮像部１００の撮像面が紙面に対して傾き、撮像画像に歪みが生じてしまう。図１３は、図１２に対して画像の上方が奥に、下方が手前に傾いた状態の撮像画像である。この状態では、撮像画像におけるドットの２方向の並びが直交していないので、隣り合う４つのドットで形成される四角形は菱形や平行四辺形となる。
【００４３】
図１３のように撮像画像が歪むと、隣り合う４つのドットで形成される四角形において、短い対角線の長さが２辺の長さに近づくため、正しいドットの整列方向を検出することが困難になる。図１３に示す例では、ドットは、実線で示した方向、破線で示した方向、一点鎖線で示した方向の３方向にドットが並んでいるように認められる。そこで、本実施形態の角度検出部２２０は、以下に説明する手法により、このような場合に適切なドットの整列方向を特定し、整列角度を検出する。
【００４４】
角度検出部２２０は、まず、位置検出部２１０により撮像画像から検出された各ドットに関して、近接ドット対を検出する。近接ドット対は、所定のドットに注目した場合に、そのドットとそのドットに最も近い位置にあるドットとで構成される。次に、検出された近接ドット対の角度の度数分布に基づき、３つの角度を抽出する。そして、抽出された３つの角度の関係等に基づいて、ドットの整列角度を特定する。
【００４５】
＜角度検出部の機能＞
次に、角度検出部２２０の機能についてさらに詳細に説明する。
図１４は、角度検出部２２０の機能構成を示す図である。
角度検出部２２０は、近接ドット対を検出する近接ドット対検出部２２１と、検出された近接ドット対の度数分布データを生成する度数分布生成部２２２とを備える。そして、生成された度数分布データに基づいて３つの角度を抽出する第１軸角度抽出部２２３、第２軸角度抽出部２２４および第３軸角度抽出部２２５と、抽出された３つの角度からドットの整列角度を選択し特定する角度特定部２２６とを備える。図示の構成において、度数分布生成部２２２、第１軸角度抽出部２２３、第２軸角度抽出部２２４、第３軸角度抽出部２２５および角度特定部２２６（図中、破線で囲まれた部分）は、ドットの整列角度を特定する角度特定手段である。
【００４６】
近接ドット対検出部２２１は、位置検出部２１０により検出されたドットの画像フレーム上での位置情報（座標値）を取得し、近接ドット対を検出する。言い換えれば、近接ドット対検出部２２１は、位置検出部２１０の出力であるドット座標値から最も近い位置にあるドット座標値の組み合わせを検出する手段である。近接ドット対の詳細な検出方法については後述する。
【００４７】
度数分布生成部２２２は、近接ドット対検出部２２１により検出された近接ドット対がなす角度の度数分布データを生成する。ここで、近接ドット対がなす角度とは、近接ドット対を構成する２つのドットを結ぶ直線が、位置検出部２１０の出力であるドット位置情報の基準となる所定の方向（例えば、撮像画像に設定されたＸＹ座標のＸ軸方向）に対してなす角度である。
【００４８】
第１軸角度抽出部２２３、第２軸角度抽出部２２４、第３軸角度抽出部２２５は、度数分布生成部２２２により生成された度数分布データに基づいて、ドットの整列方向の候補となる３方向の角度（第１軸角度、第２軸角度、第３軸角度）を抽出する。各々の角度の詳細な検出方法については後述する。
【００４９】
角度特定部２２６は、第１軸角度抽出部２２３、第２軸角度抽出部２２４、第３軸角度抽出部２２５により抽出された第１軸角度、第２軸角度、第３軸角度に基づいて、ドット本来の配列の方向に対応するドットの整列方向の角度（整列角度）を特定し出力する。例えば、図３に示したような単位符号パターンの場合、ドットは縦横の２方向に並んでいるので、この縦横２方向に対応する２方向の整列角度が特定される。図１４では、この２方向をＸ軸およびＹ軸と記載している。整列角度の詳細な特定方法については後述する。
【００５０】
また、第１軸角度抽出部２２３、第２軸角度抽出部２２４、第３軸角度抽出部２２５は、抽出した角度に沿って並ぶ近接ドット対のドット間の距離に基づいて、この方向でのドット間の基準間隔を算出する。そして、角度特定部２２６は、２方向の整列角度におけるドット間の基準間隔を特定する。すなわち、第１軸角度抽出部２２３、第２軸角度抽出部２２４、第３軸角度抽出部２２５、角度特定部２２６は、撮像画像から検出されたドット配列におけるドット間隔を特定する間隔特定手段としても機能する。基準間隔の検出方法については後述する。
【００５１】
＜近接ドット対の検出方法＞
次に、近接ドット対検出部２２１による近接ドット対の検出方法について詳細に説明する。
図１５は、ドットが検出された画像から、近接ドット対が検出された様子を示す図である。図１５（ａ）は位置検出部２１０により検出されたドット位置の一例であり、図１５（ｂ）は図１５（ａ）に対して近接ドット対の検出が行われた状態を示す。図１５（ｂ）では、近接ドット対を、線で結んで表現している。この場合、あるドットＡから最も近いドットＢが、他のドットＣと近接ドット対を成している場合は、ドットＡは他のどのドットとも近接ドット対を成していない（Ａ、Ｂ、Ｃは特に図示していない）。
【００５２】
図１６は、近接ドット対の検出方法の具体例を示す図である。
図１６において、例えば、番号１から４までのドットに対して近接ドット対を検出するものとする。
近接ドット対検出部２２１は、まず、位置検出部２１０が検出した番号１から４までのドットの位置を認識する。そして、番号１のドットを基準に他の番号のドットまでの距離をスキャンしていく。その結果、番号１のドットに最も近いドットは番号３のドットであり、両者の距離（ＰＤ）は２０と認識される。そして、近接ドット対検出部２２１は、番号１のドットに関して、番号３のドットが近接ドットであることを示す情報“Ｐａｉｒ［１］＝３”と、番号３のドットまでの距離が２０であることを示す情報“ＭＰＤ［１］＝２０”とを生成する。同様に、番号３のドットに関して、“Ｐａｉｒ［３］＝１”と“ＭＰＤ［３］＝２０”の情報（以下、属性情報）を生成する。
【００５３】
ここで、Ｐａｉｒ［  ］の［  ］内の番号は自らのドットの番号を示し、Ｐａｉｒ［  ］＝で定義される値は、現時点で近接ドット対となっている相手のドットの番号を示す。また、ＭＰＤ［  ］の［  ］内の番号は自らのドットの番号を示し、ＭＰＤ［  ］の値は、現時点での近接ドット対となっている相手のドットまでの距離を示す。
【００５４】
次に、近接ドット対検出部２２１は、番号２のドットを基準に、番号１以外のドットまでの距離をスキャンしていく。先に番号１のドットをスキャンした時点で、番号１のドットは番号２のドットから最も近いドットではないと判断されているため、番号１のドットをスキャンの対象から外している。
このスキャンの結果、番号２のドットに最も近いドットは番号３のドットであり、両者の距離（ＰＤ）は１５と認識される。この距離は、番号１と番号３とのドットの距離（２０）よりも短い。したがって、位置検出部２１０は、番号２のドットに関して“Ｐａｉｒ［２］＝３”と“ＭＰＤ［２］＝１５”の属性情報を生成し、番号３のドットに関して“Ｐａｉｒ［３］＝２”と“ＭＰＤ［３］＝１５”の属性情報を生成する。そして、この時点で番号１のドットは、番号２のドットに番号３のドットを奪われたため、属性情報が“Ｐａｉｒ［１］＝−１”と“ＭＰＤ［１］＝−１”に変更され、番号１のドットはどの番号のドットとも近接ドット対を成していない状態になる。
【００５５】
同様にして、近接ドット対検出部２２１は、番号３のドットを基準に、番号が１と２以外のドットまでの距離をスキャンしていく。その結果、番号３のドットに最も近いドットは番号４のドットであり、両者の間隔（ＰＤ）は１０と認識される。この距離は、番号２と番号３とのドットの距離（１５）よりも短い。したがって、位置検出部２１０は、番号３のドットに関して“Ｐａｉｒ［３］＝４”と“ＭＰＤ［３］＝１０”の属性情報を生成し、番号４のドットに関して“Ｐａｉｒ［４］＝３”と“ＭＰＤ［４］＝１０”の属性情報を生成する。そして、この時点で番号２のドットは、番号４のドットに番号３のドットを奪われたため、属性情報が“Ｐａｉｒ［２］＝−１”と“ＭＰＤ［２］＝−１”に変更され、番号２のドットはどの番号のドットとも近接ドット対を成していない状態になる。
【００５６】
この時点で、スキャンしていないドットは番号４のドットだけであるが、このドットは既に番号３のドットと近接ドット対を成しているため、改めてスキャンされることはなく処理は終了する。なお、ここでは一例としてドットの数が４個の場合を取り上げたが、ドットの数が５個以上ある場合も上述したスキャンの手順を繰り返していくことで近接ドット対が順次検出される。
【００５７】
図１７は、近接ドット対検出部２２１による近接ドット対の検出処理の流れを説明するフローチャートである。
近接ドット対の検出は、図１６を参照して説明したように、複数のドットの各々を順次基準とし、他のドットとの位置関係を調べることによって行われる。この基準となるドットを基準ドット、他のドットを対象ドットと呼ぶ。図１７に示すように、近接ドット対検出部２２１は、各ドットを順次基準ドットとしながら、以下のループ処理を実行する。
【００５８】
まず、近接ドット対検出部２２１は、基準ドットとして選んだドットの座標値を取得し（ステップ１７０１）、ドット対番号（ＰａｉｒＩｎｄｅｘ）を生成して基準ドットに付与する（ステップ１７０２）。ここでは、基準ドットの座標値を（Ｘｓ，Ｙｓ）とする。次に、近接ドット対検出部２２１は、基準ドット以外の各ドットを順次対象ドットとしながら、以下のループ処理を実行する。
【００５９】
まず、近接ドット対検出部２２１は、対象ドットとして選んだドットの座標値を取得する（ステップ１７０３）。ここでは、対象ドットの座標値を（Ｘｅ，Ｙｅ）とする。次に、近接ドット対検出部２２１は、基準ドットと対象ドットの間の距離（（Ｘｓ，Ｙｓ）−（Ｘｅ，Ｙｅ））を計算する（ステップ１７０４）。そして、算出されたドット間距離が、現在の基準ドットに関するドット間距離のうちで最小値である場合は（ステップ１７０５でＹｅｓ）、その対象ドットと基準ドットとの関係を表すドット対情報（例えば、対象ドットのドット番号および基準ドットと対象ドット間の距離）を保存する（ステップ１７０６）。このとき、他のドットを対象ドットとするドット対情報があれば、そのドット対情報は消去される。
【００６０】
一方、ステップ１７０４で算出されたドット間距離が現在の基準ドットに関するドット間距離のうちで最小値でない場合（ステップ１７０５でＮｏ）、言い換えれば、ドット間距離がより短い他のドットに関するドット対情報が既に保存されている場合は、既に保存されているドット対情報がそのまま保持される。
【００６１】
基準ドット以外の全てのドットを対象ドットとしてステップ１７０３〜１７０６のループ処理が行われると、その基準ドットに最も近い位置にある１つのドットを対象ドットとして、この対象ドットと基準ドットとの関係を表すドット対情報が保存されることとなる。この後、近接ドット対検出部２２１は、この基準ドットおよび対象ドットに関して、ステップ１７０６で保存されたドット対情報に基づいて、近接ドット対か否かを判別する処理を行う（ステップ１７０７）。図１８は、ステップ１７０７に示す近接ドット対の判別処理の詳細を説明するフローチャートである。
【００６２】
図１８を参照すると、近接ドット対検出部２２１は、まず、対象ドットが他のドットとリンクされているか否かを調べる。すなわち、対象ドットが他のドットと既に対をなしているか否かを、図１６で説明した属性情報（Ｐａｉｒ［］およびＭＰＤ［］）を参照して調べる。対象ドットに属性情報が設定されていれば、それは対象ドットが他のドットとリンクされており、対象ドットに属性情報が設定されていなければ、対象ドットは他のドットとリンクしていない。対象ドットと他のドットとの間のリンクが存在する場合（ステップ１８０１でＹｅｓ）、次に近接ドット対検出部２２１は、対象ドットと基準ドットとの間のドット間距離と、対象ドットとリンク先の他のドットとの間のドット間距離とを比較する。そして、基準ドットとの間のドット間距離の方が短い場合（ステップ１８０２でＮｏ）、近接ドット対検出部２２１は、対象ドットと他のドットとの間のリンクを削除する（ステップ１８０３）。
【００６３】
対象ドットと他のドットとの間のリンクが存在しない場合（ステップ１８０１でＮｏ）、またはステップ１８０３で対象ドットと他のドットとの間のリンクを削除した後、近接ドット対検出部２２１は、基準ドットが他のドットとリンクされているか否かを調べる。基準ドットと他のドットとの間のリンクが存在する場合（ステップ１８０４でＹｅｓ）、次に近接ドット対検出部２２１は、基準ドットと対象ドットとの間のドット間距離と、基準ドットとリンク先の他のドットとの間のドット間距離とを比較する。そして、対象ドットとの間のドット間距離の方が短い場合（ステップ１８０５でＮｏ）、近接ドット対検出部２２１は、基準ドットと他のドットとの間のリンクを削除する（ステップ１８０６）。
【００６４】
この後、近接ドット対検出部２２１は、基準ドットと対象ドットとをリンクさせる（ステップ１８０７）。これにより、基準ドットと対象ドットとは近接ドット対となる。
一方、基準ドットと対象ドットとの間のドット間距離よりも、対象ドットとリンク先の他のドットとの間のドット間距離の方が短い場合（ステップ１８０２でＹｅｓ）、または、基準ドットとリンク先の他のドットとの間のドット間距離の方が短い場合（ステップ１８０５でＹｅｓ）は、近接ドット対検出部２２１は、基準ドットと対象ドットとをリンクさせない。したがって、これらの組み合わせは近接ドット対とはならない。
【００６５】
＜第１軸角度、第２軸角度、第３軸角度の抽出方法＞
次に、第１軸角度抽出部２２３、第２軸角度抽出部２２４、第３軸角度抽出部２２５による第１軸角度、第２軸角度、第３軸角度の抽出方法について詳細に説明する。
まず、前処理として、度数分布生成部２２２が、近接ドット対検出部２２１により検出された近接ドット対がなす角度の度数分布データを生成する。この度数分布データは、近接ドット対がなす角度の値ごとに、その出現度数を積算したデータである。
【００６６】
図１９は、度数分布生成部２２２により生成される近接ドット対がなす角度の度数分布の例を視覚的に表現したヒストグラムである。
度数分布データは、１８０度の範囲（図１９の例では、−９０度から＋９０度まで）で生成される。この度数分布データを用いて、第１軸角度抽出部２２３、第２軸角度抽出部２２４、第３軸角度抽出部２２５が、第１軸角度、第２軸角度、第３軸角度をそれぞれ抽出する。
【００６７】
第１軸角度抽出部２２３は、度数分布生成部２２２により生成された度数分布データに基づき、最大頻度の角度を第１軸角度として抽出する。最大頻度の角度は、次のようにして求まる。
第１軸角度抽出部２２３は、まず、出現度数が最大である角度を検出する。そして、検出した角度を中心とする一定の範囲（以下、対象範囲）で、出現度数に基づく平均角度を計算する。算出された角度が最大頻度の角度であり、第１軸角度となる。平均角度は、対象範囲の角度ごとに出現度数を乗算した値を加算し、総出現度数（対象範囲内の出現度数を全て加算した値）で除算した値である。
【００６８】
例えば、出現度数が最大の角度を１０度、対象範囲を−２度から＋２度までの範囲とすると、８度から１２度の範囲で平均角度の計算が行われる。また例えば、この範囲において、８度の出現度数を１０、９度の出現度数を２０、１０度の出現度数を１００、１１度の出現度数を５０、１２度の出現度数を４０とすると、平均角度は、下記の計算により１０．４度となる。
（８×１０＋９×２０＋１０×１００＋１１×５０＋１２×４０）／（１０＋２０＋１００＋５０＋４０）＝１０．４
【００６９】
第２軸角度抽出部２２４は、第１軸角度抽出部２２３により抽出された第１軸角度から一定の角度だけ遷移（オフセット）させた角度（以下、基準角度）を想定し、その基準角度を中心とする一定の範囲内で最大頻度の角度を第２軸角度として抽出する。そして、第１軸角度の算出と同様に、所定の対象範囲で出現頻度に基づく平均角度を算出し、それを第２軸角度とする。ここで、第１軸角度と基準角度とがなす遷移角度は、ドット本来の配列に基づいて設定される。例えば、図３に示した単位符号パターンの場合、９０度である。最大頻度の角度の計算方法は、第１軸角度の場合と同様である。基準角度を含む一定の範囲は、任意に定めて良いが、第２軸角度の検出可否や復号部３００による復号成否の履歴に基づいて定めても良い。
【００７０】
第３軸角度抽出部２２５は、基準角度に対して第２軸角度と対称な角度を中心とする一定の範囲内で、最大頻度の角度を第３軸角度として抽出する。そして、所定の対象範囲で出現頻度に基づく平均角度を算出し、それを第３軸角度とする。例えば、基準角度が１００度、第２軸角度が８０度である場合、基準角度に対して第２軸角度と対称な角度は、１２０度である。この角度を含む一定の範囲は、任意に定めて良いが、第２軸角度の検出可否や復号部３００による復号成否の履歴に基づいて定めても良い。また、最大頻度の角度の計算方法は、第１軸角度の場合と同様である。
【００７１】
図２０は、度数分布生成部２２２、第１軸角度抽出部２２３、第２軸角度抽出部２２４、第３軸角度抽出部２２５による第１軸角度、第２軸角度、第３軸角度の抽出処理の流れを説明するフローチャートである。
図２０に示すように、まず、度数分布生成部２２２が、各近接ドット対を順次対象として、以下のループ処理を実行する。
【００７２】
度数分布生成部２２２は、まず、近接ドット対の２つのドットの座標（Ｘ１，Ｙ１）、（Ｘ２，Ｙ２）を取得し（ステップ２００１）、この近接ドット対がなす角度θを、下式により計算する（ステップ２００２）。そして、得られた角度θの、度数分布データの度数を１加算する（ステップ２００３）。
θ＝ｔａｎ-1｛（Ｙ１−Ｙ２）／（Ｘ１−Ｘ２）｝
【００７３】
全ての近接ドット対に対してステップ２００１〜２００３の処理が行われると、次に第１軸角度抽出部２２３が、生成された度数分布データに基づいて、第１軸角度を抽出する（ステップ２００４）。また、第１軸角度に沿ったドット間の基準間隔を算出する（ステップ２００５）。なお、基準間隔およびその検出方法の詳細は後述する。
【００７４】
次に、第２軸角度抽出部２２４が、度数分布データおよび第１軸角度に基づいて、第２軸角度を抽出し（ステップ２００６）、第２軸角度に沿ったドット間の基準間隔を算出する（ステップ２００７）。さらに、第３軸角度抽出部２２５が、度数分布データ、基準角度および第２軸角度に基づいて、第３軸角度を抽出し（ステップ２００８）、第３軸角度に沿ったドット間の基準間隔を算出する（ステップ２００９）。
【００７５】
図２１は、抽出された３方向の角度のイメージを示す図である。
図２１（ａ）に示すように並ぶドットが検出され、図２１（ｂ）に示すように第１軸角度が抽出されたものとする。この第１軸角度に対して９０度オフセットした基準角度を挟んで、第２軸角度と第３軸角度とが抽出されている。
【００７６】
＜整列角度の特定方法＞
次に、角度特定部２２６による整列角度の特定方法について詳細に説明する。
角度特定部２２６は、度数分布生成部２２２、第１軸角度抽出部２２３、第２軸角度抽出部２２４、第３軸角度抽出部２２５により抽出された第１軸角度、第２軸角度、第３軸角度に基づき、ドットの整列角度を特定し出力する。具体的には、ドット本来の配列の方向に対応する２方向のドットの整列方向（図１４ではＸ軸およびＹ軸と記載）の角度が特定される。この整列角度の特定は、以下の手順で行われる。
【００７７】
角度特定部２２６は、まず、第１軸角度、第２軸角度、第３軸角度と、直前の画像フレーム（以下、前フレームと呼ぶ）に対する復号部３００による復号の成否の情報を取得する。前フレームに対する復号が成功した場合、角度特定部２２６は、第１軸角度、第２軸角度、第３軸角度のうち、前フレームにおいて特定した整列角度に近い２つを選んで整列角度とする。前フレームと現フレームとは連続的に読み取られているため、適切な整列角度は大きく変わらないと考えられる。ただし、画像処理装置１０がペン・デバイスである場合、撮像部１００と紙面との位置関係が随時変化する。そこで、前フレームにおいて特定した整列角度と同一ではなく、近い角度が選ばれる。
【００７８】
前フレームに対する復号が失敗した場合、角度特定部２２６は、例えば次のようにして２方向の整列角度を特定する。
第１軸角度、第２軸角度、第３軸角度の全てが抽出されている場合、第１軸角度と、第２軸角度または第３軸角度のうちで基準角度に近い方とを選び、整列角度とする。
第３軸角度が抽出されなかった場合、角度特定部２２６は、第１軸角度と第２軸角度とを選び、整列角度とする。第３軸角度が抽出されない場合とは、度数分布データにおいて、基準角度に対して第２軸角度と対称な角度を中心とする一定の範囲内に出現度数の多い角度が存在しない場合、第２軸角度と基準角度とが一致している場合などである。
また、第２軸角度も抽出されなかった場合、角度特定部２２６は、第１軸角度と、第１軸角度に対して一定角度オフセットした基準角度とを整列角度とする。第２軸角度が抽出されない場合とは、度数分布データにおいて、基準角度を中心とする一定の範囲に出現度数の多い角度が存在しない場合などである。
【００７９】
さらに、角度特定部２２６は、所定の画像フレームで復号に失敗した場合に、次の画像フレームにおける整列角度として、復号に失敗した画像フレームとは異なる角度を選ぶようにしても良い。具体的には例えば、第１軸角度と第２軸角度を整列角度として復号に失敗した場合に、次の画像フレームでは、第１軸角度と第３軸角度とを整列角度とする、第２軸角度と第３軸角度とを整列角度とする、等である。
【００８０】
＜基準間隔の算出方法＞
次に、第１軸角度抽出部２２３、第２軸角度抽出部２２４、第３軸角度抽出部２２５による基準間隔の算出方法について説明する。
基準間隔とは、一定の方向に沿って並ぶ近接ドット対におけるドット間距離の平均値である。ただし、ドット間距離が突出して大きい近接ドット対を排除するため、一定の閾値（最大ドット間距離）を設け、ドット間距離がこの閾値以下である近接ドット対に関して、平均値を計算する。この閾値は、例えば、次のようにして決定される。
【００８１】
まず、度数分布生成部２２２が、近接ドット対検出部２２１により検出された近接ドット対のドット間距離の度数分布データを生成する。この度数分布データは、近接ドット対のドット間距離の値ごとに、その出現度数を積算したデータである。そして、出現度数が最大であるドット間距離よりも若干長い距離を閾値とする。図２２に、ドット間距離の度数分布の例を視覚的に表現したヒストグラムを示す。図２２において、出現頻度最大のドット間距離よりも若干長い距離に閾値が設定されている。
【００８２】
第１軸角度抽出部２２３は、第１軸角度に沿って並ぶ近接ドット対のうち、ドット間距離が上記のようにして求めた閾値以下のものを抽出する。そして、ドット間距離の平均値を計算し、第１軸方向のドットの基準間隔とする。なお、各種の誤差を考慮し、近接ドット対がなす角度は、第１軸角度に対して一定の幅（−α度から＋α度）を含むものとする。すなわち、近接ドット対がなす角度が第１基準角度±αである近接ドット対が、第１軸角度に沿って並ぶ近接ドット対である。
【００８３】
同様にして、第２軸角度抽出部２２４は、第２軸角度に沿って並ぶ近接ドット対のうち、ドット間距離が上記のようにして求めた閾値以下のものを抽出し、第２軸方向のドットの基準間隔を算出する。また、第３軸角度抽出部２２５は、第３軸角度に沿って並ぶ近接ドット対のうち、ドット間距離が上記のようにして求めた閾値以下のものを抽出し、第３軸方向のドットの基準間隔を算出する。
【００８４】
角度特定部２２６は、第１軸角度抽出部２２３、第２軸角度抽出部２２４、第３軸角度抽出部２２５から各々の方向の基準間隔を取得する。そして、整列角度として特定された方向（図１４のＸ軸およびＹ軸）の基準間隔を選択し、整列角度と共に出力する。この整列角度および整列角度における基準間隔の情報は、同期化部２３０において同期化を行うための同期ラインの特定に用いられる。
【００８５】
＜ペン・デバイスの構成＞
次に、本実施の形態における画像処理装置１０の具体的なハードウェア構成について説明する。ここでは、画像処理装置１０を実現するペン・デバイスの構成例について説明する。
図２３は、ペン・デバイスの機構を示した図である。
図示するように、ペン・デバイス６０は、ペン全体の動作を制御する制御回路６１を備える。制御回路６１は、入力画像から検出した符号画像を処理する画像処理部６１ａと、そこでの処理結果から識別情報及び座標情報を抽出するデータ処理部６１ｂとを含む。また、特に図示しないが、制御回路６１は、これら画像処理部６１ａおよびデータ処理部６１ｂを動作させるためのプログラムを格納する不揮発性メモリとを含む。この制御回路６１には、ペン・デバイス６０による筆記動作をペンチップ６９に加わる圧力によって検出する圧力センサ６２が接続されている。また、媒体上に赤外光を照射する赤外ＬＥＤ６３と、画像を入力する赤外ＣＭＯＳ６４も接続されている。さらに、識別情報及び座標情報を記憶するための情報メモリ６５と、外部装置と通信するための通信回路６６と、ペンを駆動するためのバッテリ６７と、ペンの識別情報（ペンＩＤ）を記憶するペンＩＤメモリ６８も接続されている。
【００８６】
図９に示した画像処理装置１０において、撮像部１００は、例えば、図２３の赤外ＣＭＯＳ６４にて実現される。また、ドット解析部２００は、例えば、図２３の画像処理部６１ａにて実現される。さらに、復号部３００は、例えば、図２３のデータ処理部６１ｂにて実現される。なお、画像処理装置１０は、図２３に示すようなペン・デバイス６０の他、画像処理部６１ａ又はデータ処理部６１ｂにて実現される機能を、例えば、汎用のコンピュータで実現しても良い。
【００８７】
画像処理部６１ａおよびデータ処理部６１ｂの機能を実現するプログラムは、通信手段を介して提供したり、ＣＤ−ＲＯＭ等の記録媒体に格納して提供したりすることができる。また、制御回路６１に含まれる上述した不揮発性メモリに格納して提供しても良い。
【図面の簡単な説明】
【００８８】
【図１】本実施形態で用いられる単位符号パターン、情報ブロック、紙面（媒体）の関係を示す図である。
【図２】ｍＣｎ方式における単位符号パターンの例を示す図である。
【図３】図２に示した単位符号パターンの種類を網羅的に示した図である。
【図４】９Ｃ２方式における単位符号パターンとパターン値との対応を示す図である。
【図５】９Ｃ２方式における同期パターンの例を示す図である。
【図６】情報ブロックの構成例を示す図である。
【図７】本実施形態における識別情報と座標情報を表現するためのレイアウトの例を示す図である。
【図８】Ｍ系列を用いた座標情報の符号化の例を示す図である。
【図９】本実施形態の画像処理装置の機能構成例を示す図である。
【図１０】本実施形態のドット解析部および復号部による処理の流れを示すフローチャートである。
【図１１】撮像画像の例を示す図であり、ドットの整列角度が０度の場合の撮像画像の例である。
【図１２】撮像画像の例を示す図であり、ドットの整列角度が４５度の場合の撮像画像の例である。
【図１３】図１２に対して画像の上方が奥に、下方が手前に傾いた状態の撮像画像を示す図である。
【図１４】本実施形態の角度検出部の機能構成を示す図である。
【図１５】ドットが検出された画像から、近接ドット対が検出された様子を示す図である。
【図１６】本実施形態における近接ドット対の検出方法の具体例を示す図である。
【図１７】本実施形態の近接ドット対検出部による近接ドット対の検出処理の流れを説明するフローチャートである。
【図１８】図１７のステップ１７０７に示す近接ドット対の判別処理の詳細を説明するフローチャートである。
【図１９】本実施形態の度数分布生成部により生成される近接ドット対がなす角度の度数分布の例を視覚的に表現したヒストグラムである。
【図２０】本実施形態の度数分布生成部、第１軸角度抽出部、第２軸角度抽出部、第３軸角度抽出部による第１軸角度、第２軸角度、第３軸角度の抽出処理の流れを説明するフローチャートである。
【図２１】本実施形態で抽出された３方向の角度のイメージを示す図である。
【図２２】本実施形態におけるドット間距離の度数分布の例を視覚的に表現したヒストグラムである。
【図２３】画像処理装置であるペン・デバイスの機構を示した図である。
【符号の説明】
【００８９】
１０…画像処理装置、１００…撮像部、２００…ドット解析部、２１０…位置検出部、２２０…角度検出部、２２１…近接ドット対検出部、２２２…度数分布生成部、２２３…第１軸角度抽出部、２２４…第２軸角度抽出部、２２５…第３軸角度抽出部、２２６…角度特定部、２３０…同期化部、３００…復号部
【図１】
2009181346.tif 000003
【図２】
2009181346.tif 000004
【図３】
2009181346.tif 000005
【図４】
2009181346.tif 000006
【図５】
2009181346.tif 000007
【図６】
2009181346.tif 000008
【図７】
2009181346.tif 000009
【図８】
2009181346.tif 000010
【図９】
2009181346.tif 000011
【図１０】
2009181346.tif 000012
【図１１】
2009181346.tif 000013
【図１２】
2009181346.tif 000014
【図１３】
2009181346.tif 000015
【図１４】
2009181346.tif 000016
【図１５】
2009181346.tif 000017
【図１６】
2009181346.tif 000018
【図１７】
2009181346.tif 000019
【図１８】
2009181346.tif 000020
【図１９】
2009181346.tif 000021
【図２０】
2009181346.tif 000022
【図２１】
2009181346.tif 000023
【図２２】
2009181346.tif 000024
【図２３】
2009181346.tif 000025