画像処理装置およびプログラム
【課題】検出されたパターン画像に対するコード情報の復号の成否を反映させて、パターン画像を検出するための判断基準である閾値の設定を適切に行う。
【解決手段】検出部211は、撮像部により撮像された画像のフレームごとに、画像を走査し、特定の画素またはこの画素を含む一定の領域と、この画像の他の部分との画素値の差分を求め、得られた差分と所定の閾値とを比較して、単位画像を検出する。この検出部211により検出された単位画像に基づいて、この単位画像により符号化されて記録された情報が復号される。閾値設定部212は、復号の成否に基づいて、検出部211が用いる閾値を設定する。
【解決手段】検出部211は、撮像部により撮像された画像のフレームごとに、画像を走査し、特定の画素またはこの画素を含む一定の領域と、この画像の他の部分との画素値の差分を求め、得られた差分と所定の閾値とを比較して、単位画像を検出する。この検出部211により検出された単位画像に基づいて、この単位画像により符号化されて記録された情報が復号される。閾値設定部212は、復号の成否に基づいて、検出部211が用いる閾値を設定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置およびプログラムに関する。
【背景技術】
【0002】
印刷用紙等の媒体上にコード化された情報を表すパターン画像や特定の意味を付与されたパターン画像を埋め込み、読み取り装置で読み取ってコード情報を復号したり付与された意味に応じて装置を制御したりすることが、従来から行われている。パターン画像により表される情報としては、パターン画像が埋め込まれた媒体自体の識別情報や媒体に記録された文書の識別情報、媒体上の位置を表す位置情報などがある。
【0003】
この種の技術では、パターン画像を正しく検出することが非常に重要である。
特許文献1および特許文献2には、光学的に読み取った画像を、二値化回路によって二値化し、画像に記録されているドットコードを検出する技術が開示されている。
特許文献1では、二値化を行う際の閾値は、画面毎もしくは画面内のブロック毎のヒストグラムの値などを利用して決定される。すなわち、ドットコード上の染みや紙の歪み、内蔵クロックの精度などに応じて、閾値が決定される。
特許文献2では、前の画像フレームに対するドットコードの検出処理で得られる統計データに基づいて、現在の画像フレームに対して二値化を行う際の閾値を決定することについて開示されている。
【0004】
【特許文献1】特開平6−231466号公報
【特許文献2】国際公開第03/001450号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【0005】
コード情報を記録するパターン画像の検出では、パターン画像を検出する際の判断基準に、検出されたパターン画像に基づいて行われたコード情報の復号の成否を反映させることで、より適切な判断基準の設定を実現することが期待できる。
【0006】
本発明は、以上のような課題に鑑みてなされたものであり、検出されたパターン画像に対するコード情報の復号の成否を反映させて、パターン画像を検出するための判断基準の設定を、より適切に行うことを目的とする。
【課題を解決するための手段】
【0007】
請求項1に係る発明は、撮像装置により撮像された画像のフレームごとに、当該画像を走査し、特定の画素または当該画素を含む一定の領域と当該画像の他の部分との画素値の差分から、所定の判断基準により単位画像を検出する検出部と、前記撮像装置により撮像された前記画像のフレームごとに、前記検出部により検出された前記単位画像に基づいて、当該単位画像により符号化されて記録された情報を復号する復号部と、前記復号部による復号の成否に基づいて、前記検出部による前記判断基準を設定する判断基準設定部とを備えることを特徴とする画像処理装置である。
請求項2に係る発明は、前記検出部は、前記画素値の差分が所定の閾値よりも大きい場合に、前記特定の画素が前記単位画像を形成すると判断し、前記判断基準設定部は、直前のフレームに対する復号が成功した場合に、当該直前のフレームに対する単位画像の検出に用いられた閾値を、現在のフレームに対する単位画像の検出に用いる閾値に設定することを特徴とする請求項1に記載の画像処理装置である。
請求項3に係る発明は、前記検出部は、前記画素値の差分が所定の閾値よりも大きい場合に、前記特定の画素が前記単位画像を形成すると判断し、前記判断基準設定部は、直前のフレームに対する復号が失敗した場合に、それまでに復号が成功した頻度が最も高い閾値を、現在のフレームに対する単位画像の検出に用いる閾値に設定することを特徴とする請求項1に記載の画像処理装置である。
請求項4に係る発明は、前記判断基準設定部は、直前のフレームに対する復号が失敗し、かつ当該直前のフレームに対する単位画像の検出に用いられた閾値がそれまでに復号が成功した頻度が最も高い閾値であった場合に、当該閾値よりも1つ小さい値を、現在のフレームに対する単位画像の検出に用いる閾値に設定することを特徴とする請求項3に記載の画像処理装置である。
請求項5に係る発明は、前記検出部は、一定の領域からなるディスク要素と当該ディスク要素の周囲に設けられたリング要素とを備えるフィルタを適用して前記画像を走査し、当該フィルタにおける当該ディスク要素の画素値の平均値と当該リング要素の画素値の平均値との差分が所定の閾値以上である場合に、当該ディスク要素に含まれる前記特定の画素が前記単位画像を形成すると判断し、前記判断基準設定部は、前記フィルタにおける前記ディスク要素の画素値の平均値と前記リング要素の画素値の平均値との差分の評価に用いられる前記閾値を設定することを特徴とする請求項1に記載の画像処理装置である。
請求項6に係る発明は、コンピュータに、撮像装置により撮像された画像のフレームごとに、当該画像を走査し、特定の画素または当該特定の画素を含む一定の領域と当該画像の他の部分との画素値の差分から、所定の判断基準により単位画像を検出する機能と、前記撮像装置により撮像された前記画像のフレームごとに、検出された前記単位画像に基づいて、当該単位画像により符号化されて記録された情報を復号する機能と、前記情報の復号の成否に基づいて、前記判断基準を設定する機能とを実現させるためのプログラムである。
請求項7に係る発明は、前記単位画像を検出する機能では、前記コンピュータが、前記画素値の差分が所定の閾値よりも大きい場合に、前記特定の画素が前記単位画像を形成すると判断し、前記判断基準を設定する機能では、前記コンピュータが、前記判断基準として、前記単位画像の検出に用いられる前記閾値を設定することを特徴とする請求項6に記載のプログラムである。
請求項8に係る発明は、前記単位画像を検出する機能では、前記コンピュータが、一定の領域からなるディスク要素と当該ディスク要素の周囲に設けられたリング要素とを備えるフィルタを適用して前記画像を走査し、当該フィルタにおける当該ディスク要素の画素値の平均値と当該リング要素の画素値の平均値との差分が所定の閾値以上である場合に、当該ディスク要素に含まれる前記特定の画素が前記単位画像を形成すると判断し、前記判断基準を設定する機能では、前記コンピュータが、前記フィルタにおける前記ディスク要素の画素値の平均値と前記リング要素の画素値の平均値との差分の評価に用いられる前記閾値を設定することを特徴とする請求項6に記載のプログラムである。
【発明の効果】
【0008】
請求項1に係る発明によれば、画像のフレームごとに、情報の復号の成否に基づいて、単位画像を検出するための判断基準を設定することができる。
請求項2に係る発明によれば、以前の処理で復号に成功した閾値を、単位画像を検出するための判断基準として設定することができる。
請求項3に係る発明によれば、復号に成功した頻度の最も高い閾値を、単位画像を検出するための判断基準として設定することができる。
請求項4に係る発明によれば、復号に成功した頻度の最も高い閾値を用いて復号に失敗した場合に対応することができる。
請求項5に係る発明によれば、単位画像を検出するために用いられるフィルタに対して設定される閾値を、情報の復号の成否に基づいて設定することができる。
請求項6に係る発明によれば、画像処理装置の機能を実現するコンピュータにおいて、画像のフレームごとに、情報の復号の成否に基づいて、単位画像を検出するための判断基準を設定することができる。
請求項7に係る発明によれば、画像処理装置の機能を実現するコンピュータにおいて、情報の復号の成否に基づいて決定される閾値を、単位画像を検出するための判断基準として設定することができる。
請求項8に係る発明によれば、画像処理装置の機能を実現するコンピュータにおいて、単位画像を検出するために用いられるフィルタに対して設定される閾値を、情報の復号の成否に基づいて設定することができる。
【発明を実施するための最良の形態】
【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とを備える。
位置検出部210は、撮像部100から受け取った8ビットの画像からドットの位置を検出する。
角度検出部220は、位置検出部210により検出された画像上のドットの整列角度を検出する。
同期化部230は、位置検出部210および角度検出部220の検出結果として得られたドットの配列を、2次元のビット配列に変換する。この変換を同期化と呼び、得られたビット配列における各ビットの並びを同期ラインと呼ぶ。この同期化により、8ビットの画像の画像は2値データとなる。また、角度検出部220により検出されたドットの整列角度はビット列(同期ライン)の角度となる。
得られたビット配列と、同期ラインの角度および間隔の情報は、復号部300に送られる。
【0032】
復号部300は、プログラム制御されたCPUおよびメモリ等で実現される。この復号部300は、ドット解析部200から受け取ったビット配列、同期ラインの角度および間隔の情報に基づいて、3ドット×3ドットのパターンブロックを検出する。そして、得られたパターンブロックを回転補正し、情報ブロックを復元した後、この情報ブロックにより記録された情報を復号する。また、画像処理装置10が、パターン画像が形成された用紙上に筆記しながらパターン画像を読み取るペン・デバイス(ペン・デバイスの詳細な構成については後述)である場合、ペン先の位置と撮像部100により撮像される位置との間には、一定のずれがある。そこで、復号部300は、同期ラインの角度および間隔の情報に基づいて、画像から得られた座標をペン先の座標に変換する。
【0033】
また、図9に示すように、ドット解析部200の位置検出部210、角度検出部220および同期化部230には、復号部300における復号の成否についての情報がフィードバックされる。位置検出部210、角度検出部220および同期化部230は、この復号の成否の情報に基づいて、各々の処理において使用するパラメータを決定する。具体的には、所定のパラメータを使用して処理を行った結果、復号に成功した(正しい復号結果が得られた)場合は、次の画像フレームに対しても同じパラメータを使用して処理を行うこととする。一方、復号に失敗した場合は、次の画像フレームに対しては、過去の処理履歴を参照し、成功率が最も高かったパラメータを選択して使用することとする。
【0034】
また、画像処理装置10が後述するペン・デバイスである場合、画像処理装置10には、ペンによる筆記が行われているか否かを認識する機能が設けられる。そして、ドット解析部200の位置検出部210、角度検出部220および同期化部230と、復号部300には、ペンによる筆記が開始されたことを示すストローク開始信号が供給される。ストローク開始信号が供給されると、これらの機能ブロックは、各設定を初期化する。さらにまた、画像処理装置10がペン・デバイスである場合、復号部300には、復号結果からペン先を補正するための、ペン先から撮像面までの相対距離情報(ペン−チップ距離情報)が供給される。
【0035】
図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)。
【0036】
位置検出部210によるドットの位置の検出、角度検出部220によるドットの整列角度の検出、同期化部230によるドット配列の同期のいずれかに失敗した場合(ステップ1003、1006、1009でNo)は、失敗したステップ以後の処理は行われない。これらの場合、および復号部300による復号に失敗した場合(ステップ1012でNo)は、復号部300が、復号に失敗したことを示す信号を、位置検出部210、角度検出部220および同期化部230に送信し(ステップ1015)、かつ復号結果として出力する(ステップ1014)。
【0037】
<位置検出部の機能>
次に、ドット解析部200の位置検出部210の機能についてさらに詳細に説明する。
図11は、位置検出部210の機能構成を示す図である。
位置検出部210は、撮像部100により撮像された画像からドットの画像を抽出する機能と、検出されたドットの座標を計算する機能とを備える。具体的には、図11に示すように、ドット検出機能として、検出部211と、閾値設定部212と、ノイズ除去部213と、第1統計データ生成部214と、第2統計データ生成部215とを備える。また、座標計算機能として、座標計算部216を備える。
【0038】
検出部211は、撮像部100により撮像された画像を解析し、ドットの画像を検出する。撮像部100により撮像された画像は多値画像であるが、検出部211によりドットが検出されることで、2値画像に変換される。本実施形態では、画像の解析にクオイト・フィルタ(Quoit Filter)が用いられる。検出部211によるドットの検出処理の詳細については後述する。閾値設定部212は、検出部211によるドットの検出に用いられる閾値を設定する。言い換えれば、閾値設定部212、画像からドットを検出するための判断基準を設定する判断基準設定部として機能する。この閾値は、固定値であっても良いが、復号処理の成否等に応じて動的に設定するようにしても良い。
【0039】
ノイズ除去部213は、検出部211によるドットの検出結果からノイズを検出し、除去する。第1統計データ生成部214および第2統計データ生成部215は、ノイズ除去部213によるノイズ除去の処理に用いられる統計データを生成する。ノイズ除去部によるノイズの除去処理の詳細については後述する。
【0040】
座標計算部216は、上記のドット検出機能により検出されたドットの画像(撮像部100により撮像された画像)上の位置を表す座標値を計算する。これにより、各ドットの位置関係が特定されるため、複数のドットにより構成される単位符号パターン(図2乃至図4参照)が認識され、単位符号パターンにより記録された情報の復号が可能となる。
【0041】
<クオイト・フィルタおよびドット検出処理>
次に、本実施形態によるドットの検出および座標計算に用いられるクオイト・フィルタについて説明する。
クオイト・フィルタは、Morphologicalフィルタの一種であり、ディスク要素とその周囲に設けられるリング要素とで構成される。そして、ディスク要素とリング要素による演算結果の差が、フィルタ処理の出力値となる。検出部211は、このクオイト・フィルタを用いて撮像部100により撮像された画像を走査し、ディスク要素の画素値とリング要素の画素値との差分(高低差)を評価することにより、ドットの有無を判断する。
【0042】
図12は、クオイト・フィルタを用いたドット検出の概念を説明する図である。
図12に示すように、クオイト・フィルタを、上から押し当てるようにして画像上を走査する。なお、図12では、画像における画素値を3次元の高さとして表現している。このとき、図12(a)に示すように、ディスク要素Dを越える領域で画素値が近似している場所では、ディスク要素Dとリング要素Rの画素値がほぼ一定となる(すなわち、高低差が小さい)。一方、図12(b)に示すように、ディスク要素Dに含まれる小領域の画素値が周囲の画素値に比べて突出している場合、この小領域とディスク要素Dの位置が一致すると、リング要素Rのみが落ち込む(すなわち、大きな高低差が生じる)。
【0043】
撮像部100により撮像された画像において、ドットは、その周囲に比べて画素値が高い。そのため、ディスク要素Dとドットの位置が一致すると、クオイト・フィルタの出力であるディスク要素Dの画素値とリング要素Rの画素値の高低差が大きく、かつディスク要素Dの画素値が高くなる。そこで、検出部211は、画像を走査して得られる画素値にクオイト・フィルタを適用し、ディスク要素Dの画素値とリング要素Rの画素値の高低差が大きく、かつディスク要素Dの画素値が高いような出力(検出結果)が得られた場合に、ドットが検出されたと判断する。
【0044】
図13は、本実施形態で用いられるクオイト・フィルタの構成例を示す図である。図13(a)にディスク要素Dを、図13(b)にリング要素Rを、図13(c)に検出部211の出力のデータ構造の例を、それぞれ示す。
図13(a)に示すように、ディスク要素Dは、3画素×3画素の正方形の領域である。このディスク要素Dから、9画素の画素値の平均値(DiskAvg)および最大値(DiskMax)が取得される。図13(b)に示すように、リング要素Rは、7画素×7画素の正方形の範囲のうち、中心の3画素×3画素と四隅の3画素(合計12画素)を除いた28画素(=49−9−12)の領域である。中心の3画素×3画素は、ディスク要素Dに対応している。このリング要素Rから、28画素の画素値の平均値(RingAvg)が取得される。また、ディスク要素Dの中央の画素(図中、太線で表示)が、クオイト・フィルタを用いた処理における注目画素である。
【0045】
図13(c)に示すように、検出部211の出力は8ビットのデータとする。このうち、最下位ビット(LSB)から7ビット目までで、クオイト・フィルタの出力である、ディスク要素Dの平均値(DiskAvg)とリング要素Rの平均値(RingAvg)の差分(QuoitDiff)を記録する。最上位ビット(MSB)は、注目画素がドットであると判断されたことを表すタグ(以下、ドットタグと呼ぶ)として用いられる。
【0046】
図14は、図13に示したクオイト・フィルタを用いて画像を走査する様子を示す図である。
検出部211は、クオイト・フィルタの中心を注目画素に合わせ、画像の左上隅から右下隅まで走査しながら、ドットを検出する。ドットの検出は、2段階の処理によって行われる。
【0047】
まず、ディスク要素とリング要素の平均値の差分(QuoitDiff)が算出され、得られた値と第1の閾値とが比較される。ここでは、ディスク要素の平均値が高い場合を正の値とする。そして、差分の値が第1の閾値よりも大きいならば、その値が出力データに記録される。第1の閾値は、閾値設定部212により設定される。閾値設定部212による第1の閾値の設定方法の詳細については後述する。
【0048】
注目画素に関して差分の値が第1の閾値以上であった場合、次に、この注目画素の画素値と第2の閾値とが比較される。そして、注目画素の画素値が第2の閾値以上であるならば、ドットタグに割り当てられたビットの値がドットであることを表す値となる。第2の閾値は、任意に設定され、固定値であっても可変値であっても良い。固定値の場合、例えば、クオイト・フィルタのディスク要素における最大値(DiskMax)としても良い。また、可変値の場合、例えば、ディスク要素の最大値(DiskMax)から所定のパラメータを減算して求めても良い。パラメータは、例えば、ディスク要素とリング要素の差分(QuoitDiff)のR%(Rは任意の値)というように設定される。
【0049】
また、検出部211は、注目画素に関して差分の値が第1の閾値以下であった場合、この注目画素における反転レベル(RevDiff)を算出する。ここで、反転レベルとは、リング要素の平均値(RingAvg)から注目画素の画素値を減算して得られる差分である。したがって、注目画素の画素値の方が低い場合に反転レベルの値は正となる。検出部211は、得られた反転レベルが第3の閾値よりも大きい場合(すなわち、注目画素の画素値がリング要素の平均値よりも一定以上低い場合)、その注目画素に正反射が起こっていると判断する。
【0050】
図15は、検出部211によるドット検出処理を説明するフローチャートである。
画像フレームに対する検出部211による処理に先立って、まず閾値設定部212により、第1の閾値(TH(1))が設定される(ステップ1501)。第1の閾値の設定方法については後述する(図17参照)。第1の閾値(TH(1))が設定された後、検出部211は、撮像部100により撮像された画像(画像フレーム)を、クオイト・フィルタを適用して走査しながら、以下のループ処理を画素ごとに画像全体にわたって繰り返す。
【0051】
検出部211は、まず画像から7画素×7画素の領域を切り出して、画素値を取得する(ステップ1502)。7画素×7画素は、図13に示したクオイト・フィルタが収まるサイズである。検出部211は、取得した画素値にクオイト・フィルタを適用し、ディスク要素に対応する画素の画素値の平均値(DiskAvg)および最大値(DiskMax)を計算する(ステップ1503)。また、検出部211は、クオイト・フィルタのリング要素に対応する画素の画素値の平均値(RingAvg)を計算する(ステップ1504)。そして、検出部211は、クオイト・フィルタのディスク要素の画素値の平均値とリング要素の画素値の平均値との差分(QuoitDiff=DiskAvg−RingAvg)を計算し(ステップ1505)、得られた値と第1の閾値(TH(1))とを比較する。
【0052】
差分値(QuoitDiff)が第1の閾値(TH(1))よりも大きい場合(ステップ1506でYes)、検出部211は、図13(c)に示した8ビットの出力データのうち下位7ビットを用いて、差分値(QuoitDiff)を記録する(ステップ1507)。次に、検出部211は、ステップ1502で取得した画素値から、クオイト・フィルタの中心に位置する注目画素の画素値Vと第2の閾値(TH(2))とを比較する。第2の閾値(TH(2))が差分値(QuoitDiff)に基づいて定まる可変値である場合は、ステップ1506の判断の後に計算しておく。
【0053】
注目画素の画素値が第2の閾値(TH(2))以上である場合(ステップ1508でYes)、検出部211は、図13(c)に示した8ビットの出力データの最上位ビット(ドットタグ)を、ドットであることを示す値にする(ステップ1509)。そして、この8ビットの出力データを第1統計データ生成部214へ送信する(ステップ1510)。第1統計データ生成部214では、取得した出力データにしたがって、後述する統計データが生成される。注目画素の画素値が第2の閾値(TH(2))よりも小さい場合は(ステップ1508でNo)、この画素はドットを形成しないと判断されるので、検出部211は、この出力データを第1統計データ生成部214には送信しない。
【0054】
一方、差分値(QuoitDiff)が第1の閾値(TH(1))以下であった場合(ステップ1506でNo)、検出部211は、注目画素における反転レベル(RevDiff=RingAvg−注目画素の画素値V)を計算する(ステップ1511)。そして、得られた値が第3の閾値(TH(3))よりも大きい場合は、正反射ノイズと判断し、このノイズを検出したことを第2統計データ生成部215に通知する(ステップ1512、1513)。第2統計データ生成部215では、取得した正反射ノイズの検出通知にしたがって、後述する統計データが生成される。
【0055】
以上のようにして、画像フレームに対してドットの検出が行われ、統計データが生成された後、ノイズ除去部213によるノイズ除去処理に移行する(ステップ1514)。ノイズ除去処理の詳細については後述する(図22参照)。
【0056】
<第1の閾値の設定方法>
ここで、閾値設定部212による第1の閾値の設定方法について詳細に説明する。
図11を参照すると、閾値設定部212には、復号部300による復号結果と、ストローク開始信号とが供給されている。閾値設定部212は、画像フレームごとの復号結果に含まれる復号の成否の情報を受け付け、蓄積される復号履歴に基づいて、上述した第1の閾値を動的に設定する。また、閾値設定部212は、ストローク開始信号を受け付けた場合に、復号履歴を初期化する。
【0057】
画像処理装置10が後述するペン・デバイスである場合、媒体である紙面上を画像処理装置10で走査する際の走査位置や走査状態によって画像の状態が大きく変動することが想定される。そこで、本実施形態では、実際の復号の成否に基づいて、ドット検出に用いられる上記の第1の閾値を動的に変化させることで、このような画像の状態の変動に対応する。なお、ストローク開始信号により復号履歴が初期化されるので、この第1の閾値の動的な設定は、ペン・デバイスを用いた筆記のストロークごとに個別に行われることとなる。
【0058】
閾値設定部212により設定される閾値に関しては、予め上限(設定上限)、下限(設定下限)、初期値が定められる。閾値設定部212は、直前の画像フレームに対する復号が成功している場合、現在の画像フレームからのドット検出に用いる第1の閾値として、直前の画像フレームからのドット検出に用いた値をそのまま用いる(すなわち、閾値を変更しない)。一方、直前の画像フレームに対する復号が失敗した場合、現在の画像フレームからのドット検出に用いる第1の閾値を、復号履歴に基づき直前の画像フレームとは異なる値に設定する。
【0059】
閾値設定部212は、復号履歴として、取得した復号結果に基づき、閾値に対する復号の成功頻度に関する度数分布のデータを生成する。図16は、この度数分布の例を視覚的に表現したヒストグラムである。ここで、復号の成功頻度とは、単に復号が成功した回数ではなく、所定の閾値において、復号が成功した回数から復号が失敗した回数を減算した値(ただし、最小値は0)である。
【0060】
図16を参照すると、閾値設定部212は、まず、第1の閾値を初期値に設定する。そして、復号が成功するまで、画像フレームごとに第1の閾値を順次下げていく。復号が成功したならば、そのときの第1の閾値における成功頻度の度数を1加算する。成功頻度の度数が0でない所定の第1の閾値において、復号が失敗した場合は、その第1の閾値における成功頻度の度数を1減算する。
【0061】
度数分布のデータが空の場合(例えば、ストローク開始から1度も復号が成功していない場合)、第1の閾値を下げていって設定下限に達したならば、次は設定上限の値とし、同様に復号が成功するまで繰り返す。一方、成功頻度の度数が0でない第1の閾値が存在する場合、直前の画像フレームに対する復号が失敗したならば、現在の画像フレームからのドット検出に用いる第1の閾値として、成功頻度の度数が最大である値を用いる。また、第1の閾値として成功頻度の度数が最大である値を用いてドット検出を行った画像フレームで復号が失敗した場合は、次の画像フレームからのドット検出に用いる第1の閾値として、成功頻度の度数が最大である値よりも1つ小さい値を用いる。
【0062】
図17は、閾値設定部212による第1の閾値の設定動作を説明するフローチャートであり、図15に示したステップ1501の処理の詳細な内容を示す。
閾値設定部212は、検出部211による処理対象の画像フレームが、ペン・デバイスによる筆記のストロークにおける先頭の画像フレームである場合(ステップ1701でYes)、復号の成功頻度に関する度数分布データ(復号履歴)を初期化する(ステップ1702)。そして、第1の閾値を初期値に設定する(ステップ1703)。画像フレームがストロークの先頭の画像フレームか否かは、ストローク開始信号を受信したか否かによって識別される。
【0063】
検出部211による処理対象の画像フレームが、ペン・デバイスによる筆記のストロークにおける先頭の画像フレームでない場合(ステップ1701でNo)、閾値設定部212は、直前の画像フレームからのドット検出に用いられた第1の閾値(THprev)の度数分布データにおけるインデックスを取得する(ステップ1704)。そして、復号部300からフィードバックされる復号結果に基づき、直前の画像フレームに対する復号が成功したか否かを調べる。
【0064】
直前の画像フレームの復号が成功した場合(ステップ1705でYes)、閾値設定部212は、取得したインデックスの度数分布データの度数を1加算する(ステップ1706)。この場合、画像フレームからのドット検出に用いる第1の閾値は変更せず、直前の画像フレームからのドット検出に用いられた第1の閾値がそのまま用いられる。
【0065】
一方、直前の画像フレームの復号が失敗した場合(ステップ1705でNo)、度数分布データに基づいて第1の閾値が設定される。閾値設定部212は、まず、取得したインデックスの度数分布データの度数が0か否かを調べ(ステップ1707)、0でなければ、度数を1減算する(ステップ1708)。ステップ1707で度数が0である場合は、度数の最小値を0としているため、減算はしない。
【0066】
次に、閾値設定部212は、度数分布データにおいて度数が最大のインデックス(Idx_Max)を取得する(ステップ1709)。度数分布データが空でなければ(ステップ1710でNo)、最大度数インデックス(Idx_Max)が得られるので、そのインデックスの閾値(THmax)を求める(ステップ1711)。そして、この閾値(THmax)と、ステップ1704で求めた直前の画像フレームからのドット検出に用いられた第1の閾値(THprev)とを比較する。
【0067】
THmax≠THprevである場合(ステップ1712でNo)、閾値設定部212は、最大度数インデックスの閾値(THmax)を、現在の画像フレームからのドット検出に用いる第1の閾値に設定する(ステップ1713)。これに対し、THmax=THprevである場合(ステップ1712でYes)、次に閾値設定部212は、THmaxが設定下限(下限値)か否かを調べる。そして、THmaxが設定下限でなければ(ステップ1714でNo)、THmaxよりも1つ小さい値(THmax−1)を、現在の画像フレームからのドット検出に用いる第1の閾値に設定する(ステップ1715)。一方、THmaxが設定下限であるならば(ステップ1714でYes)、最大度数インデックスの閾値(THmax)を、現在の画像フレームからのドット検出に用いる第1の閾値に設定する(ステップ1713)。
【0068】
ストロークが開始されてから復号が成功しておらず、度数分布データが空である場合(ステップ1710でYes)、次に閾値設定部212は、直前の画像フレームからのドット検出に用いられた第1の閾値(THprev)と設定下限(下限値)とを比較する。そして、THprevが設定下限よりも大きい場合は(ステップ1716でYes)、THprevから一定値分下げた値(THdet)を算出する(ステップ1717)。算出された値(THdet)が設定下限よりも小さい場合は、THdetを設定下限に設定する(ステップ1718、1719)。そして、得られた値(THdet)を、現在の画像フレームからのドット検出に用いる第1の閾値に設定する(ステップ1720)。また、THprevが設定下限であった場合(ステップ1716でNo)、閾値設定部212は、設定上限の値(上限値)を、現在の画像フレームからのドット検出に用いる第1の閾値に設定する(ステップ1721)。
【0069】
なお、本実施形態では、ドットの検出にクオイト・フィルタを使用するため、クオイト・フィルタのディスク要素における画素値の平均値とリング要素における画素値の平均値との差分を評価するための第1の閾値を閾値設定部212により設定することとした。しかし、クオイト・フィルタを用いるか否かに関わらず、一般に、特定のドットを画像から検出する手法としては、ドットに該当する画素またはその画素を含む一定の領域と画像の他の部分との画素値の差分を所定の閾値と比較して評価することが行われる。そして、そのような他の手法においても、走査位置や走査状態によって生じる画像の状態の変動に対応する必要がある。したがって、実際の復号の成否に基づいて、ドット検出に用いられる閾値を動的に変化させる手法は、他の種々のドット検出の手法においても適用して良い。
【0070】
<ノイズ除去処理>
本実施形態では、ノイズ除去処理として、通常のノイズを除去する処理と、正反射を除去する処理とを行う。正反射とは、画像の読み取りの際に、トナー等で紙面上に形成された画像が、照射された光を全反射し、撮像部100において画像が飽和レベルに近くなる現象である。全反射は、1ドット単位で発生する。
【0071】
まず、通常のノイズ除去について説明する。
この処理では、撮像部100により撮像された画像に対して、32画素幅の小領域(部分領域)を5個×5個の25領域分並べた格子状領域(5×5マトリクス)が設定される。そしてさらに、この5×5マトリクスが、10個×10個の100領域を並べた格子状領域(10×10マトリクス)に変換される。この10×10マトリクスの部分領域ごとに閾値が設定され、ノイズが検出され除去される。本実施形態では、撮像部100により撮像される画像のサイズは、上述したように156画素×156画素なので、以上のように生成された10×10マトリクスで画像全体が被われることとなる。
【0072】
まず、第1統計データ生成部214が、上記の5×5マトリクスを設定し、3種類の統計データを生成して5×5マトリクスの各部分領域に登録する。統計データは、コントラストの積算値と、ディスク要素の最大値(9画素の画素値の最大値)と、検出ドット数である。ここで、コントラストとは、クオイト・フィルタによるディスク要素とリング要素の差分(QuoitDiff)である。この統計データの生成は、検出部211の出力を順次受け付けることにより、検出部211による検出処理と並行して行って良い。
【0073】
図18は、5×5マトリクスおよび統計データの例を示す図である。
第1統計データ生成部214は、5×5マトリクスを構成する部分領域ごとに、その部分領域に含まれる各画素に関して得られた差分(QuoitDiff)の値を積算し、コントラストの統計データ(図18のSc00〜Sc44)を生成する。また、5×5マトリクスを構成する部分領域ごとに、その部分領域に含まれる各画素に関するクオイト・フィルタのディスク要素の画素値の最大値(DiskMax)を選択し、最大値の統計データ(図18のMax00〜Max44)を生成する。また、5×5マトリクスを構成する部分領域ごとに、検出されたドットの数を数え、検出ドット数の統計データ(図18のCnt00〜Cnt44)を生成する。ここで、検出ドット数は、その部分領域に含まれる各画素に関するクオイト・フィルタの出力データのうちで、ドットタグがドットであることを表す値となっているものの数である。生成されたこれらの統計データは、ノイズ除去部213に送られる。
【0074】
ノイズ除去部213は、第1統計データ生成部214から取得した統計データを用いて、コントラストの閾値および画素値の閾値を生成する。そして、検出部211によりドットとして検出された位置における元画像(撮像部100により撮像された画像)とこれらの閾値とを比較する。元画像の画素値が閾値より低い場合、または元画像における当該画素を注目画素としたときのコントラスト(QuoitDiff)が閾値より低い場合、ノイズ除去部213は、検出されたドットがノイズであると判断し、検出部211によるこのドットの検出を取り消す。これにより、ノイズが除去される。
【0075】
ここで、コントラストおよび画素値の閾値の生成方法について詳細に説明する。
ノイズ除去部213は、まず、5×5マトリクスを構成する各部分領域に関して、コントラストの平均値および最大値を求める。平均値は、第1統計データ生成部214から取得したコントラストの積算値を検出ドット数で割ることによって得られる。なお、所定の部分領域に関して検出ドット数が0である場合は、隣接する部分領域の平均値を用いて線形補間する。
【0076】
次に、ノイズ除去部213は、5×5マトリクスの各部分領域を4分割して10個×10個の100領域で構成される10×10マトリクスとする。第1統計データ生成部214から取得した統計データやノイズ除去部213が求めたコントラストの平均値および最大値は、この4分割された小領域ごとのデータに変換される。このデータは、例えば、5×5マトリクスにおける部分領域のデータを隣接する部分領域との間で線形補間することで得られる。
【0077】
図19は、部分領域の分割の様子を示す図である。
図19に示すように、5×5マトリクスにおける部分領域Aを分割して小領域A−1、A−2、A−3、A−4が得られるものとする。このとき、左上の小領域A−1のデータは、元の部分領域A、左に隣接する部分領域B、上に隣接する部分領域Cのデータの平均値とする。同様に、右上の小領域A−2のデータは、元の部分領域A、上に隣接する部分領域C、右に隣接する部分領域Dのデータの平均値とする。左下の小領域A−3のデータは、元の部分領域A、左に隣接する部分領域B、下に隣接する部分領域Eのデータに基づき線形補間して得られる。右下の小領域A−4のデータは、元の部分領域A、右に隣接する部分領域D、下に隣接する部分領域Eのデータの平均値とする。なお、線形補間の具体的な手法は、以上の方法に限定されない。
【0078】
次に、ノイズ除去部213は、この10×10マトリクスのコントラスト閾値を算出する。図20(a)に、コントラスト閾値の例を示す(Ctr00〜Ctr99)。コントラスト閾値(Ctr)は、10×10マトリクスの各小領域に対して求めたコントラストの最大値を用いて、例えば、最大値の25%等のように定める。コントラストの最大値に基づいて定めることにより、コントラスト閾値は、撮像部100により撮像された画像全体のシャープさに応じて変動することとなる。
【0079】
また、ノイズ除去部213は、10×10マトリクスの画素閾値を算出する。図20(b)に、画素閾値の例を示す(Px00〜Px99)。画素閾値(Px)は、例えば、10×10マトリクスの小領域のデータにそれぞれ変換された、コントラストの平均値Ctおよびディスク要素の画素値の最大値Mxを用いて、
Px=(Mx−Ct)/k (ただし、kは2〜4程度の値)
等のように求められる。
【0080】
次に、正反射によるノイズ(以下、正反射ノイズ)の除去について説明する。
この処理では、撮像部100により撮像された画像に対して、4画素幅の小領域(部分領域)を39個×39個の1521領域分並べた格子状領域(39×39マトリクス)が設定される。そして、この39×39マトリクスの部分領域ごとに正反射ノイズが検出され除去される。本実施形態では、撮像部100により撮像される画像のサイズは、上述したように156画素×156画素なので、以上のように生成された39×39マトリクスで画像全体が被われることとなる。
【0081】
まず、第2統計データ生成部215が、上記の39×39マトリクスを設定する。そして、この39×39マトリクスの部分領域ごとに、検出部211において正反射が起こっていると判断された画素(以下、濃度反転画素と呼ぶ)の数をカウントする。この処理は、検出部211の出力を順次受け付けることにより、検出部211による検出処理と並行して行って良い。そして、得られたデータは、ノイズ除去部213に送られる。
【0082】
図21は、39×39マトリクスの例を示す図である。
ノイズ除去部213は、39×39マトリクスの各部分領域に順次着目し、着目した部分領域およびこの部分領域の周囲に隣接する8個の部分領域のいずれかに濃度反転画素が存在する場合、着目した部分領域における検出部211によるドットの検出を取り消す。例えば、図21において、グレーの部分領域に着目している場合、太枠で囲まれた9個の部分領域のいずれかに濃度反転画素が存在するならば、斜線を付した部分領域におけるドットの検出が取り消される。これにより、正反射ノイズが除去される。
【0083】
図22は、ノイズ除去部213によるノイズ除去の動作を説明するフローチャートであり、図15に示したステップ1514の処理の詳細な内容を示す。
ノイズ除去部213は、まず、第1統計データ生成部214から取得した統計データに基づいて、5×5マトリクスの各部分領域におけるコントラスト(QuoitDiff)の平均値および最大値を算出する(ステップ2201、2202)。次に、ノイズ除去部213は、得られたデータを、10×10マトリクスのデータに変換する(ステップ2203)。そして、コントラスト閾値を算出する(ステップ2204)。
【0084】
また、ノイズ除去部213は、第1統計データ生成部214から取得したクオイト・フィルタにおけるディスク要素の最大値の統計データを、10×10マトリクスのデータに変換する(ステップ2205)。そして、画素閾値を算出する(ステップ2206)。
【0085】
この後、ノイズ除去部213は、画像(画像フレーム)を走査しながら、以下のループ処理を画素ごとに画像全体にわたって繰り返す。ただし、検出部211によるドットの検出結果からノイズを除去する処理であるから、実際には、検出部211の出力におけるドットタグがドットであることを表す値となっている画素のみについて処理が行われる。また、各ループにおいて処理対象となっている画素を対象画素と呼ぶ。
【0086】
ノイズ除去部213は、まず検出部211によるドット検出の結果から、対象画素の画素値と当該対象画素を注目画素としたときのコントラスト(QuoitDiff)とを取得する(ステップ2207)。そして、コントラストの値がコントラスト閾値よりも小さい場合、または画素値が画素閾値よりも小さい場合は、ノイズ除去部213は、対象画素におけるドットタグの値を変更し、検出部211によるドットの検出を取り消す(ステップ2208、2209、2210)。
【0087】
次に、ノイズ除去部213は、第2統計データ生成部215から取得した統計データに基づいて、対象画素を含む39×39マトリクスの部分領域に関して、その部分領域と周囲の8個の部分領域(合計9個の部分領域)のいずれかに濃度反転画素が存在するか否かを調べる。そして、濃度反転画素が存在する場合は、ノイズ除去部213は、対象画素におけるドットタグの値を変更し、検出部211によるドットの検出を取り消す(ステップ2211、2212)。
【0088】
なお、本実施形態では、5×5マトリクスおよび39×39マトリクスを用いて統計データを生成しノイズ除去に用いたが、各マトリクスのサイズおよび各マトリクスにおける部分領域のサイズは、上記の実施形態に限定されない。撮像部100により撮像される元画像のサイズおよび解像度、検出部210の処理能力などに応じて、適切なサイズを選択すれば良い。
【0089】
<ペン・デバイスの構成>
次に、本実施の形態における画像処理装置10の具体的なハードウェア構成について説明する。ここでは、画像処理装置10を実現するペン・デバイスの構成例について説明する。
図23は、ペン・デバイスの機構を示した図である。
図示するように、ペン・デバイス60は、ペン全体の動作を制御する制御回路61を備える。制御回路61は、入力画像から検出した符号画像を処理する画像処理部61aと、そこでの処理結果から識別情報及び座標情報を抽出するデータ処理部61bとを含む。また、特に図示しないが、制御回路61は、これら画像処理部61aおよびデータ処理部61bを動作させるためのプログラムを格納する不揮発性メモリとを含む。この制御回路61には、ペン・デバイス60による筆記動作をペンチップ69に加わる圧力によって検出する圧力センサ62が接続されている。また、媒体上に赤外光を照射する赤外LED63と、画像を入力する赤外CMOS64も接続されている。さらに、識別情報及び座標情報を記憶するための情報メモリ65と、外部装置と通信するための通信回路66と、ペンを駆動するためのバッテリ67と、ペンの識別情報(ペンID)を記憶するペンIDメモリ68も接続されている。
【0090】
図9に示した画像処理装置10において、撮像部100は、例えば、図23の赤外CMOS64にて実現される。また、ドット解析部200は、例えば、図23の画像処理部61aにて実現される。さらに、復号部300は、例えば、図23のデータ処理部61bにて実現される。なお、画像処理装置10は、図23に示すようなペン・デバイス60の他、画像処理部61a又はデータ処理部61bにて実現される機能を、例えば、汎用のコンピュータで実現しても良い。
【0091】
画像処理部61aおよびデータ処理部61bの機能を実現するプログラムは、通信手段を介して提供したり、CD−ROM等の記録媒体に格納して提供したりすることができる。また、制御回路61に含まれる上述した不揮発性メモリに格納して提供しても良い。
【図面の簡単な説明】
【0092】
【図1】本実施形態で用いられる単位符号パターン、情報ブロック、紙面(媒体)の関係を示す図である。
【図2】mCn方式における単位符号パターンの例を示す図である。
【図3】図2に示した単位符号パターンの種類を網羅的に示した図である。
【図4】9C2方式における単位符号パターンとパターン値との対応を示す図である。
【図5】9C2方式における同期パターンの例を示す図である。
【図6】情報ブロックの構成例を示す図である。
【図7】本実施形態における識別情報と座標情報を表現するためのレイアウトの例を示す図である。
【図8】M系列を用いた座標情報の符号化の例を示す図である。
【図9】本実施形態の画像処理装置の機能構成例を示す図である。
【図10】本実施形態のドット解析部および復号部による処理の流れを示すフローチャートである。
【図11】本実施形態の位置検出部の機能構成を示す図である。
【図12】本実施形態におけるクオイト・フィルタを用いたドット検出の概念を説明する図である。
【図13】本実施形態で用いられるクオイト・フィルタの構成例を示す図である。
【図14】図13に示したクオイト・フィルタを用いて画像を走査する様子を示す図である。
【図15】本実施形態の検出部によるドット検出処理を説明するフローチャートである。
【図16】復号の成功頻度に関する度数分布の例を視覚的に表現したヒストグラムである。
【図17】本実施形態の閾値設定部による第1の閾値の設定動作を説明するフローチャートである。
【図18】本実施形態で用いられる5×5マトリクスおよび統計データの例を示す図である。
【図19】部分領域の分割の様子を示す図である。
【図20】本実施形態で用いられるコントラスト閾値および画素閾値の例を示す図である。
【図21】本実施形態で用いられる39×39マトリクスおよび統計データの例を示す図である。
【図22】本実施形態のノイズ除去部によるノイズ除去の動作を説明するフローチャートである。
【図23】画像処理装置であるペン・デバイスの機構を示した図である。
【符号の説明】
【0093】
10…画像処理装置、100…撮像部、200…ドット解析部、210…位置検出部、211…検出部、212…閾値設定部、213…ノイズ除去部、214…第1統計データ生成部、215…第2統計データ生成部、216…座標計算部、220…角度検出部、230…同期化部、300…復号部
【技術分野】
【0001】
本発明は、画像処理装置およびプログラムに関する。
【背景技術】
【0002】
印刷用紙等の媒体上にコード化された情報を表すパターン画像や特定の意味を付与されたパターン画像を埋め込み、読み取り装置で読み取ってコード情報を復号したり付与された意味に応じて装置を制御したりすることが、従来から行われている。パターン画像により表される情報としては、パターン画像が埋め込まれた媒体自体の識別情報や媒体に記録された文書の識別情報、媒体上の位置を表す位置情報などがある。
【0003】
この種の技術では、パターン画像を正しく検出することが非常に重要である。
特許文献1および特許文献2には、光学的に読み取った画像を、二値化回路によって二値化し、画像に記録されているドットコードを検出する技術が開示されている。
特許文献1では、二値化を行う際の閾値は、画面毎もしくは画面内のブロック毎のヒストグラムの値などを利用して決定される。すなわち、ドットコード上の染みや紙の歪み、内蔵クロックの精度などに応じて、閾値が決定される。
特許文献2では、前の画像フレームに対するドットコードの検出処理で得られる統計データに基づいて、現在の画像フレームに対して二値化を行う際の閾値を決定することについて開示されている。
【0004】
【特許文献1】特開平6−231466号公報
【特許文献2】国際公開第03/001450号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【0005】
コード情報を記録するパターン画像の検出では、パターン画像を検出する際の判断基準に、検出されたパターン画像に基づいて行われたコード情報の復号の成否を反映させることで、より適切な判断基準の設定を実現することが期待できる。
【0006】
本発明は、以上のような課題に鑑みてなされたものであり、検出されたパターン画像に対するコード情報の復号の成否を反映させて、パターン画像を検出するための判断基準の設定を、より適切に行うことを目的とする。
【課題を解決するための手段】
【0007】
請求項1に係る発明は、撮像装置により撮像された画像のフレームごとに、当該画像を走査し、特定の画素または当該画素を含む一定の領域と当該画像の他の部分との画素値の差分から、所定の判断基準により単位画像を検出する検出部と、前記撮像装置により撮像された前記画像のフレームごとに、前記検出部により検出された前記単位画像に基づいて、当該単位画像により符号化されて記録された情報を復号する復号部と、前記復号部による復号の成否に基づいて、前記検出部による前記判断基準を設定する判断基準設定部とを備えることを特徴とする画像処理装置である。
請求項2に係る発明は、前記検出部は、前記画素値の差分が所定の閾値よりも大きい場合に、前記特定の画素が前記単位画像を形成すると判断し、前記判断基準設定部は、直前のフレームに対する復号が成功した場合に、当該直前のフレームに対する単位画像の検出に用いられた閾値を、現在のフレームに対する単位画像の検出に用いる閾値に設定することを特徴とする請求項1に記載の画像処理装置である。
請求項3に係る発明は、前記検出部は、前記画素値の差分が所定の閾値よりも大きい場合に、前記特定の画素が前記単位画像を形成すると判断し、前記判断基準設定部は、直前のフレームに対する復号が失敗した場合に、それまでに復号が成功した頻度が最も高い閾値を、現在のフレームに対する単位画像の検出に用いる閾値に設定することを特徴とする請求項1に記載の画像処理装置である。
請求項4に係る発明は、前記判断基準設定部は、直前のフレームに対する復号が失敗し、かつ当該直前のフレームに対する単位画像の検出に用いられた閾値がそれまでに復号が成功した頻度が最も高い閾値であった場合に、当該閾値よりも1つ小さい値を、現在のフレームに対する単位画像の検出に用いる閾値に設定することを特徴とする請求項3に記載の画像処理装置である。
請求項5に係る発明は、前記検出部は、一定の領域からなるディスク要素と当該ディスク要素の周囲に設けられたリング要素とを備えるフィルタを適用して前記画像を走査し、当該フィルタにおける当該ディスク要素の画素値の平均値と当該リング要素の画素値の平均値との差分が所定の閾値以上である場合に、当該ディスク要素に含まれる前記特定の画素が前記単位画像を形成すると判断し、前記判断基準設定部は、前記フィルタにおける前記ディスク要素の画素値の平均値と前記リング要素の画素値の平均値との差分の評価に用いられる前記閾値を設定することを特徴とする請求項1に記載の画像処理装置である。
請求項6に係る発明は、コンピュータに、撮像装置により撮像された画像のフレームごとに、当該画像を走査し、特定の画素または当該特定の画素を含む一定の領域と当該画像の他の部分との画素値の差分から、所定の判断基準により単位画像を検出する機能と、前記撮像装置により撮像された前記画像のフレームごとに、検出された前記単位画像に基づいて、当該単位画像により符号化されて記録された情報を復号する機能と、前記情報の復号の成否に基づいて、前記判断基準を設定する機能とを実現させるためのプログラムである。
請求項7に係る発明は、前記単位画像を検出する機能では、前記コンピュータが、前記画素値の差分が所定の閾値よりも大きい場合に、前記特定の画素が前記単位画像を形成すると判断し、前記判断基準を設定する機能では、前記コンピュータが、前記判断基準として、前記単位画像の検出に用いられる前記閾値を設定することを特徴とする請求項6に記載のプログラムである。
請求項8に係る発明は、前記単位画像を検出する機能では、前記コンピュータが、一定の領域からなるディスク要素と当該ディスク要素の周囲に設けられたリング要素とを備えるフィルタを適用して前記画像を走査し、当該フィルタにおける当該ディスク要素の画素値の平均値と当該リング要素の画素値の平均値との差分が所定の閾値以上である場合に、当該ディスク要素に含まれる前記特定の画素が前記単位画像を形成すると判断し、前記判断基準を設定する機能では、前記コンピュータが、前記フィルタにおける前記ディスク要素の画素値の平均値と前記リング要素の画素値の平均値との差分の評価に用いられる前記閾値を設定することを特徴とする請求項6に記載のプログラムである。
【発明の効果】
【0008】
請求項1に係る発明によれば、画像のフレームごとに、情報の復号の成否に基づいて、単位画像を検出するための判断基準を設定することができる。
請求項2に係る発明によれば、以前の処理で復号に成功した閾値を、単位画像を検出するための判断基準として設定することができる。
請求項3に係る発明によれば、復号に成功した頻度の最も高い閾値を、単位画像を検出するための判断基準として設定することができる。
請求項4に係る発明によれば、復号に成功した頻度の最も高い閾値を用いて復号に失敗した場合に対応することができる。
請求項5に係る発明によれば、単位画像を検出するために用いられるフィルタに対して設定される閾値を、情報の復号の成否に基づいて設定することができる。
請求項6に係る発明によれば、画像処理装置の機能を実現するコンピュータにおいて、画像のフレームごとに、情報の復号の成否に基づいて、単位画像を検出するための判断基準を設定することができる。
請求項7に係る発明によれば、画像処理装置の機能を実現するコンピュータにおいて、情報の復号の成否に基づいて決定される閾値を、単位画像を検出するための判断基準として設定することができる。
請求項8に係る発明によれば、画像処理装置の機能を実現するコンピュータにおいて、単位画像を検出するために用いられるフィルタに対して設定される閾値を、情報の復号の成否に基づいて設定することができる。
【発明を実施するための最良の形態】
【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とを備える。
位置検出部210は、撮像部100から受け取った8ビットの画像からドットの位置を検出する。
角度検出部220は、位置検出部210により検出された画像上のドットの整列角度を検出する。
同期化部230は、位置検出部210および角度検出部220の検出結果として得られたドットの配列を、2次元のビット配列に変換する。この変換を同期化と呼び、得られたビット配列における各ビットの並びを同期ラインと呼ぶ。この同期化により、8ビットの画像の画像は2値データとなる。また、角度検出部220により検出されたドットの整列角度はビット列(同期ライン)の角度となる。
得られたビット配列と、同期ラインの角度および間隔の情報は、復号部300に送られる。
【0032】
復号部300は、プログラム制御されたCPUおよびメモリ等で実現される。この復号部300は、ドット解析部200から受け取ったビット配列、同期ラインの角度および間隔の情報に基づいて、3ドット×3ドットのパターンブロックを検出する。そして、得られたパターンブロックを回転補正し、情報ブロックを復元した後、この情報ブロックにより記録された情報を復号する。また、画像処理装置10が、パターン画像が形成された用紙上に筆記しながらパターン画像を読み取るペン・デバイス(ペン・デバイスの詳細な構成については後述)である場合、ペン先の位置と撮像部100により撮像される位置との間には、一定のずれがある。そこで、復号部300は、同期ラインの角度および間隔の情報に基づいて、画像から得られた座標をペン先の座標に変換する。
【0033】
また、図9に示すように、ドット解析部200の位置検出部210、角度検出部220および同期化部230には、復号部300における復号の成否についての情報がフィードバックされる。位置検出部210、角度検出部220および同期化部230は、この復号の成否の情報に基づいて、各々の処理において使用するパラメータを決定する。具体的には、所定のパラメータを使用して処理を行った結果、復号に成功した(正しい復号結果が得られた)場合は、次の画像フレームに対しても同じパラメータを使用して処理を行うこととする。一方、復号に失敗した場合は、次の画像フレームに対しては、過去の処理履歴を参照し、成功率が最も高かったパラメータを選択して使用することとする。
【0034】
また、画像処理装置10が後述するペン・デバイスである場合、画像処理装置10には、ペンによる筆記が行われているか否かを認識する機能が設けられる。そして、ドット解析部200の位置検出部210、角度検出部220および同期化部230と、復号部300には、ペンによる筆記が開始されたことを示すストローク開始信号が供給される。ストローク開始信号が供給されると、これらの機能ブロックは、各設定を初期化する。さらにまた、画像処理装置10がペン・デバイスである場合、復号部300には、復号結果からペン先を補正するための、ペン先から撮像面までの相対距離情報(ペン−チップ距離情報)が供給される。
【0035】
図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)。
【0036】
位置検出部210によるドットの位置の検出、角度検出部220によるドットの整列角度の検出、同期化部230によるドット配列の同期のいずれかに失敗した場合(ステップ1003、1006、1009でNo)は、失敗したステップ以後の処理は行われない。これらの場合、および復号部300による復号に失敗した場合(ステップ1012でNo)は、復号部300が、復号に失敗したことを示す信号を、位置検出部210、角度検出部220および同期化部230に送信し(ステップ1015)、かつ復号結果として出力する(ステップ1014)。
【0037】
<位置検出部の機能>
次に、ドット解析部200の位置検出部210の機能についてさらに詳細に説明する。
図11は、位置検出部210の機能構成を示す図である。
位置検出部210は、撮像部100により撮像された画像からドットの画像を抽出する機能と、検出されたドットの座標を計算する機能とを備える。具体的には、図11に示すように、ドット検出機能として、検出部211と、閾値設定部212と、ノイズ除去部213と、第1統計データ生成部214と、第2統計データ生成部215とを備える。また、座標計算機能として、座標計算部216を備える。
【0038】
検出部211は、撮像部100により撮像された画像を解析し、ドットの画像を検出する。撮像部100により撮像された画像は多値画像であるが、検出部211によりドットが検出されることで、2値画像に変換される。本実施形態では、画像の解析にクオイト・フィルタ(Quoit Filter)が用いられる。検出部211によるドットの検出処理の詳細については後述する。閾値設定部212は、検出部211によるドットの検出に用いられる閾値を設定する。言い換えれば、閾値設定部212、画像からドットを検出するための判断基準を設定する判断基準設定部として機能する。この閾値は、固定値であっても良いが、復号処理の成否等に応じて動的に設定するようにしても良い。
【0039】
ノイズ除去部213は、検出部211によるドットの検出結果からノイズを検出し、除去する。第1統計データ生成部214および第2統計データ生成部215は、ノイズ除去部213によるノイズ除去の処理に用いられる統計データを生成する。ノイズ除去部によるノイズの除去処理の詳細については後述する。
【0040】
座標計算部216は、上記のドット検出機能により検出されたドットの画像(撮像部100により撮像された画像)上の位置を表す座標値を計算する。これにより、各ドットの位置関係が特定されるため、複数のドットにより構成される単位符号パターン(図2乃至図4参照)が認識され、単位符号パターンにより記録された情報の復号が可能となる。
【0041】
<クオイト・フィルタおよびドット検出処理>
次に、本実施形態によるドットの検出および座標計算に用いられるクオイト・フィルタについて説明する。
クオイト・フィルタは、Morphologicalフィルタの一種であり、ディスク要素とその周囲に設けられるリング要素とで構成される。そして、ディスク要素とリング要素による演算結果の差が、フィルタ処理の出力値となる。検出部211は、このクオイト・フィルタを用いて撮像部100により撮像された画像を走査し、ディスク要素の画素値とリング要素の画素値との差分(高低差)を評価することにより、ドットの有無を判断する。
【0042】
図12は、クオイト・フィルタを用いたドット検出の概念を説明する図である。
図12に示すように、クオイト・フィルタを、上から押し当てるようにして画像上を走査する。なお、図12では、画像における画素値を3次元の高さとして表現している。このとき、図12(a)に示すように、ディスク要素Dを越える領域で画素値が近似している場所では、ディスク要素Dとリング要素Rの画素値がほぼ一定となる(すなわち、高低差が小さい)。一方、図12(b)に示すように、ディスク要素Dに含まれる小領域の画素値が周囲の画素値に比べて突出している場合、この小領域とディスク要素Dの位置が一致すると、リング要素Rのみが落ち込む(すなわち、大きな高低差が生じる)。
【0043】
撮像部100により撮像された画像において、ドットは、その周囲に比べて画素値が高い。そのため、ディスク要素Dとドットの位置が一致すると、クオイト・フィルタの出力であるディスク要素Dの画素値とリング要素Rの画素値の高低差が大きく、かつディスク要素Dの画素値が高くなる。そこで、検出部211は、画像を走査して得られる画素値にクオイト・フィルタを適用し、ディスク要素Dの画素値とリング要素Rの画素値の高低差が大きく、かつディスク要素Dの画素値が高いような出力(検出結果)が得られた場合に、ドットが検出されたと判断する。
【0044】
図13は、本実施形態で用いられるクオイト・フィルタの構成例を示す図である。図13(a)にディスク要素Dを、図13(b)にリング要素Rを、図13(c)に検出部211の出力のデータ構造の例を、それぞれ示す。
図13(a)に示すように、ディスク要素Dは、3画素×3画素の正方形の領域である。このディスク要素Dから、9画素の画素値の平均値(DiskAvg)および最大値(DiskMax)が取得される。図13(b)に示すように、リング要素Rは、7画素×7画素の正方形の範囲のうち、中心の3画素×3画素と四隅の3画素(合計12画素)を除いた28画素(=49−9−12)の領域である。中心の3画素×3画素は、ディスク要素Dに対応している。このリング要素Rから、28画素の画素値の平均値(RingAvg)が取得される。また、ディスク要素Dの中央の画素(図中、太線で表示)が、クオイト・フィルタを用いた処理における注目画素である。
【0045】
図13(c)に示すように、検出部211の出力は8ビットのデータとする。このうち、最下位ビット(LSB)から7ビット目までで、クオイト・フィルタの出力である、ディスク要素Dの平均値(DiskAvg)とリング要素Rの平均値(RingAvg)の差分(QuoitDiff)を記録する。最上位ビット(MSB)は、注目画素がドットであると判断されたことを表すタグ(以下、ドットタグと呼ぶ)として用いられる。
【0046】
図14は、図13に示したクオイト・フィルタを用いて画像を走査する様子を示す図である。
検出部211は、クオイト・フィルタの中心を注目画素に合わせ、画像の左上隅から右下隅まで走査しながら、ドットを検出する。ドットの検出は、2段階の処理によって行われる。
【0047】
まず、ディスク要素とリング要素の平均値の差分(QuoitDiff)が算出され、得られた値と第1の閾値とが比較される。ここでは、ディスク要素の平均値が高い場合を正の値とする。そして、差分の値が第1の閾値よりも大きいならば、その値が出力データに記録される。第1の閾値は、閾値設定部212により設定される。閾値設定部212による第1の閾値の設定方法の詳細については後述する。
【0048】
注目画素に関して差分の値が第1の閾値以上であった場合、次に、この注目画素の画素値と第2の閾値とが比較される。そして、注目画素の画素値が第2の閾値以上であるならば、ドットタグに割り当てられたビットの値がドットであることを表す値となる。第2の閾値は、任意に設定され、固定値であっても可変値であっても良い。固定値の場合、例えば、クオイト・フィルタのディスク要素における最大値(DiskMax)としても良い。また、可変値の場合、例えば、ディスク要素の最大値(DiskMax)から所定のパラメータを減算して求めても良い。パラメータは、例えば、ディスク要素とリング要素の差分(QuoitDiff)のR%(Rは任意の値)というように設定される。
【0049】
また、検出部211は、注目画素に関して差分の値が第1の閾値以下であった場合、この注目画素における反転レベル(RevDiff)を算出する。ここで、反転レベルとは、リング要素の平均値(RingAvg)から注目画素の画素値を減算して得られる差分である。したがって、注目画素の画素値の方が低い場合に反転レベルの値は正となる。検出部211は、得られた反転レベルが第3の閾値よりも大きい場合(すなわち、注目画素の画素値がリング要素の平均値よりも一定以上低い場合)、その注目画素に正反射が起こっていると判断する。
【0050】
図15は、検出部211によるドット検出処理を説明するフローチャートである。
画像フレームに対する検出部211による処理に先立って、まず閾値設定部212により、第1の閾値(TH(1))が設定される(ステップ1501)。第1の閾値の設定方法については後述する(図17参照)。第1の閾値(TH(1))が設定された後、検出部211は、撮像部100により撮像された画像(画像フレーム)を、クオイト・フィルタを適用して走査しながら、以下のループ処理を画素ごとに画像全体にわたって繰り返す。
【0051】
検出部211は、まず画像から7画素×7画素の領域を切り出して、画素値を取得する(ステップ1502)。7画素×7画素は、図13に示したクオイト・フィルタが収まるサイズである。検出部211は、取得した画素値にクオイト・フィルタを適用し、ディスク要素に対応する画素の画素値の平均値(DiskAvg)および最大値(DiskMax)を計算する(ステップ1503)。また、検出部211は、クオイト・フィルタのリング要素に対応する画素の画素値の平均値(RingAvg)を計算する(ステップ1504)。そして、検出部211は、クオイト・フィルタのディスク要素の画素値の平均値とリング要素の画素値の平均値との差分(QuoitDiff=DiskAvg−RingAvg)を計算し(ステップ1505)、得られた値と第1の閾値(TH(1))とを比較する。
【0052】
差分値(QuoitDiff)が第1の閾値(TH(1))よりも大きい場合(ステップ1506でYes)、検出部211は、図13(c)に示した8ビットの出力データのうち下位7ビットを用いて、差分値(QuoitDiff)を記録する(ステップ1507)。次に、検出部211は、ステップ1502で取得した画素値から、クオイト・フィルタの中心に位置する注目画素の画素値Vと第2の閾値(TH(2))とを比較する。第2の閾値(TH(2))が差分値(QuoitDiff)に基づいて定まる可変値である場合は、ステップ1506の判断の後に計算しておく。
【0053】
注目画素の画素値が第2の閾値(TH(2))以上である場合(ステップ1508でYes)、検出部211は、図13(c)に示した8ビットの出力データの最上位ビット(ドットタグ)を、ドットであることを示す値にする(ステップ1509)。そして、この8ビットの出力データを第1統計データ生成部214へ送信する(ステップ1510)。第1統計データ生成部214では、取得した出力データにしたがって、後述する統計データが生成される。注目画素の画素値が第2の閾値(TH(2))よりも小さい場合は(ステップ1508でNo)、この画素はドットを形成しないと判断されるので、検出部211は、この出力データを第1統計データ生成部214には送信しない。
【0054】
一方、差分値(QuoitDiff)が第1の閾値(TH(1))以下であった場合(ステップ1506でNo)、検出部211は、注目画素における反転レベル(RevDiff=RingAvg−注目画素の画素値V)を計算する(ステップ1511)。そして、得られた値が第3の閾値(TH(3))よりも大きい場合は、正反射ノイズと判断し、このノイズを検出したことを第2統計データ生成部215に通知する(ステップ1512、1513)。第2統計データ生成部215では、取得した正反射ノイズの検出通知にしたがって、後述する統計データが生成される。
【0055】
以上のようにして、画像フレームに対してドットの検出が行われ、統計データが生成された後、ノイズ除去部213によるノイズ除去処理に移行する(ステップ1514)。ノイズ除去処理の詳細については後述する(図22参照)。
【0056】
<第1の閾値の設定方法>
ここで、閾値設定部212による第1の閾値の設定方法について詳細に説明する。
図11を参照すると、閾値設定部212には、復号部300による復号結果と、ストローク開始信号とが供給されている。閾値設定部212は、画像フレームごとの復号結果に含まれる復号の成否の情報を受け付け、蓄積される復号履歴に基づいて、上述した第1の閾値を動的に設定する。また、閾値設定部212は、ストローク開始信号を受け付けた場合に、復号履歴を初期化する。
【0057】
画像処理装置10が後述するペン・デバイスである場合、媒体である紙面上を画像処理装置10で走査する際の走査位置や走査状態によって画像の状態が大きく変動することが想定される。そこで、本実施形態では、実際の復号の成否に基づいて、ドット検出に用いられる上記の第1の閾値を動的に変化させることで、このような画像の状態の変動に対応する。なお、ストローク開始信号により復号履歴が初期化されるので、この第1の閾値の動的な設定は、ペン・デバイスを用いた筆記のストロークごとに個別に行われることとなる。
【0058】
閾値設定部212により設定される閾値に関しては、予め上限(設定上限)、下限(設定下限)、初期値が定められる。閾値設定部212は、直前の画像フレームに対する復号が成功している場合、現在の画像フレームからのドット検出に用いる第1の閾値として、直前の画像フレームからのドット検出に用いた値をそのまま用いる(すなわち、閾値を変更しない)。一方、直前の画像フレームに対する復号が失敗した場合、現在の画像フレームからのドット検出に用いる第1の閾値を、復号履歴に基づき直前の画像フレームとは異なる値に設定する。
【0059】
閾値設定部212は、復号履歴として、取得した復号結果に基づき、閾値に対する復号の成功頻度に関する度数分布のデータを生成する。図16は、この度数分布の例を視覚的に表現したヒストグラムである。ここで、復号の成功頻度とは、単に復号が成功した回数ではなく、所定の閾値において、復号が成功した回数から復号が失敗した回数を減算した値(ただし、最小値は0)である。
【0060】
図16を参照すると、閾値設定部212は、まず、第1の閾値を初期値に設定する。そして、復号が成功するまで、画像フレームごとに第1の閾値を順次下げていく。復号が成功したならば、そのときの第1の閾値における成功頻度の度数を1加算する。成功頻度の度数が0でない所定の第1の閾値において、復号が失敗した場合は、その第1の閾値における成功頻度の度数を1減算する。
【0061】
度数分布のデータが空の場合(例えば、ストローク開始から1度も復号が成功していない場合)、第1の閾値を下げていって設定下限に達したならば、次は設定上限の値とし、同様に復号が成功するまで繰り返す。一方、成功頻度の度数が0でない第1の閾値が存在する場合、直前の画像フレームに対する復号が失敗したならば、現在の画像フレームからのドット検出に用いる第1の閾値として、成功頻度の度数が最大である値を用いる。また、第1の閾値として成功頻度の度数が最大である値を用いてドット検出を行った画像フレームで復号が失敗した場合は、次の画像フレームからのドット検出に用いる第1の閾値として、成功頻度の度数が最大である値よりも1つ小さい値を用いる。
【0062】
図17は、閾値設定部212による第1の閾値の設定動作を説明するフローチャートであり、図15に示したステップ1501の処理の詳細な内容を示す。
閾値設定部212は、検出部211による処理対象の画像フレームが、ペン・デバイスによる筆記のストロークにおける先頭の画像フレームである場合(ステップ1701でYes)、復号の成功頻度に関する度数分布データ(復号履歴)を初期化する(ステップ1702)。そして、第1の閾値を初期値に設定する(ステップ1703)。画像フレームがストロークの先頭の画像フレームか否かは、ストローク開始信号を受信したか否かによって識別される。
【0063】
検出部211による処理対象の画像フレームが、ペン・デバイスによる筆記のストロークにおける先頭の画像フレームでない場合(ステップ1701でNo)、閾値設定部212は、直前の画像フレームからのドット検出に用いられた第1の閾値(THprev)の度数分布データにおけるインデックスを取得する(ステップ1704)。そして、復号部300からフィードバックされる復号結果に基づき、直前の画像フレームに対する復号が成功したか否かを調べる。
【0064】
直前の画像フレームの復号が成功した場合(ステップ1705でYes)、閾値設定部212は、取得したインデックスの度数分布データの度数を1加算する(ステップ1706)。この場合、画像フレームからのドット検出に用いる第1の閾値は変更せず、直前の画像フレームからのドット検出に用いられた第1の閾値がそのまま用いられる。
【0065】
一方、直前の画像フレームの復号が失敗した場合(ステップ1705でNo)、度数分布データに基づいて第1の閾値が設定される。閾値設定部212は、まず、取得したインデックスの度数分布データの度数が0か否かを調べ(ステップ1707)、0でなければ、度数を1減算する(ステップ1708)。ステップ1707で度数が0である場合は、度数の最小値を0としているため、減算はしない。
【0066】
次に、閾値設定部212は、度数分布データにおいて度数が最大のインデックス(Idx_Max)を取得する(ステップ1709)。度数分布データが空でなければ(ステップ1710でNo)、最大度数インデックス(Idx_Max)が得られるので、そのインデックスの閾値(THmax)を求める(ステップ1711)。そして、この閾値(THmax)と、ステップ1704で求めた直前の画像フレームからのドット検出に用いられた第1の閾値(THprev)とを比較する。
【0067】
THmax≠THprevである場合(ステップ1712でNo)、閾値設定部212は、最大度数インデックスの閾値(THmax)を、現在の画像フレームからのドット検出に用いる第1の閾値に設定する(ステップ1713)。これに対し、THmax=THprevである場合(ステップ1712でYes)、次に閾値設定部212は、THmaxが設定下限(下限値)か否かを調べる。そして、THmaxが設定下限でなければ(ステップ1714でNo)、THmaxよりも1つ小さい値(THmax−1)を、現在の画像フレームからのドット検出に用いる第1の閾値に設定する(ステップ1715)。一方、THmaxが設定下限であるならば(ステップ1714でYes)、最大度数インデックスの閾値(THmax)を、現在の画像フレームからのドット検出に用いる第1の閾値に設定する(ステップ1713)。
【0068】
ストロークが開始されてから復号が成功しておらず、度数分布データが空である場合(ステップ1710でYes)、次に閾値設定部212は、直前の画像フレームからのドット検出に用いられた第1の閾値(THprev)と設定下限(下限値)とを比較する。そして、THprevが設定下限よりも大きい場合は(ステップ1716でYes)、THprevから一定値分下げた値(THdet)を算出する(ステップ1717)。算出された値(THdet)が設定下限よりも小さい場合は、THdetを設定下限に設定する(ステップ1718、1719)。そして、得られた値(THdet)を、現在の画像フレームからのドット検出に用いる第1の閾値に設定する(ステップ1720)。また、THprevが設定下限であった場合(ステップ1716でNo)、閾値設定部212は、設定上限の値(上限値)を、現在の画像フレームからのドット検出に用いる第1の閾値に設定する(ステップ1721)。
【0069】
なお、本実施形態では、ドットの検出にクオイト・フィルタを使用するため、クオイト・フィルタのディスク要素における画素値の平均値とリング要素における画素値の平均値との差分を評価するための第1の閾値を閾値設定部212により設定することとした。しかし、クオイト・フィルタを用いるか否かに関わらず、一般に、特定のドットを画像から検出する手法としては、ドットに該当する画素またはその画素を含む一定の領域と画像の他の部分との画素値の差分を所定の閾値と比較して評価することが行われる。そして、そのような他の手法においても、走査位置や走査状態によって生じる画像の状態の変動に対応する必要がある。したがって、実際の復号の成否に基づいて、ドット検出に用いられる閾値を動的に変化させる手法は、他の種々のドット検出の手法においても適用して良い。
【0070】
<ノイズ除去処理>
本実施形態では、ノイズ除去処理として、通常のノイズを除去する処理と、正反射を除去する処理とを行う。正反射とは、画像の読み取りの際に、トナー等で紙面上に形成された画像が、照射された光を全反射し、撮像部100において画像が飽和レベルに近くなる現象である。全反射は、1ドット単位で発生する。
【0071】
まず、通常のノイズ除去について説明する。
この処理では、撮像部100により撮像された画像に対して、32画素幅の小領域(部分領域)を5個×5個の25領域分並べた格子状領域(5×5マトリクス)が設定される。そしてさらに、この5×5マトリクスが、10個×10個の100領域を並べた格子状領域(10×10マトリクス)に変換される。この10×10マトリクスの部分領域ごとに閾値が設定され、ノイズが検出され除去される。本実施形態では、撮像部100により撮像される画像のサイズは、上述したように156画素×156画素なので、以上のように生成された10×10マトリクスで画像全体が被われることとなる。
【0072】
まず、第1統計データ生成部214が、上記の5×5マトリクスを設定し、3種類の統計データを生成して5×5マトリクスの各部分領域に登録する。統計データは、コントラストの積算値と、ディスク要素の最大値(9画素の画素値の最大値)と、検出ドット数である。ここで、コントラストとは、クオイト・フィルタによるディスク要素とリング要素の差分(QuoitDiff)である。この統計データの生成は、検出部211の出力を順次受け付けることにより、検出部211による検出処理と並行して行って良い。
【0073】
図18は、5×5マトリクスおよび統計データの例を示す図である。
第1統計データ生成部214は、5×5マトリクスを構成する部分領域ごとに、その部分領域に含まれる各画素に関して得られた差分(QuoitDiff)の値を積算し、コントラストの統計データ(図18のSc00〜Sc44)を生成する。また、5×5マトリクスを構成する部分領域ごとに、その部分領域に含まれる各画素に関するクオイト・フィルタのディスク要素の画素値の最大値(DiskMax)を選択し、最大値の統計データ(図18のMax00〜Max44)を生成する。また、5×5マトリクスを構成する部分領域ごとに、検出されたドットの数を数え、検出ドット数の統計データ(図18のCnt00〜Cnt44)を生成する。ここで、検出ドット数は、その部分領域に含まれる各画素に関するクオイト・フィルタの出力データのうちで、ドットタグがドットであることを表す値となっているものの数である。生成されたこれらの統計データは、ノイズ除去部213に送られる。
【0074】
ノイズ除去部213は、第1統計データ生成部214から取得した統計データを用いて、コントラストの閾値および画素値の閾値を生成する。そして、検出部211によりドットとして検出された位置における元画像(撮像部100により撮像された画像)とこれらの閾値とを比較する。元画像の画素値が閾値より低い場合、または元画像における当該画素を注目画素としたときのコントラスト(QuoitDiff)が閾値より低い場合、ノイズ除去部213は、検出されたドットがノイズであると判断し、検出部211によるこのドットの検出を取り消す。これにより、ノイズが除去される。
【0075】
ここで、コントラストおよび画素値の閾値の生成方法について詳細に説明する。
ノイズ除去部213は、まず、5×5マトリクスを構成する各部分領域に関して、コントラストの平均値および最大値を求める。平均値は、第1統計データ生成部214から取得したコントラストの積算値を検出ドット数で割ることによって得られる。なお、所定の部分領域に関して検出ドット数が0である場合は、隣接する部分領域の平均値を用いて線形補間する。
【0076】
次に、ノイズ除去部213は、5×5マトリクスの各部分領域を4分割して10個×10個の100領域で構成される10×10マトリクスとする。第1統計データ生成部214から取得した統計データやノイズ除去部213が求めたコントラストの平均値および最大値は、この4分割された小領域ごとのデータに変換される。このデータは、例えば、5×5マトリクスにおける部分領域のデータを隣接する部分領域との間で線形補間することで得られる。
【0077】
図19は、部分領域の分割の様子を示す図である。
図19に示すように、5×5マトリクスにおける部分領域Aを分割して小領域A−1、A−2、A−3、A−4が得られるものとする。このとき、左上の小領域A−1のデータは、元の部分領域A、左に隣接する部分領域B、上に隣接する部分領域Cのデータの平均値とする。同様に、右上の小領域A−2のデータは、元の部分領域A、上に隣接する部分領域C、右に隣接する部分領域Dのデータの平均値とする。左下の小領域A−3のデータは、元の部分領域A、左に隣接する部分領域B、下に隣接する部分領域Eのデータに基づき線形補間して得られる。右下の小領域A−4のデータは、元の部分領域A、右に隣接する部分領域D、下に隣接する部分領域Eのデータの平均値とする。なお、線形補間の具体的な手法は、以上の方法に限定されない。
【0078】
次に、ノイズ除去部213は、この10×10マトリクスのコントラスト閾値を算出する。図20(a)に、コントラスト閾値の例を示す(Ctr00〜Ctr99)。コントラスト閾値(Ctr)は、10×10マトリクスの各小領域に対して求めたコントラストの最大値を用いて、例えば、最大値の25%等のように定める。コントラストの最大値に基づいて定めることにより、コントラスト閾値は、撮像部100により撮像された画像全体のシャープさに応じて変動することとなる。
【0079】
また、ノイズ除去部213は、10×10マトリクスの画素閾値を算出する。図20(b)に、画素閾値の例を示す(Px00〜Px99)。画素閾値(Px)は、例えば、10×10マトリクスの小領域のデータにそれぞれ変換された、コントラストの平均値Ctおよびディスク要素の画素値の最大値Mxを用いて、
Px=(Mx−Ct)/k (ただし、kは2〜4程度の値)
等のように求められる。
【0080】
次に、正反射によるノイズ(以下、正反射ノイズ)の除去について説明する。
この処理では、撮像部100により撮像された画像に対して、4画素幅の小領域(部分領域)を39個×39個の1521領域分並べた格子状領域(39×39マトリクス)が設定される。そして、この39×39マトリクスの部分領域ごとに正反射ノイズが検出され除去される。本実施形態では、撮像部100により撮像される画像のサイズは、上述したように156画素×156画素なので、以上のように生成された39×39マトリクスで画像全体が被われることとなる。
【0081】
まず、第2統計データ生成部215が、上記の39×39マトリクスを設定する。そして、この39×39マトリクスの部分領域ごとに、検出部211において正反射が起こっていると判断された画素(以下、濃度反転画素と呼ぶ)の数をカウントする。この処理は、検出部211の出力を順次受け付けることにより、検出部211による検出処理と並行して行って良い。そして、得られたデータは、ノイズ除去部213に送られる。
【0082】
図21は、39×39マトリクスの例を示す図である。
ノイズ除去部213は、39×39マトリクスの各部分領域に順次着目し、着目した部分領域およびこの部分領域の周囲に隣接する8個の部分領域のいずれかに濃度反転画素が存在する場合、着目した部分領域における検出部211によるドットの検出を取り消す。例えば、図21において、グレーの部分領域に着目している場合、太枠で囲まれた9個の部分領域のいずれかに濃度反転画素が存在するならば、斜線を付した部分領域におけるドットの検出が取り消される。これにより、正反射ノイズが除去される。
【0083】
図22は、ノイズ除去部213によるノイズ除去の動作を説明するフローチャートであり、図15に示したステップ1514の処理の詳細な内容を示す。
ノイズ除去部213は、まず、第1統計データ生成部214から取得した統計データに基づいて、5×5マトリクスの各部分領域におけるコントラスト(QuoitDiff)の平均値および最大値を算出する(ステップ2201、2202)。次に、ノイズ除去部213は、得られたデータを、10×10マトリクスのデータに変換する(ステップ2203)。そして、コントラスト閾値を算出する(ステップ2204)。
【0084】
また、ノイズ除去部213は、第1統計データ生成部214から取得したクオイト・フィルタにおけるディスク要素の最大値の統計データを、10×10マトリクスのデータに変換する(ステップ2205)。そして、画素閾値を算出する(ステップ2206)。
【0085】
この後、ノイズ除去部213は、画像(画像フレーム)を走査しながら、以下のループ処理を画素ごとに画像全体にわたって繰り返す。ただし、検出部211によるドットの検出結果からノイズを除去する処理であるから、実際には、検出部211の出力におけるドットタグがドットであることを表す値となっている画素のみについて処理が行われる。また、各ループにおいて処理対象となっている画素を対象画素と呼ぶ。
【0086】
ノイズ除去部213は、まず検出部211によるドット検出の結果から、対象画素の画素値と当該対象画素を注目画素としたときのコントラスト(QuoitDiff)とを取得する(ステップ2207)。そして、コントラストの値がコントラスト閾値よりも小さい場合、または画素値が画素閾値よりも小さい場合は、ノイズ除去部213は、対象画素におけるドットタグの値を変更し、検出部211によるドットの検出を取り消す(ステップ2208、2209、2210)。
【0087】
次に、ノイズ除去部213は、第2統計データ生成部215から取得した統計データに基づいて、対象画素を含む39×39マトリクスの部分領域に関して、その部分領域と周囲の8個の部分領域(合計9個の部分領域)のいずれかに濃度反転画素が存在するか否かを調べる。そして、濃度反転画素が存在する場合は、ノイズ除去部213は、対象画素におけるドットタグの値を変更し、検出部211によるドットの検出を取り消す(ステップ2211、2212)。
【0088】
なお、本実施形態では、5×5マトリクスおよび39×39マトリクスを用いて統計データを生成しノイズ除去に用いたが、各マトリクスのサイズおよび各マトリクスにおける部分領域のサイズは、上記の実施形態に限定されない。撮像部100により撮像される元画像のサイズおよび解像度、検出部210の処理能力などに応じて、適切なサイズを選択すれば良い。
【0089】
<ペン・デバイスの構成>
次に、本実施の形態における画像処理装置10の具体的なハードウェア構成について説明する。ここでは、画像処理装置10を実現するペン・デバイスの構成例について説明する。
図23は、ペン・デバイスの機構を示した図である。
図示するように、ペン・デバイス60は、ペン全体の動作を制御する制御回路61を備える。制御回路61は、入力画像から検出した符号画像を処理する画像処理部61aと、そこでの処理結果から識別情報及び座標情報を抽出するデータ処理部61bとを含む。また、特に図示しないが、制御回路61は、これら画像処理部61aおよびデータ処理部61bを動作させるためのプログラムを格納する不揮発性メモリとを含む。この制御回路61には、ペン・デバイス60による筆記動作をペンチップ69に加わる圧力によって検出する圧力センサ62が接続されている。また、媒体上に赤外光を照射する赤外LED63と、画像を入力する赤外CMOS64も接続されている。さらに、識別情報及び座標情報を記憶するための情報メモリ65と、外部装置と通信するための通信回路66と、ペンを駆動するためのバッテリ67と、ペンの識別情報(ペンID)を記憶するペンIDメモリ68も接続されている。
【0090】
図9に示した画像処理装置10において、撮像部100は、例えば、図23の赤外CMOS64にて実現される。また、ドット解析部200は、例えば、図23の画像処理部61aにて実現される。さらに、復号部300は、例えば、図23のデータ処理部61bにて実現される。なお、画像処理装置10は、図23に示すようなペン・デバイス60の他、画像処理部61a又はデータ処理部61bにて実現される機能を、例えば、汎用のコンピュータで実現しても良い。
【0091】
画像処理部61aおよびデータ処理部61bの機能を実現するプログラムは、通信手段を介して提供したり、CD−ROM等の記録媒体に格納して提供したりすることができる。また、制御回路61に含まれる上述した不揮発性メモリに格納して提供しても良い。
【図面の簡単な説明】
【0092】
【図1】本実施形態で用いられる単位符号パターン、情報ブロック、紙面(媒体)の関係を示す図である。
【図2】mCn方式における単位符号パターンの例を示す図である。
【図3】図2に示した単位符号パターンの種類を網羅的に示した図である。
【図4】9C2方式における単位符号パターンとパターン値との対応を示す図である。
【図5】9C2方式における同期パターンの例を示す図である。
【図6】情報ブロックの構成例を示す図である。
【図7】本実施形態における識別情報と座標情報を表現するためのレイアウトの例を示す図である。
【図8】M系列を用いた座標情報の符号化の例を示す図である。
【図9】本実施形態の画像処理装置の機能構成例を示す図である。
【図10】本実施形態のドット解析部および復号部による処理の流れを示すフローチャートである。
【図11】本実施形態の位置検出部の機能構成を示す図である。
【図12】本実施形態におけるクオイト・フィルタを用いたドット検出の概念を説明する図である。
【図13】本実施形態で用いられるクオイト・フィルタの構成例を示す図である。
【図14】図13に示したクオイト・フィルタを用いて画像を走査する様子を示す図である。
【図15】本実施形態の検出部によるドット検出処理を説明するフローチャートである。
【図16】復号の成功頻度に関する度数分布の例を視覚的に表現したヒストグラムである。
【図17】本実施形態の閾値設定部による第1の閾値の設定動作を説明するフローチャートである。
【図18】本実施形態で用いられる5×5マトリクスおよび統計データの例を示す図である。
【図19】部分領域の分割の様子を示す図である。
【図20】本実施形態で用いられるコントラスト閾値および画素閾値の例を示す図である。
【図21】本実施形態で用いられる39×39マトリクスおよび統計データの例を示す図である。
【図22】本実施形態のノイズ除去部によるノイズ除去の動作を説明するフローチャートである。
【図23】画像処理装置であるペン・デバイスの機構を示した図である。
【符号の説明】
【0093】
10…画像処理装置、100…撮像部、200…ドット解析部、210…位置検出部、211…検出部、212…閾値設定部、213…ノイズ除去部、214…第1統計データ生成部、215…第2統計データ生成部、216…座標計算部、220…角度検出部、230…同期化部、300…復号部
【特許請求の範囲】
【請求項1】
撮像装置により撮像された画像のフレームごとに、当該画像を走査し、特定の画素または当該特定の画素を含む一定の領域と当該画像の他の部分との画素値の差分から、所定の判断基準により単位画像を検出する検出部と、
前記撮像装置により撮像された前記画像のフレームごとに、前記検出部により検出された前記単位画像に基づいて、当該単位画像により符号化されて記録された情報を復号する復号部と、
前記復号部による復号の成否に基づいて、前記検出部による前記判断基準を設定する判断基準設定部と
を備えることを特徴とする画像処理装置。
【請求項2】
前記検出部は、前記画素値の差分が所定の閾値よりも大きい場合に、前記特定の画素が前記単位画像を形成すると判断し、
前記判断基準設定部は、直前のフレームに対する復号が成功した場合に、当該直前のフレームに対する単位画像の検出に用いられた閾値を、現在のフレームに対する単位画像の検出に用いる閾値に設定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記検出部は、前記画素値の差分が所定の閾値よりも大きい場合に、前記特定の画素が前記単位画像を形成すると判断し、
前記判断基準設定部は、直前のフレームに対する復号が失敗した場合に、それまでに復号が成功した頻度が最も高い閾値を、現在のフレームに対する単位画像の検出に用いる閾値に設定することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記判断基準設定部は、直前のフレームに対する復号が失敗し、かつ当該直前のフレームに対する単位画像の検出に用いられた閾値がそれまでに復号が成功した頻度が最も高い閾値であった場合に、当該閾値よりも1つ小さい値を、現在のフレームに対する単位画像の検出に用いる閾値に設定することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記検出部は、一定の領域からなるディスク要素と当該ディスク要素の周囲に設けられたリング要素とを備えるフィルタを適用して前記画像を走査し、当該フィルタにおける当該ディスク要素の画素値の平均値と当該リング要素の画素値の平均値との差分が所定の閾値以上である場合に、当該ディスク要素に含まれる前記特定の画素が前記単位画像を形成すると判断し、
前記判断基準設定部は、前記フィルタにおける前記ディスク要素の画素値の平均値と前記当該リング要素の画素値の平均値との差分の評価に用いられる前記閾値を設定することを特徴とする請求項1に記載の画像処理装置。
【請求項6】
コンピュータに、
撮像装置により撮像された画像のフレームごとに、当該画像を走査し、特定の画素または当該特定の画素を含む一定の領域と当該画像の他の部分との画素値の差分から、所定の判断基準により単位画像を検出する機能と、
前記撮像装置により撮像された前記画像のフレームごとに、検出された前記単位画像に基づいて、当該単位画像により符号化されて記録された情報を復号する機能と、
前記情報の復号の成否に基づいて、前記判断基準を設定する機能と
を実現させるためのプログラム。
【請求項7】
前記単位画像を検出する機能では、前記コンピュータが、前記画素値の差分が所定の閾値よりも大きい場合に、前記特定の画素が前記単位画像を形成すると判断し、
前記判断基準を設定する機能では、前記コンピュータが、前記判断基準として、前記単位画像の検出に用いられる前記閾値を設定することを特徴とする請求項6に記載のプログラム。
【請求項8】
前記単位画像を検出する機能では、前記コンピュータが、一定の領域からなるディスク要素と当該ディスク要素の周囲に設けられたリング要素とを備えるフィルタを適用して前記画像を走査し、当該フィルタにおける当該ディスク要素の画素値の平均値と当該リング要素の画素値の平均値との差分が所定の閾値以上である場合に、当該ディスク要素に含まれる前記特定の画素が前記単位画像を形成すると判断し、
前記判断基準を設定する機能では、前記コンピュータが、前記フィルタにおける前記ディスク要素の画素値の平均値と前記リング要素の画素値の平均値との差分の評価に用いられる前記閾値を設定することを特徴とする請求項6に記載のプログラム。
【請求項1】
撮像装置により撮像された画像のフレームごとに、当該画像を走査し、特定の画素または当該特定の画素を含む一定の領域と当該画像の他の部分との画素値の差分から、所定の判断基準により単位画像を検出する検出部と、
前記撮像装置により撮像された前記画像のフレームごとに、前記検出部により検出された前記単位画像に基づいて、当該単位画像により符号化されて記録された情報を復号する復号部と、
前記復号部による復号の成否に基づいて、前記検出部による前記判断基準を設定する判断基準設定部と
を備えることを特徴とする画像処理装置。
【請求項2】
前記検出部は、前記画素値の差分が所定の閾値よりも大きい場合に、前記特定の画素が前記単位画像を形成すると判断し、
前記判断基準設定部は、直前のフレームに対する復号が成功した場合に、当該直前のフレームに対する単位画像の検出に用いられた閾値を、現在のフレームに対する単位画像の検出に用いる閾値に設定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記検出部は、前記画素値の差分が所定の閾値よりも大きい場合に、前記特定の画素が前記単位画像を形成すると判断し、
前記判断基準設定部は、直前のフレームに対する復号が失敗した場合に、それまでに復号が成功した頻度が最も高い閾値を、現在のフレームに対する単位画像の検出に用いる閾値に設定することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記判断基準設定部は、直前のフレームに対する復号が失敗し、かつ当該直前のフレームに対する単位画像の検出に用いられた閾値がそれまでに復号が成功した頻度が最も高い閾値であった場合に、当該閾値よりも1つ小さい値を、現在のフレームに対する単位画像の検出に用いる閾値に設定することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記検出部は、一定の領域からなるディスク要素と当該ディスク要素の周囲に設けられたリング要素とを備えるフィルタを適用して前記画像を走査し、当該フィルタにおける当該ディスク要素の画素値の平均値と当該リング要素の画素値の平均値との差分が所定の閾値以上である場合に、当該ディスク要素に含まれる前記特定の画素が前記単位画像を形成すると判断し、
前記判断基準設定部は、前記フィルタにおける前記ディスク要素の画素値の平均値と前記当該リング要素の画素値の平均値との差分の評価に用いられる前記閾値を設定することを特徴とする請求項1に記載の画像処理装置。
【請求項6】
コンピュータに、
撮像装置により撮像された画像のフレームごとに、当該画像を走査し、特定の画素または当該特定の画素を含む一定の領域と当該画像の他の部分との画素値の差分から、所定の判断基準により単位画像を検出する機能と、
前記撮像装置により撮像された前記画像のフレームごとに、検出された前記単位画像に基づいて、当該単位画像により符号化されて記録された情報を復号する機能と、
前記情報の復号の成否に基づいて、前記判断基準を設定する機能と
を実現させるためのプログラム。
【請求項7】
前記単位画像を検出する機能では、前記コンピュータが、前記画素値の差分が所定の閾値よりも大きい場合に、前記特定の画素が前記単位画像を形成すると判断し、
前記判断基準を設定する機能では、前記コンピュータが、前記判断基準として、前記単位画像の検出に用いられる前記閾値を設定することを特徴とする請求項6に記載のプログラム。
【請求項8】
前記単位画像を検出する機能では、前記コンピュータが、一定の領域からなるディスク要素と当該ディスク要素の周囲に設けられたリング要素とを備えるフィルタを適用して前記画像を走査し、当該フィルタにおける当該ディスク要素の画素値の平均値と当該リング要素の画素値の平均値との差分が所定の閾値以上である場合に、当該ディスク要素に含まれる前記特定の画素が前記単位画像を形成すると判断し、
前記判断基準を設定する機能では、前記コンピュータが、前記フィルタにおける前記ディスク要素の画素値の平均値と前記リング要素の画素値の平均値との差分の評価に用いられる前記閾値を設定することを特徴とする請求項6に記載のプログラム。
【図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−175986(P2009−175986A)
【公開日】平成21年8月6日(2009.8.6)
【国際特許分類】
【出願番号】特願2008−13155(P2008−13155)
【出願日】平成20年1月23日(2008.1.23)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
【公開日】平成21年8月6日(2009.8.6)
【国際特許分類】
【出願日】平成20年1月23日(2008.1.23)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】
[ Back to top ]