JP4973316B2 - 画像処理装置及びプログラム - Google Patents
画像処理装置及びプログラム Download PDFInfo
- Publication number
- JP4973316B2 JP4973316B2 JP2007142549A JP2007142549A JP4973316B2 JP 4973316 B2 JP4973316 B2 JP 4973316B2 JP 2007142549 A JP2007142549 A JP 2007142549A JP 2007142549 A JP2007142549 A JP 2007142549A JP 4973316 B2 JP4973316 B2 JP 4973316B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- unit
- image
- pattern
- images
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
本発明の目的は、ビット列を表す画像を媒体から順次読み取った際に、1つの画像だけでビット列を検出できなくても全体としてビット列を検出できるようにすることにある。
請求項2に記載の発明は、前記取得手段により順次取得された前記複数の画像は、予め決められた数の画像であることを特徴とする請求項1記載の画像処理装置である。
請求項3に記載の発明は、前記取得手段により順次取得された前記複数の画像は、前記媒体から画像を読み取る読取装置が特定の状態になっている間に当該媒体から読み取られた画像であることを特徴とする請求項1記載の画像処理装置である。
請求項4に記載の発明は、前記1つのビット列は、前記媒体又は前記媒体に印刷された文書を識別する識別情報を表すビット列であることを特徴とする請求項1記載の画像処理装置である。
請求項5に記載の発明は、コンピュータに、ビット列を表す画像であって、m(m≧3)箇所から選択したn(1≦n<m)箇所に単位画像を配置してなる複数のパターン画像からなり、当該複数のパターン画像がそれぞれ当該ビット列の複数の部分列を表す画像が繰り返し印刷された媒体から読み取られた当該画像を取得する機能と、順次取得された複数の前記画像がそれぞれ表す複数のビット列を、各ビット列の複数の部分列のうち、m箇所から選択したn箇所に単位画像を配置してなるパターン画像に対応する部分列は当該パターン画像が表す部分列として、検出する機能と、検出された前記複数のビット列のうちの特定のビット列における特定の部分列が、検出された前記複数のビット列における当該特定の部分列に対応する部分列のうち最も多く検出されたものである場合に、当該特定のビット列における当該特定の部分列を1つのビット列における当該特定の部分列に対応する部分列とすることにより、当該1つのビット列を決定する機能とを実現させるためのプログラムである。
請求項6に記載の発明は、順次取得された前記複数の画像は、予め決められた数の画像であることを特徴とする請求項5記載のプログラムである。
請求項7に記載の発明は、順次取得された前記複数の画像は、前記媒体から画像を読み取る読取装置が特定の状態になっている間に当該媒体から読み取られた画像であることを特徴とする請求項5記載のプログラムである。
請求項2の発明は、本構成を有していない場合に比較して、ビット列の検出に用いる画像を確実に取得できるという効果を有する。
請求項3の発明は、ビット列の検出に用いる画像を読取装置の状態に連動して取得することができるという効果を有する。
請求項4の発明は、識別情報を表す画像を媒体から順次読み取った際に、1つの画像だけで識別情報を検出できなくても全体として識別情報を検出することができるという効果を有する。
請求項5の発明は、ビット列を表す画像を媒体から順次読み取った際に、1つの画像だけでビット列を検出できなくても全体としてビット列を検出することができるという効果を有する。
請求項6の発明は、本構成を有していない場合に比較して、ビット列の検出に用いる画像を確実に取得できるという効果を有する。
請求項7の発明は、ビット列の検出に用いる画像を読取装置の状態に連動して取得することができるという効果を有する。
本実施の形態では、m(m≧3)箇所から選択したn(1≦n<m)箇所に単位画像を配置してなるパターン画像(以下、「単位符号パターン」という)によってmCn(=m!/{(m−n)!×n!})通りの情報を表現する。つまり、1つの単位画像を情報に対応させるのではなく、複数の単位画像を情報に対応させている。仮に1つの単位画像を情報に対応させたとすると、単位画像が欠損したり、ノイズが加わったりした場合に、誤った情報を表現してしまうという欠点がある。これに対して、例えば2つの単位画像を情報に対応させたとすると、単位画像が1つであったり3つであったりした場合に、容易に誤りであることが分かる。更に、1つの単位画像で1ビット、又は、高々2ビットを表現する方法では、情報を表現するパターンと視覚的に似たパターンで、情報パターンの読出しを制御する同期パターンを表現することができない。このようなことから、本実施の形態では、上記のような符号化方式を採用している。以下では、このような符号化方式をmCn方式と称する。
ここで、単位画像としては、如何なる形状のものを用いてもよい。本実施の形態では、単位画像の一例としてドット画像(以下、単に「ドット」という)を用いるが、例えば、斜線パターン等、他の形状の画像であってもよい。
図では、黒色の領域と斜線の領域をドット配置可能な領域とし、その間にある白色の領域をドット配置不可能な領域としている。そして、ドット配置可能な領域のうち、黒色の領域にドットが配置され、斜線の領域にはドットが配置されていないことを示している。即ち、図1は、縦3ドット、横3ドットの合計9ドットを配置可能な領域を設けた例を示しており、(a)は、ドット配置可能な領域に2ドットを配置する9C2方式における単位符号パターンであり、(b)は、ドット配置可能な領域に3ドットを配置する9C3方式における単位符号パターンである。
図2(a)は、図1(a)に示した9C2方式における全ての単位符号パターンを示している。9C2方式では、これらの単位符号パターンを用いて、36(=9C2)通りの情報を表現する。また、図2(b)は、図1(b)に示した9C3方式における全ての単位符号パターンを示している。9C3方式では、これらの単位符号パターンを用いて、84(=9C3)通りの情報を表現する。
また、mの値としては、平方数(整数の2乗)だけでなく、異なる2つの整数の積を採用してもよい。つまり、ドットを配置可能な領域は、3ドット×3ドットを配置する場合のような正方形の領域に限らず、3ドット×4ドットを配置する場合のような長方形の領域であってもよい。尚、本明細書において、長方形とは、隣り合う2辺の長さが等しくない矩形のことをいうものとする。
図3は、9C2方式における同期パターンの例である。このようにmCn方式におけるmが平方数である場合は、画像の回転の検出のために4種類の単位符号パターンを同期パターンとして用意する必要がある。ここでは、パターン値32の単位符号パターンを正立した同期パターンとしている。また、パターン値33の単位符号パターンを右に90度回転した同期パターン、パターン値34の単位符号パターンを右に180度回転した同期パターン、パターン値35の単位符号パターンを右に270度回転した同期パターンとしている。この場合、36種類の単位符号パターンからこの4種類の同期パターンを除いた残りを情報パターンとし、5ビットの情報を表現するとよい。但し、36種類の単位符号パターンの情報パターンと同期パターンへの振り分け方は、これには限らない。例えば、4種類で1組を構成する同期パターンの組を5つ用意し、残りの16種類の情報パターンで4ビットの情報を表現してもよい。
図4は、符号ブロックの一例を示したものである。図では、9C2方式における単位符号パターンを使用していることも同時に示している。即ち、36種類の単位符号パターンを、例えば、同期パターンとして使用する4パターンと、情報パターンとして使用する32パターンとに分け、各パターンをレイアウトに従って配置する。
図では、レイアウトとして、3ドット×3ドットを配置可能な領域(以下、「ブロック」という)を5個×5個の25個並べたものを採用している。そして、この25個のブロックのうち、左上の1ブロックに同期パターンを配置している。また、同期パターンの右の4ブロックに紙面上のX方向の座標を特定するX座標情報を表す情報パターンを配置し、同期パターンの下の4ブロックに紙面上のY方向の座標を特定するY座標情報を表す情報パターンを配置している。更に、これらの座標情報を表す情報パターンで囲まれた16ブロックに、紙面又は紙面に印刷される文書の識別情報を表す情報パターンを配置している。
尚、9C2方式における単位符号パターンはあくまで例であり、図の左下に示すように、9C3方式における単位符号パターンを使用してもよい。
尚、第二のレイアウトと、第三のレイアウトはスキャナ向けではあるが、本実施の形態では、これらをペンデバイスで読み取ることを想定している。
(1)識別情報と座標情報を符号化したパターンを配置したペンデバイス向けレイアウト
図5に、このようなレイアウトの一部を示す。
このレイアウトでは、図4に示した符号ブロックを基本単位とし、この符号ブロックを紙面全体に周期的に配置する。図では、同期符号を「S」で表している。また、座標情報は、紙面の縦及び横に渡ってM系列で表現する。図では、M系列で表現されたX座標を、X1,X2,…,X12で表し、M系列で表現されたY座標を、Y1,Y2,…,Y12で表している。更に、識別情報の符号化には、幾つかの方法の利用が考えられるが、本実施の形態では、RS符号化が適している。RS符号は多値の符号法であり、この場合、ブロックの表現をRS符号の多値に対応させるとよいからである。図では、RS符号で表現された識別情報を、IXY(X=1〜4,Y=1〜4)で表している。
図6に、このようなレイアウトの一部を示す。
このレイアウトでは、まず、情報を埋め込むのに必要なブロック数を計算する。例えば、誤り訂正符号も含めて200ビットが必要であったとする。9C3方式では、一例として1ブロックで6ビットの情報を表現するので、34ブロックで204ビットを表現する。更にこれを矩形で表現するために、縦5ブロック、横7ブロックの合計35ブロックを配置したレイアウトとする。尚、縦6ブロック、横6ブロックであってもよいが、図では5ブロック×7ブロックとしている。
但し、図6には、汎用的なレイアウトを示している。即ち、同期パターンが配置されたブロックを黒色で示し、これらのブロックに囲まれた太線内の符号ブロックは、横Xブロック、縦Yブロックからなるものとしている。そして、この領域に、識別情報を表す情報パターンが埋め込まれている。図では、識別情報を、YX(X=Y=1を除く)で表している。上記の例では、X=7、Y=5である。
図7に、このようなレイアウトの一部を示す。
このレイアウトでも、(1)のレイアウトと同様、縦5ブロック、横5ブロックの25ブロックを基本単位とする。ここで、紙面に印刷された画像を読み取った際に、コピーを禁止する等、スキャナに対して何らかの制御を行うことを考える。例えば、識別情報に情報を埋め込んでおき、復号後にスキャナを制御することも考えられるが、復号処理に時間がかかり、制御が間に合わない可能性もある。そこで、符号ブロックに含まれるブロックのうち「*」で示したブロックに対して、復号処理を行わなくても制御が可能な特殊なパターンを埋め込み、パターン認識により制御を行うようにする。
図8は、画像生成装置10の構成例を示したブロック図である。
図示するように、画像生成装置10は、情報取得部11と、識別符号生成部12と、X座標符号生成部13と、Y座標符号生成部14と、符号配列生成部15と、パターン画像記憶部16と、符号画像生成部17とを備える。
このうち、ブロック分割は、識別情報を構成するビット列を、RS符号化を行うために複数のブロックに分割する処理である。例えば、9C2方式で5ビットの情報を表現可能な情報パターンを用いる場合、60ビットの識別情報は、ブロック長が5ビットの12個のブロックに分割される。
また、RS符号化は、分割されたブロックに対してRS符号化を行い、誤り訂正のための冗長ブロックを付加する処理である。先の例において2ブロックの誤りを訂正可能なRS符号を採用したとすると、符号長は16ブロックとなる。
このうち、M系列符号化は、M系列を使用して座標情報を符号化する処理である。例えば、符号化したい座標情報の長さから必要なM系列の次数を求め、M系列を動的に生成することで座標符号を生成する。但し、予め符号化したい座標情報の長さが分かっている場合には、M系列を画像生成装置10のメモリ等に格納しておき、画像生成時にそれを読み出す構成としてもよい。
また、ブロック分割は、M系列を複数のブロックに分割する処理である。例えば、情報パターンとして16種類の単位符号パターンを選択したとすると、符号ブロックにおける各ブロックには4ビットの情報が格納される。従って、図4のようなレイアウトを有する符号ブロックに対して、X座標情報は、16ビット分格納される。ここで、12次のM系列を利用したとすると、M系列の系列長は4095(=212−1)となる。この系列を4ビットごとに切り出し、符号パターンで表現していくと、最後に3ビットあまることになる。この3ビットに、M系列の最初の1ビットを加えて4ビットとし単位符号パターンで表す。更に、M系列の2ビット目から4ビットごとに切り出し単位符号パターンで表す。すると、次の周期は、M系列の3ビット目から始まり、その次の周期は、M系列の4ビット目から始まる。更に、5周期目は、5ビット目からとなるが、これは最初の周期と一致する。従って、M系列の4周期を4ビットごとに切り出していくと、4095個の単位符号パターンで全てを尽くすことができる。M系列は12次であるので、3つの連続する単位符号パターンは、他のどの位置の連続する符号パターンとも一致することはない。そこで、読出し時には3つの単位符号パターンを読み出せば、復号が可能であるが、誤りを考慮し4ブロックで情報を表現している。
尚、4周期のM系列は、4095個のブロックに分割して格納される。1つのブロックの一辺の長さは、先に述べた印刷条件、即ち、ドットが600dpiにおける2ピクセル×2ピクセルの大きさである場合、0.508mmである。先に述べた第一のレイアウトを採用する場合、連続する4095個のブロックの4ブロックごとに、同期ブロックが挿入される。そこで、5/4倍して、全体で約5118ブロックなので、長さは2599.9mmである。つまり、2599.9mmの長さが符号化されることになる。
また、11次のM系列を使った場合には、2047ビットであり、1299.5mmが符号化される。
パターン画像記憶部16は、例えば図2に示したmCn方式における単位符号パターンを記憶する。ここで、単位符号パターンには、個々の単位符号パターンを一意に特定するパターン値が付されている。例えば、9C2方式における単位符号パターンに対しては、0〜35のパターン値が付されている。これは、符号配列生成部15が生成した2次元の符号配列における各符号値に対応している。即ち、各符号値から単位符号パターンが一意に特定され、選択されるようになっている。尚、本実施の形態において、このパターン画像記憶部16は、予め定められたm及びnに対応するmCn方式における単位符号パターンを少なくとも記憶していればよい。
符号画像生成部17は、符号配列生成部15が生成した2次元の符号配列を参照し、各符号値に対応した単位符号パターンを選択して符号画像を生成する。
ここで、特殊トナーとしては、可視光領域(400nm〜700nm)における最大吸収率が7%以下であり、近赤外領域(800nm〜1000nm)における吸収率が30%以上の不可視トナーが例示される。ここで、「可視」及び「不可視」は、目視により認識できるかどうかとは関係しない。印刷された媒体に形成された画像が可視光領域における特定の波長の吸収に起因する発色性の有無により認識できるかどうかで「可視」と「不可視」とを区別している。また、可視光領域における特定の波長の吸収に起因する発色性が若干あるが、人間の目で認識し難いものも「不可視」に含める。
図9は、画像処理装置20の構成例を示したブロック図である。
図示するように、画像処理装置20は、画像読取部21と、ドット配列生成部22と、ブロック検出部23と、同期符号検出部24と、回転判定部25と、符号配列回転部26とを備える。また、識別符号検出部30と、識別符号復元部31と、識別符号復号部32と、識別符号誤り検出部33と、識別符号誤り訂正部34とを備える。更に、X座標符号検出部40と、X座標符号復号部42と、X座標符号誤り検出部43と、X座標符号誤り訂正部44と、Y座標符号検出部45と、Y座標符号復号部47と、Y座標符号誤り検出部48と、Y座標符号誤り訂正部49と、情報出力部50とを備える。
ブロック検出部23は、ドット配列上で、符号ブロック内の単位符号パターンに対応するブロックを検出する。即ち、単位符号パターンと同じ大きさをもつ矩形のブロック区切りをドット配列上で適宜動かし、ブロック内のドット数が均等になる位置を正しいブロック区切り位置とし、各ブロック内のパターン値を格納した符号配列を生成する。
回転判定部25は、検出した同期符号に基づいて、画像の回転を判定する。例えば、正方形の単位符号パターンを用いた場合、90度単位で回転している可能性がある。そこで、検出した同期符号が4種類の同期パターンのいずれに対応しているかによって、その向きを検出する。また、長方形の単位符号パターンを用いた場合、180度単位で回転している可能性がある。そこで、検出された同期符号が2種類の同期パターンのいずれに対応しているかによって、その向きを検出する。
符号配列回転部26は、回転判定部25で検出された回転角度だけ符号配列を回転させて、符号配列を正しい向きに設定する。
識別符号復元部31は、検出された識別符号を正しい符号順に並べ替える。
識別符号復号部32は、図8を参照して説明したRS符号の符号化処理で用いたパラメータ(ブロック数等)と同じパラメータを用いて識別符号を復号し、識別情報を出力する。
識別符号誤り検出部33は、復号された識別符号の誤りを検出し、識別符号誤り訂正部34は、検出した誤りが訂正可能な誤りである場合に、その誤りを訂正する。
X座標符号復号部42は、検出されたX座標符号からM系列の部分系列を取り出し、画像生成に使用したM系列におけるこの部分系列の位置を参照し、この位置を同期符号によるオフセットで補正した値をX座標情報として出力する。
X座標符号誤り検出部43は、復号されたX座標符号の誤りを検出し、X座標符号誤り訂正部44は、検出した誤りが訂正可能な誤りである場合に、その誤りを訂正する。
Y座標符号復号部47は、検出されたY座標符号からM系列の部分系列を取り出し、画像生成に使用したM系列におけるこの部分系列の位置を参照し、この位置を同期符号によるオフセットで補正した値をY座標情報として出力する。
Y座標符号誤り検出部48は、復号されたY座標符号の誤りを検出し、Y座標符号誤り訂正部49は、検出した誤りが訂正可能な誤りである場合に、その誤りを訂正する。
まず、画像読取部21が、符号画像が印刷された媒体から、所定の大きさの領域の符号画像を読み取る。ここで、図4に示した1つの符号ブロックから情報を復元するのであれば、1つの符号ブロックだけを含む大きさをこの所定の大きさとして採用すればよい。しかしながら、本実施の形態では、複数の符号ブロックから取り出した符号を用いて、情報を復元するので、複数の符号ブロックを含む大きさをこの所定の大きさとして採用する。そして、画像読取部21は、読み取った画像に対して、ノイズの除去やドットの検出等の画像処理を行う。
その後、ブロック検出部23が、このドット配列にブロック区切りを重ねて、ブロックの境界を検出する。ここで、ブロックとは、図4を参照して説明したように、埋め込まれた情報を復号する際に必要となる最小の単位である。本実施の形態では、符号ブロックとして5ブロック×5ブロックのものを想定している。従って、ブロック区切りとしても、5ブロック×5ブロックの大きさのものを用いる。
まず、ブロック検出部23は、ドット配列生成部22からドット配列を取得する。ここで取得するドット配列のサイズは予め設定されており、(復号に必要なブロック数×ブロックの一辺のドット数+ブロックの一辺のドット数−1)2である。ところが、このドット配列は、画像の任意に選択された領域に対応しているので、ブロック区切りの位置は分からない。そこで、初めに、ドット配列の端を基準にブロック分割を行う。この例では、m=9なので、3ドット×3ドットの大きさのブロックからなるブロック区切りを重ねる。次に、各ブロック内のドットを数える。この例では、n=2なので、各ブロック内に2ドットずつ存在する場合のブロック区切りの位置が正しい区切り位置であるが、この位置ではドット数がばらついており、正しくないことが分かる。そこで、ブロック区切りをずらしてブロック内のドット数を数える。即ち、右方向への開始位置、1ドット分移動した位置、2ドット分移動した位置について同様の動作を行う。また、これらの位置のそれぞれに対し、下方向への開始位置、1ドット移動した位置、2ドット移動した位置についても同様の動作を行う。その結果、右方向に1ドット移動し、下方向に2ドット移動した位置において、全てのブロック内のドット数が「2」となる。従って、この位置を正しい区切り位置とする。
この符号誤りは、画像に汚れ等が発生した場合、余計なドットが加わった場合、CCDの性能によりドット画像が取り込めない場合等に発生する。本実施の形態では、ドット配置可能な領域に一定数のドットを配置する方法を用いていることから、ドット付加やドット落ちがあった場合、誤りであることが分かる。後述するフローチャートでも明らかになるが、ブロックを検出する際には全てのブロック内のドット数が期待する値にならなくてもブロックを決定するので、ブロック内のドット数に誤りが生じている場合があるのである。
(a)は、ノイズによるドット付加の例であり、(b)は、白抜けによるドット落ちの例である。9C2方式を用いてドットを配置した場合、2つのドットが検出されるべきであるのに、(a)では3つのドットが検出され、(b)では1つのドットしか検出されないため、誤りであると分かる。
(a)では、ノイズによるドット付加と、白抜けによるドット落ちが同時に発生している。9C2方式を用いてドットを配置した場合、2つのドットが検出されるので、誤りだと分からず、(b)に示すように、別の単位符号パターンと誤認してしまう。
尚、本明細書では、図11のように、誤りであることが分かり単位符号パターンを特定できない誤りを「特定不能誤り」と称し、図12のように、誤りであることが分からず間違った単位符号パターンを特定してしまう誤りを「誤特定誤り」と称する。
尚、先に述べた第三のレイアウトに含まれる制御パターンのブロックは、単位符号パターンが配置されたブロックでないことが明らかなので、「特定不能誤り」と同等に取り扱うことができる。
ここでは、符号の検出方法として次の2つを提案する。
第1の方法は、N回の画像読み込みで取得したN個の符号配列を用いるというものである。
ここで、Nは、予め設定した数値であるが、例えば、印刷装置や画像読取部の性能によるノイズや白抜けの頻度から決定するとよい。この方法では、N個の符号配列の要素ごとにパターン値のヒストグラムを生成する。そして、最も多いパターン値に対応する単位符号パターンを正しい単位符号パターンとして決定する。
図14に、このときの処理を例示する。図14では、識別符号のうち「I11」のパターン値のヒストグラムを示している。このヒストグラムでは、「I11」のパターン値として、「1」が6回、「2」が2回、「5」が1回現れたことを示している。
このように、ヒストグラムを作成し最も多く現れたパターンを候補として採用するために、「誤特定誤り」があっても、正しいパターンを推測することが可能である。このことから「誤特定誤り」に適した方法であるが、「特定不能誤り」に対しても有効である。
この方法の場合、ペンデバイスには、ペン先に接続された微小スイッチ(以下、「ペンスイッチ」という)と、筆記を行った場合にこのペンスイッチをONにする機構とを設ける。これにより、ストロークの始めから終わりまでの画像を一定時間間隔で読み込めるようにする。
図15に、この方法における処理を示す。
(a)は、1回のストロークを例示したものである。ここでは、平仮名の「あ」の第1画目を筆記する間、ペンスイッチがONになっていることから、これが1回のストロークで筆記された部分であると認識されている。
また、(b),(c)は、第1の方法と第2の方法をストローク上で比較して示したものである。このうち、(b)は、第1の方法について示したものであり、ストロークに関係なく、N個の画像からヒストグラムを生成する。これに対し、(c)は、第2の方法について示したものであり、1回のストロークの始めから終わりまでの画像からヒストグラムを生成する。
また、ここでは、ペンスイッチがONになっている状態で取得した画像からヒストグラムを生成したが、ペンデバイスが特定の状態になっている間に取得した画像からヒストグラムを生成する構成として捉えてもよい。この場合、特定の状態は、ペンデバイスに設けられた他のスイッチを押下した電気的な状態や、ペンデバイスの傾き等の物理的な状態を含むものであってよい。
まず、ブロック検出部23の動作について説明する。
図16は、ブロック検出部23の動作例を示したフローチャートである。
まず、ブロック検出部23は、ドット配列生成部22からドット配列を取得する(ステップ201)。このドット配列の大きさは、上述したように、(復号に必要なブロック数×ブロックの一辺のドット数+ブロックの一辺のドット数−1)2である。本実施の形態では、1つの符号ブロック×1つの符号ブロックが復号に必要なので、復号に必要なブロック数は5×5であり、ブロックの一辺のドット数が3であるので、17×17のドット配列を取得する。
ここで、I、Jは、ブロック区切りを初期位置から移動させたステップ数をカウントするものである。画像の1ラインごとにブロック区切りを移動させ、そのとき移動させたライン数をカウンタI、Jでカウントする。また、MaxBNは、ブロック内で検出されるドット数が「2」となるブロック数をブロック区切りを移動させながらカウントしていったときに、最大となるカウント値を記録するものである。
ここで、I=2でない場合には、Iに「1」を加算する(ステップ209)。そして、ステップ204、205の処理を繰り返し行い、IB[I,J]とMaxBNとを比較していく(ステップ206)。
IB[I,J]が前回までのIB[I,J]の最大値であるMaxBNよりも大きいと、MaxBNにIB[I,J]の値を代入し、そのときのIにMXの値を、JにMYの値を代入する(ステップ207)。また、MaxBNのほうがIB[I,J]よりも大きい場合には、I=2であるかどうかを判定する(ステップ208)。I=2となると、次にJ=2であるかどうかを判定する(ステップ210)。J=2でない場合には、Iに「0」を代入し、Jに「1」を加算する(ステップ211)。このような手順を繰り返し行い、(I,J)が(0,0)から(2,2)までで、IB[I,J]が最大のものを検出する。
ここで、MaxBNが閾値TBよりも大きい場合には、ブロック区切りをMX、MYの位置に固定し、その位置で各ブロックのパターン値を検出する。そして、検出したパターン値を、各ブロックを識別する変数X、Yと共に符号配列PA[X,Y]としてメモリに記録する(ステップ213)。尚、このとき、対応するパターン値に変換することができなければ、パターン値として用いられていない「99」を記録する。そして、ブロック検出部23は、MX、MYと、符号配列PA[X,Y]とを同期符号検出部24に出力する(ステップ214)。
一方、MaxBNが閾値TB以下である場合には、画像のノイズが大きく復号は不可能と判定し、復号不能を出力する(ステップ215)。
図17は、同期符号検出部24の動作例を示したフローチャートである。
まず、同期符号検出部24は、ブロック検出部23からMX、MYと、符号配列PA[X,Y]とを取得する(ステップ251)。
次に、同期符号検出部24は、K、Lに「1」を代入する(ステップ252)。尚、KはX方向のブロック数を示すカウンタであり、LはY方向のブロック数を示すカウンタである。
PA[K,L]のパターン値が32であれば、符号配列PA[X,Y]の回転は必要ないと判定し、同期符号のあるブロックのX座標SXにKを代入し、Y座標SYにLを代入する。また、ブロック区切りのX方向への移動量ShiftXにMXを代入し、Y方向への移動量ShiftYにMYを代入する(ステップ254)。
PA[K,L]のパターン値が33であれば、符号配列PA[X,Y]を左方向に90度回転させる(ステップ256)。図3に示すようにパターン値33の単位符号パターンは、パターン値32の単位符号パターンを右方向に90度回転させた画像であるので、逆方向に90度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、左方向に90度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXにLを代入し、Y座標SYに6−Kを代入する。また、ブロック区切りのX方向への移動量ShiftXにMYを代入し、Y方向への移動量ShiftYに2−MXを代入する(ステップ257)。
PA[K,L]のパターン値が34であれば、符号配列PA[X,Y]を左方向に180度回転させる(ステップ259)。図3に示すようにパターン値34の単位符号パターンは、パターン値32の単位符号パターンを180度回転させた画像であるので、パターン値34の単位符号パターンを180度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、180度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXに6−Kを代入し、Y座標SYに6−Lを代入する。また、ブロック区切りのX方向への移動量ShiftXに2−MXを代入し、Y方向への移動量ShiftYに2−MYを代入する(ステップ260)。
PA[K,L]のパターン値が35であれば、符号配列PA[X,Y]を左方向に270度回転させる(ステップ262)。図3に示すようにパターン値35の単位符号パターンは、パターン値32の単位符号パターンを右に270度回転させた画像であるので、逆方向に270度回転させて画像を正立させている。尚、このとき、符号配列PA[X,Y]内の全てのパターン値が、左方向に270度回転させた場合のパターン値に変換される。
また、この回転に伴って、同期符号のあるブロックのX座標SXに6−Lを代入し、Y座標SYにKを代入する。また、ブロック区切りのX方向への移動量ShiftXに2−MYを代入し、Y方向への移動量ShiftYにMXを代入する(ステップ263)。
また、PA[K,L]がパターン値32〜35のいずれでもなければ、同期符号検出部24は、K=5であるかどうかを判定する(ステップ265)。K=5でない場合には、Kに「1」を加算し(ステップ266)、ステップ253に戻る。K=5であれば、L=5であるかどうかを判定する(ステップ267)。L=5でない場合には、Kに「1」を代入し、Lに「1」を加算し(ステップ268)、ステップ253に戻る。即ち、ステップ253〜264の処理を、パターン値32〜35のブロックを検出するまでK、Lの値を変更しながら繰り返し行う。また、K=5、L=5になっても、パターン値32〜35のブロックを検出することができなかった場合には、復号不能の判定信号を出力する(ステップ269)。
図18は、識別符号検出部30の第1の動作例を示したフローチャートである。
まず、識別符号検出部30は、ペンデバイスによる画像読み取り回数を示すカウンタTに「1」を代入し、判定配列IA[X,Y,P]の全ての要素を「0」で初期化する(ステップ301)。
次に、識別符号検出部30は、同期符号検出部24から符号配列PA[X,Y]、SX、SYを取得する(ステップ302)。そして、符号ブロックにおける各ブロックを識別するためのカウンタIX、IYに「1」を代入する(ステップ303)。ここで、IXは、X方向のブロック数を示すカウンタであり、IYは、Y方向のブロック数を示すカウンタである。
ここで、IY−SYが「5」で割り切れた場合、つまり、このブロックに同期符号が配置されている場合は、識別符号を取り出す対象ではないため、IYに「1」を加算し(ステップ305)、ステップ304へ進む。
一方、IY−SYが「5」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合は、IX−SXが「5」で割り切れるかどうかを判定する(ステップ306)。即ち、IXで特定されるブロックに同期符号が配置されているかどうかを判定する。
一方、IX−SXが「5」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合、識別符号検出部30は、IA[(IX−SX)mod5,(IY−SY)mod5,PA[IX,IY]]に「1」を加算する(ステップ308)。
ここで、IX=5でない場合には、IXに「1」を加算して(ステップ307)、ステップ306〜308の処理をIX=5となるまで繰り返し行う。また、IX=5となると、次に、IY=5であるかどうかを判定する(ステップ310)。IY=5でない場合には、IXに「1」を代入し(ステップ311)、IYに「1」を加算して(ステップ305)、ステップ304〜309の処理をIY=5となるまで繰り返し行う。また、IY=5となると、T=Nであるかどうかを判定する(ステップ312)。その結果、T=Nでない場合には、Tに「1」を加算して(ステップ313)、ステップ302〜311の処理をT=Nとなるまで繰り返し行う。一方、T=Nとなると、これまで求めたIA[X,Y,P]の最大値を求める処理に移る。
次に、識別符号検出部30は、ステップ308で生成した判定配列IA[JX,JY,P]を最大にするPの値を、識別符号配列EA[JX,JY]に格納する(ステップ322)。
そして、JX=4であるかどうかを判定する(ステップ323)。
ここで、JX=4でない場合には、JXに「1」を加算して(ステップ324)、ステップ322の処理をJX=4となるまで繰り返し行う。また、JX=4となると、次に、JY=4であるかどうかを判定する(ステップ325)。JY=4でない場合には、JXに「1」を代入し、JYに「1」を加算して(ステップ326)、ステップ322〜324の処理をJY=4となるまで繰り返し行う。また、JY=4となると、識別符号検出部30は、識別符号配列EA[JX,JY]を識別符号復元部31に出力する(ステップ327)。
まず、識別符号検出部30は、判定配列IA[X,Y,P]の全ての要素を「0」で初期化する(ステップ351)。
次に、識別符号検出部30は、同期符号検出部24から符号配列PA[X,Y]、SX、SYを取得する(ステップ352)。そして、符号ブロックにおける各ブロックを識別するためのカウンタIX、IYに「1」を代入する(ステップ353)。ここで、IXは、X方向のブロック数を示すカウンタであり、IYは、Y方向のブロック数を示すカウンタである。
ここで、IY−SYが「5」で割り切れた場合、つまり、このブロックに同期符号が配置されている場合は、識別符号を取り出す対象ではないため、IYに「1」を加算し(ステップ355)、ステップ354へ進む。
一方、IY−SYが「5」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合は、IX−SXが「5」で割り切れるかどうかを判定する(ステップ356)。即ち、IXで特定されるブロックに同期符号が配置されているかどうかを判定する。
一方、IX−SXが「5」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合、識別符号検出部30は、IA[(IX−SX)mod5,(IY−SY)mod5,PA[IX,IY]]に「1」を加算する(ステップ358)。
ここで、IX=5でない場合には、IXに「1」を加算して(ステップ357)、ステップ356〜358の処理をIX=5となるまで繰り返し行う。また、IX=5となると、次に、IY=5であるかどうかを判定する(ステップ360)。IY=5でない場合には、IXに「1」を代入し(ステップ361)、IYに「1」を加算して(ステップ355)、ステップ354〜359の処理をIY=5となるまで繰り返し行う。また、IY=5となると、ペンスイッチがONであるかどうかを判定する(ステップ362)。その結果、ONである場合には、ステップ352〜361の処理をペンスイッチがOFFとなるまで繰り返し行う。一方、ペンスイッチがOFFとなると、これまで求めたIA[X,Y,P]の最大値を求める処理に移る。
次に、識別符号検出部30は、ステップ358で生成した判定配列IA[JX,JY,P]を最大にするPの値を、識別符号配列EA[JX,JY]に格納する(ステップ372)。
そして、JX=4であるかどうかを判定する(ステップ373)。
ここで、JX=4でない場合には、JXに「1」を加算して(ステップ374)、ステップ372の処理をJX=4となるまで繰り返し行う。また、JX=4となると、次に、JY=4であるかどうかを判定する(ステップ375)。JY=4でない場合には、JXに「1」を代入し、JYに「1」を加算して(ステップ376)、ステップ372〜374の処理をJY=4となるまで繰り返し行う。また、JY=4となると、識別符号検出部30は、識別符号配列EA[JX,JY]を識別符号復元部31に出力する(ステップ377)。
図20は、X座標符号検出部40の動作例を示したフローチャートである。
まず、X座標符号検出部40は、同期符号検出部24から符号配列PA[X,Y]、SX、SYを取得する(ステップ401)。
次に、X座標符号検出部40は、X座標符号配列EA[X,0]の全ての要素を「99」で初期化する(ステップ402)。尚、この「99」は、パターン値として用いられていない番号とする。そして、符号ブロックにおける各ブロックを識別するためのカウンタIX、IYに「1」を代入する。ここで、IXは、X方向のブロック数を示すカウンタであり、IYは、Y方向のブロック数を示すカウンタである。更に、X座標符号検出部40は、X座標符号配列における各要素を識別するためのカウンタKXにも「1」を代入する(ステップ403)。
ここで、IY−SYが「5」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合は、X座標符号を取り出す対象ではないため、IYに「1」を加算し(ステップ405)、ステップ404へ進む。
一方、IY−SYが「5」で割り切れた場合、つまり、このブロックに同期符号が配置されている場合、X座標符号検出部40は、IX−SXが「5」で割り切れるかどうかを判定する(ステップ406)。即ち、IXで特定されるブロックに同期符号が配置されているかどうかを判定する。
一方、IX−SXが「5」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合、X座標符号検出部40は、EA[KX,0]にPA[IX,IY]を代入する(ステップ408)。
ここで、IX=5でない場合には、KXに「1」を加算し(ステップ410)、IXに「1」を加算して(ステップ407)、ステップ406〜408の処理をIX=5となるまで繰り返し行う。また、IX=5となると、次に、IY=5であるかどうかを判定する(ステップ411)。IY=5でない場合には、IX、KXに「1」を代入し(ステップ412)、IYに「1」を加算して(ステップ405)、ステップ404〜410の処理をIY=5となるまで繰り返し行う。また、IY=5となると、X座標符号検出部40は、X座標符号配列EA[X,0]をX座標符号復号部42に出力する(ステップ413)。
尚、ここでは、X座標符号検出部40の動作のみ説明したが、Y座標符号検出部45も同様の動作を行う。
以上により、本実施の形態における画像処理装置20の詳細な動作説明を終了する。
まず、画像処理装置20を実現するペンデバイス60について説明する。
図21は、ペンデバイス60の機構を示した図である。
図示するように、ペンデバイス60は、ペン全体の動作を制御する制御回路61を備える。また、制御回路61は、入力画像から検出した符号画像を処理する画像処理部61aと、そこでの処理結果から識別情報及び位置情報を抽出するデータ処理部61bとを含む。
そして、制御回路61には、ペンデバイス60による筆記動作をペンチップ69に加わる圧力によって検出する圧力センサ62が接続されている。また、媒体上に赤外光を照射する赤外LED63と、画像を入力する赤外CMOS64も接続されている。更に、識別情報及び位置情報を記憶するための情報メモリ65と、外部装置と通信するための通信回路66と、ペンを駆動するためのバッテリ67と、ペンの識別情報(ペンID)を記憶するペンIDメモリ68も接続されている。
図22は、コンピュータ90のハードウェア構成を示した図である。
図示するように、コンピュータ90は、演算手段であるCPU(Central Processing Unit)91と、記憶手段であるメインメモリ92及び磁気ディスク装置(HDD:Hard Disk Drive)93とを備える。ここで、CPU91は、OS(Operating System)やアプリケーション等の各種ソフトウェアを実行し、上述した各機能を実現する。また、メインメモリ92は、各種ソフトウェアやその実行に用いるデータ等を記憶する記憶領域であり、磁気ディスク装置93は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。
更に、コンピュータ90は、外部との通信を行うための通信I/F94と、ビデオメモリやディスプレイ等からなる表示機構95と、キーボードやマウス等の入力デバイス96とを備える。
Claims (7)
- ビット列を表す画像であって、m(m≧3)箇所から選択したn(1≦n<m)箇所に単位画像を配置してなる複数のパターン画像からなり、当該複数のパターン画像がそれぞれ当該ビット列の複数の部分列を表す画像が繰り返し印刷された媒体から読み取られた当該画像を取得する取得手段と、
前記取得手段により順次取得された複数の前記画像がそれぞれ表す複数のビット列を、各ビット列の複数の部分列のうち、m箇所から選択したn箇所に単位画像を配置してなるパターン画像に対応する部分列は当該パターン画像が表す部分列として、検出する検出手段と、
前記検出手段により検出された前記複数のビット列のうちの特定のビット列における特定の部分列が、前記検出手段により検出された前記複数のビット列における当該特定の部分列に対応する部分列のうち最も多く検出されたものである場合に、当該特定のビット列における当該特定の部分列を1つのビット列における当該特定の部分列に対応する部分列とすることにより、当該1つのビット列を決定する決定手段と
を備えたことを特徴とする画像処理装置。 - 前記取得手段により順次取得された前記複数の画像は、予め決められた数の画像であることを特徴とする請求項1記載の画像処理装置。
- 前記取得手段により順次取得された前記複数の画像は、前記媒体から画像を読み取る読取装置が特定の状態になっている間に当該媒体から読み取られた画像であることを特徴とする請求項1記載の画像処理装置。
- 前記1つのビット列は、前記媒体又は前記媒体に印刷された文書を識別する識別情報を表すビット列であることを特徴とする請求項1記載の画像処理装置。
- コンピュータに、
ビット列を表す画像であって、m(m≧3)箇所から選択したn(1≦n<m)箇所に単位画像を配置してなる複数のパターン画像からなり、当該複数のパターン画像がそれぞれ当該ビット列の複数の部分列を表す画像が繰り返し印刷された媒体から読み取られた当該画像を取得する機能と、
順次取得された複数の前記画像がそれぞれ表す複数のビット列を、各ビット列の複数の部分列のうち、m箇所から選択したn箇所に単位画像を配置してなるパターン画像に対応する部分列は当該パターン画像が表す部分列として、検出する機能と、
検出された前記複数のビット列のうちの特定のビット列における特定の部分列が、検出された前記複数のビット列における当該特定の部分列に対応する部分列のうち最も多く検出されたものである場合に、当該特定のビット列における当該特定の部分列を1つのビット列における当該特定の部分列に対応する部分列とすることにより、当該1つのビット列を決定する機能と
を実現させるためのプログラム。 - 順次取得された前記複数の画像は、予め決められた数の画像であることを特徴とする請求項5記載のプログラム。
- 順次取得された前記複数の画像は、前記媒体から画像を読み取る読取装置が特定の状態になっている間に当該媒体から読み取られた画像であることを特徴とする請求項5記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007142549A JP4973316B2 (ja) | 2007-05-29 | 2007-05-29 | 画像処理装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007142549A JP4973316B2 (ja) | 2007-05-29 | 2007-05-29 | 画像処理装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008299442A JP2008299442A (ja) | 2008-12-11 |
JP4973316B2 true JP4973316B2 (ja) | 2012-07-11 |
Family
ID=40172941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007142549A Active JP4973316B2 (ja) | 2007-05-29 | 2007-05-29 | 画像処理装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4973316B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5609469B2 (ja) * | 2010-09-15 | 2014-10-22 | 富士ゼロックス株式会社 | 画像処理装置、識別装置、電子筆記具及びプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3523618B2 (ja) * | 2001-08-02 | 2004-04-26 | シャープ株式会社 | 座標入力システムおよび座標入力システムに用いる座標パターン形成用紙 |
JP4556705B2 (ja) * | 2005-02-28 | 2010-10-06 | 富士ゼロックス株式会社 | 2次元座標同定装置、画像形成装置及び2次元座標同定方法 |
JP4810918B2 (ja) * | 2005-08-01 | 2011-11-09 | 富士ゼロックス株式会社 | コードパターン画像生成装置及び方法、コードパターン画像読取装置及び方法、及びコードパターン画像媒体 |
-
2007
- 2007-05-29 JP JP2007142549A patent/JP4973316B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2008299442A (ja) | 2008-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4289350B2 (ja) | 画像処理装置及び画像処理方法 | |
JP4207049B2 (ja) | 同定機能付き印刷物、画像生成装置、画像処理装置及びその方法 | |
JP2006525593A (ja) | 位置復号のための方法、装置、コンピュータプログラム及び記憶媒体本願は、ともに参照することにより本書に含まれる2003年4月29日に出願されたスウェーデン特許出願番号第0301248−1号、及び2003年4月29日に出願された米国特許仮出願番号第60/466,036号の利益を主張する。 | |
JP5971098B2 (ja) | 情報処理装置及び情報処理プログラム | |
US8019181B2 (en) | Image generation apparatus, image processing apparatus, computer readable medium and computer data signal | |
JP4670740B2 (ja) | 画像生成装置、画像処理システム、及びプログラム | |
JP5609469B2 (ja) | 画像処理装置、識別装置、電子筆記具及びプログラム | |
JP4967823B2 (ja) | 位置検出装置及びプログラム | |
JP4985436B2 (ja) | 位置検出装置及びプログラム | |
US8657205B2 (en) | Image processing apparatus, identification apparatus, method for determining bit sequence and computer readable medium | |
JP4973316B2 (ja) | 画像処理装置及びプログラム | |
JP4973317B2 (ja) | 画像処理装置及びプログラム | |
JP5098441B2 (ja) | 画像処理装置及びプログラム | |
JP5125548B2 (ja) | 画像処理装置及びプログラム | |
JP5125547B2 (ja) | 画像生成装置、画像処理装置、プログラム、及び印刷媒体 | |
JP5115213B2 (ja) | 画像生成装置、画像処理装置、プログラム、及び印刷媒体 | |
JP2009181341A (ja) | 位置検出装置及びプログラム | |
JP2009176251A (ja) | 画像処理装置及びプログラム | |
JP2008301120A (ja) | 画像処理装置、画像生成装置、及びプログラム | |
JP5028955B2 (ja) | 画像処理装置及びプログラム | |
JP2009182823A (ja) | 画像処理装置及びプログラム | |
JP4765894B2 (ja) | 画像生成装置、情報読み取り装置および記録媒体 | |
JP4915211B2 (ja) | 画像生成装置、印刷媒体、及びプログラム | |
JP7109398B2 (ja) | 画像表示媒体、画像処理装置、画像処理方法、及びプログラム | |
JP2008301128A (ja) | 画像処理装置、画像生成装置、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100423 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110816 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111017 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120313 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120326 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4973316 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150420 Year of fee payment: 3 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |