画像処理装置、ペン・デバイスおよびプログラム
【課題】パターン画像を構成する単位画像が並ぶ方向を特定し、パターン画像の向きを検出できるようにする。
【解決手段】所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像部により撮像して得られた画像から単位画像(ドット)を検出する位置検出部と、この位置検出部により画像から検出された単位画像に関して、最も近い位置にある単位画像どうしの組み合わせである近接ドット対を検出する近接ドット対検出部221と、近接ドット対検出部221により検出された近接ドット対を構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225、角度特定部226とを備える。
【解決手段】所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像部により撮像して得られた画像から単位画像(ドット)を検出する位置検出部と、この位置検出部により画像から検出された単位画像に関して、最も近い位置にある単位画像どうしの組み合わせである近接ドット対を検出する近接ドット対検出部221と、近接ドット対検出部221により検出された近接ドット対を構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225、角度特定部226とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、ペン・デバイスおよびプログラムに関する。
【背景技術】
【0002】
印刷用紙等の媒体上にコード化された情報を表すパターン画像や特定の意味を付与されたパターン画像を埋め込み、読み取り装置で読み取ってコード情報を復号したり付与された意味に応じて装置を制御したりすることが、従来から行われている。パターン画像により表される情報としては、パターン画像が埋め込まれた媒体自体の識別情報や媒体に記録された文書の識別情報、媒体上の位置を表す位置情報などがある。
【0003】
この種の技術では、パターン画像で記述したコード情報を復号するために、読み取り画像におけるパターン画像の向きを検出することが必要である。特に、ペン・デバイスのような使用者が手に持って操作する読み取り装置は、媒体に対する読み取り装置の向きや角度が随時変わるため、適切にパターン画像の向きを検出することが非常に重要である。
【0004】
特許文献1には、コード枠とコード枠に囲まれたセルとを含む2次元コードにおいて、データ等と共にコードの向きを表すパターンがセルに記録される従来技術が開示されている。
【0005】
【特許文献1】特開2006−85679号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
媒体に埋め込まれるパターン画像は、情報密度を上げるために冗長なパターンを少なくすることが望まれる。
本発明は、以上のような課題に鑑みてなされたものであり、パターン画像を構成する単位画像が並ぶ方向を特定し、パターン画像の向きを検出できるようにすることを目的とする。また、読み取った画像に歪みがある場合でも単位画像が並ぶ方向を特定できるようにすることを目的とする。
【課題を解決するための手段】
【0007】
請求項1に係る発明は、所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像装置により撮像して得られた画像から単位画像を検出する単位画像検出手段と、前記単位画像検出手段により前記画像から検出された単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する組み合わせ検出手段と、前記組み合わせ検出手段により検出された単位画像の組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する角度特定手段とを備えることを特徴とする画像処理装置である。
請求項2に係る発明は、前記角度特定手段により角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する間隔特定手段をさらに備える請求項1に記載の画像処理装置である。
請求項3に係る発明は、前記角度特定手段は、前記単位画像を結ぶ直線の傾きのうち、出現頻度の最も高い角度を第1の角度とし、当該第1の角度に対して所定の角度だけ遷移させた基準角度を含む一定範囲において出現頻度の最も高い角度を第2の角度とし、当該第1の角度および当該第2の角度を前記2方向の角度とすることを特徴とする請求項1に記載の画像処理装置である。
請求項4に係る発明は、前記角度特定手段は、前記基準角度に対して前記第2の角度の対称となる角度を含む一定範囲において出現頻度の最も高い角度を第3の角度とし、所定の基準に基づいて、前記第1の角度と前記第2の角度と当該第3の角度のうち2つを選んで、前記2方向の角度とすることを特徴とする請求項3に記載の画像処理装置である。
請求項5に係る発明は、前記単位画像検出手段により検出された単位画像および前記角度特定手段により特定された当該単位画像の配列の角度に基づき、当該単位画像によって符号化されて記録された情報を復号する復号手段をさらに備え、前記角度特定手段は、前記第1の角度、第2の角度、第3の角度のうち、前記復号手段による復号が成功したときの前記単位画像の配列の角度に近い2つの角度を選択することを特徴とする請求項4に記載の画像処理装置である。
請求項6に係る発明は、所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像する撮像手段と、前記撮像手段により撮像して得られた画像から単位画像を検出する単位画像検出手段と、前記単位画像検出手段により前記画像から検出された単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する組み合わせ検出手段と、前記組み合わせ検出手段により検出された単位画像の組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する角度特定手段とを備えることを特徴とするペン・デバイスである。
請求項7に係る発明は、前記角度特定手段により角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する間隔特定手段をさらに備える請求項6に記載のペン・デバイスである。
請求項8に係る発明は、コンピュータに、所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像装置により撮像して得られた画像から単位画像を検出する機能と、前記画像から検出された単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する機能と、検出された単位画像の組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する機能と、を実現させるためのプログラムである。
請求項9に係る発明は、前記コンピュータに、角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する機能をさらに実現させる請求項8に記載のプログラムである。
【発明の効果】
【0008】
請求項1に係る発明によれば、近接する単位画素の組み合わせに基づいて、単位画素の配列の傾きを特定することができる。
請求項2に係る発明によれば、単位画素の配列の傾きと共に、単位画素の基準間隔を特定することができる。
請求項3に係る発明によれば、単位画素の配列における2方向の傾きを特定することができる。
請求項4に係る発明によれば、単位画像の並びが3方向検出される場合でも、単位画素の配列における2方向の傾きを特定することができる。
請求項5に係る発明によれば、情報の復号の成否に基づいて、単位画素の配列における傾きを、より適切に特定することができる。
請求項6に係る発明によれば、ペン・デバイスにおいて、近接する単位画素の組み合わせに基づいて、単位画素の配列の傾きを特定することができる。
請求項7に係る発明によれば、ペン・デバイスにおいて、単位画素の配列の傾きと共に、単位画素の基準間隔を特定することができる。
請求項8に係る発明によれば、画像処理装置の機能を実現するコンピュータにおいて、近接する単位画素の組み合わせに基づいて、単位画素の配列の傾きを特定することができる。
請求項9に係る発明によれば、画像処理装置の機能を実現するコンピュータにおいて、単位画素の配列の傾きと共に、単位画素の基準間隔を特定することができる。
【発明を実施するための最良の形態】
【0009】
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
本実施形態は、紙等の媒体に印刷されたパターン画像を読み取り、このパターン画像によって記録された情報(コード情報等)を復号する処理に関するものである。本実施形態の前提として、まず、パターン画像の構成例について説明する。
【0010】
<パターン画像の構成例>
本実施形態では、媒体である紙面全体または紙面の特定の領域に、特定の情報を表す情報ブロックが配置される。情報ブロックは、意味のある情報を表現するパターンの最小単位である。この情報ブロックは、複数のパターンブロックの集合で構成され、このパターンブロックには、単位符号パターンが配置される。単位符号パターンは、情報を記録するための符号を表すものであり、パターン画像の最小単位である。
【0011】
図1は、単位符号パターン、情報ブロック、紙面(媒体)の関係を示す図である。
図1において、単位符号パターンP1の集合により、情報ブロックP2が構成されている。そして、情報ブロックP2の集合により、紙面の太枠で囲まれた領域P3に情報が記録されている。次に、この単位符号パターンおよび情報ブロックの具体的な構成例について、詳細に説明する。
【0012】
本実施の形態では、m(m≧3)箇所から選択したn(1≦n<m)箇所に単位画像を配置してなるパターン画像によってmCn(=m!/{(m−n)!×n!})通りの情報を表現する。このパターン画像を、単位符号パターンとする。つまり、1つの単位画像を情報に対応させるのではなく、複数の単位画像を情報に対応させている。仮に1つの単位画像を情報に対応させたとすると、単位画像が欠損したり、ノイズが加わったりした場合に、誤った情報を表現してしまうという欠点がある。これに対して、例えば2つの単位画像を情報に対応させたとすると、単位画像が1つであったり3つであったりした場合に、容易に誤りであることが分かる。さらに、1つの単位画像で1ビット、または、高々2ビットを表現する方法では、情報を表現するパターンと視覚的に似たパターンで、情報パターンの読出しを制御する同期パターンを表現することができない。このようなことから、本実施形態では、上記のような符号化方式を採用している。以下では、このような符号化方式をmCn方式と称する。
ここで、単位画像としては、いかなる形状のものを用いてもよいが、本実施の形態では、単位画像の一例としてドット画像(以下、単に「ドット」という)を用いている。
【0013】
図2は、mCn方式における単位符号パターンの例を示す図である。
図2に示す例では、黒色の領域と斜線の領域をドット配置可能な領域としている。このドット配置可能な領域の間にある白色の領域は、個々のドットを識別するための隙間(空白)を形成するドット配置不可能な領域である。ドット配置可能な領域のうち、黒色の領域にドットが配置され、斜線の領域にはドットが配置されていないことを示している。すなわち、図2は、縦3ドット、横3ドットの合計9ドットを配置可能な領域を設けた例を示しており、(a)は、ドット配置可能な領域に2ドットを配置する9C2方式における単位符号パターンであり、(b)は、ドット配置可能な領域に3ドットを配置する9C3方式における単位符号パターンである。
【0014】
ところで、図2で配置されるドット(黒色の領域)は、あくまで情報表現のためのドットであり、画像を構成する最小単位であるドット(図2の最小の四角)とは必ずしも一致しない。本実施形態において、「ドット」というときは前者のドットを指し、後者のドットは「ピクセル」と呼ぶことにすれば、ドットは、600dpiにおける2ピクセル×2ピクセルの大きさを有することになる。600dpiにおける1ピクセルの大きさは0.0423mmなので、ドットの一辺は、84.6μm(=0.0423mm×2)である。ドットは、大きくなればなるほど目に付きやすくなるため、できるだけ小さいほうが好ましい。ところが、あまり小さくすると、プリンタで印刷できなくなってしまう。そこで、ドットの大きさとして、50μmより大きく100μmより小さい上記の値を採用している。ただし、上記の値84.6μmは、あくまで計算上の数値であり、実際に印刷されたトナー像では100μm程度になる。
【0015】
図3は、図2に示した単位符号パターンの種類を網羅的に示した図である。なお、この図では、表示の簡略化のためドット間の空白を省略している。
図3(a)は、図2(a)に示した9C2方式における全ての単位符号パターンを示している。9C2方式では、これらの単位符号パターンを用いて、36(=9C2)通りの情報を表現する。また、図3(b)は、図2(b)に示した9C3方式における全ての単位符号パターンを示している。9C3方式では、これらの単位符号パターンを用いて、84(=9C3)通りの情報を表現する。
【0016】
なお、単位符号パターンは、m=9の場合に限定されるものではなく、mの値として、例えば、4、16等の値を採用してもよい。また、nの値も1≦n<mを満たしていればいかなる値を採用してもよい。
また、mの値としては、平方数(整数の2乗)だけでなく、異なる2つの整数の積を採用してもよい。つまり、ドットを配置可能な領域は、3ドット×3ドットを配置する場合のような正方形の領域に限らず、3ドット×4ドットを配置する場合のような長方形の領域であってもよい。なお、本明細書において、長方形とは、隣り合う2辺の長さが等しくない矩形のことをいうものとする。
【0017】
ところで、mCn方式における全ての単位符号パターンには、各単位符号パターンを識別するための番号であるパターン値が付されている。
図4に、9C2方式における単位符号パターンとパターン値との対応を示す。9C2方式における単位符号パターンは36個であるので、パターン値としては0〜35が用いられる。ただし、図4に示した対応はあくまで一例であり、どの単位符号パターンにどのパターン値を割り当ててもよい。なお、9C3方式については、図示しないが、各単位符号パターンに0〜83のパターン値が付されることになる。
【0018】
このように、m箇所からn箇所を選択することでmCn種類の単位符号パターンを用意しているが、本実施形態では、これらの単位符号パターンのうち、特定のパターンを情報パターンとして利用し、残りを同期パターンとして利用する。ここで、情報パターンとは、媒体に埋め込む情報を表現するパターンである。また、同期パターンとは、媒体に埋め込まれた情報パターンを取り出すために用いられるパターンである。例えば、情報パターンの位置を特定したり、画像の回転を検出したりするために用いられる。なお、媒体としては、画像を印刷することが可能であれば、いかなるものを用いてもよい。紙が最も一般的に用いられるので、以下では媒体を紙として説明するが、金属、プラスチック、繊維等であってもよい。
【0019】
ここで、同期パターンについて説明する。
図5は、9C2方式における同期パターンの例である。
図5に示すように、単位符号パターンが正方形(縦横のドット数が同じ)である場合は、画像の回転の検出のために4種類の単位符号パターンを同期パターンとして用意する必要がある。ここでは、パターン値32の単位符号パターンを正立した同期パターンとしている。また、パターン値33の単位符号パターンを右に90度回転した同期パターン、パターン値34の単位符号パターンを右に180度回転した同期パターン、パターン値35の単位符号パターンを右に270度回転した同期パターンとしている。この場合、36種類の単位符号パターンからこの4種類の同期パターンを除いた残りを情報パターンとし、5ビットの情報を表現するとよい。ただし、36種類の単位符号パターンの情報パターンと同期パターンへの振り分け方は、これには限らない。例えば、4種類で1組を構成する同期パターンの組を5つ用意し、残りの16種類の情報パターンで4ビットの情報を表現してもよい。
【0020】
一方、特に図示しないが、単位符号パターンが長方形(縦横のドット数が異なる)である場合は、画像の回転の検出のために2種類の単位符号パターンを同期パターンとして用意すればよい。例えば、縦3ドット×横4ドットを配置可能な領域が検出されるべきなのに、縦4ドット×横3ドットを配置可能な領域が検出された場合は、その時点で画像が90度または270度回転していることが分かるからである。
【0021】
次に、上記の符号パターンを配置して識別情報と座標情報を表現する方法を述べる。
まず、単位符号パターンにより構成される情報ブロックについて説明する。
図6は、情報ブロックの構成例を示す図である。
図6に示す例では、9C2方式における単位符号パターンを使用していることも同時に示している。すなわち、36種類の単位符号パターンを、例えば、同期パターンとして使用する4パターンと、情報パターンとして使用する32パターンとに分け、各パターンをレイアウトに従って配置する。
【0022】
また、図6に示す例では、情報ブロックのレイアウトとして、3ドット×3ドットの単位符号パターンを配置可能なパターンブロックを5個×5個の25個並べたものを採用している。そして、この25個のパターンブロックのうち、左上の1ブロックに同期パターンを配置している。また、同期パターンの右の4ブロックに紙面上のX方向の座標を特定するX座標情報を表す情報パターンを配置し、同期パターンの下の4ブロックに紙面上のY方向の座標を特定するY座標情報を表す情報パターンを配置している。さらに、これらの座標情報を表す情報パターンで囲まれた16ブロックに、紙面または紙面に印刷される文書の識別情報を表す情報パターンを配置している。
なお、上述した9C2方式における単位符号パターンは例示に過ぎず、図の左下に示すように、9C3方式における単位符号パターンを使用してもよい。
【0023】
次に、本実施形態における識別情報と座標情報を表現するためのレイアウトについて説明する。
図7に、このようなレイアウトの一部を示す。
図7に示すレイアウトでは、図6に示した情報ブロックを基本単位とし、この情報ブロックを紙面全体に周期的に配置する。図では、同期パターンを「S」で表し、X座標を表すパターンを「X1」、「X2」、…で表し、Y座標を表すパターンを「Y1」、「Y2」、…で表している。座標情報は、例えば紙面の縦及び横に渡ってM系列で表現する。また、識別情報の符号化には、幾つかの方法の利用が考えられるが、本実施形態では、RS符号化が適している。RS符号は多値の符号法であり、この場合、ブロックの表現をRS符号の多値に対応させるとよいからである。図7では、識別情報を表すパターンを「IXY」(X=1〜4,Y=1〜4)で表している。
【0024】
ここで、座標情報を表現するのに用いるM系列について説明する。
M系列とは、その部分列が、他の部分列と一致することがない系列である。例えば、11次のM系列は、2047ビットのビット列である。そして、この2047ビットのビット列の中から取り出された11ビット以上の部分列と同じ並びは、この2047ビットのビット列の中に自身以外には存在しない。本実施形態では、16個の単位符号パターンを4ビットに対応付ける。すなわち、2047ビットのビット列を4ビットごとに10進数で表し、図4に示したような数値対応に従って単位符号パターンを決定し、座標符号として紙面の横と縦に渡って表現する。したがって、復号の際は、3つの連続する単位符号パターンを特定することにより、ビット列上の位置が特定されることになる。
【0025】
図8に、M系列を用いた座標情報の符号化の例を示す。
(a)は、11次のM系列の例として、「0111000101011010000110010…」というビット列を示している。本実施の形態では、これを4ビットずつに区切り、1つ目の部分列「0111」をパターン値7の単位符号パターンとして、2つ目の部分列「0001」をパターン値1の単位符号パターンとして、3つ目の部分列「0101」をパターン値5の単位符号パターンとして、4つ目の部分列「1010」をパターン値10の単位符号パターンとして、それぞれ紙面上に配置する。
【0026】
このように、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つの単位符号パターンで座標情報を表現している。
【0027】
ところで、このような符号化を行った場合、4周期のM系列は2047個のブロックに分割して格納される。そして、図7のようなレイアウトでは、同期パターンを配置したブロックが間に挟まれるので、4周期のM系列で2558個(≒2047個×5/4)のブロック分の長さをカバーすることになる。1つのブロックの一辺の長さは、0.508mm(600dpiで12ピクセル)なので、2558個のブロックの長さは1299.5mmである。つまり、1299.5mmの長さが符号化されることになる。A0サイズの長辺が1188.0mmであるので、本実施の形態では、A0サイズの用紙上の座標を符号化することになる。
【0028】
以上のように構成されるパターン画像は、例えば電子写真方式を用いて、Kトナー(カーボンを含む赤外光吸収トナー)、または、特殊トナーにより、媒体である紙面上に形成される。
ここで、特殊トナーとしては、可視光領域(400nm〜700nm)における最大吸収率が7%以下であり、近赤外領域(800nm〜1000nm)における吸収率が30%以上の不可視トナーが例示される。ここで、「可視」及び「不可視」は、目視により認識できるかどうかとは関係しない。印刷された紙面に形成された画像が可視光領域における特定の波長の吸収に起因する発色性の有無により認識できるかどうかで「可視」と「不可視」とを区別している。また、可視光領域における特定の波長の吸収に起因する発色性が若干あるが、人間の目で認識し難いものも「不可視」に含める。
【0029】
<画像処理装置の構成および動作>
次に、紙面上に印刷された(媒体上に形成された)パターン画像を読み取る画像処理装置について説明する。
図9は、画像処理装置の機能構成例を示す図である。
図9に示すように、画像処理装置10は、パターン画像を撮像する撮像部100と、パターン画像を形成するドットを検出するドット解析部200と、検出されたドットにより単位符号パターンや情報ブロックを復元し情報を復号する復号部300とを備える。
【0030】
撮像部100は、CCD(Charge Coupled Devices)やCMOS(Complementary Metal Oxide Semiconductor)等の撮像素子を用いて構成され、紙面上に形成されたパターン画像を、連続的な画像フレームとして読み取る。そして、読み取ったパターン画像を、8ビットの画像データとしてドット解析部200に送る。撮像部100により読み取られる画像のサイズは、特に限定されないが、ここでは156画素×156画素とする。
【0031】
ドット解析部200は、プログラム制御されたCPUおよびメモリ等で実現され、撮像部100により撮像された画像からドットを検出し、2次元のビット列を生成する。このドット解析部200は、画像データを解析する機能として、位置検出部210と、角度検出部220と、同期化部230とを備える。
【0032】
位置検出部210は、撮像部100から受け取った8ビットの画像からドットの位置を検出する。具体的には、取得した画像フレームからドットを検出し、さらに検出したドットの画像フレーム上での位置情報(座標値)を算出する。したがって、位置検出部210は、単位画像であるドットを検出する単位画像検出手段である。
【0033】
角度検出部220は、位置検出部210により検出された画像上のドットの整列角度を検出する。ドットの整列角度とは、画像におけるドットの整列方向の傾きであり、ドット本来の配列に対する回転角度である。ドット本来の配列とは、例えば、図3に示したような単位符号パターンにおける縦横のドットの並びである。
【0034】
同期化部230は、位置検出部210および角度検出部220の検出結果として得られたドットの配列を、2次元のビット配列に変換する。この変換を同期化と呼び、得られたビット配列における各ビットの並びを同期ラインと呼ぶ。また、角度検出部220により検出されたドットの整列角度はビット列(同期ライン)の角度となる。
得られたビット配列と、同期ラインの角度および間隔の情報は、復号部300に送られる。
【0035】
復号部300は、プログラム制御されたCPUおよびメモリ等で実現される。この復号部300は、ドット解析部200から受け取ったビット配列、同期ラインの角度および間隔の情報に基づいて、3ドット×3ドットのパターンブロックを検出する。そして、得られたパターンブロックを回転補正し、情報ブロックを復元した後、この情報ブロックにより記録された情報を復号する。また、画像処理装置10が、パターン画像が形成された用紙上に筆記しながらパターン画像を読み取るペン・デバイス(ペン・デバイスの詳細な構成については後述)である場合、ペン先の位置と撮像部100により撮像される位置との間には、一定のずれがある。そこで、復号部300は、同期ラインの角度および間隔の情報に基づいて、画像から得られた座標をペン先の座標に変換する。
【0036】
また、図9に示すように、ドット解析部200の位置検出部210、角度検出部220および同期化部230には、復号部300における復号の成否についての情報がフィードバックされる。位置検出部210、角度検出部220および同期化部230は、この復号の成否の情報に基づいて、各々の処理において使用するパラメータを決定する。具体的には、所定のパラメータを使用して処理を行った結果、復号に成功した(正しい復号結果が得られた)場合は、次の画像フレームに対しても同じパラメータを使用して処理を行うこととする。一方、復号に失敗した場合は、次の画像フレームに対しては、過去の処理履歴を参照し、成功率が最も高かったパラメータを選択して使用することとする。
【0037】
また、画像処理装置10が後述するペン・デバイスである場合、画像処理装置10には、ペンによる筆記が行われているか否かを認識する機能が設けられる。そして、ドット解析部200の位置検出部210、角度検出部220および同期化部230と、復号部300には、ペンによる筆記が開始されたことを示すストローク開始信号が供給される。ストローク開始信号が供給されると、これらの機能ブロックは、各設定を初期化する。さらにまた、画像処理装置10がペン・デバイスである場合、復号部300には、復号結果からペン先を補正するための、ペン先から撮像面までの相対距離情報(ペン−チップ距離情報)が供給される。
【0038】
図10は、ドット解析部200および復号部300による処理の流れを示すフローチャートである。
初期動作として、撮像部100により媒体である紙面の撮像が行われたものとする。
図10に示すように、まず、位置検出部210が、メモリにおけるドットの座標格納領域を初期化し(ステップ1001)、ドットの位置を検出する(ステップ1002)。位置検出に成功したならば(ステップ1003でYes)、次に、角度検出部220が、メモリにおけるドットの整列角度格納領域を初期化し(ステップ1004)、ドットの整列角度を検出する(ステップ1005)。角度検出に成功したならば(ステップ1006でYes)、次に、同期化部230が、メモリのビット配列格納領域を初期化し(ステップ1007)、ドット配列をビット配列に同期させる(ステップ1008)。ドット配列の同期に成功したならば(ステップ1009でYes)、次に、復号部300が、メモリの復号結果格納領域を初期化し(ステップ1010)、復号処理を行う(ステップ1011)。復号に成功したならば(ステップ1012でYes)、復号部300は、復号に成功したことを示す信号を位置検出部210、角度検出部220および同期化部230に送信し(ステップ1013)、復号結果を出力する(ステップ1014)。
【0039】
位置検出部210によるドットの位置の検出、角度検出部220によるドットの整列角度の検出、同期化部230によるドット配列の同期のいずれかに失敗した場合(ステップ1003、1006、1009でNo)は、失敗したステップ以後の処理は行われない。これらの場合、および復号部300による復号に失敗した場合(ステップ1012でNo)は、復号部300が、復号に失敗したことを示す信号を、位置検出部210、角度検出部220および同期化部230に送信し(ステップ1015)、かつ復号結果として出力する(ステップ1014)。
【0040】
<ドットの整列角度の検出方法>
ここで、ドットの並びに対する画像の歪みの影響と、本実施形態の角度検出部220による角度検出の方法について説明する。
図11乃至図13は、撮像部100により撮像された画像(以下、撮像画像と呼ぶ)の例を示す図である。
図11は、ドットの整列角度が0度の場合の撮像画像の例であり、図12は、ドットの整列角度が45度の場合の撮像画像の例である。これらの図において、撮像画像に対して直交するXY座標系を設定し、横方向をX軸、縦方向をY軸とする。そして、ドットの整列方向がX軸およびY軸に沿っている場合を角度0度とする。
【0041】
図11および図12では、撮像部100の撮像面とドットが形成された紙面とは並行である。これらの図に示す状態では、各ドットは互いに直交する2方向に並んでいる(図中、実線および破線で示した方向がドットの整列方向)。また、隣り合う4つのドットで形成される四角形が正方形をなしている。これらの場合は、近接する2つのドットの位置関係を調べることにより、ドットの整列方向を特定し、ドット本来の配列に対する整列角度を検出することは容易である。
【0042】
画像処理装置10が後述するペン・デバイスである場合、紙面に対するペン・デバイスの角度によって、撮像部100の撮像面が紙面に対して傾き、撮像画像に歪みが生じてしまう。図13は、図12に対して画像の上方が奥に、下方が手前に傾いた状態の撮像画像である。この状態では、撮像画像におけるドットの2方向の並びが直交していないので、隣り合う4つのドットで形成される四角形は菱形や平行四辺形となる。
【0043】
図13のように撮像画像が歪むと、隣り合う4つのドットで形成される四角形において、短い対角線の長さが2辺の長さに近づくため、正しいドットの整列方向を検出することが困難になる。図13に示す例では、ドットは、実線で示した方向、破線で示した方向、一点鎖線で示した方向の3方向にドットが並んでいるように認められる。そこで、本実施形態の角度検出部220は、以下に説明する手法により、このような場合に適切なドットの整列方向を特定し、整列角度を検出する。
【0044】
角度検出部220は、まず、位置検出部210により撮像画像から検出された各ドットに関して、近接ドット対を検出する。近接ドット対は、所定のドットに注目した場合に、そのドットとそのドットに最も近い位置にあるドットとで構成される。次に、検出された近接ドット対の角度の度数分布に基づき、3つの角度を抽出する。そして、抽出された3つの角度の関係等に基づいて、ドットの整列角度を特定する。
【0045】
<角度検出部の機能>
次に、角度検出部220の機能についてさらに詳細に説明する。
図14は、角度検出部220の機能構成を示す図である。
角度検出部220は、近接ドット対を検出する近接ドット対検出部221と、検出された近接ドット対の度数分布データを生成する度数分布生成部222とを備える。そして、生成された度数分布データに基づいて3つの角度を抽出する第1軸角度抽出部223、第2軸角度抽出部224および第3軸角度抽出部225と、抽出された3つの角度からドットの整列角度を選択し特定する角度特定部226とを備える。図示の構成において、度数分布生成部222、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225および角度特定部226(図中、破線で囲まれた部分)は、ドットの整列角度を特定する角度特定手段である。
【0046】
近接ドット対検出部221は、位置検出部210により検出されたドットの画像フレーム上での位置情報(座標値)を取得し、近接ドット対を検出する。言い換えれば、近接ドット対検出部221は、位置検出部210の出力であるドット座標値から最も近い位置にあるドット座標値の組み合わせを検出する手段である。近接ドット対の詳細な検出方法については後述する。
【0047】
度数分布生成部222は、近接ドット対検出部221により検出された近接ドット対がなす角度の度数分布データを生成する。ここで、近接ドット対がなす角度とは、近接ドット対を構成する2つのドットを結ぶ直線が、位置検出部210の出力であるドット位置情報の基準となる所定の方向(例えば、撮像画像に設定されたXY座標のX軸方向)に対してなす角度である。
【0048】
第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225は、度数分布生成部222により生成された度数分布データに基づいて、ドットの整列方向の候補となる3方向の角度(第1軸角度、第2軸角度、第3軸角度)を抽出する。各々の角度の詳細な検出方法については後述する。
【0049】
角度特定部226は、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225により抽出された第1軸角度、第2軸角度、第3軸角度に基づいて、ドット本来の配列の方向に対応するドットの整列方向の角度(整列角度)を特定し出力する。例えば、図3に示したような単位符号パターンの場合、ドットは縦横の2方向に並んでいるので、この縦横2方向に対応する2方向の整列角度が特定される。図14では、この2方向をX軸およびY軸と記載している。整列角度の詳細な特定方法については後述する。
【0050】
また、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225は、抽出した角度に沿って並ぶ近接ドット対のドット間の距離に基づいて、この方向でのドット間の基準間隔を算出する。そして、角度特定部226は、2方向の整列角度におけるドット間の基準間隔を特定する。すなわち、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225、角度特定部226は、撮像画像から検出されたドット配列におけるドット間隔を特定する間隔特定手段としても機能する。基準間隔の検出方法については後述する。
【0051】
<近接ドット対の検出方法>
次に、近接ドット対検出部221による近接ドット対の検出方法について詳細に説明する。
図15は、ドットが検出された画像から、近接ドット対が検出された様子を示す図である。図15(a)は位置検出部210により検出されたドット位置の一例であり、図15(b)は図15(a)に対して近接ドット対の検出が行われた状態を示す。図15(b)では、近接ドット対を、線で結んで表現している。この場合、あるドットAから最も近いドットBが、他のドットCと近接ドット対を成している場合は、ドットAは他のどのドットとも近接ドット対を成していない(A、B、Cは特に図示していない)。
【0052】
図16は、近接ドット対の検出方法の具体例を示す図である。
図16において、例えば、番号1から4までのドットに対して近接ドット対を検出するものとする。
近接ドット対検出部221は、まず、位置検出部210が検出した番号1から4までのドットの位置を認識する。そして、番号1のドットを基準に他の番号のドットまでの距離をスキャンしていく。その結果、番号1のドットに最も近いドットは番号3のドットであり、両者の距離(PD)は20と認識される。そして、近接ドット対検出部221は、番号1のドットに関して、番号3のドットが近接ドットであることを示す情報“Pair[1]=3”と、番号3のドットまでの距離が20であることを示す情報“MPD[1]=20”とを生成する。同様に、番号3のドットに関して、“Pair[3]=1”と“MPD[3]=20”の情報(以下、属性情報)を生成する。
【0053】
ここで、Pair[ ]の[ ]内の番号は自らのドットの番号を示し、Pair[ ]=で定義される値は、現時点で近接ドット対となっている相手のドットの番号を示す。また、MPD[ ]の[ ]内の番号は自らのドットの番号を示し、MPD[ ]の値は、現時点での近接ドット対となっている相手のドットまでの距離を示す。
【0054】
次に、近接ドット対検出部221は、番号2のドットを基準に、番号1以外のドットまでの距離をスキャンしていく。先に番号1のドットをスキャンした時点で、番号1のドットは番号2のドットから最も近いドットではないと判断されているため、番号1のドットをスキャンの対象から外している。
このスキャンの結果、番号2のドットに最も近いドットは番号3のドットであり、両者の距離(PD)は15と認識される。この距離は、番号1と番号3とのドットの距離(20)よりも短い。したがって、位置検出部210は、番号2のドットに関して“Pair[2]=3”と“MPD[2]=15”の属性情報を生成し、番号3のドットに関して“Pair[3]=2”と“MPD[3]=15”の属性情報を生成する。そして、この時点で番号1のドットは、番号2のドットに番号3のドットを奪われたため、属性情報が“Pair[1]=−1”と“MPD[1]=−1”に変更され、番号1のドットはどの番号のドットとも近接ドット対を成していない状態になる。
【0055】
同様にして、近接ドット対検出部221は、番号3のドットを基準に、番号が1と2以外のドットまでの距離をスキャンしていく。その結果、番号3のドットに最も近いドットは番号4のドットであり、両者の間隔(PD)は10と認識される。この距離は、番号2と番号3とのドットの距離(15)よりも短い。したがって、位置検出部210は、番号3のドットに関して“Pair[3]=4”と“MPD[3]=10”の属性情報を生成し、番号4のドットに関して“Pair[4]=3”と“MPD[4]=10”の属性情報を生成する。そして、この時点で番号2のドットは、番号4のドットに番号3のドットを奪われたため、属性情報が“Pair[2]=−1”と“MPD[2]=−1”に変更され、番号2のドットはどの番号のドットとも近接ドット対を成していない状態になる。
【0056】
この時点で、スキャンしていないドットは番号4のドットだけであるが、このドットは既に番号3のドットと近接ドット対を成しているため、改めてスキャンされることはなく処理は終了する。なお、ここでは一例としてドットの数が4個の場合を取り上げたが、ドットの数が5個以上ある場合も上述したスキャンの手順を繰り返していくことで近接ドット対が順次検出される。
【0057】
図17は、近接ドット対検出部221による近接ドット対の検出処理の流れを説明するフローチャートである。
近接ドット対の検出は、図16を参照して説明したように、複数のドットの各々を順次基準とし、他のドットとの位置関係を調べることによって行われる。この基準となるドットを基準ドット、他のドットを対象ドットと呼ぶ。図17に示すように、近接ドット対検出部221は、各ドットを順次基準ドットとしながら、以下のループ処理を実行する。
【0058】
まず、近接ドット対検出部221は、基準ドットとして選んだドットの座標値を取得し(ステップ1701)、ドット対番号(PairIndex)を生成して基準ドットに付与する(ステップ1702)。ここでは、基準ドットの座標値を(Xs,Ys)とする。次に、近接ドット対検出部221は、基準ドット以外の各ドットを順次対象ドットとしながら、以下のループ処理を実行する。
【0059】
まず、近接ドット対検出部221は、対象ドットとして選んだドットの座標値を取得する(ステップ1703)。ここでは、対象ドットの座標値を(Xe,Ye)とする。次に、近接ドット対検出部221は、基準ドットと対象ドットの間の距離((Xs,Ys)−(Xe,Ye))を計算する(ステップ1704)。そして、算出されたドット間距離が、現在の基準ドットに関するドット間距離のうちで最小値である場合は(ステップ1705でYes)、その対象ドットと基準ドットとの関係を表すドット対情報(例えば、対象ドットのドット番号および基準ドットと対象ドット間の距離)を保存する(ステップ1706)。このとき、他のドットを対象ドットとするドット対情報があれば、そのドット対情報は消去される。
【0060】
一方、ステップ1704で算出されたドット間距離が現在の基準ドットに関するドット間距離のうちで最小値でない場合(ステップ1705でNo)、言い換えれば、ドット間距離がより短い他のドットに関するドット対情報が既に保存されている場合は、既に保存されているドット対情報がそのまま保持される。
【0061】
基準ドット以外の全てのドットを対象ドットとしてステップ1703〜1706のループ処理が行われると、その基準ドットに最も近い位置にある1つのドットを対象ドットとして、この対象ドットと基準ドットとの関係を表すドット対情報が保存されることとなる。この後、近接ドット対検出部221は、この基準ドットおよび対象ドットに関して、ステップ1706で保存されたドット対情報に基づいて、近接ドット対か否かを判別する処理を行う(ステップ1707)。図18は、ステップ1707に示す近接ドット対の判別処理の詳細を説明するフローチャートである。
【0062】
図18を参照すると、近接ドット対検出部221は、まず、対象ドットが他のドットとリンクされているか否かを調べる。すなわち、対象ドットが他のドットと既に対をなしているか否かを、図16で説明した属性情報(Pair[]およびMPD[])を参照して調べる。対象ドットに属性情報が設定されていれば、それは対象ドットが他のドットとリンクされており、対象ドットに属性情報が設定されていなければ、対象ドットは他のドットとリンクしていない。対象ドットと他のドットとの間のリンクが存在する場合(ステップ1801でYes)、次に近接ドット対検出部221は、対象ドットと基準ドットとの間のドット間距離と、対象ドットとリンク先の他のドットとの間のドット間距離とを比較する。そして、基準ドットとの間のドット間距離の方が短い場合(ステップ1802でNo)、近接ドット対検出部221は、対象ドットと他のドットとの間のリンクを削除する(ステップ1803)。
【0063】
対象ドットと他のドットとの間のリンクが存在しない場合(ステップ1801でNo)、またはステップ1803で対象ドットと他のドットとの間のリンクを削除した後、近接ドット対検出部221は、基準ドットが他のドットとリンクされているか否かを調べる。基準ドットと他のドットとの間のリンクが存在する場合(ステップ1804でYes)、次に近接ドット対検出部221は、基準ドットと対象ドットとの間のドット間距離と、基準ドットとリンク先の他のドットとの間のドット間距離とを比較する。そして、対象ドットとの間のドット間距離の方が短い場合(ステップ1805でNo)、近接ドット対検出部221は、基準ドットと他のドットとの間のリンクを削除する(ステップ1806)。
【0064】
この後、近接ドット対検出部221は、基準ドットと対象ドットとをリンクさせる(ステップ1807)。これにより、基準ドットと対象ドットとは近接ドット対となる。
一方、基準ドットと対象ドットとの間のドット間距離よりも、対象ドットとリンク先の他のドットとの間のドット間距離の方が短い場合(ステップ1802でYes)、または、基準ドットとリンク先の他のドットとの間のドット間距離の方が短い場合(ステップ1805でYes)は、近接ドット対検出部221は、基準ドットと対象ドットとをリンクさせない。したがって、これらの組み合わせは近接ドット対とはならない。
【0065】
<第1軸角度、第2軸角度、第3軸角度の抽出方法>
次に、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225による第1軸角度、第2軸角度、第3軸角度の抽出方法について詳細に説明する。
まず、前処理として、度数分布生成部222が、近接ドット対検出部221により検出された近接ドット対がなす角度の度数分布データを生成する。この度数分布データは、近接ドット対がなす角度の値ごとに、その出現度数を積算したデータである。
【0066】
図19は、度数分布生成部222により生成される近接ドット対がなす角度の度数分布の例を視覚的に表現したヒストグラムである。
度数分布データは、180度の範囲(図19の例では、−90度から+90度まで)で生成される。この度数分布データを用いて、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225が、第1軸角度、第2軸角度、第3軸角度をそれぞれ抽出する。
【0067】
第1軸角度抽出部223は、度数分布生成部222により生成された度数分布データに基づき、最大頻度の角度を第1軸角度として抽出する。最大頻度の角度は、次のようにして求まる。
第1軸角度抽出部223は、まず、出現度数が最大である角度を検出する。そして、検出した角度を中心とする一定の範囲(以下、対象範囲)で、出現度数に基づく平均角度を計算する。算出された角度が最大頻度の角度であり、第1軸角度となる。平均角度は、対象範囲の角度ごとに出現度数を乗算した値を加算し、総出現度数(対象範囲内の出現度数を全て加算した値)で除算した値である。
【0068】
例えば、出現度数が最大の角度を10度、対象範囲を−2度から+2度までの範囲とすると、8度から12度の範囲で平均角度の計算が行われる。また例えば、この範囲において、8度の出現度数を10、9度の出現度数を20、10度の出現度数を100、11度の出現度数を50、12度の出現度数を40とすると、平均角度は、下記の計算により10.4度となる。
(8×10+9×20+10×100+11×50+12×40)/(10+20+100+50+40)=10.4
【0069】
第2軸角度抽出部224は、第1軸角度抽出部223により抽出された第1軸角度から一定の角度だけ遷移(オフセット)させた角度(以下、基準角度)を想定し、その基準角度を中心とする一定の範囲内で最大頻度の角度を第2軸角度として抽出する。そして、第1軸角度の算出と同様に、所定の対象範囲で出現頻度に基づく平均角度を算出し、それを第2軸角度とする。ここで、第1軸角度と基準角度とがなす遷移角度は、ドット本来の配列に基づいて設定される。例えば、図3に示した単位符号パターンの場合、90度である。最大頻度の角度の計算方法は、第1軸角度の場合と同様である。基準角度を含む一定の範囲は、任意に定めて良いが、第2軸角度の検出可否や復号部300による復号成否の履歴に基づいて定めても良い。
【0070】
第3軸角度抽出部225は、基準角度に対して第2軸角度と対称な角度を中心とする一定の範囲内で、最大頻度の角度を第3軸角度として抽出する。そして、所定の対象範囲で出現頻度に基づく平均角度を算出し、それを第3軸角度とする。例えば、基準角度が100度、第2軸角度が80度である場合、基準角度に対して第2軸角度と対称な角度は、120度である。この角度を含む一定の範囲は、任意に定めて良いが、第2軸角度の検出可否や復号部300による復号成否の履歴に基づいて定めても良い。また、最大頻度の角度の計算方法は、第1軸角度の場合と同様である。
【0071】
図20は、度数分布生成部222、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225による第1軸角度、第2軸角度、第3軸角度の抽出処理の流れを説明するフローチャートである。
図20に示すように、まず、度数分布生成部222が、各近接ドット対を順次対象として、以下のループ処理を実行する。
【0072】
度数分布生成部222は、まず、近接ドット対の2つのドットの座標(X1,Y1)、(X2,Y2)を取得し(ステップ2001)、この近接ドット対がなす角度θを、下式により計算する(ステップ2002)。そして、得られた角度θの、度数分布データの度数を1加算する(ステップ2003)。
θ=tan-1{(Y1−Y2)/(X1−X2)}
【0073】
全ての近接ドット対に対してステップ2001〜2003の処理が行われると、次に第1軸角度抽出部223が、生成された度数分布データに基づいて、第1軸角度を抽出する(ステップ2004)。また、第1軸角度に沿ったドット間の基準間隔を算出する(ステップ2005)。なお、基準間隔およびその検出方法の詳細は後述する。
【0074】
次に、第2軸角度抽出部224が、度数分布データおよび第1軸角度に基づいて、第2軸角度を抽出し(ステップ2006)、第2軸角度に沿ったドット間の基準間隔を算出する(ステップ2007)。さらに、第3軸角度抽出部225が、度数分布データ、基準角度および第2軸角度に基づいて、第3軸角度を抽出し(ステップ2008)、第3軸角度に沿ったドット間の基準間隔を算出する(ステップ2009)。
【0075】
図21は、抽出された3方向の角度のイメージを示す図である。
図21(a)に示すように並ぶドットが検出され、図21(b)に示すように第1軸角度が抽出されたものとする。この第1軸角度に対して90度オフセットした基準角度を挟んで、第2軸角度と第3軸角度とが抽出されている。
【0076】
<整列角度の特定方法>
次に、角度特定部226による整列角度の特定方法について詳細に説明する。
角度特定部226は、度数分布生成部222、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225により抽出された第1軸角度、第2軸角度、第3軸角度に基づき、ドットの整列角度を特定し出力する。具体的には、ドット本来の配列の方向に対応する2方向のドットの整列方向(図14ではX軸およびY軸と記載)の角度が特定される。この整列角度の特定は、以下の手順で行われる。
【0077】
角度特定部226は、まず、第1軸角度、第2軸角度、第3軸角度と、直前の画像フレーム(以下、前フレームと呼ぶ)に対する復号部300による復号の成否の情報を取得する。前フレームに対する復号が成功した場合、角度特定部226は、第1軸角度、第2軸角度、第3軸角度のうち、前フレームにおいて特定した整列角度に近い2つを選んで整列角度とする。前フレームと現フレームとは連続的に読み取られているため、適切な整列角度は大きく変わらないと考えられる。ただし、画像処理装置10がペン・デバイスである場合、撮像部100と紙面との位置関係が随時変化する。そこで、前フレームにおいて特定した整列角度と同一ではなく、近い角度が選ばれる。
【0078】
前フレームに対する復号が失敗した場合、角度特定部226は、例えば次のようにして2方向の整列角度を特定する。
第1軸角度、第2軸角度、第3軸角度の全てが抽出されている場合、第1軸角度と、第2軸角度または第3軸角度のうちで基準角度に近い方とを選び、整列角度とする。
第3軸角度が抽出されなかった場合、角度特定部226は、第1軸角度と第2軸角度とを選び、整列角度とする。第3軸角度が抽出されない場合とは、度数分布データにおいて、基準角度に対して第2軸角度と対称な角度を中心とする一定の範囲内に出現度数の多い角度が存在しない場合、第2軸角度と基準角度とが一致している場合などである。
また、第2軸角度も抽出されなかった場合、角度特定部226は、第1軸角度と、第1軸角度に対して一定角度オフセットした基準角度とを整列角度とする。第2軸角度が抽出されない場合とは、度数分布データにおいて、基準角度を中心とする一定の範囲に出現度数の多い角度が存在しない場合などである。
【0079】
さらに、角度特定部226は、所定の画像フレームで復号に失敗した場合に、次の画像フレームにおける整列角度として、復号に失敗した画像フレームとは異なる角度を選ぶようにしても良い。具体的には例えば、第1軸角度と第2軸角度を整列角度として復号に失敗した場合に、次の画像フレームでは、第1軸角度と第3軸角度とを整列角度とする、第2軸角度と第3軸角度とを整列角度とする、等である。
【0080】
<基準間隔の算出方法>
次に、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225による基準間隔の算出方法について説明する。
基準間隔とは、一定の方向に沿って並ぶ近接ドット対におけるドット間距離の平均値である。ただし、ドット間距離が突出して大きい近接ドット対を排除するため、一定の閾値(最大ドット間距離)を設け、ドット間距離がこの閾値以下である近接ドット対に関して、平均値を計算する。この閾値は、例えば、次のようにして決定される。
【0081】
まず、度数分布生成部222が、近接ドット対検出部221により検出された近接ドット対のドット間距離の度数分布データを生成する。この度数分布データは、近接ドット対のドット間距離の値ごとに、その出現度数を積算したデータである。そして、出現度数が最大であるドット間距離よりも若干長い距離を閾値とする。図22に、ドット間距離の度数分布の例を視覚的に表現したヒストグラムを示す。図22において、出現頻度最大のドット間距離よりも若干長い距離に閾値が設定されている。
【0082】
第1軸角度抽出部223は、第1軸角度に沿って並ぶ近接ドット対のうち、ドット間距離が上記のようにして求めた閾値以下のものを抽出する。そして、ドット間距離の平均値を計算し、第1軸方向のドットの基準間隔とする。なお、各種の誤差を考慮し、近接ドット対がなす角度は、第1軸角度に対して一定の幅(−α度から+α度)を含むものとする。すなわち、近接ドット対がなす角度が第1基準角度±αである近接ドット対が、第1軸角度に沿って並ぶ近接ドット対である。
【0083】
同様にして、第2軸角度抽出部224は、第2軸角度に沿って並ぶ近接ドット対のうち、ドット間距離が上記のようにして求めた閾値以下のものを抽出し、第2軸方向のドットの基準間隔を算出する。また、第3軸角度抽出部225は、第3軸角度に沿って並ぶ近接ドット対のうち、ドット間距離が上記のようにして求めた閾値以下のものを抽出し、第3軸方向のドットの基準間隔を算出する。
【0084】
角度特定部226は、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225から各々の方向の基準間隔を取得する。そして、整列角度として特定された方向(図14のX軸およびY軸)の基準間隔を選択し、整列角度と共に出力する。この整列角度および整列角度における基準間隔の情報は、同期化部230において同期化を行うための同期ラインの特定に用いられる。
【0085】
<ペン・デバイスの構成>
次に、本実施の形態における画像処理装置10の具体的なハードウェア構成について説明する。ここでは、画像処理装置10を実現するペン・デバイスの構成例について説明する。
図23は、ペン・デバイスの機構を示した図である。
図示するように、ペン・デバイス60は、ペン全体の動作を制御する制御回路61を備える。制御回路61は、入力画像から検出した符号画像を処理する画像処理部61aと、そこでの処理結果から識別情報及び座標情報を抽出するデータ処理部61bとを含む。また、特に図示しないが、制御回路61は、これら画像処理部61aおよびデータ処理部61bを動作させるためのプログラムを格納する不揮発性メモリとを含む。この制御回路61には、ペン・デバイス60による筆記動作をペンチップ69に加わる圧力によって検出する圧力センサ62が接続されている。また、媒体上に赤外光を照射する赤外LED63と、画像を入力する赤外CMOS64も接続されている。さらに、識別情報及び座標情報を記憶するための情報メモリ65と、外部装置と通信するための通信回路66と、ペンを駆動するためのバッテリ67と、ペンの識別情報(ペンID)を記憶するペンIDメモリ68も接続されている。
【0086】
図9に示した画像処理装置10において、撮像部100は、例えば、図23の赤外CMOS64にて実現される。また、ドット解析部200は、例えば、図23の画像処理部61aにて実現される。さらに、復号部300は、例えば、図23のデータ処理部61bにて実現される。なお、画像処理装置10は、図23に示すようなペン・デバイス60の他、画像処理部61a又はデータ処理部61bにて実現される機能を、例えば、汎用のコンピュータで実現しても良い。
【0087】
画像処理部61aおよびデータ処理部61bの機能を実現するプログラムは、通信手段を介して提供したり、CD−ROM等の記録媒体に格納して提供したりすることができる。また、制御回路61に含まれる上述した不揮発性メモリに格納して提供しても良い。
【図面の簡単な説明】
【0088】
【図1】本実施形態で用いられる単位符号パターン、情報ブロック、紙面(媒体)の関係を示す図である。
【図2】mCn方式における単位符号パターンの例を示す図である。
【図3】図2に示した単位符号パターンの種類を網羅的に示した図である。
【図4】9C2方式における単位符号パターンとパターン値との対応を示す図である。
【図5】9C2方式における同期パターンの例を示す図である。
【図6】情報ブロックの構成例を示す図である。
【図7】本実施形態における識別情報と座標情報を表現するためのレイアウトの例を示す図である。
【図8】M系列を用いた座標情報の符号化の例を示す図である。
【図9】本実施形態の画像処理装置の機能構成例を示す図である。
【図10】本実施形態のドット解析部および復号部による処理の流れを示すフローチャートである。
【図11】撮像画像の例を示す図であり、ドットの整列角度が0度の場合の撮像画像の例である。
【図12】撮像画像の例を示す図であり、ドットの整列角度が45度の場合の撮像画像の例である。
【図13】図12に対して画像の上方が奥に、下方が手前に傾いた状態の撮像画像を示す図である。
【図14】本実施形態の角度検出部の機能構成を示す図である。
【図15】ドットが検出された画像から、近接ドット対が検出された様子を示す図である。
【図16】本実施形態における近接ドット対の検出方法の具体例を示す図である。
【図17】本実施形態の近接ドット対検出部による近接ドット対の検出処理の流れを説明するフローチャートである。
【図18】図17のステップ1707に示す近接ドット対の判別処理の詳細を説明するフローチャートである。
【図19】本実施形態の度数分布生成部により生成される近接ドット対がなす角度の度数分布の例を視覚的に表現したヒストグラムである。
【図20】本実施形態の度数分布生成部、第1軸角度抽出部、第2軸角度抽出部、第3軸角度抽出部による第1軸角度、第2軸角度、第3軸角度の抽出処理の流れを説明するフローチャートである。
【図21】本実施形態で抽出された3方向の角度のイメージを示す図である。
【図22】本実施形態におけるドット間距離の度数分布の例を視覚的に表現したヒストグラムである。
【図23】画像処理装置であるペン・デバイスの機構を示した図である。
【符号の説明】
【0089】
10…画像処理装置、100…撮像部、200…ドット解析部、210…位置検出部、220…角度検出部、221…近接ドット対検出部、222…度数分布生成部、223…第1軸角度抽出部、224…第2軸角度抽出部、225…第3軸角度抽出部、226…角度特定部、230…同期化部、300…復号部
【技術分野】
【0001】
本発明は、画像処理装置、ペン・デバイスおよびプログラムに関する。
【背景技術】
【0002】
印刷用紙等の媒体上にコード化された情報を表すパターン画像や特定の意味を付与されたパターン画像を埋め込み、読み取り装置で読み取ってコード情報を復号したり付与された意味に応じて装置を制御したりすることが、従来から行われている。パターン画像により表される情報としては、パターン画像が埋め込まれた媒体自体の識別情報や媒体に記録された文書の識別情報、媒体上の位置を表す位置情報などがある。
【0003】
この種の技術では、パターン画像で記述したコード情報を復号するために、読み取り画像におけるパターン画像の向きを検出することが必要である。特に、ペン・デバイスのような使用者が手に持って操作する読み取り装置は、媒体に対する読み取り装置の向きや角度が随時変わるため、適切にパターン画像の向きを検出することが非常に重要である。
【0004】
特許文献1には、コード枠とコード枠に囲まれたセルとを含む2次元コードにおいて、データ等と共にコードの向きを表すパターンがセルに記録される従来技術が開示されている。
【0005】
【特許文献1】特開2006−85679号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
媒体に埋め込まれるパターン画像は、情報密度を上げるために冗長なパターンを少なくすることが望まれる。
本発明は、以上のような課題に鑑みてなされたものであり、パターン画像を構成する単位画像が並ぶ方向を特定し、パターン画像の向きを検出できるようにすることを目的とする。また、読み取った画像に歪みがある場合でも単位画像が並ぶ方向を特定できるようにすることを目的とする。
【課題を解決するための手段】
【0007】
請求項1に係る発明は、所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像装置により撮像して得られた画像から単位画像を検出する単位画像検出手段と、前記単位画像検出手段により前記画像から検出された単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する組み合わせ検出手段と、前記組み合わせ検出手段により検出された単位画像の組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する角度特定手段とを備えることを特徴とする画像処理装置である。
請求項2に係る発明は、前記角度特定手段により角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する間隔特定手段をさらに備える請求項1に記載の画像処理装置である。
請求項3に係る発明は、前記角度特定手段は、前記単位画像を結ぶ直線の傾きのうち、出現頻度の最も高い角度を第1の角度とし、当該第1の角度に対して所定の角度だけ遷移させた基準角度を含む一定範囲において出現頻度の最も高い角度を第2の角度とし、当該第1の角度および当該第2の角度を前記2方向の角度とすることを特徴とする請求項1に記載の画像処理装置である。
請求項4に係る発明は、前記角度特定手段は、前記基準角度に対して前記第2の角度の対称となる角度を含む一定範囲において出現頻度の最も高い角度を第3の角度とし、所定の基準に基づいて、前記第1の角度と前記第2の角度と当該第3の角度のうち2つを選んで、前記2方向の角度とすることを特徴とする請求項3に記載の画像処理装置である。
請求項5に係る発明は、前記単位画像検出手段により検出された単位画像および前記角度特定手段により特定された当該単位画像の配列の角度に基づき、当該単位画像によって符号化されて記録された情報を復号する復号手段をさらに備え、前記角度特定手段は、前記第1の角度、第2の角度、第3の角度のうち、前記復号手段による復号が成功したときの前記単位画像の配列の角度に近い2つの角度を選択することを特徴とする請求項4に記載の画像処理装置である。
請求項6に係る発明は、所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像する撮像手段と、前記撮像手段により撮像して得られた画像から単位画像を検出する単位画像検出手段と、前記単位画像検出手段により前記画像から検出された単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する組み合わせ検出手段と、前記組み合わせ検出手段により検出された単位画像の組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する角度特定手段とを備えることを特徴とするペン・デバイスである。
請求項7に係る発明は、前記角度特定手段により角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する間隔特定手段をさらに備える請求項6に記載のペン・デバイスである。
請求項8に係る発明は、コンピュータに、所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像装置により撮像して得られた画像から単位画像を検出する機能と、前記画像から検出された単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する機能と、検出された単位画像の組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する機能と、を実現させるためのプログラムである。
請求項9に係る発明は、前記コンピュータに、角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する機能をさらに実現させる請求項8に記載のプログラムである。
【発明の効果】
【0008】
請求項1に係る発明によれば、近接する単位画素の組み合わせに基づいて、単位画素の配列の傾きを特定することができる。
請求項2に係る発明によれば、単位画素の配列の傾きと共に、単位画素の基準間隔を特定することができる。
請求項3に係る発明によれば、単位画素の配列における2方向の傾きを特定することができる。
請求項4に係る発明によれば、単位画像の並びが3方向検出される場合でも、単位画素の配列における2方向の傾きを特定することができる。
請求項5に係る発明によれば、情報の復号の成否に基づいて、単位画素の配列における傾きを、より適切に特定することができる。
請求項6に係る発明によれば、ペン・デバイスにおいて、近接する単位画素の組み合わせに基づいて、単位画素の配列の傾きを特定することができる。
請求項7に係る発明によれば、ペン・デバイスにおいて、単位画素の配列の傾きと共に、単位画素の基準間隔を特定することができる。
請求項8に係る発明によれば、画像処理装置の機能を実現するコンピュータにおいて、近接する単位画素の組み合わせに基づいて、単位画素の配列の傾きを特定することができる。
請求項9に係る発明によれば、画像処理装置の機能を実現するコンピュータにおいて、単位画素の配列の傾きと共に、単位画素の基準間隔を特定することができる。
【発明を実施するための最良の形態】
【0009】
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
本実施形態は、紙等の媒体に印刷されたパターン画像を読み取り、このパターン画像によって記録された情報(コード情報等)を復号する処理に関するものである。本実施形態の前提として、まず、パターン画像の構成例について説明する。
【0010】
<パターン画像の構成例>
本実施形態では、媒体である紙面全体または紙面の特定の領域に、特定の情報を表す情報ブロックが配置される。情報ブロックは、意味のある情報を表現するパターンの最小単位である。この情報ブロックは、複数のパターンブロックの集合で構成され、このパターンブロックには、単位符号パターンが配置される。単位符号パターンは、情報を記録するための符号を表すものであり、パターン画像の最小単位である。
【0011】
図1は、単位符号パターン、情報ブロック、紙面(媒体)の関係を示す図である。
図1において、単位符号パターンP1の集合により、情報ブロックP2が構成されている。そして、情報ブロックP2の集合により、紙面の太枠で囲まれた領域P3に情報が記録されている。次に、この単位符号パターンおよび情報ブロックの具体的な構成例について、詳細に説明する。
【0012】
本実施の形態では、m(m≧3)箇所から選択したn(1≦n<m)箇所に単位画像を配置してなるパターン画像によってmCn(=m!/{(m−n)!×n!})通りの情報を表現する。このパターン画像を、単位符号パターンとする。つまり、1つの単位画像を情報に対応させるのではなく、複数の単位画像を情報に対応させている。仮に1つの単位画像を情報に対応させたとすると、単位画像が欠損したり、ノイズが加わったりした場合に、誤った情報を表現してしまうという欠点がある。これに対して、例えば2つの単位画像を情報に対応させたとすると、単位画像が1つであったり3つであったりした場合に、容易に誤りであることが分かる。さらに、1つの単位画像で1ビット、または、高々2ビットを表現する方法では、情報を表現するパターンと視覚的に似たパターンで、情報パターンの読出しを制御する同期パターンを表現することができない。このようなことから、本実施形態では、上記のような符号化方式を採用している。以下では、このような符号化方式をmCn方式と称する。
ここで、単位画像としては、いかなる形状のものを用いてもよいが、本実施の形態では、単位画像の一例としてドット画像(以下、単に「ドット」という)を用いている。
【0013】
図2は、mCn方式における単位符号パターンの例を示す図である。
図2に示す例では、黒色の領域と斜線の領域をドット配置可能な領域としている。このドット配置可能な領域の間にある白色の領域は、個々のドットを識別するための隙間(空白)を形成するドット配置不可能な領域である。ドット配置可能な領域のうち、黒色の領域にドットが配置され、斜線の領域にはドットが配置されていないことを示している。すなわち、図2は、縦3ドット、横3ドットの合計9ドットを配置可能な領域を設けた例を示しており、(a)は、ドット配置可能な領域に2ドットを配置する9C2方式における単位符号パターンであり、(b)は、ドット配置可能な領域に3ドットを配置する9C3方式における単位符号パターンである。
【0014】
ところで、図2で配置されるドット(黒色の領域)は、あくまで情報表現のためのドットであり、画像を構成する最小単位であるドット(図2の最小の四角)とは必ずしも一致しない。本実施形態において、「ドット」というときは前者のドットを指し、後者のドットは「ピクセル」と呼ぶことにすれば、ドットは、600dpiにおける2ピクセル×2ピクセルの大きさを有することになる。600dpiにおける1ピクセルの大きさは0.0423mmなので、ドットの一辺は、84.6μm(=0.0423mm×2)である。ドットは、大きくなればなるほど目に付きやすくなるため、できるだけ小さいほうが好ましい。ところが、あまり小さくすると、プリンタで印刷できなくなってしまう。そこで、ドットの大きさとして、50μmより大きく100μmより小さい上記の値を採用している。ただし、上記の値84.6μmは、あくまで計算上の数値であり、実際に印刷されたトナー像では100μm程度になる。
【0015】
図3は、図2に示した単位符号パターンの種類を網羅的に示した図である。なお、この図では、表示の簡略化のためドット間の空白を省略している。
図3(a)は、図2(a)に示した9C2方式における全ての単位符号パターンを示している。9C2方式では、これらの単位符号パターンを用いて、36(=9C2)通りの情報を表現する。また、図3(b)は、図2(b)に示した9C3方式における全ての単位符号パターンを示している。9C3方式では、これらの単位符号パターンを用いて、84(=9C3)通りの情報を表現する。
【0016】
なお、単位符号パターンは、m=9の場合に限定されるものではなく、mの値として、例えば、4、16等の値を採用してもよい。また、nの値も1≦n<mを満たしていればいかなる値を採用してもよい。
また、mの値としては、平方数(整数の2乗)だけでなく、異なる2つの整数の積を採用してもよい。つまり、ドットを配置可能な領域は、3ドット×3ドットを配置する場合のような正方形の領域に限らず、3ドット×4ドットを配置する場合のような長方形の領域であってもよい。なお、本明細書において、長方形とは、隣り合う2辺の長さが等しくない矩形のことをいうものとする。
【0017】
ところで、mCn方式における全ての単位符号パターンには、各単位符号パターンを識別するための番号であるパターン値が付されている。
図4に、9C2方式における単位符号パターンとパターン値との対応を示す。9C2方式における単位符号パターンは36個であるので、パターン値としては0〜35が用いられる。ただし、図4に示した対応はあくまで一例であり、どの単位符号パターンにどのパターン値を割り当ててもよい。なお、9C3方式については、図示しないが、各単位符号パターンに0〜83のパターン値が付されることになる。
【0018】
このように、m箇所からn箇所を選択することでmCn種類の単位符号パターンを用意しているが、本実施形態では、これらの単位符号パターンのうち、特定のパターンを情報パターンとして利用し、残りを同期パターンとして利用する。ここで、情報パターンとは、媒体に埋め込む情報を表現するパターンである。また、同期パターンとは、媒体に埋め込まれた情報パターンを取り出すために用いられるパターンである。例えば、情報パターンの位置を特定したり、画像の回転を検出したりするために用いられる。なお、媒体としては、画像を印刷することが可能であれば、いかなるものを用いてもよい。紙が最も一般的に用いられるので、以下では媒体を紙として説明するが、金属、プラスチック、繊維等であってもよい。
【0019】
ここで、同期パターンについて説明する。
図5は、9C2方式における同期パターンの例である。
図5に示すように、単位符号パターンが正方形(縦横のドット数が同じ)である場合は、画像の回転の検出のために4種類の単位符号パターンを同期パターンとして用意する必要がある。ここでは、パターン値32の単位符号パターンを正立した同期パターンとしている。また、パターン値33の単位符号パターンを右に90度回転した同期パターン、パターン値34の単位符号パターンを右に180度回転した同期パターン、パターン値35の単位符号パターンを右に270度回転した同期パターンとしている。この場合、36種類の単位符号パターンからこの4種類の同期パターンを除いた残りを情報パターンとし、5ビットの情報を表現するとよい。ただし、36種類の単位符号パターンの情報パターンと同期パターンへの振り分け方は、これには限らない。例えば、4種類で1組を構成する同期パターンの組を5つ用意し、残りの16種類の情報パターンで4ビットの情報を表現してもよい。
【0020】
一方、特に図示しないが、単位符号パターンが長方形(縦横のドット数が異なる)である場合は、画像の回転の検出のために2種類の単位符号パターンを同期パターンとして用意すればよい。例えば、縦3ドット×横4ドットを配置可能な領域が検出されるべきなのに、縦4ドット×横3ドットを配置可能な領域が検出された場合は、その時点で画像が90度または270度回転していることが分かるからである。
【0021】
次に、上記の符号パターンを配置して識別情報と座標情報を表現する方法を述べる。
まず、単位符号パターンにより構成される情報ブロックについて説明する。
図6は、情報ブロックの構成例を示す図である。
図6に示す例では、9C2方式における単位符号パターンを使用していることも同時に示している。すなわち、36種類の単位符号パターンを、例えば、同期パターンとして使用する4パターンと、情報パターンとして使用する32パターンとに分け、各パターンをレイアウトに従って配置する。
【0022】
また、図6に示す例では、情報ブロックのレイアウトとして、3ドット×3ドットの単位符号パターンを配置可能なパターンブロックを5個×5個の25個並べたものを採用している。そして、この25個のパターンブロックのうち、左上の1ブロックに同期パターンを配置している。また、同期パターンの右の4ブロックに紙面上のX方向の座標を特定するX座標情報を表す情報パターンを配置し、同期パターンの下の4ブロックに紙面上のY方向の座標を特定するY座標情報を表す情報パターンを配置している。さらに、これらの座標情報を表す情報パターンで囲まれた16ブロックに、紙面または紙面に印刷される文書の識別情報を表す情報パターンを配置している。
なお、上述した9C2方式における単位符号パターンは例示に過ぎず、図の左下に示すように、9C3方式における単位符号パターンを使用してもよい。
【0023】
次に、本実施形態における識別情報と座標情報を表現するためのレイアウトについて説明する。
図7に、このようなレイアウトの一部を示す。
図7に示すレイアウトでは、図6に示した情報ブロックを基本単位とし、この情報ブロックを紙面全体に周期的に配置する。図では、同期パターンを「S」で表し、X座標を表すパターンを「X1」、「X2」、…で表し、Y座標を表すパターンを「Y1」、「Y2」、…で表している。座標情報は、例えば紙面の縦及び横に渡ってM系列で表現する。また、識別情報の符号化には、幾つかの方法の利用が考えられるが、本実施形態では、RS符号化が適している。RS符号は多値の符号法であり、この場合、ブロックの表現をRS符号の多値に対応させるとよいからである。図7では、識別情報を表すパターンを「IXY」(X=1〜4,Y=1〜4)で表している。
【0024】
ここで、座標情報を表現するのに用いるM系列について説明する。
M系列とは、その部分列が、他の部分列と一致することがない系列である。例えば、11次のM系列は、2047ビットのビット列である。そして、この2047ビットのビット列の中から取り出された11ビット以上の部分列と同じ並びは、この2047ビットのビット列の中に自身以外には存在しない。本実施形態では、16個の単位符号パターンを4ビットに対応付ける。すなわち、2047ビットのビット列を4ビットごとに10進数で表し、図4に示したような数値対応に従って単位符号パターンを決定し、座標符号として紙面の横と縦に渡って表現する。したがって、復号の際は、3つの連続する単位符号パターンを特定することにより、ビット列上の位置が特定されることになる。
【0025】
図8に、M系列を用いた座標情報の符号化の例を示す。
(a)は、11次のM系列の例として、「0111000101011010000110010…」というビット列を示している。本実施の形態では、これを4ビットずつに区切り、1つ目の部分列「0111」をパターン値7の単位符号パターンとして、2つ目の部分列「0001」をパターン値1の単位符号パターンとして、3つ目の部分列「0101」をパターン値5の単位符号パターンとして、4つ目の部分列「1010」をパターン値10の単位符号パターンとして、それぞれ紙面上に配置する。
【0026】
このように、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つの単位符号パターンで座標情報を表現している。
【0027】
ところで、このような符号化を行った場合、4周期のM系列は2047個のブロックに分割して格納される。そして、図7のようなレイアウトでは、同期パターンを配置したブロックが間に挟まれるので、4周期のM系列で2558個(≒2047個×5/4)のブロック分の長さをカバーすることになる。1つのブロックの一辺の長さは、0.508mm(600dpiで12ピクセル)なので、2558個のブロックの長さは1299.5mmである。つまり、1299.5mmの長さが符号化されることになる。A0サイズの長辺が1188.0mmであるので、本実施の形態では、A0サイズの用紙上の座標を符号化することになる。
【0028】
以上のように構成されるパターン画像は、例えば電子写真方式を用いて、Kトナー(カーボンを含む赤外光吸収トナー)、または、特殊トナーにより、媒体である紙面上に形成される。
ここで、特殊トナーとしては、可視光領域(400nm〜700nm)における最大吸収率が7%以下であり、近赤外領域(800nm〜1000nm)における吸収率が30%以上の不可視トナーが例示される。ここで、「可視」及び「不可視」は、目視により認識できるかどうかとは関係しない。印刷された紙面に形成された画像が可視光領域における特定の波長の吸収に起因する発色性の有無により認識できるかどうかで「可視」と「不可視」とを区別している。また、可視光領域における特定の波長の吸収に起因する発色性が若干あるが、人間の目で認識し難いものも「不可視」に含める。
【0029】
<画像処理装置の構成および動作>
次に、紙面上に印刷された(媒体上に形成された)パターン画像を読み取る画像処理装置について説明する。
図9は、画像処理装置の機能構成例を示す図である。
図9に示すように、画像処理装置10は、パターン画像を撮像する撮像部100と、パターン画像を形成するドットを検出するドット解析部200と、検出されたドットにより単位符号パターンや情報ブロックを復元し情報を復号する復号部300とを備える。
【0030】
撮像部100は、CCD(Charge Coupled Devices)やCMOS(Complementary Metal Oxide Semiconductor)等の撮像素子を用いて構成され、紙面上に形成されたパターン画像を、連続的な画像フレームとして読み取る。そして、読み取ったパターン画像を、8ビットの画像データとしてドット解析部200に送る。撮像部100により読み取られる画像のサイズは、特に限定されないが、ここでは156画素×156画素とする。
【0031】
ドット解析部200は、プログラム制御されたCPUおよびメモリ等で実現され、撮像部100により撮像された画像からドットを検出し、2次元のビット列を生成する。このドット解析部200は、画像データを解析する機能として、位置検出部210と、角度検出部220と、同期化部230とを備える。
【0032】
位置検出部210は、撮像部100から受け取った8ビットの画像からドットの位置を検出する。具体的には、取得した画像フレームからドットを検出し、さらに検出したドットの画像フレーム上での位置情報(座標値)を算出する。したがって、位置検出部210は、単位画像であるドットを検出する単位画像検出手段である。
【0033】
角度検出部220は、位置検出部210により検出された画像上のドットの整列角度を検出する。ドットの整列角度とは、画像におけるドットの整列方向の傾きであり、ドット本来の配列に対する回転角度である。ドット本来の配列とは、例えば、図3に示したような単位符号パターンにおける縦横のドットの並びである。
【0034】
同期化部230は、位置検出部210および角度検出部220の検出結果として得られたドットの配列を、2次元のビット配列に変換する。この変換を同期化と呼び、得られたビット配列における各ビットの並びを同期ラインと呼ぶ。また、角度検出部220により検出されたドットの整列角度はビット列(同期ライン)の角度となる。
得られたビット配列と、同期ラインの角度および間隔の情報は、復号部300に送られる。
【0035】
復号部300は、プログラム制御されたCPUおよびメモリ等で実現される。この復号部300は、ドット解析部200から受け取ったビット配列、同期ラインの角度および間隔の情報に基づいて、3ドット×3ドットのパターンブロックを検出する。そして、得られたパターンブロックを回転補正し、情報ブロックを復元した後、この情報ブロックにより記録された情報を復号する。また、画像処理装置10が、パターン画像が形成された用紙上に筆記しながらパターン画像を読み取るペン・デバイス(ペン・デバイスの詳細な構成については後述)である場合、ペン先の位置と撮像部100により撮像される位置との間には、一定のずれがある。そこで、復号部300は、同期ラインの角度および間隔の情報に基づいて、画像から得られた座標をペン先の座標に変換する。
【0036】
また、図9に示すように、ドット解析部200の位置検出部210、角度検出部220および同期化部230には、復号部300における復号の成否についての情報がフィードバックされる。位置検出部210、角度検出部220および同期化部230は、この復号の成否の情報に基づいて、各々の処理において使用するパラメータを決定する。具体的には、所定のパラメータを使用して処理を行った結果、復号に成功した(正しい復号結果が得られた)場合は、次の画像フレームに対しても同じパラメータを使用して処理を行うこととする。一方、復号に失敗した場合は、次の画像フレームに対しては、過去の処理履歴を参照し、成功率が最も高かったパラメータを選択して使用することとする。
【0037】
また、画像処理装置10が後述するペン・デバイスである場合、画像処理装置10には、ペンによる筆記が行われているか否かを認識する機能が設けられる。そして、ドット解析部200の位置検出部210、角度検出部220および同期化部230と、復号部300には、ペンによる筆記が開始されたことを示すストローク開始信号が供給される。ストローク開始信号が供給されると、これらの機能ブロックは、各設定を初期化する。さらにまた、画像処理装置10がペン・デバイスである場合、復号部300には、復号結果からペン先を補正するための、ペン先から撮像面までの相対距離情報(ペン−チップ距離情報)が供給される。
【0038】
図10は、ドット解析部200および復号部300による処理の流れを示すフローチャートである。
初期動作として、撮像部100により媒体である紙面の撮像が行われたものとする。
図10に示すように、まず、位置検出部210が、メモリにおけるドットの座標格納領域を初期化し(ステップ1001)、ドットの位置を検出する(ステップ1002)。位置検出に成功したならば(ステップ1003でYes)、次に、角度検出部220が、メモリにおけるドットの整列角度格納領域を初期化し(ステップ1004)、ドットの整列角度を検出する(ステップ1005)。角度検出に成功したならば(ステップ1006でYes)、次に、同期化部230が、メモリのビット配列格納領域を初期化し(ステップ1007)、ドット配列をビット配列に同期させる(ステップ1008)。ドット配列の同期に成功したならば(ステップ1009でYes)、次に、復号部300が、メモリの復号結果格納領域を初期化し(ステップ1010)、復号処理を行う(ステップ1011)。復号に成功したならば(ステップ1012でYes)、復号部300は、復号に成功したことを示す信号を位置検出部210、角度検出部220および同期化部230に送信し(ステップ1013)、復号結果を出力する(ステップ1014)。
【0039】
位置検出部210によるドットの位置の検出、角度検出部220によるドットの整列角度の検出、同期化部230によるドット配列の同期のいずれかに失敗した場合(ステップ1003、1006、1009でNo)は、失敗したステップ以後の処理は行われない。これらの場合、および復号部300による復号に失敗した場合(ステップ1012でNo)は、復号部300が、復号に失敗したことを示す信号を、位置検出部210、角度検出部220および同期化部230に送信し(ステップ1015)、かつ復号結果として出力する(ステップ1014)。
【0040】
<ドットの整列角度の検出方法>
ここで、ドットの並びに対する画像の歪みの影響と、本実施形態の角度検出部220による角度検出の方法について説明する。
図11乃至図13は、撮像部100により撮像された画像(以下、撮像画像と呼ぶ)の例を示す図である。
図11は、ドットの整列角度が0度の場合の撮像画像の例であり、図12は、ドットの整列角度が45度の場合の撮像画像の例である。これらの図において、撮像画像に対して直交するXY座標系を設定し、横方向をX軸、縦方向をY軸とする。そして、ドットの整列方向がX軸およびY軸に沿っている場合を角度0度とする。
【0041】
図11および図12では、撮像部100の撮像面とドットが形成された紙面とは並行である。これらの図に示す状態では、各ドットは互いに直交する2方向に並んでいる(図中、実線および破線で示した方向がドットの整列方向)。また、隣り合う4つのドットで形成される四角形が正方形をなしている。これらの場合は、近接する2つのドットの位置関係を調べることにより、ドットの整列方向を特定し、ドット本来の配列に対する整列角度を検出することは容易である。
【0042】
画像処理装置10が後述するペン・デバイスである場合、紙面に対するペン・デバイスの角度によって、撮像部100の撮像面が紙面に対して傾き、撮像画像に歪みが生じてしまう。図13は、図12に対して画像の上方が奥に、下方が手前に傾いた状態の撮像画像である。この状態では、撮像画像におけるドットの2方向の並びが直交していないので、隣り合う4つのドットで形成される四角形は菱形や平行四辺形となる。
【0043】
図13のように撮像画像が歪むと、隣り合う4つのドットで形成される四角形において、短い対角線の長さが2辺の長さに近づくため、正しいドットの整列方向を検出することが困難になる。図13に示す例では、ドットは、実線で示した方向、破線で示した方向、一点鎖線で示した方向の3方向にドットが並んでいるように認められる。そこで、本実施形態の角度検出部220は、以下に説明する手法により、このような場合に適切なドットの整列方向を特定し、整列角度を検出する。
【0044】
角度検出部220は、まず、位置検出部210により撮像画像から検出された各ドットに関して、近接ドット対を検出する。近接ドット対は、所定のドットに注目した場合に、そのドットとそのドットに最も近い位置にあるドットとで構成される。次に、検出された近接ドット対の角度の度数分布に基づき、3つの角度を抽出する。そして、抽出された3つの角度の関係等に基づいて、ドットの整列角度を特定する。
【0045】
<角度検出部の機能>
次に、角度検出部220の機能についてさらに詳細に説明する。
図14は、角度検出部220の機能構成を示す図である。
角度検出部220は、近接ドット対を検出する近接ドット対検出部221と、検出された近接ドット対の度数分布データを生成する度数分布生成部222とを備える。そして、生成された度数分布データに基づいて3つの角度を抽出する第1軸角度抽出部223、第2軸角度抽出部224および第3軸角度抽出部225と、抽出された3つの角度からドットの整列角度を選択し特定する角度特定部226とを備える。図示の構成において、度数分布生成部222、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225および角度特定部226(図中、破線で囲まれた部分)は、ドットの整列角度を特定する角度特定手段である。
【0046】
近接ドット対検出部221は、位置検出部210により検出されたドットの画像フレーム上での位置情報(座標値)を取得し、近接ドット対を検出する。言い換えれば、近接ドット対検出部221は、位置検出部210の出力であるドット座標値から最も近い位置にあるドット座標値の組み合わせを検出する手段である。近接ドット対の詳細な検出方法については後述する。
【0047】
度数分布生成部222は、近接ドット対検出部221により検出された近接ドット対がなす角度の度数分布データを生成する。ここで、近接ドット対がなす角度とは、近接ドット対を構成する2つのドットを結ぶ直線が、位置検出部210の出力であるドット位置情報の基準となる所定の方向(例えば、撮像画像に設定されたXY座標のX軸方向)に対してなす角度である。
【0048】
第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225は、度数分布生成部222により生成された度数分布データに基づいて、ドットの整列方向の候補となる3方向の角度(第1軸角度、第2軸角度、第3軸角度)を抽出する。各々の角度の詳細な検出方法については後述する。
【0049】
角度特定部226は、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225により抽出された第1軸角度、第2軸角度、第3軸角度に基づいて、ドット本来の配列の方向に対応するドットの整列方向の角度(整列角度)を特定し出力する。例えば、図3に示したような単位符号パターンの場合、ドットは縦横の2方向に並んでいるので、この縦横2方向に対応する2方向の整列角度が特定される。図14では、この2方向をX軸およびY軸と記載している。整列角度の詳細な特定方法については後述する。
【0050】
また、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225は、抽出した角度に沿って並ぶ近接ドット対のドット間の距離に基づいて、この方向でのドット間の基準間隔を算出する。そして、角度特定部226は、2方向の整列角度におけるドット間の基準間隔を特定する。すなわち、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225、角度特定部226は、撮像画像から検出されたドット配列におけるドット間隔を特定する間隔特定手段としても機能する。基準間隔の検出方法については後述する。
【0051】
<近接ドット対の検出方法>
次に、近接ドット対検出部221による近接ドット対の検出方法について詳細に説明する。
図15は、ドットが検出された画像から、近接ドット対が検出された様子を示す図である。図15(a)は位置検出部210により検出されたドット位置の一例であり、図15(b)は図15(a)に対して近接ドット対の検出が行われた状態を示す。図15(b)では、近接ドット対を、線で結んで表現している。この場合、あるドットAから最も近いドットBが、他のドットCと近接ドット対を成している場合は、ドットAは他のどのドットとも近接ドット対を成していない(A、B、Cは特に図示していない)。
【0052】
図16は、近接ドット対の検出方法の具体例を示す図である。
図16において、例えば、番号1から4までのドットに対して近接ドット対を検出するものとする。
近接ドット対検出部221は、まず、位置検出部210が検出した番号1から4までのドットの位置を認識する。そして、番号1のドットを基準に他の番号のドットまでの距離をスキャンしていく。その結果、番号1のドットに最も近いドットは番号3のドットであり、両者の距離(PD)は20と認識される。そして、近接ドット対検出部221は、番号1のドットに関して、番号3のドットが近接ドットであることを示す情報“Pair[1]=3”と、番号3のドットまでの距離が20であることを示す情報“MPD[1]=20”とを生成する。同様に、番号3のドットに関して、“Pair[3]=1”と“MPD[3]=20”の情報(以下、属性情報)を生成する。
【0053】
ここで、Pair[ ]の[ ]内の番号は自らのドットの番号を示し、Pair[ ]=で定義される値は、現時点で近接ドット対となっている相手のドットの番号を示す。また、MPD[ ]の[ ]内の番号は自らのドットの番号を示し、MPD[ ]の値は、現時点での近接ドット対となっている相手のドットまでの距離を示す。
【0054】
次に、近接ドット対検出部221は、番号2のドットを基準に、番号1以外のドットまでの距離をスキャンしていく。先に番号1のドットをスキャンした時点で、番号1のドットは番号2のドットから最も近いドットではないと判断されているため、番号1のドットをスキャンの対象から外している。
このスキャンの結果、番号2のドットに最も近いドットは番号3のドットであり、両者の距離(PD)は15と認識される。この距離は、番号1と番号3とのドットの距離(20)よりも短い。したがって、位置検出部210は、番号2のドットに関して“Pair[2]=3”と“MPD[2]=15”の属性情報を生成し、番号3のドットに関して“Pair[3]=2”と“MPD[3]=15”の属性情報を生成する。そして、この時点で番号1のドットは、番号2のドットに番号3のドットを奪われたため、属性情報が“Pair[1]=−1”と“MPD[1]=−1”に変更され、番号1のドットはどの番号のドットとも近接ドット対を成していない状態になる。
【0055】
同様にして、近接ドット対検出部221は、番号3のドットを基準に、番号が1と2以外のドットまでの距離をスキャンしていく。その結果、番号3のドットに最も近いドットは番号4のドットであり、両者の間隔(PD)は10と認識される。この距離は、番号2と番号3とのドットの距離(15)よりも短い。したがって、位置検出部210は、番号3のドットに関して“Pair[3]=4”と“MPD[3]=10”の属性情報を生成し、番号4のドットに関して“Pair[4]=3”と“MPD[4]=10”の属性情報を生成する。そして、この時点で番号2のドットは、番号4のドットに番号3のドットを奪われたため、属性情報が“Pair[2]=−1”と“MPD[2]=−1”に変更され、番号2のドットはどの番号のドットとも近接ドット対を成していない状態になる。
【0056】
この時点で、スキャンしていないドットは番号4のドットだけであるが、このドットは既に番号3のドットと近接ドット対を成しているため、改めてスキャンされることはなく処理は終了する。なお、ここでは一例としてドットの数が4個の場合を取り上げたが、ドットの数が5個以上ある場合も上述したスキャンの手順を繰り返していくことで近接ドット対が順次検出される。
【0057】
図17は、近接ドット対検出部221による近接ドット対の検出処理の流れを説明するフローチャートである。
近接ドット対の検出は、図16を参照して説明したように、複数のドットの各々を順次基準とし、他のドットとの位置関係を調べることによって行われる。この基準となるドットを基準ドット、他のドットを対象ドットと呼ぶ。図17に示すように、近接ドット対検出部221は、各ドットを順次基準ドットとしながら、以下のループ処理を実行する。
【0058】
まず、近接ドット対検出部221は、基準ドットとして選んだドットの座標値を取得し(ステップ1701)、ドット対番号(PairIndex)を生成して基準ドットに付与する(ステップ1702)。ここでは、基準ドットの座標値を(Xs,Ys)とする。次に、近接ドット対検出部221は、基準ドット以外の各ドットを順次対象ドットとしながら、以下のループ処理を実行する。
【0059】
まず、近接ドット対検出部221は、対象ドットとして選んだドットの座標値を取得する(ステップ1703)。ここでは、対象ドットの座標値を(Xe,Ye)とする。次に、近接ドット対検出部221は、基準ドットと対象ドットの間の距離((Xs,Ys)−(Xe,Ye))を計算する(ステップ1704)。そして、算出されたドット間距離が、現在の基準ドットに関するドット間距離のうちで最小値である場合は(ステップ1705でYes)、その対象ドットと基準ドットとの関係を表すドット対情報(例えば、対象ドットのドット番号および基準ドットと対象ドット間の距離)を保存する(ステップ1706)。このとき、他のドットを対象ドットとするドット対情報があれば、そのドット対情報は消去される。
【0060】
一方、ステップ1704で算出されたドット間距離が現在の基準ドットに関するドット間距離のうちで最小値でない場合(ステップ1705でNo)、言い換えれば、ドット間距離がより短い他のドットに関するドット対情報が既に保存されている場合は、既に保存されているドット対情報がそのまま保持される。
【0061】
基準ドット以外の全てのドットを対象ドットとしてステップ1703〜1706のループ処理が行われると、その基準ドットに最も近い位置にある1つのドットを対象ドットとして、この対象ドットと基準ドットとの関係を表すドット対情報が保存されることとなる。この後、近接ドット対検出部221は、この基準ドットおよび対象ドットに関して、ステップ1706で保存されたドット対情報に基づいて、近接ドット対か否かを判別する処理を行う(ステップ1707)。図18は、ステップ1707に示す近接ドット対の判別処理の詳細を説明するフローチャートである。
【0062】
図18を参照すると、近接ドット対検出部221は、まず、対象ドットが他のドットとリンクされているか否かを調べる。すなわち、対象ドットが他のドットと既に対をなしているか否かを、図16で説明した属性情報(Pair[]およびMPD[])を参照して調べる。対象ドットに属性情報が設定されていれば、それは対象ドットが他のドットとリンクされており、対象ドットに属性情報が設定されていなければ、対象ドットは他のドットとリンクしていない。対象ドットと他のドットとの間のリンクが存在する場合(ステップ1801でYes)、次に近接ドット対検出部221は、対象ドットと基準ドットとの間のドット間距離と、対象ドットとリンク先の他のドットとの間のドット間距離とを比較する。そして、基準ドットとの間のドット間距離の方が短い場合(ステップ1802でNo)、近接ドット対検出部221は、対象ドットと他のドットとの間のリンクを削除する(ステップ1803)。
【0063】
対象ドットと他のドットとの間のリンクが存在しない場合(ステップ1801でNo)、またはステップ1803で対象ドットと他のドットとの間のリンクを削除した後、近接ドット対検出部221は、基準ドットが他のドットとリンクされているか否かを調べる。基準ドットと他のドットとの間のリンクが存在する場合(ステップ1804でYes)、次に近接ドット対検出部221は、基準ドットと対象ドットとの間のドット間距離と、基準ドットとリンク先の他のドットとの間のドット間距離とを比較する。そして、対象ドットとの間のドット間距離の方が短い場合(ステップ1805でNo)、近接ドット対検出部221は、基準ドットと他のドットとの間のリンクを削除する(ステップ1806)。
【0064】
この後、近接ドット対検出部221は、基準ドットと対象ドットとをリンクさせる(ステップ1807)。これにより、基準ドットと対象ドットとは近接ドット対となる。
一方、基準ドットと対象ドットとの間のドット間距離よりも、対象ドットとリンク先の他のドットとの間のドット間距離の方が短い場合(ステップ1802でYes)、または、基準ドットとリンク先の他のドットとの間のドット間距離の方が短い場合(ステップ1805でYes)は、近接ドット対検出部221は、基準ドットと対象ドットとをリンクさせない。したがって、これらの組み合わせは近接ドット対とはならない。
【0065】
<第1軸角度、第2軸角度、第3軸角度の抽出方法>
次に、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225による第1軸角度、第2軸角度、第3軸角度の抽出方法について詳細に説明する。
まず、前処理として、度数分布生成部222が、近接ドット対検出部221により検出された近接ドット対がなす角度の度数分布データを生成する。この度数分布データは、近接ドット対がなす角度の値ごとに、その出現度数を積算したデータである。
【0066】
図19は、度数分布生成部222により生成される近接ドット対がなす角度の度数分布の例を視覚的に表現したヒストグラムである。
度数分布データは、180度の範囲(図19の例では、−90度から+90度まで)で生成される。この度数分布データを用いて、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225が、第1軸角度、第2軸角度、第3軸角度をそれぞれ抽出する。
【0067】
第1軸角度抽出部223は、度数分布生成部222により生成された度数分布データに基づき、最大頻度の角度を第1軸角度として抽出する。最大頻度の角度は、次のようにして求まる。
第1軸角度抽出部223は、まず、出現度数が最大である角度を検出する。そして、検出した角度を中心とする一定の範囲(以下、対象範囲)で、出現度数に基づく平均角度を計算する。算出された角度が最大頻度の角度であり、第1軸角度となる。平均角度は、対象範囲の角度ごとに出現度数を乗算した値を加算し、総出現度数(対象範囲内の出現度数を全て加算した値)で除算した値である。
【0068】
例えば、出現度数が最大の角度を10度、対象範囲を−2度から+2度までの範囲とすると、8度から12度の範囲で平均角度の計算が行われる。また例えば、この範囲において、8度の出現度数を10、9度の出現度数を20、10度の出現度数を100、11度の出現度数を50、12度の出現度数を40とすると、平均角度は、下記の計算により10.4度となる。
(8×10+9×20+10×100+11×50+12×40)/(10+20+100+50+40)=10.4
【0069】
第2軸角度抽出部224は、第1軸角度抽出部223により抽出された第1軸角度から一定の角度だけ遷移(オフセット)させた角度(以下、基準角度)を想定し、その基準角度を中心とする一定の範囲内で最大頻度の角度を第2軸角度として抽出する。そして、第1軸角度の算出と同様に、所定の対象範囲で出現頻度に基づく平均角度を算出し、それを第2軸角度とする。ここで、第1軸角度と基準角度とがなす遷移角度は、ドット本来の配列に基づいて設定される。例えば、図3に示した単位符号パターンの場合、90度である。最大頻度の角度の計算方法は、第1軸角度の場合と同様である。基準角度を含む一定の範囲は、任意に定めて良いが、第2軸角度の検出可否や復号部300による復号成否の履歴に基づいて定めても良い。
【0070】
第3軸角度抽出部225は、基準角度に対して第2軸角度と対称な角度を中心とする一定の範囲内で、最大頻度の角度を第3軸角度として抽出する。そして、所定の対象範囲で出現頻度に基づく平均角度を算出し、それを第3軸角度とする。例えば、基準角度が100度、第2軸角度が80度である場合、基準角度に対して第2軸角度と対称な角度は、120度である。この角度を含む一定の範囲は、任意に定めて良いが、第2軸角度の検出可否や復号部300による復号成否の履歴に基づいて定めても良い。また、最大頻度の角度の計算方法は、第1軸角度の場合と同様である。
【0071】
図20は、度数分布生成部222、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225による第1軸角度、第2軸角度、第3軸角度の抽出処理の流れを説明するフローチャートである。
図20に示すように、まず、度数分布生成部222が、各近接ドット対を順次対象として、以下のループ処理を実行する。
【0072】
度数分布生成部222は、まず、近接ドット対の2つのドットの座標(X1,Y1)、(X2,Y2)を取得し(ステップ2001)、この近接ドット対がなす角度θを、下式により計算する(ステップ2002)。そして、得られた角度θの、度数分布データの度数を1加算する(ステップ2003)。
θ=tan-1{(Y1−Y2)/(X1−X2)}
【0073】
全ての近接ドット対に対してステップ2001〜2003の処理が行われると、次に第1軸角度抽出部223が、生成された度数分布データに基づいて、第1軸角度を抽出する(ステップ2004)。また、第1軸角度に沿ったドット間の基準間隔を算出する(ステップ2005)。なお、基準間隔およびその検出方法の詳細は後述する。
【0074】
次に、第2軸角度抽出部224が、度数分布データおよび第1軸角度に基づいて、第2軸角度を抽出し(ステップ2006)、第2軸角度に沿ったドット間の基準間隔を算出する(ステップ2007)。さらに、第3軸角度抽出部225が、度数分布データ、基準角度および第2軸角度に基づいて、第3軸角度を抽出し(ステップ2008)、第3軸角度に沿ったドット間の基準間隔を算出する(ステップ2009)。
【0075】
図21は、抽出された3方向の角度のイメージを示す図である。
図21(a)に示すように並ぶドットが検出され、図21(b)に示すように第1軸角度が抽出されたものとする。この第1軸角度に対して90度オフセットした基準角度を挟んで、第2軸角度と第3軸角度とが抽出されている。
【0076】
<整列角度の特定方法>
次に、角度特定部226による整列角度の特定方法について詳細に説明する。
角度特定部226は、度数分布生成部222、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225により抽出された第1軸角度、第2軸角度、第3軸角度に基づき、ドットの整列角度を特定し出力する。具体的には、ドット本来の配列の方向に対応する2方向のドットの整列方向(図14ではX軸およびY軸と記載)の角度が特定される。この整列角度の特定は、以下の手順で行われる。
【0077】
角度特定部226は、まず、第1軸角度、第2軸角度、第3軸角度と、直前の画像フレーム(以下、前フレームと呼ぶ)に対する復号部300による復号の成否の情報を取得する。前フレームに対する復号が成功した場合、角度特定部226は、第1軸角度、第2軸角度、第3軸角度のうち、前フレームにおいて特定した整列角度に近い2つを選んで整列角度とする。前フレームと現フレームとは連続的に読み取られているため、適切な整列角度は大きく変わらないと考えられる。ただし、画像処理装置10がペン・デバイスである場合、撮像部100と紙面との位置関係が随時変化する。そこで、前フレームにおいて特定した整列角度と同一ではなく、近い角度が選ばれる。
【0078】
前フレームに対する復号が失敗した場合、角度特定部226は、例えば次のようにして2方向の整列角度を特定する。
第1軸角度、第2軸角度、第3軸角度の全てが抽出されている場合、第1軸角度と、第2軸角度または第3軸角度のうちで基準角度に近い方とを選び、整列角度とする。
第3軸角度が抽出されなかった場合、角度特定部226は、第1軸角度と第2軸角度とを選び、整列角度とする。第3軸角度が抽出されない場合とは、度数分布データにおいて、基準角度に対して第2軸角度と対称な角度を中心とする一定の範囲内に出現度数の多い角度が存在しない場合、第2軸角度と基準角度とが一致している場合などである。
また、第2軸角度も抽出されなかった場合、角度特定部226は、第1軸角度と、第1軸角度に対して一定角度オフセットした基準角度とを整列角度とする。第2軸角度が抽出されない場合とは、度数分布データにおいて、基準角度を中心とする一定の範囲に出現度数の多い角度が存在しない場合などである。
【0079】
さらに、角度特定部226は、所定の画像フレームで復号に失敗した場合に、次の画像フレームにおける整列角度として、復号に失敗した画像フレームとは異なる角度を選ぶようにしても良い。具体的には例えば、第1軸角度と第2軸角度を整列角度として復号に失敗した場合に、次の画像フレームでは、第1軸角度と第3軸角度とを整列角度とする、第2軸角度と第3軸角度とを整列角度とする、等である。
【0080】
<基準間隔の算出方法>
次に、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225による基準間隔の算出方法について説明する。
基準間隔とは、一定の方向に沿って並ぶ近接ドット対におけるドット間距離の平均値である。ただし、ドット間距離が突出して大きい近接ドット対を排除するため、一定の閾値(最大ドット間距離)を設け、ドット間距離がこの閾値以下である近接ドット対に関して、平均値を計算する。この閾値は、例えば、次のようにして決定される。
【0081】
まず、度数分布生成部222が、近接ドット対検出部221により検出された近接ドット対のドット間距離の度数分布データを生成する。この度数分布データは、近接ドット対のドット間距離の値ごとに、その出現度数を積算したデータである。そして、出現度数が最大であるドット間距離よりも若干長い距離を閾値とする。図22に、ドット間距離の度数分布の例を視覚的に表現したヒストグラムを示す。図22において、出現頻度最大のドット間距離よりも若干長い距離に閾値が設定されている。
【0082】
第1軸角度抽出部223は、第1軸角度に沿って並ぶ近接ドット対のうち、ドット間距離が上記のようにして求めた閾値以下のものを抽出する。そして、ドット間距離の平均値を計算し、第1軸方向のドットの基準間隔とする。なお、各種の誤差を考慮し、近接ドット対がなす角度は、第1軸角度に対して一定の幅(−α度から+α度)を含むものとする。すなわち、近接ドット対がなす角度が第1基準角度±αである近接ドット対が、第1軸角度に沿って並ぶ近接ドット対である。
【0083】
同様にして、第2軸角度抽出部224は、第2軸角度に沿って並ぶ近接ドット対のうち、ドット間距離が上記のようにして求めた閾値以下のものを抽出し、第2軸方向のドットの基準間隔を算出する。また、第3軸角度抽出部225は、第3軸角度に沿って並ぶ近接ドット対のうち、ドット間距離が上記のようにして求めた閾値以下のものを抽出し、第3軸方向のドットの基準間隔を算出する。
【0084】
角度特定部226は、第1軸角度抽出部223、第2軸角度抽出部224、第3軸角度抽出部225から各々の方向の基準間隔を取得する。そして、整列角度として特定された方向(図14のX軸およびY軸)の基準間隔を選択し、整列角度と共に出力する。この整列角度および整列角度における基準間隔の情報は、同期化部230において同期化を行うための同期ラインの特定に用いられる。
【0085】
<ペン・デバイスの構成>
次に、本実施の形態における画像処理装置10の具体的なハードウェア構成について説明する。ここでは、画像処理装置10を実現するペン・デバイスの構成例について説明する。
図23は、ペン・デバイスの機構を示した図である。
図示するように、ペン・デバイス60は、ペン全体の動作を制御する制御回路61を備える。制御回路61は、入力画像から検出した符号画像を処理する画像処理部61aと、そこでの処理結果から識別情報及び座標情報を抽出するデータ処理部61bとを含む。また、特に図示しないが、制御回路61は、これら画像処理部61aおよびデータ処理部61bを動作させるためのプログラムを格納する不揮発性メモリとを含む。この制御回路61には、ペン・デバイス60による筆記動作をペンチップ69に加わる圧力によって検出する圧力センサ62が接続されている。また、媒体上に赤外光を照射する赤外LED63と、画像を入力する赤外CMOS64も接続されている。さらに、識別情報及び座標情報を記憶するための情報メモリ65と、外部装置と通信するための通信回路66と、ペンを駆動するためのバッテリ67と、ペンの識別情報(ペンID)を記憶するペンIDメモリ68も接続されている。
【0086】
図9に示した画像処理装置10において、撮像部100は、例えば、図23の赤外CMOS64にて実現される。また、ドット解析部200は、例えば、図23の画像処理部61aにて実現される。さらに、復号部300は、例えば、図23のデータ処理部61bにて実現される。なお、画像処理装置10は、図23に示すようなペン・デバイス60の他、画像処理部61a又はデータ処理部61bにて実現される機能を、例えば、汎用のコンピュータで実現しても良い。
【0087】
画像処理部61aおよびデータ処理部61bの機能を実現するプログラムは、通信手段を介して提供したり、CD−ROM等の記録媒体に格納して提供したりすることができる。また、制御回路61に含まれる上述した不揮発性メモリに格納して提供しても良い。
【図面の簡単な説明】
【0088】
【図1】本実施形態で用いられる単位符号パターン、情報ブロック、紙面(媒体)の関係を示す図である。
【図2】mCn方式における単位符号パターンの例を示す図である。
【図3】図2に示した単位符号パターンの種類を網羅的に示した図である。
【図4】9C2方式における単位符号パターンとパターン値との対応を示す図である。
【図5】9C2方式における同期パターンの例を示す図である。
【図6】情報ブロックの構成例を示す図である。
【図7】本実施形態における識別情報と座標情報を表現するためのレイアウトの例を示す図である。
【図8】M系列を用いた座標情報の符号化の例を示す図である。
【図9】本実施形態の画像処理装置の機能構成例を示す図である。
【図10】本実施形態のドット解析部および復号部による処理の流れを示すフローチャートである。
【図11】撮像画像の例を示す図であり、ドットの整列角度が0度の場合の撮像画像の例である。
【図12】撮像画像の例を示す図であり、ドットの整列角度が45度の場合の撮像画像の例である。
【図13】図12に対して画像の上方が奥に、下方が手前に傾いた状態の撮像画像を示す図である。
【図14】本実施形態の角度検出部の機能構成を示す図である。
【図15】ドットが検出された画像から、近接ドット対が検出された様子を示す図である。
【図16】本実施形態における近接ドット対の検出方法の具体例を示す図である。
【図17】本実施形態の近接ドット対検出部による近接ドット対の検出処理の流れを説明するフローチャートである。
【図18】図17のステップ1707に示す近接ドット対の判別処理の詳細を説明するフローチャートである。
【図19】本実施形態の度数分布生成部により生成される近接ドット対がなす角度の度数分布の例を視覚的に表現したヒストグラムである。
【図20】本実施形態の度数分布生成部、第1軸角度抽出部、第2軸角度抽出部、第3軸角度抽出部による第1軸角度、第2軸角度、第3軸角度の抽出処理の流れを説明するフローチャートである。
【図21】本実施形態で抽出された3方向の角度のイメージを示す図である。
【図22】本実施形態におけるドット間距離の度数分布の例を視覚的に表現したヒストグラムである。
【図23】画像処理装置であるペン・デバイスの機構を示した図である。
【符号の説明】
【0089】
10…画像処理装置、100…撮像部、200…ドット解析部、210…位置検出部、220…角度検出部、221…近接ドット対検出部、222…度数分布生成部、223…第1軸角度抽出部、224…第2軸角度抽出部、225…第3軸角度抽出部、226…角度特定部、230…同期化部、300…復号部
【特許請求の範囲】
【請求項1】
所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像装置により撮像して得られた画像から単位画像を検出する単位画像検出手段と、
前記単位画像検出手段により前記画像から検出された前記単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する組み合わせ検出手段と、
前記組み合わせ検出手段により検出された単位画像の前記組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する角度特定手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記角度特定手段により角度が特定された配列における前記単位画像の基準間隔を、単位画像の前記組み合わせを構成する各単位画像の間の距離に基づいて特定する間隔特定手段をさらに備えることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記角度特定手段は、前記単位画像を結ぶ直線の傾きのうち、出現頻度の最も高い角度を第1の角度とし、当該第1の角度に対して所定の角度だけ遷移させた基準角度を含む一定範囲において出現頻度の最も高い角度を第2の角度とし、当該第1の角度および当該第2の角度を前記2方向の角度とすることを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記角度特定手段は、前記基準角度に対して前記第2の角度の対称となる角度を含む一定範囲において出現頻度の最も高い角度を第3の角度とし、所定の基準に基づいて、前記第1の角度と当該第2の角度と当該第3の角度のうち2つを選んで、前記2方向の角度とすることを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記単位画像検出手段により検出された単位画像および前記角度特定手段により特定された当該単位画像の配列の角度に基づき、当該単位画像によって符号化されて記録された情報を復号する復号手段をさらに備え、
前記角度特定手段は、前記第1の角度、第2の角度、第3の角度のうち、前記復号手段による復号が成功したときの前記単位画像の配列の角度に近い2つの角度を選択することを特徴とする請求項4に記載の画像処理装置。
【請求項6】
所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像する撮像手段と、
前記撮像手段により撮像して得られた画像から単位画像を検出する単位画像検出手段と、
前記単位画像検出手段により前記画像から検出された前記単位画像に関して、最も近い位置にある当該単位画像どうしの組み合わせを検出する組み合わせ検出手段と、
前記組み合わせ検出手段により検出された単位画像の前記組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する角度特定手段と
を備えることを特徴とするペン・デバイス。
【請求項7】
前記角度特定手段により角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する間隔特定手段をさらに備えることを特徴とする請求項6に記載のペン・デバイス。
【請求項8】
コンピュータに、
所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像装置により撮像して得られた画像から単位画像を検出する機能と、
前記画像から検出された前記単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する機能と、
検出された単位画像の前記組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する機能と、
を実現させるためのプログラム。
【請求項9】
前記コンピュータに、角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する機能をさらに実現させる請求項8に記載のプログラム。
【請求項1】
所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像装置により撮像して得られた画像から単位画像を検出する単位画像検出手段と、
前記単位画像検出手段により前記画像から検出された前記単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する組み合わせ検出手段と、
前記組み合わせ検出手段により検出された単位画像の前記組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する角度特定手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記角度特定手段により角度が特定された配列における前記単位画像の基準間隔を、単位画像の前記組み合わせを構成する各単位画像の間の距離に基づいて特定する間隔特定手段をさらに備えることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記角度特定手段は、前記単位画像を結ぶ直線の傾きのうち、出現頻度の最も高い角度を第1の角度とし、当該第1の角度に対して所定の角度だけ遷移させた基準角度を含む一定範囲において出現頻度の最も高い角度を第2の角度とし、当該第1の角度および当該第2の角度を前記2方向の角度とすることを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記角度特定手段は、前記基準角度に対して前記第2の角度の対称となる角度を含む一定範囲において出現頻度の最も高い角度を第3の角度とし、所定の基準に基づいて、前記第1の角度と当該第2の角度と当該第3の角度のうち2つを選んで、前記2方向の角度とすることを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記単位画像検出手段により検出された単位画像および前記角度特定手段により特定された当該単位画像の配列の角度に基づき、当該単位画像によって符号化されて記録された情報を復号する復号手段をさらに備え、
前記角度特定手段は、前記第1の角度、第2の角度、第3の角度のうち、前記復号手段による復号が成功したときの前記単位画像の配列の角度に近い2つの角度を選択することを特徴とする請求項4に記載の画像処理装置。
【請求項6】
所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像する撮像手段と、
前記撮像手段により撮像して得られた画像から単位画像を検出する単位画像検出手段と、
前記単位画像検出手段により前記画像から検出された前記単位画像に関して、最も近い位置にある当該単位画像どうしの組み合わせを検出する組み合わせ検出手段と、
前記組み合わせ検出手段により検出された単位画像の前記組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する角度特定手段と
を備えることを特徴とするペン・デバイス。
【請求項7】
前記角度特定手段により角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する間隔特定手段をさらに備えることを特徴とする請求項6に記載のペン・デバイス。
【請求項8】
コンピュータに、
所定の角度で交差する少なくとも2方向に沿って配列される単位画像が記録された記録媒体を撮像装置により撮像して得られた画像から単位画像を検出する機能と、
前記画像から検出された前記単位画像に関して、最も近い位置にある単位画像どうしの組み合わせを検出する機能と、
検出された単位画像の前記組み合わせを構成する各単位画像を結ぶ直線の傾きの出現頻度に基づいて、当該単位画像の配列の傾きを表す角度を特定する機能と、
を実現させるためのプログラム。
【請求項9】
前記コンピュータに、角度が特定された配列における前記単位画像の基準間隔を、前記単位画像の組み合わせを構成する各単位画像の間の距離に基づいて特定する機能をさらに実現させる請求項8に記載のプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【公開番号】特開2009−181346(P2009−181346A)
【公開日】平成21年8月13日(2009.8.13)
【国際特許分類】
【出願番号】特願2008−19872(P2008−19872)
【出願日】平成20年1月30日(2008.1.30)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
【公開日】平成21年8月13日(2009.8.13)
【国際特許分類】
【出願日】平成20年1月30日(2008.1.30)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
[ Back to top ]