(57)【特許請求の範囲】
【請求項１】
特定のビット列を表す画像が繰り返し配置された繰り返し画像が印刷された媒体から読み取られた当該繰り返し画像を取得する画像取得手段と、
前記画像取得手段により取得された前記繰り返し画像に含まれる複数の画像の読み取りの状態をそれぞれ示す複数の状態情報を取得する情報取得手段と、
前記画像取得手段により取得された前記繰り返し画像に含まれる前記複数の画像から複数のビット列のそれぞれを検出する検出手段と、
前記検出手段により検出された前記複数のビット列と、前記情報取得手段により取得された前記複数の状態情報とに基づいて、前記特定のビット列を決定する決定手段と
を備え、
前記決定手段は、前記複数の画像のうちの特定の画像の読み取りの状態を示す特定の状態情報に応じた割合で、前記検出手段により当該特定の画像から検出されたビット列を加味することにより、前記特定のビット列を決定することを特徴とする画像処理装置。
【請求項２】
前記決定手段は、前記複数の画像のうちの前記検出手段により第１のビット列が検出された少なくとも１つの画像の読み取りの状態をそれぞれ示す少なくとも１つの状態情報が、前記複数の画像のうちの前記検出手段により第２のビット列が検出された少なくとも１つの画像の読み取りの状態をそれぞれ示す少なくとも１つの状態情報よりも良い状態を示している場合に、当該第１のビット列を前記特定のビット列に決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記決定手段は、前記複数の画像のうちの前記検出手段により一のビット列が検出された少なくとも１つの画像の読み取りの状態をそれぞれ示す少なくとも１つの状態情報が、前記複数の画像のうちの前記検出手段により他の一のビット列が検出された少なくとも１つの画像の読み取りの状態をそれぞれ示す少なくとも１つの状態情報の何れよりも良い状態を示している場合に、当該一のビット列を前記特定のビット列に決定することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記決定手段は、前記複数の画像のうちの特定の画像の読み取りの状態を示す特定の状態情報が予め定められた良い状態を示している場合に、前記検出手段により当該特定の画像から検出されたビット列を前記特定のビット列に決定することを特徴とする請求項１乃至３の何れかに記載の画像処理装置。
【請求項５】
媒体又は媒体に印刷された電子文書の識別情報を示す特定のビット列を表す画像が繰り返し配置された繰り返し画像が印刷された当該媒体から当該繰り返し画像を読み取る読取手段と、
前記読取手段により読み取られた前記繰り返し画像に含まれる複数の画像の読み取りの状態をそれぞれ示す複数の状態情報を取得する情報取得手段と、
前記読取手段により読み取られた前記繰り返し画像に含まれる前記複数の画像から複数のビット列のそれぞれを検出する検出手段と、
前記検出手段により検出された前記複数のビット列と、前記情報取得手段により取得された前記複数の状態情報とに基づいて、前記特定のビット列を決定する決定手段と、
前記決定手段により決定された前記特定のビット列が示す前記識別情報を出力する出力手段と
を備え、
前記決定手段は、前記複数の画像のうちの特定の画像の読み取りの状態を示す特定の状態情報に応じた割合で、前記検出手段により当該特定の画像から検出されたビット列を加味することにより、前記特定のビット列を決定することを特徴とする識別装置。
【請求項６】
媒体上の位置を示す位置情報を示す特定のビット列を表す画像が繰り返し配置された繰り返し画像が印刷された当該媒体に対する筆記に用いられると、当該媒体から当該繰り返し画像を読み取る読取手段と、
前記読取手段により読み取られた前記繰り返し画像に含まれる複数の画像の読み取りの状態をそれぞれ示す複数の状態情報を取得する情報取得手段と、
前記読取手段により読み取られた前記繰り返し画像に含まれる前記複数の画像から複数のビット列のそれぞれを検出する検出手段と、
前記検出手段により検出された前記複数のビット列と、前記情報取得手段により取得された前記複数の状態情報とに基づいて、前記特定のビット列を決定する決定手段と、
前記決定手段により決定された前記特定のビット列が示す前記位置情報に基づいて、前記筆記の軌跡を電子化した筆記データを生成する生成手段と、
前記生成手段により生成された前記筆記データを出力する出力手段と
を備え、
前記決定手段は、前記複数の画像のうちの特定の画像の読み取りの状態を示す特定の状態情報に応じた割合で、前記検出手段により当該特定の画像から検出されたビット列を加味することにより、前記特定のビット列を決定することを特徴とする電子筆記具。
【請求項７】
コンピュータに、
特定のビット列を表す画像が繰り返し配置された繰り返し画像が印刷された媒体から読み取られた当該繰り返し画像を取得する機能と、
取得された前記繰り返し画像に含まれる複数の画像の読み取りの状態をそれぞれ示す複数の状態情報を取得する機能と、
取得された前記繰り返し画像に含まれる前記複数の画像から複数のビット列のそれぞれを検出する機能と、
検出された前記複数のビット列と、取得された前記複数の状態情報とに基づいて、前記特定のビット列を決定する機能と
を実現させ、
前記決定する機能は、前記複数の画像のうちの特定の画像の読み取りの状態を示す特定の状態情報に応じた割合で、前記検出する機能により当該特定の画像から検出されたビット列を加味することにより、前記特定のビット列を決定するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、識別装置、電子筆記具、プログラムに関する。
【背景技術】
【０００２】
表面上の複数の位置を符号化する位置コードを提供する方法は知られている（例えば、特許文献１参照）。この特許文献１では、循環数字列を表面に沿って複数回印刷する。その際、循環数字列の異なるローテーションを、隣り合う数字列間で所定のずれが起こるように使用し、表面を分割した複数のコードウィンドウが、少なくとも３つの循環数字列を備えると共に、隣り合うコードウィンドウの１つの数字列と重なり合う１つの数字列を有するものであり、また、コードウィンドウの位置を、そのコードウィンドウに属している循環数字列間のずれによって符号化している。
【０００３】
記録材上に形成される画像を識別するため、記録材上に繰り返し形成される画像識別情報を符号化したパターンと、記録材上での座標値を符号化したパターンとを背景画像として記録した印刷物も知られている（例えば、特許文献２参照）。この特許文献２では、画像識別情報を符号化したパターンを、画像識別情報を符号化して得られる第１パターン値に、座標値を符号化して得られるパターン値を加算した値を基に得られる第２パターン値を表すパターンとしている。
【０００４】
情報単位となるブロックが連続的に設定され、各ブロック内に、一定数の複数ドットが選択的に設定されたコードパターンを背景とする背景画像と、画像データとが合成された画像を読み込んで、コードパターンとして埋め込まれた情報を特定する画像処理装置も知られている（例えば、特許文献３参照）。この特許文献３では、読み込まれた画像データからドットを検出し、各ドットの座標値に基づいて形成される各ページのドット配置にブロックを複数連ねたブロックフレームを重ね合わせて移動してブロックの区切り位置を検出し、各ブロック内からコードパターンを検出してコードパターンの中から回転させても他のコードパターンとドット配列が一致しない同期符号のパターンを検出し、同期符号の向きに応じてコードパターンを所定角度回転させ、同期符号のコードパターンに対して所定位置にあるブロック内のコードパターンから順次コードパターンを読み込んでページ番号を示す情報を復号している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００３−５１１７６２号公報
【特許文献２】特許第４２０７０４９号公報
【特許文献３】特許第４２８９３５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、画像が表すビット列をその画像が繰り返し配置された繰り返し画像における複数の画像の読み取りの状態を考慮して決定することにある。
【課題を解決するための手段】
【０００７】
請求項１に記載の発明は、特定のビット列を表す画像が繰り返し配置された繰り返し画像が印刷された媒体から読み取られた当該繰り返し画像を取得する画像取得手段と、前記画像取得手段により取得された前記繰り返し画像に含まれる複数の画像の読み取りの状態をそれぞれ示す複数の状態情報を取得する情報取得手段と、前記画像取得手段により取得された前記繰り返し画像に含まれる前記複数の画像から複数のビット列のそれぞれを検出する検出手段と、前記検出手段により検出された前記複数のビット列と、前記情報取得手段により取得された前記複数の状態情報とに基づいて、前記特定のビット列を決定する決定手段とを備え、前記決定手段は、前記複数の画像のうちの特定の画像の読み取りの状態を示す特定の状態情報に応じた割合で、前記検出手段により当該特定の画像から検出されたビット列を加味することにより、前記特定のビット列を決定することを特徴とする画像処理装置である。
請求項２に記載の発明は、前記決定手段は、前記複数の画像のうちの前記検出手段により第１のビット列が検出された少なくとも１つの画像の読み取りの状態をそれぞれ示す少なくとも１つの状態情報が、前記複数の画像のうちの前記検出手段により第２のビット列が検出された少なくとも１つの画像の読み取りの状態をそれぞれ示す少なくとも１つの状態情報よりも良い状態を示している場合に、当該第１のビット列を前記特定のビット列に決定することを特徴とする請求項１に記載の画像処理装置である。
請求項３に記載の発明は、前記決定手段は、前記複数の画像のうちの前記検出手段により一のビット列が検出された少なくとも１つの画像の読み取りの状態をそれぞれ示す少なくとも１つの状態情報が、前記複数の画像のうちの前記検出手段により他の一のビット列が検出された少なくとも１つの画像の読み取りの状態をそれぞれ示す少なくとも１つの状態情報の何れよりも良い状態を示している場合に、当該一のビット列を前記特定のビット列に決定することを特徴とする請求項１又は２に記載の画像処理装置である。
請求項４に記載の発明は、前記決定手段は、前記複数の画像のうちの特定の画像の読み取りの状態を示す特定の状態情報が予め定められた良い状態を示している場合に、前記検出手段により当該特定の画像から検出されたビット列を前記特定のビット列に決定することを特徴とする請求項１乃至３の何れかに記載の画像処理装置である。
請求項５に記載の発明は、媒体又は媒体に印刷された電子文書の識別情報を示す特定のビット列を表す画像が繰り返し配置された繰り返し画像が印刷された当該媒体から当該繰り返し画像を読み取る読取手段と、前記読取手段により読み取られた前記繰り返し画像に含まれる複数の画像の読み取りの状態をそれぞれ示す複数の状態情報を取得する情報取得手段と、前記読取手段により読み取られた前記繰り返し画像に含まれる前記複数の画像から複数のビット列のそれぞれを検出する検出手段と、前記検出手段により検出された前記複数のビット列と、前記情報取得手段により取得された前記複数の状態情報とに基づいて、前記特定のビット列を決定する決定手段と、前記決定手段により決定された前記特定のビット列が示す前記識別情報を出力する出力手段とを備え、前記決定手段は、前記複数の画像のうちの特定の画像の読み取りの状態を示す特定の状態情報に応じた割合で、前記検出手段により当該特定の画像から検出されたビット列を加味することにより、前記特定のビット列を決定することを特徴とする識別装置である。
請求項６に記載の発明は、媒体上の位置を示す位置情報を示す特定のビット列を表す画像が繰り返し配置された繰り返し画像が印刷された当該媒体に対する筆記に用いられると、当該媒体から当該繰り返し画像を読み取る読取手段と、前記読取手段により読み取られた前記繰り返し画像に含まれる複数の画像の読み取りの状態をそれぞれ示す複数の状態情報を取得する情報取得手段と、前記読取手段により読み取られた前記繰り返し画像に含まれる前記複数の画像から複数のビット列のそれぞれを検出する検出手段と、前記検出手段により検出された前記複数のビット列と、前記情報取得手段により取得された前記複数の状態情報とに基づいて、前記特定のビット列を決定する決定手段と、前記決定手段により決定された前記特定のビット列が示す前記位置情報に基づいて、前記筆記の軌跡を電子化した筆記データを生成する生成手段と、前記生成手段により生成された前記筆記データを出力する出力手段とを備え、前記決定手段は、前記複数の画像のうちの特定の画像の読み取りの状態を示す特定の状態情報に応じた割合で、前記検出手段により当該特定の画像から検出されたビット列を加味することにより、前記特定のビット列を決定することを特徴とする電子筆記具である。
請求項７に記載の発明は、コンピュータに、特定のビット列を表す画像が繰り返し配置された繰り返し画像が印刷された媒体から読み取られた当該繰り返し画像を取得する機能と、取得された前記繰り返し画像に含まれる複数の画像の読み取りの状態をそれぞれ示す複数の状態情報を取得する機能と、取得された前記繰り返し画像に含まれる前記複数の画像から複数のビット列のそれぞれを検出する機能と、検出された前記複数のビット列と、取得された前記複数の状態情報とに基づいて、前記特定のビット列を決定する機能とを実現させ、前記決定する機能は、前記複数の画像のうちの特定の画像の読み取りの状態を示す特定の状態情報に応じた割合で、前記検出する機能により当該特定の画像から検出されたビット列を加味することにより、前記特定のビット列を決定するプログラムである。
【発明の効果】
【０００８】
請求項１の発明によれば、画像が表すビット列をその画像が繰り返し配置された繰り返し画像における複数の画像の読み取りの状態を考慮して決定することができる。
請求項２の発明によれば、画像が表すビット列がその画像が繰り返し配置された繰り返し画像における１つのビット列が検出される２つの画像群のうち読み取りの状態が良い画像群から検出されたビット列であることを決定することができる。
請求項３の発明によれば、画像が表すビット列がその画像が繰り返し配置された繰り返し画像における１つのビット列が検出される複数の画像群のうち読み取りの状態が最も良い画像群から検出されたビット列であることを決定することができる。
請求項４の発明によれば、画像が表すビット列がその画像が繰り返し配置された繰り返し画像における読み取りの状態が良い画像から検出されたビット列であることを決定することができる。
請求項５の発明によれば、画像が表すビット列をその画像が繰り返し配置された繰り返し画像における複数の画像の読み取りの状態を考慮して決定することができる。
請求項６の発明によれば、画像が表すビット列をその画像が繰り返し配置された繰り返し画像における複数の画像の読み取りの状態を考慮して決定することができる。
請求項７の発明によれば、画像が表すビット列をその画像が繰り返し配置された繰り返し画像における複数の画像の読み取りの状態を考慮して決定することができる。
【図面の簡単な説明】
【０００９】
【図１】９Ｃ２方式及び９Ｃ３方式における符号パターンの一例を示した図である。
【図２】９Ｃ２方式における全符号パターンの一例を示した図である。
【図３】９Ｃ３方式における全符号パターンの一例を示した図である。
【図４】９Ｃ２方式及び９Ｃ３方式における同期パターンの例を示した図である。
【図５】符号ブロックの基本的なレイアウトの例を示した図である。
【図６】Ｍ系列による座標の表現について説明するための図である。
【図７】符号ブロックの広範囲のレイアウトの例を示した図である。
【図８】本実施の形態における画像処理装置の機能構成例を示したブロック図である。
【図９】ドット配列及びドット信頼度配列の生成について示した図である。
【図１０】ドット信頼度の算出方法の一例を説明するための図である。
【図１１】ドット配列上でブロックを検出する際の処理を説明するための図である。
【図１２】符号配列の一例を示した図である。
【図１３】ブロック信頼度の求め方及びブロック信頼度配列の一例を示した図である。
【図１４】ブロック信頼度の利用方法の一例を説明するための図である。
【図１５】ブロック信頼度の利用方法の一例を説明するための図である。
【図１６】ブロック信頼度の利用方法の一例を説明するための図である。
【図１７】本実施の形態におけるブロック検出部の動作例を示したフローチャートである。
【図１８】本実施の形態における同期符号検出部の動作例を示したフローチャートである。
【図１９】本実施の形態における識別符号検出部等の動作例を示したフローチャートである。
【図２０】本実施の形態におけるＸ座標符号検出部等の動作例を示したフローチャートである。
【図２１】本実施の形態における画像処理装置を実現可能なペンデバイスの機構を示した図である。
【図２２】本実施の形態を適用可能なコンピュータのハードウェア構成図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
まず、本実施の形態で利用する符号化方式について説明する。
本実施の形態における符号化方式では、ｍ（ｍ≧３）箇所から選択したｎ（１≦ｎ＜ｍ）箇所に単位画像を配置してなるパターン画像（以下、「符号パターン」という）によってｍＣｎ（＝ｍ！／｛（ｍ−ｎ）！×ｎ！｝）通りの情報を表現する。つまり、１つの単位画像を情報に対応させるのではなく、複数の単位画像を情報に対応させている。仮に１つの単位画像を情報に対応させたとすると、単位画像が欠損したり、ノイズが加わったりした場合に、誤った情報を表現してしまうという欠点がある。これに対して、例えば２つの単位画像を情報に対応させたとすると、単位画像が１つであったり３つであったりした場合に、容易に誤りであることが分かる。更に、１つの単位画像で１ビット、又は、高々２ビットを表現する方法では、情報を表現するための情報パターンと視覚的に似たパターンで、情報パターンの読出しを制御する同期パターンを表現することができない。このようなことから、本実施の形態では、上記のような符号化方式を採用している。以下では、このような符号化方式をｍＣｎ方式と称する。
ここで、単位画像としては、如何なる形状のものを用いてもよい。本実施の形態では、単位画像の一例としてドット画像（以下、単に「ドット」という）を用いるが、例えば、斜線パターン等、他の形状の画像であってもよい。
【００１１】
図１に、ｍＣｎ方式における符号パターンの例を示す。
図では、黒色の領域と斜線の領域をドット配置可能な領域とし、その間にある白色の領域をドット配置不可能な領域としている。そして、ドット配置可能な領域のうち、黒色の領域にドットが配置され、斜線の領域にはドットが配置されていないことを示している。即ち、図１は、縦３×横３の合計９個のドット配置可能な領域を設けた例を示しており、このうち、（ａ）は、９個のドット配置可能な領域に２ドットを配置する９Ｃ２方式における符号パターンの一例を、（ｂ）は、９個のドット配置可能な領域に３ドットを配置する９Ｃ３方式における符号パターンの一例を示している。
【００１２】
但し、図１で配置されるドット（黒色の領域）は、あくまで情報表現のためのドットであり、画像を構成する最小単位であるドット（図１の最小の四角）とは一致していない。本実施の形態において、「ドット」というときは前者のドットを指し、後者のドットは「ピクセル」と呼ぶことにすれば、ドットは、６００ｄｐｉにおける２ピクセル×２ピクセルの大きさを有することになる。６００ｄｐｉにおける１ピクセルの一辺の長さは０．０４２３ｍｍなので、１ドットの一辺の長さは、８４．６μｍ（＝０．０４２３ｍｍ×２）となる。ドットは、大きくなればなるほど目に付きやすくなるため、小さいほうが好ましい。ところが、あまり小さくすると、プリンタで印刷できなくなってしまう。そこで、ドットの大きさとして、５０μｍより大きく１００μｍより小さい上記の値を採用している。但し、上記の値８４．６μｍは、あくまで計算上の数値であり、実際に印刷されたトナー像では１００μｍ程度になる。
【００１３】
次いで、図２に、９Ｃ２方式における全符号パターンの例を示す。尚、ここでは、ドット間の空白は省略している。図示するように、９Ｃ２方式では、３６（＝９Ｃ２）通りの符号パターンが利用される。また、全符号パターンに対して、各符号パターンを一意に識別するための番号であるパターン値が付される。図では、各符号パターンに対するこのパターン値の割り当ての例も示している。但し、図に示した対応はあくまで一例であり、どの符号パターンにどのパターン値を割り当ててもよい。
【００１４】
また、図３に、９Ｃ３方式における全符号パターンの例を示す。尚、ここでも、ドット間の空白は省略している。図示するように、９Ｃ３方式では、８４（＝９Ｃ３）通りの符号パターンが利用される。また、この場合も、全符号パターンに対して、各符号パターンを一意に識別するための番号であるパターン値が付される。図では、各符号パターンに対するこのパターン値の割り当ての例も示している。但し、この場合も、図に示した対応はあくまで一例であり、どの符号パターンにどのパターン値を割り当ててもよい。
【００１５】
尚、ここでは、符号パターンが配置される領域（以下、「パターンブロック」という）の大きさを、３ドット×３ドットを配置可能な大きさとした。しかしながら、パターンブロックの大きさはこれに限るものではない。つまり、２ドット×２ドット、４ドット×４ドット等を配置可能な大きさであってもよい。
また、パターンブロックの形状として、正方形でなく、例えば３ドット×４ドットを配置する場合のように長方形を採用してもよい。尚、本明細書において、長方形とは、隣り合う２辺の長さが等しくない矩形、つまり、正方形以外の矩形のことをいうものとする。
更に、任意に決めた数のドット配置可能な領域のうち、幾つの領域にドットを配置するかも、表現したい情報の量と許容できる画像濃度とを考慮して決めるとよい。
【００１６】
このように、本実施の形態では、ｍ箇所からｎ箇所を選択することでｍＣｎ種類の符号パターンを用意している。そして、これらの符号パターンのうち、特定のパターンを情報パターンとして利用し、残りを同期パターンとして利用する。ここで、情報パターンとは、媒体に埋め込む情報を表現するパターンである。また、同期パターンとは、媒体に埋め込まれた情報パターンを取り出すために用いられるパターンである。例えば、情報パターンの位置を特定したり、画像の回転を検出したりするために用いられる。尚、媒体としては、画像を印刷することが可能であれば、如何なるものを用いてもよい。紙が代表例なので、以下では媒体を紙として説明するが、金属、プラスチック、繊維等であってもよい。
【００１７】
ここで、図２又は図３に示した符号パターンのうちの同期パターンについて説明する。尚、これらの符号パターンを利用する場合、パターンブロックの形状は正方形となるため、画像の回転を９０度単位で認識する必要がある。従って、４種類の符号パターンで１組の同期パターンが構成される。
図４（ａ）は、９Ｃ２方式における同期パターンの例である。ここでは、３６種類の符号パターンのうち、３２種類の符号パターンを５ビットの情報を表現する情報パターンとし、残りの４種類の符号パターンで１組の同期パターンを構成するものとする。例えば、パターン値「３２」の符号パターンを正立した同期パターン、パターン値「３３」の符号パターンを右に９０度回転した同期パターン、パターン値「３４」の符号パターンを右に１８０度回転した同期パターン、パターン値「３５」の符号パターンを右に２７０度回転した同期パターンとしている。但し、３６種類の符号パターンの情報パターンと同期パターンへの振り分け方は、これには限らない。例えば、１６種類の符号パターンを４ビットの情報を表現する情報パターンとし、残りの２０種類の符号パターンで５組の同期パターンを構成してもよい。
【００１８】
また、図４（ｂ）は、９Ｃ３方式における同期パターンの例である。ここでは、８４種類の符号パターンのうち、６４種類の符号パターンを６ビットの情報を表現する情報パターンとし、残りの２０種類の符号パターンで５組の同期パターンを構成するものとする。図は、この５組の同期パターンのうちの２組を示す。例えば、第１組においては、パターン値「６４」の符号パターンを正立した同期パターン、パターン値「６５」の符号パターンを右に９０度回転した同期パターン、パターン値「６６」の符号パターンを右に１８０度回転した同期パターン、パターン値「６７」の符号パターンを右に２７０度回転した同期パターンとしている。また、第２組においては、パターン値「６８」の符号パターンを正立した同期パターン、パターン値「６９」の符号パターンを右に９０度回転した同期パターン、パターン値「７０」の符号パターンを右に１８０度回転した同期パターン、パターン値「７１」の符号パターンを右に２７０度回転した同期パターンとしている。
【００１９】
尚、図示しないが、パターンブロックの形状が長方形である場合は、画像の回転の検出のために２種類の符号パターンを同期パターンとして用意すればよい。例えば、縦３ドット×横４ドットを配置可能な領域が検出されるべきなのに、縦４ドット×横３ドットを配置可能な領域が検出された場合は、その時点で画像が９０度又は２７０度回転していることが分かるからである。
【００２０】
次に、同期パターンと情報パターンを配置してなる情報表現の最小単位（以下、「符号ブロック」という）について説明する。
図５は、符号ブロックのレイアウトの一例を示したものである。
図中、（ａ）及び（ｂ）のそれぞれの右側に、符号ブロックのレイアウトを示している。ここでは、レイアウトとして、パターンブロックを５個×５個の２５個並べたものを採用している。この２５個のパターンブロックのうち、左上の１ブロックに同期パターンを配置している。また、同期パターンの右の４ブロックに紙面上の横方向の座標を特定するＸ座標情報を表す情報パターンを配置し、同期パターンの下の４ブロックに紙面上の縦方向の座標を特定するＹ座標情報を表す情報パターンを配置している。更に、これらの座標情報を表す情報パターンで囲まれた１６ブロックに、紙面又は紙面に印刷される文書の識別情報を表す情報パターンを配置している。
【００２１】
また、（ａ）の左側には、９Ｃ２方式における符号パターンが各パターンブロックに配置されていることを示している。即ち、３６種類の符号パターンを、例えば、４種類の同期パターンと３２種類の情報パターンとに分け、各パターンをレイアウトに従って配置している。一方、（ｂ）の左側には、９Ｃ３方式における符号パターンが各パターンブロックに配置されていることを示している。即ち、８４種類の符号パターンを、例えば、２０種類の同期パターンと６４種類の情報パターンとに分け、各パターンをレイアウトに従って配置している。
【００２２】
尚、本実施の形態において、座標情報は、紙面の縦方向及び横方向にＭ系列で表現される。ここで、Ｍ系列とは、その部分列が、他の部分列と一致することがない系列である。例えば、１１次のＭ系列は、２０４７ビットのビット列である。そして、この２０４７ビットのビット列の中から取り出された１１ビット以上の部分列と同じ並びは、この２０４７ビットのビット列の中に自身以外には存在しない。本実施の形態では、１個の符号パターンを４ビットに対応付ける。即ち、２０４７ビットのビット列を４ビットごとに１０進数で表し、図２又は図３の割り当てに従って符号パターンを決定し、紙面の横と縦に渡って印刷する。従って、復号の際は、３つの連続する符号パターンを特定し、符号パターンと座標との対応関係を格納したテーブルを参照することにより、ビット列上の位置が特定されることになる。
【００２３】
図６に、Ｍ系列を用いた座標情報の符号化の例を示す。
（ａ）は、１１次のＭ系列の例として、「０１１１０００１０１０１１０１００００１１００１０…」というビット列を示している。本実施の形態では、これを４ビットずつに区切り、１つ目の部分列「０１１１」をパターン値「７」の符号パターンとして、２つ目の部分列「０００１」をパターン値「１」の符号パターンとして、３つ目の部分列「０１０１」をパターン値「５」の符号パターンとして、４つ目の部分列「１０１０」をパターン値「１０」の符号パターンとして、それぞれ紙面上に配置する。
【００２４】
また、このように４ビットずつ区切って符号パターンに割り当てると、（ｂ）に示すように、４周期で全てのパターン列が表現される。即ち、１１次のＭ系列は、２０４７ビットなので、この系列を４ビットごとに切り出し、符号パターンで表現していくと、最後に３ビットあまることになる。この３ビットに、Ｍ系列の最初の１ビットを加えて４ビットとし符号パターンで表す。更に、Ｍ系列の２ビット目から４ビットごとに切り出し符号パターンで表す。すると、次の周期は、Ｍ系列の３ビット目から始まり、その次の周期は、Ｍ系列の４ビット目から始まる。更に、５周期目は、５ビット目からとなるが、これは最初の周期と一致する。従って、Ｍ系列の４周期を４ビットごとに切り出していくと、２０４７個の符号パターンで全てを尽くすことができる。Ｍ系列は１１次であるので、３つの連続する符号パターンは、他のどの位置の連続する符号パターンとも一致することはない。そこで、読出し時には３つの符号パターンを読み出せば、復号が可能である。但し、本実施の形態では、誤りの発生を考慮し、４つの符号パターンで座標情報を表現している。
【００２５】
また、識別情報の符号化には、幾つかの方法の利用が考えられるが、本実施の形態では、ＲＳ符号化が適している。ＲＳ符号は多値の符号法であり、各パターンブロックに配置された符号パターンのパターン値をＲＳ符号の多値に対応させるとよいからである。
尚、本実施の形態における符号パターンの利用形態としては、例えば、文書画像に重ねてその識別情報を紙面に印刷し、ペン状のスキャナで紙面上の部分画像を読み込み、そこから文書画像の識別情報を取得する、といったものが想定される。この場合、紙面上の汚れやスキャナの性能によって誤りが発生するが、この誤りはＲＳ符号により訂正される。
【００２６】
ここで、ＲＳ符号による訂正及びそのような訂正を行う場合に表現可能な情報量について具体的に説明する。
本実施の形態では、上述したように、１パターンブロック内のドット数が一定である符号パターンを採用している。これにより、仮に１ドットが消失した場合や、１ドットが付加された場合は、パターンブロック内のドット数が変わる。従って、これらは誤りだと分かる誤りとなる。一方で、ドットの消失と付加が同時に起こった場合は、他の符号パターンであると誤認識してしまうので、誤りだと分からない誤りとなる。
例えば、識別情報を表す情報パターンを配置する１６ブロックのうち、１０ブロックを識別情報そのものを表す情報パターンを配置するブロックとし、６ブロックを訂正のためのブロックとする。この場合、誤りだと分かるブロックは６ブロックまで、誤りだと分からないブロックも３ブロックまで、訂正される。これを例えば９Ｃ２方式における３２種類の情報パターンで実現したとすると、１ブロックで５ビットの情報が表現されるので、識別情報そのものは１０ブロックで５０ビット分表現される。また例えば９Ｃ３方式における６４種類の情報パターンで実現したとすると、１ブロックで６ビットの情報が表現されるので、識別情報そのものは１０ブロックで６０ビット分表現される。
【００２７】
次いで、上記符号ブロックを含む広範囲のレイアウトについて説明する。
図７は、そのようなレイアウトの一例を示した図である。このレイアウトでは、図５の符号ブロックが基本単位として紙面全体の縦方向及び横方向に周期的に配置されている。
ここで、同期パターンとしては、同じ符号パターンが各符号ブロックにおける左上のパターンブロックに配置されている。図では、同期パターンを「Ｓ」で表している。
また、Ｘ座標情報としては、符号パターンの同じ並びが、同期パターンが配置されたのと同じ行の各パターンブロックに配置されている。Ｙ座標情報としては、符号パターンの同じ並びが、同期パターンが配置されたのと同じ列の各パターンブロックに配置されている。図では、Ｘ座標情報を表すパターンを「Ｘ０１」、「Ｘ０２」、…で表し、Ｙ座標情報を表すパターンを「Ｙ０１」、「Ｙ０２」、…で表している。
更に、識別情報としては、符号パターンの同じ配列が、縦方向及び横方向に周期的に配置されている。図では、識別情報を表すパターンを「Ｉ０１」、「Ｉ０２」、…、「Ｉ１６」で表している。
そして、このようなレイアウトを採用することにより、例えば、図中、丸印で示した範囲が読み取られた場合のように、図５の符号ブロックの全体を含む範囲が読み取られていない場合であっても、後述する処理により、識別情報及び座標情報が得られる。
【００２８】
尚、このようなレイアウトで紙面に印刷される符号画像は、例えば電子写真方式を用いて、Ｋトナー（カーボンを含む赤外光吸収トナー）、又は、特殊トナーにより形成される。
ここで、特殊トナーとしては、可視光領域（４００ｎｍ〜７００ｎｍ）における最大吸収率が７％以下であり、近赤外領域（８００ｎｍ〜１０００ｎｍ）における吸収率が３０％以上の不可視トナーが例示される。ここで、「可視」及び「不可視」は、目視により認識できるかどうかとは関係しない。印刷された媒体に形成された画像が可視光領域における特定の波長の吸収に起因する発色性の有無により認識できるかどうかで「可視」と「不可視」とを区別している。また、可視光領域における特定の波長の吸収に起因する発色性が若干あるが、人間の目で認識し難いものも「不可視」に含める。
【００２９】
ところで、このように紙面に印刷された符号画像をペンデバイス等の画像読取装置で読み取り、情報を復号する場合、読み取った符号画像内のドットが画像処理によりビット情報に変換される。このとき、画像の状態によっては、ぼけやノイズによりエラーが発生することがある。また、画像読取装置が読み取りのためにＬＥＤ等の照明を使用している場合、レーザープリンタ等によりトナーで印刷された符号画像を読み取ろうとすると、画像読取装置の傾きによっては、照明の光がトナー表面で正反射し、正確な読み取りが不可能となることもある。
このようなエラーを訂正する方法は、多数考案されており、有効な手段となっている。しかしながら、利用される領域においては、より精度の高い復号が求められる。
また、読み取った画像におけるぼけやノイズは、一様に発生することは少なく、画像の部分領域にまとまって発生することが多い。
そこで、本実施の形態では、画像の状態により、ぼけやノイズが発生していると推測される領域の各ビットに信頼度を付与し、ビット情報とともに利用することで、復号精度を高める。
【００３０】
以下、このような信頼度を用いた情報の復号について、より詳細に説明する。尚、本実施の形態では、如何なるｍＣｎ方式を利用してもよいが、以降の説明においては、簡単のため、９Ｃ３方式の利用を前提とする。また、以下では、パターンブロックのことを単に「ブロック」ともいう。
【００３１】
まず、紙面に形成された符号画像を読み取って処理する画像処理装置２０について説明する。
図８は、画像処理装置２０の構成例を示したブロック図である。
図示するように、画像処理装置２０は、画像読取部２１と、ドット配列生成部２２と、ブロック検出部２３と、同期符号検出部２４と、ドット信頼度配列生成部２５と、ブロック信頼度配列生成部２６とを備える。また、識別符号検出部３０と、識別符号復号部３２と、Ｘ座標符号検出部４０と、Ｘ座標符号復号部４２と、Ｙ座標符号検出部４５と、Ｙ座標符号復号部４７と、情報出力部５０とを備える。
【００３２】
画像読取部２１は、ＣＣＤ（Charge Coupled Devices）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の撮像素子を用いて、紙面に印刷された符号画像を読み取る。
ドット配列生成部２２は、読み取った符号画像からドットを検出し、ドットの位置を参照して、ドット配列を生成する。尚、符号画像からのドット検出の前処理として、読み取った画像に含まれるノイズを除去するための処理も行う。ここで、ノイズには、例えば、撮像素子感度のばらつきや電子回路により発生するノイズがある。ノイズ除去の処理の種類は、撮像系の特性に合わせるべきだが、ぼかし処理やアンシャープマスキング等の先鋭化処理を適用するとよい。また、ドットの検出は、次のように行う。即ち、まず、２値化処理によりドット画像の部分と、その他の背景画像の部分とを切り分け、２値化された個々の画像位置からドットの位置を検出する。その際、２値化された画像にノイズ成分が多数含まれる場合があるため、２値化された画像の面積や形状によりドットの判定を行うフィルタ処理を組み合わせる必要がある。その後、ドット配列の生成は、２次元の配列上で、例えば、ドットがある位置を「１」、ドットがない位置を「０」というように、画像として検出したドットをデジタルデータに置き換えることにより行う。本実施の形態では、画像取得手段の一例として、ドット配列生成部２２を設けている。
【００３３】
ブロック検出部２３は、ドット配列上で、符号ブロック内のパターンブロックを検出する。即ち、符号ブロックと同じ大きさ及び形状のフレームで、パターンブロックと同じ大きさ及び形状のブロックを有するブロックフレームをドット配列上で動かし、ブロック内のドット数が均等になる位置を正しいフレーム位置とし、各ブロック内のパターン値を格納した符号配列を生成する。
【００３４】
同期符号検出部２４は、ドット配列から検出された各符号パターンの種類を参照して、同期符号を検出する。また、同期符号検出部２４は、検出した同期符号に基づいて、画像の回転の判定も行う。例えば、正方形の符号パターンを用いた場合、９０度単位で回転している可能性がある。そこで、検出した同期符号が４種類の同期パターンのいずれに対応しているかによって、その向きを検出する。また、長方形の符号パターンを用いた場合、１８０度単位で回転している可能性がある。そこで、検出された同期符号が２種類の同期パターンのいずれに対応しているかによって、その向きを検出する。更に、同期符号検出部２４は、このように検出された回転角度だけ符号配列を回転させて、符号配列を正しい向きに設定する。
【００３５】
ドット信頼度配列生成部２５は、画像読取部２１が読み取った符号画像及びドット配列生成部２２が生成したドット配列から各ドットの信頼度を算出し、ドット信頼度配列を生成する。ドット信頼度配列の生成は、ドット配列と同じ大きさの２次元の配列上で、ドット配列上のある位置のデジタルデータの信頼度を、その位置に対応する位置に配置することにより行う。本実施の形態では、画像の読み取りの状態を示す状態情報の一例として、信頼度を用いており、状態情報を取得する情報取得手段の一例として、ドット信頼度配列生成部２５を設けている。
【００３６】
ブロック信頼度配列生成部２６は、ドット信頼度配列生成部２５が生成したドット信頼度配列から各パターンブロックの信頼度を算出し、ブロック信頼度配列を生成する。即ち、ドット信頼度配列上で、ブロック検出部２３が求めた正しいフレーム位置にブロックフレームを重ね、各ブロック内のドット信頼度に基づいて、各ブロックの信頼度を求める。そして、符号配列と同じ大きさの２次元の配列上で、符号配列上のある位置のブロックの信頼度を、その位置に対応する位置に配置することにより、ブロック信頼度配列を生成する。
【００３７】
識別符号検出部３０は、角度が補正された符号配列から、同期符号の位置を基準にして、識別符号を検出する。本実施の形態では、ビット列の一例として、識別符号を用いている。また、ビット列を検出する検出手段、特定のビット列を決定する決定手段の一例として、識別符号検出部３０を設けている。
識別符号復号部３２は、上述したＲＳ符号の符号化処理で用いたパラメータ（ブロック数等）と同じパラメータを用いて識別符号を復号し、識別情報を出力する。
【００３８】
Ｘ座標符号検出部４０は、角度が補正された符号配列から、同期符号の位置を基準にしてＸ座標符号を検出する。本実施の形態では、ビット列の一例として、Ｘ座標符号を用いている。また、ビット列を検出する検出手段、特定のビット列を決定する決定手段の一例として、Ｘ座標符号検出部４０を設けている。
Ｘ座標符号復号部４２は、検出されたＸ座標符号からＭ系列の部分系列を取り出し、画像生成に使用したＭ系列におけるこの部分系列の位置を参照し、この位置を符号ブロックのシフト量で補正した値をＸ座標情報として出力する。
【００３９】
Ｙ座標符号検出部４５は、角度が補正された符号配列から、同期符号の位置を基準にしてＹ座標符号を検出する。本実施の形態では、ビット列の一例として、Ｙ座標符号を用いている。また、ビット列を検出する検出手段、特定のビット列を決定する決定手段の一例として、Ｙ座標符号検出部４５を設けている。
Ｙ座標符号復号部４７は、検出されたＹ座標符号からＭ系列の部分系列を取り出し、画像生成に使用したＭ系列におけるこの部分系列の位置を参照し、この位置を符号ブロックのシフト量で補正した値をＹ座標情報として出力する。
【００４０】
情報出力部５０は、識別符号復号部３２、Ｘ座標符号復号部４２、Ｙ座標符号復号部４７からそれぞれ取得した識別情報、Ｘ座標情報、Ｙ座標情報を出力する。
【００４１】
次に、画像処理装置２０による画像処理時の動作について説明する。
まず、画像読取部２１が、符号画像が印刷された媒体から、予め決められた大きさの領域の符号画像を読み取る。このとき、図５に示した１つの符号ブロックから情報を復元するのであれば、１つの符号ブロックに相当する大きさの領域を読み取ればよいが、複数の符号ブロックから情報を復元するのであれば、複数の符号ブロックに相当する大きさの領域を読み取る必要がある。
【００４２】
次に、ドット配列生成部２２が、ドットを検出した位置に「１」を、ドットを検出しなかった位置に「０」を設定したドット配列を生成する。
また、ドット信頼度配列生成部２５が、ドット配列の「１」又は「０」が設定された位置におけるドットの信頼度を、その位置に対応する位置に設定したドット信頼度配列を生成する。ここで、信頼度は、「０」〜「４」の５段階で表すものとする。そして、信頼度「０」が最も信頼度が低く、数値が大きくなるに従って、信頼度も高くなるものとする。
【００４３】
図９は、ドット配列及びドット信頼度配列の生成について示した図である。
まず、（ａ）は、画像読取部２１が符号画像を読み取ったときの状態を示している。
図中、ドットが付されたグレーの領域が撮像素子で撮像された画像（以下、「撮像素子画像」という）を示しており、太線の四角形ＡＢＣＤで囲まれた領域が画像読取部２１による読込領域を示している。このうち、撮像素子画像は、正反射領域２８４と、ぼけノイズ領域２８５とを含む。また、読込領域は、図７に示した３個×３個の符号ブロックを一度に読み込み可能な大きさの領域（４７ドット×４７ドットの大きさの領域）であるものとする。
【００４４】
次に、この読み取った符号画像から、ドット配列生成部２２が（ｂ）のドット配列を生成し、ドット信頼度配列生成部２５が（ｃ）のドット信頼度配列を生成する。尚、読込領域は、撮像素子画像におけるドットの並びの方向に対して傾いているが、（ｂ），（ｃ）では、読込領域を正立させて示している。つまり、（ａ）のＡ，Ｂ，Ｃ，Ｄは、（ｂ）では、Ａ’，Ｂ’，Ｃ’，Ｄ’に、（ｃ）では、Ａ”，Ｂ”，Ｃ”，Ｄ”に、それぞれ対応している。
【００４５】
このうち、ドット信頼度配列は、典型的には、（ｃ）に示すように、同じ信頼度の配列要素に分けられる。例えば、撮像素子画像外領域配列要素２９１，２９２，２９３は信頼度「０」の配列要素であり、撮像素子画像内において、正反射領域配列要素２９４は信頼度「１」の配列要素であり、ぼけノイズ領域配列要素２９５は信頼度「２」の配列要素である。また、読込領域は、上述したように、図７に示した３個×３個の符号ブロックを一度に読み込み可能な大きさを有する領域であるが、図５に示した１個の符号ブロックのみを一度に読み込めば十分な場合もあり、その場合は、撮像素子画像の中で特にドットが鮮明な領域を切り出して読み込むことになる。このように１個の符号ブロックの読み込みのために切り出される領域を基本領域と呼び、撮像素子画像の中で基本領域以外の領域を拡張領域と呼ぶことにすると、拡張領域配列要素２９６は信頼度「３」の配列要素であり、基本領域配列要素２９７は信頼度「４」の配列要素である。
【００４６】
但し、このようなドット信頼度配列はあくまで典型例であり、実際には、ドット信頼度配列生成部２５が、符号画像をビット情報に変換する際や、ビット情報に変換した後に、特定のアルゴリズムによって算出する。そこで、以下、ドット信頼度の算出例について簡単に説明する。
この算出例では、ドット信頼度配列生成部２５が、各ドットから仮想格子点までの距離、及び、各仮想格子点の周辺のドット密度に基づいて、「０」〜「４」の５段階の信頼度を算出する。
図１０（ａ）は、信頼度の算出で用いる仮想格子線について示した図である。仮想格子線の設定方法については限定しないが、例えば、どの隣り合う二線間の間隔も予め定めたドット間の最小距離に等しくなり、各ドットから最も近い線までの距離の二乗和が最小となるように設定することが考えられる。
【００４７】
まず、各ドットから仮想格子点までの距離に基づく信頼度の算出方法について説明する。
図１０（ｂ）は、この信頼度の算出方法を示した図である。図では、格子点Ｐの周囲の局所領域を示している。
この算出方法では、例えば、ドットから格子点Ｐまでの距離がｒ１以下であれば、つまり、小さい方の円内にドットがあれば、信頼度ポイント「２」を付与する。また、ドットから格子点Ｐまでの距離がｒ１より大きくｒ２以下であれば、つまり、小さい方の円外で大きい方の円内にドットがあれば、信頼度ポイント「１」を付与する。更に、ドットから格子点Ｐまでの距離がｒ２より大きければ、つまり、大きい方の円外にドットがあれば、信頼度ポイント「０」を付与する。図の場合、ドットは、小さい方の円外で大きい方の円内にあるので、信頼度ポイント「１」が付与される。
【００４８】
第二に、各仮想格子点の周辺のドット密度に基づく信頼度の算出方法について説明する。
この算出方法では、まず、仮想格子点の周囲の例えば５ドット×５ドットが配置される大きさの領域に着目する。この領域には、２５ドットが配置可能であるが、ここでは９Ｃ３方式を前提としているので、理想的には、約８（≒２５×３／９）個のドットが配置されることになる。そこで、例えば、この領域に８ドット以上が配置されていれば、信頼度ポイント「２」を付与する。また、この領域に４〜７ドットが配置されていれば、信頼度ポイント「１」を付与する。更に、この領域にドットが配置されていないか又は配置されていても１〜２個であれば、信頼度ポイント「０」を付与する。
【００４９】
そして、ドット信頼度配列生成部２５は、この２つの算出方法で得られた信頼度ポイントを加算することにより、「０」〜「４」の５段階の信頼度を算出する。
尚、ドット信頼度の算出方法はこれに限定されるものではない。例えば、ドット画像の形状又は大きさ、画像濃度、コントラスト等の特徴量を用いてもよく、また、これら複数の特徴量の組み合わせとしてもよい。
【００５０】
このようにドット配列及びドット信頼度配列が生成されると、次に、ブロック検出部２３が、ドット配列にブロックフレームを重ねて、ブロックの境界を検出する。ここで、ブロックとは、図５を参照して説明したように、埋め込まれた情報を復号する際に必要となる最小の単位である。本実施の形態では、符号ブロックとして５ブロック×５ブロックのものを想定している。従って、ブロックフレームとしても、５ブロック×５ブロックの大きさのものを用いる。
【００５１】
図１１は、ブロックフレームを移動させてブロックを検出する際の処理を具体的に示した図である。ここでは、９Ｃ３方式で符号化が行われたことが分かっており、９Ｃ３方式で復号する場合について示している。
まず、ブロック検出部２３は、ドット配列生成部２２からドット配列を取得する。ここで取得するドット配列のサイズは予め設定されており、（復号に必要なブロック数×ブロックの一辺のドット数＋ブロックの一辺のドット数−１）２である。ところが、このドット配列は、画像の任意に選択された領域に対応しているので、ブロックフレームの位置は分からない。そこで、初めに、ドット配列の端を基準にブロック分割を行う。この例では、ｍ＝９なので、３ドット×３ドットの大きさのブロックからなるブロックフレームを重ねる。次に、各ブロック内のドットを数える。この例では、ｎ＝３なので、各ブロック内に３ドットずつ存在する場合のブロックフレームの位置が正しいブロックフレームの位置であるが、この位置ではドット数がばらついており、正しくないことが分かる。そこで、ブロックフレームをずらしてブロック内のドット数を数える。即ち、右方向への開始位置、１ドット分移動した位置、２ドット分移動した位置について同様の動作を行う。また、これらの位置のそれぞれに対し、下方向への開始位置、１ドット移動した位置、２ドット移動した位置についても同様の動作を行う。その結果、右方向に１ドット移動し、下方向に２ドット移動した位置において、全てのブロック内のドット数が「３」となる。従って、この位置を正しいブロックフレームの位置とする。
【００５２】
これにより、各ブロックのパターン値を格納した符号配列が生成される。
図１２は、このような符号配列の例を示した図である。尚、この時点では、同期符号が検出されていないので、識別符号、Ｘ座標符号、Ｙ座標符号の位置は分からないが、これらの符号が配置される領域が分かるように、その境界を便宜的に太線で示している。また、同期符号が検出されていないので、符号配列の回転が必要かどうかも分からないが、便宜上、パターン値「６４」の同期符号を使用し、回転が不要な状態を示している。更に、符号配列は、図５のレイアウトを縦３個×横３個並べたものになるとは限らない。例えば、上から２ブロック目、左から２ブロック目に同期符号が検出され、この同期符号を起点として図５のレイアウトが並ぶことも考えられる。しかし、図では、便宜上、最も左上のブロックに同期符号が検出されたものとし、符号配列として、図５のレイアウトを縦３個×横３個並べたものを示している。
【００５３】
尚、識別符号としては、同じパターン値の配列が、Ｘ座標符号とＹ座標符号とに囲まれた１６ブロックからなる各領域に繰り返し配置されているはずであるが、本実施の形態では、読み取った画像に信頼性の低い部分があることを前提としているので、図は、同じパターン値の配列が繰り返し配置されるものとはなっていない。また、Ｘ座標符号としては、Ｙ方向に同じパターン値の配列が繰り返し配置され、Ｙ座標符号としては、Ｘ方向に同じパターン値の配列が繰り返し配置されているはずであるが、同様の理由から、図は、同じパターン値の配列が繰り返し配置されるものとはなっていない。
【００５４】
更に、これと同期して、ブロック信頼度配列生成部２６は、各ドットの信頼度を格納したドット信頼度配列から、各ブロックの信頼度を格納したブロック信頼度配列を生成する。
本実施の形態では、ブロック内のドットの信頼度のうち、最も低い信頼度をブロック信頼度とする。
図１３（ａ）に、このようなブロック信頼度の求め方について具体的に示す。図では、縦３×横３の合計９個のドット配置可能な位置のうち、ドットが配置された位置を黒の四角で表し、ドットが配置されていない位置を白の四角で表している。また、ドット信頼度を四角内の数字で表している。
この例では、ドットが配置された位置の信頼度が「３」、「１」、「２」であるので、ブロック信頼度は、この中で最小の値である「１」となる。尚、ドット信頼度の中には「１」よりも小さな「０」があるが、ドットが配置されていない位置の信頼度なので、これは考慮しない。
【００５５】
図１３（ｂ）は、このようにして得られたブロック信頼度配列の例を示した図である。尚、この図でも、図１２と同様、同期符号、識別符号、Ｘ座標符号、Ｙ座標符号の各符号に対応するブロック信頼度が配置される領域の境界を便宜的に太線で示している。また、このブロック信頼度配列は、図９（ｃ）に示したドット信頼度配列から生成されたものであることを前提とする。
【００５６】
その後、同期符号検出部２４、識別符号検出部３０、Ｘ座標符号検出部４０、Ｙ座標符号検出部４５が、各ブロックのパターン値を参照することにより、同期符号、識別符号、Ｘ座標符号、Ｙ座標符号を検出する。そして、識別符号復号部３２、Ｘ座標符号復号部４２、Ｙ座標符号復号部４７が、識別符号、Ｘ座標符号、Ｙ座標符号を復号し、情報出力部５０が、復号結果から得られた情報を出力する。
【００５７】
ところで、こうした処理において、本実施の形態では、ブロック信頼度を利用する。
ここで、このようなブロック信頼度の利用方法の一例について説明する。
本実施の形態では、画像読取装置が、図１２に示すような３個×３個の符号ブロックの大きさの画像を読み込む。ところが、この中で、ビット情報に変換する画像として利用されるのは、通常、画像コントラストが高く、ドットが正確に検出できる基本領域である。その場合、基本領域から符号を検出できれば問題ないが、基本領域に正反射等があり符号を検出できなければ、その周辺の拡張領域からドットが検出されていても、それが利用されずに符号が検出されないこととなってしまう。
そこで、拡張領域の画像を、その画像におけるブロック信頼度と共に利用することで、基本領域に正反射等があっても高精度に符号を検出可能とする。
【００５８】
このような検出方法について具体的に説明する。
まず、拡張領域の画像をブロック信頼度と共に利用し、識別符号を検出する際の検出方法について説明する。
図１４（ａ）は、図１２の符号配列から識別符号を取り出したときの状態を示したものである。図１２の符号配列は、９個の符号ブロックを含むので、識別符号が配置された識別符号領域も９個となる。ここでは、この９個の識別符号領域のそれぞれを、左からＸ番目で上からＹ番目を「識別符号領域（Ｘ，Ｙ）」と表記することで区別するものとする。また、識別符号領域内では、左からＸ番目で上からＹ番目のブロックを「ブロック（Ｘ，Ｙ）」と表記することにする。
【００５９】
図１４（ｂ）は、これら９個の識別符号領域の間で、同じ位置のブロックを対応付けた状態を示した図である。このような対応付けを行い、例えば、同じ位置のブロックのうち、最大のブロック信頼度を持つブロックのパターン値を選択する。
【００６０】
図１４（ｃ）は、このようにして選択されたパターン値を含む識別符号領域を示したものである。ブロック（１，１）、ブロック（１，２）〜ブロック（４，２）、ブロック（１，３）〜ブロック（４，３）、ブロック（１，４）〜ブロック（４，４）のブロック信頼度は、図１３（ｂ）を参照すると、識別符号領域（２，２）で最大値「４」をとるので、ブロック（１，１）、ブロック（１，２）〜ブロック（４，２）、ブロック（１，３）〜ブロック（４，３）、ブロック（１，４）〜ブロック（４，４）に、識別符号領域（２，２）におけるパターン値が格納されている。また、ブロック（２，１）〜ブロック（４，１）のブロック信頼度は、図１３（ｂ）を参照すると、識別符号領域（２，３）で最大値「３」をとるので、ブロック（２，１）〜ブロック（４，１）に、識別符号領域（２，３）におけるパターン値が格納されている。
【００６１】
次に、拡張領域の画像をブロック信頼度と共に利用し、Ｘ座標符号を検出する際の検出方法について説明する。
図１５（ａ）は、図１２の符号配列からＸ座標符号を取り出したときの状態を示したものである。尚、Ｘ座標符号の間には、同期符号が挟まれているが、図中、両方向矢印で示すように、同期符号は削除され、分断されたＸ座標符号は詰められる。図１２の符号配列は、横方向に並べられた符号ブロックからなる符号ブロック群を縦方向に３個含むので、Ｘ座標符号が配置されたＸ座標符号領域も３個となる。ここでは、この３個のＸ座標符号領域のそれぞれを、上からＹ番目を「Ｘ座標符号領域（Ｙ）」と表記することで区別するものとする。また、Ｘ座標符号領域内では、左からＸ番目のブロックを「ブロック（Ｘ）」と表記することにする。
【００６２】
図１５（ｂ）は、これら３個のＸ座標符号領域の間で、同じ位置のブロックを対応付けた状態を示した図である。このような対応付けを行い、例えば、同じ位置のブロックのうち、最大のブロック信頼度を持つブロックのパターン値を選択する。
【００６３】
図１５（ｃ）は、このようにして選択されたパターン値を含むＸ座標符号領域を示したものである。ブロック（１）〜ブロック（３）のブロック信頼度は、図１３（ｂ）を参照すると、Ｘ座標符号領域（３）で最大値「２」をとるので、ブロック（１）〜ブロック（３）に、Ｘ座標符号領域（３）におけるパターン値が格納されている。また、ブロック（４）のブロック信頼度は、図１３（ｂ）を参照すると、Ｘ座標符号領域（２）で最大値「３」をとるので、ブロック（４）に、Ｘ座標符号領域（２）におけるパターン値が格納されている。更に、ブロック（５）のブロック信頼度は、図１３（ｂ）を参照すると、Ｘ座標符号領域（２）で最大値「４」をとるので、ブロック（５）に、Ｘ座標符号領域（２）におけるパターン値が格納されている。更にまた、ブロック（６）〜ブロック（１１）のブロック信頼度は、図１３（ｂ）を参照すると、Ｘ座標符号領域（３）で最大値「３」をとるので、ブロック（６）〜ブロック（１１）に、Ｘ座標符号領域（３）におけるパターン値が格納されている。
【００６４】
尚、ここでは、ブロック信頼度が最大である場合に、そのブロックから検出されたパターン値を正しいパターン値としたが、この限りではない。例えば、ブロック信頼度が予め決められた良い状態を示す値である場合に、そのブロックから検出されたパターン値を正しいパターン値としてもよい。
また、Ｙ座標符号についても、同様の方法で検出する構成としてよい。
【００６５】
ところで、図１４及び図１５では、周期的に繰り返される領域における同じ位置のブロックのうちブロック信頼度が最大のブロックのパターン値を検出結果としたが、検出方法はこの限りではない。例えば、同じ位置のブロックにおけるパターン値の出現頻度を、ブロック信頼度を加味したヒストグラムで表し、最も出現頻度が高くなったパターン値を検出結果とする方法（以下、「信頼度付きヒストグラム法」という）も考えられる。
そこで、次に、信頼度付きヒストグラム法について、具体的に説明する。
図１６は、信頼度付きヒストグラム法を用いて識別符号を検出する際の様子を示した図である。ここでは、識別符号領域内のブロック（２，２）について、パターン値の出現頻度をヒストグラムで表している。
【００６６】
図において、識別符号領域（１，１）のブロック（２，２）のパターン値は「５」であるが、図１３（ｂ）を参照すると、このブロックのブロック信頼度は「０」なので、このブロックによりヒストグラムのパターン値「５」の出現頻度は増えない。
識別符号領域（２，１）のブロック（２，２）のパターン値は「５」であり、図１３（ｂ）を参照すると、このブロックのブロック信頼度は「３」なので、このブロックによりヒストグラムのパターン値「５」の出現頻度は「３」だけ増える。
識別符号領域（３，１）のブロック（２，２）のパターン値は「３」であるが、図１３（ｂ）を参照すると、このブロックのブロック信頼度は「０」なので、このブロックによりヒストグラムのパターン値「３」の出現頻度は増えない。
【００６７】
また、識別符号領域（１，２）のブロック（２，２）のパターン値は「１」であり、図１３（ｂ）を参照すると、このブロックのブロック信頼度は「３」なので、このブロックによりヒストグラムのパターン値「１」の出現頻度は「３」だけを増える。
識別符号領域（２，２）のブロック（２，２）のパターン値は「５」であり、図１３（ｂ）を参照すると、このブロックのブロック信頼度は「４」なので、このブロックによりヒストグラムのパターン値「５」の出現頻度は「４」だけ増える。
識別符号領域（３，２）のブロック（２，２）のパターン値は「５」であり、図１３（ｂ）を参照すると、このブロックのブロック信頼度は「３」なので、このブロックによりヒストグラムのパターン値「５」の出現頻度は「３」だけ増える。
【００６８】
更に、識別符号領域（１，３）のブロック（２，２）のパターン値は「２」であり、図１３（ｂ）を参照すると、このブロックのブロック信頼度は「２」なので、このブロックによりヒストグラムのパターン値「２」の出現頻度は「２」だけ増える。
識別符号領域（２，３）のブロック（２，２）のパターン値は「５」であり、図１３（ｂ）を参照すると、このブロックのブロック信頼度は「３」なので、このブロックによりヒストグラムのパターン値「５」の出現頻度は「３」だけ増える。
識別符号領域（３，３）のブロック（２，２）のパターン値は「５」であるが、図１３（ｂ）を参照すると、このブロックのブロック信頼度は「０」なので、このブロックによりヒストグラムのパターン値「５」の出現頻度は増えない。
【００６９】
その結果、ヒストグラムでは、パターン値「１」の出現頻度が「３」、パターン値「２」の出現頻度が「２」、パターン値「５」の出現頻度が「１３」となり、パターン値「５」の出現頻度が最大となる。従って、ブロック（２，２）からはパターン値「５」が検出されることとなる。
尚、ここでは、９個の識別符号領域から４つのパターン値が検出される場合を想定し、４つのパターン値のうち、信頼度を加味した出現頻度が最高のパターン値を正しいパターン値とした。この場合、例えば、パターン値「５」は第１のビット列の一例であり、パターン値「１」は第２のビット列の一例である。しかしながら、この方法は、着目する２つのパターン値のうち、信頼度を加味した出現頻度が高い方のパターン値を正しいパターン値とするものと捉えてもよい。この場合、パターン値「５」は一のビット列の一例であり、パターン値「１」、「２」、「３」はそれぞれ、他の一のビット列の一例である。
また、ここでは、信頼度付きヒストグラム法を用いた識別符号の検出について述べたが、Ｘ座標符号やＹ座標符号も、同様に、信頼度付きヒストグラム法を用いて検出するとよい。
【００７０】
尚、上記では、ブロック信頼度の利用方法として、図１４又は図１５の方法と、図１６の方法とを例示した。しかしながら、画像が繰り返し配置された繰り返し画像内のある画像の読み取りの信頼度に応じた割合で、その画像から検出されたパターン値を加味することにより、正しいパターン値を検出するという考え方が基本であり、この考え方に沿うものであれば、如何なる方法であってもよい。例えば、符号ブロック内のパターンブロックごとに正しいパターン値を決定せずに、符号ブロック全体として正しいパターン値を決定するようなものであってもよい。
【００７１】
次いで、画像処理装置２０の動作について更に詳しく説明する。尚、この動作の説明では、９Ｃ３方式の符号パターンが図５のレイアウトで配置されていることを前提とする。また、図７に示した３個×３個の符号ブロックに対応する大きさの領域を読み込むものとする。
まず、ブロック検出部２３の動作について説明する。
図１７は、ブロック検出部２３の動作例を示したフローチャートである。
まず、ブロック検出部２３は、ドット配列生成部２２からドット配列を取得する（ステップ２０１）。このドット配列の大きさは、（復号に必要なブロック数×ブロックの一辺のドット数＋ブロックの一辺のドット数−１）２である。本実施の形態では、復号に必要なブロック数は１５×１５であり、ブロックの一辺のドット数が３であるので、４７×４７のドット配列を取得する。
【００７２】
次に、取得したドット配列に、ブロックフレームを重ね合わせる（ステップ２０２）。そして、カウンタＩ、Ｊに「０」を代入し、ＭａｘＢＮにも「０」を代入する（ステップ２０３）。ここで、Ｉ、Ｊは、ブロックフレームを初期位置から移動させたステップ数をカウントするものである。画像の１ラインごとにブロックフレームを移動させ、そのとき移動させたライン数をカウンタＩ、Ｊでカウントする。また、ＭａｘＢＮは、ブロック内で検出されるドット数が「３」となるブロック数をブロックフレームを移動させながらカウントしていったときに、最大となるカウント値を記録するものである。
【００７３】
次に、ブロック検出部２３は、ブロックフレームをＸ方向にＩ、Ｙ方向にＪ移動させる（ステップ２０４）。初期状態においてＩ、Ｊは「０」であるので、ブロックフレームは移動しない。そして、ブロックフレームの各ブロックに含まれるドット数をカウントして、ドット数が「３」となるブロックの数をカウントする。カウントしたブロック数はＩＢ［Ｉ，Ｊ］に格納する（ステップ２０５）。ＩＢ［Ｉ，Ｊ］のＩ、Ｊには、ブロックフレームの移動量を示すＩとＪの値がそれぞれ記録される。
【００７４】
次に、ブロック検出部２３は、ＩＢ［Ｉ，Ｊ］とＭａｘＢＮとを比較する（ステップ２０６）。ＭａｘＢＮは初期値が「０」であるので、最初の比較では、ＩＢ［Ｉ，Ｊ］がＭａｘＢＮよりも大きくなる。この場合、ＭａｘＢＮにＩＢ［Ｉ，Ｊ］の値を代入すると共に、ＭＸにＩの値を、ＭＹにＪの値を代入する（ステップ２０７）。尚、ＩＢ［Ｉ，Ｊ］がＭａｘＢＮ以下である場合は、ＭａｘＢＮ、ＭＸ、ＭＹの値はそのままにしておく。
【００７５】
その後、ブロック検出部２３は、Ｉ＝２であるかどうかを判定する（ステップ２０８）。
ここで、Ｉ＝２でない場合には、Ｉに「１」を加算する（ステップ２０９）。そして、ステップ２０４、２０５の処理を繰り返し行い、ＩＢ［Ｉ，Ｊ］とＭａｘＢＮとを比較していく（ステップ２０６）。
ＩＢ［Ｉ，Ｊ］が前回までのＩＢ［Ｉ，Ｊ］の最大値であるＭａｘＢＮよりも大きいと、ＭａｘＢＮにＩＢ［Ｉ，Ｊ］の値を代入し、そのときのＩの値をＭＸに、Ｊの値をＭＹに代入する（ステップ２０７）。また、ＭａｘＢＮのほうがＩＢ［Ｉ，Ｊ］よりも大きい場合には、Ｉ＝２であるかどうかを判定する（ステップ２０８）。Ｉ＝２となると、次にＪ＝２であるかどうかを判定する（ステップ２１０）。Ｊ＝２でない場合には、Ｉに「０」を代入し、Ｊに「１」を加算する（ステップ２１１）。このような手順を繰り返し行い、（Ｉ，Ｊ）が（０，０）から（２，２）までで、ＩＢ［Ｉ，Ｊ］が最大のものを検出する。
【００７６】
Ｉ＝２、Ｊ＝２までの処理が終了すると、ブロック検出部２３は、保存しているＭａｘＢＮと閾値ＴＢとを比較する（ステップ２１２）。閾値ＴＢは、ドット数が「３」のブロックの数が復号可能な程度のものかを判定するための閾値である。
ここで、ＭａｘＢＮが閾値ＴＢよりも大きい場合には、ブロックフレームをＭＸ、ＭＹの位置に固定し、その位置で各ブロックのパターン値を検出する。そして、検出したパターン値を、各ブロックを識別する変数Ｘ、Ｙと共に符号配列ＰＡ［Ｘ，Ｙ］としてメモリに記録する（ステップ２１３）。尚、このとき、対応するパターン値に変換することができなければ、パターン値として用いられていない「−１」を記録する。そして、ブロック検出部２３は、ＭＸ、ＭＹと、符号配列ＰＡ［Ｘ，Ｙ］とを同期符号検出部２４に出力する（ステップ２１４）。
一方、ＭａｘＢＮが閾値ＴＢ以下である場合には、画像のノイズが大きく復号は不可能と判定し、復号不能を出力する（ステップ２１５）。
【００７７】
また、ブロック検出部２３がこのようにして符号配列上のブロックフレームの位置を決定すると、ブロック信頼度配列生成部２６は、ドット信頼度配列上の同じ位置にブロックフレームを固定し、その位置で各ブロックの信頼度を求める。そして、求めたブロック信頼度を、各ブロックを識別する変数Ｘ、Ｙと共にブロック信頼度配列ＲＡ［Ｘ，Ｙ］としてメモリに記録する。
【００７８】
次に、同期符号検出部２４の動作について説明する。
図１８は、同期符号検出部２４の動作例を示したフローチャートである。
まず、同期符号検出部２４は、ブロック検出部２３からＭＸ、ＭＹと、符号配列ＰＡ［Ｘ，Ｙ］と、ブロック信頼度配列ＲＡ［Ｘ，Ｙ］とを取得する（ステップ２５１）。
次に、同期符号検出部２４は、Ｋ、Ｌに「１」を代入する（ステップ２５２）。尚、ＫはＸ方向のブロック数を示すカウンタであり、ＬはＹ方向のブロック数を示すカウンタである。
【００７９】
次に、同期符号検出部２４は、ＰＡ［Ｋ，Ｌ］のパターン値が「６４」かどうかを判定する（ステップ２５３）。
ＰＡ［Ｋ，Ｌ］のパターン値が「６４」であれば、符号配列ＰＡ［Ｘ，Ｙ］及びブロック信頼度配列ＲＡ［Ｘ，Ｙ］の回転は必要ないと判定し、同期符号のあるブロックのＸ座標ＳＸにＫを代入し、Ｙ座標ＳＹにＬを代入する。また、ブロックフレームのＸ方向への移動量ＳｈｉｆｔＸにＭＸを代入し、Ｙ方向への移動量ＳｈｉｆｔＹにＭＹを代入する（ステップ２５４）。
【００８０】
次に、同期符号検出部２４は、ＰＡ［Ｋ，Ｌ］のパターン値が「６５」かどうかを判定する（ステップ２５５）。
ＰＡ［Ｋ，Ｌ］のパターン値が「６５」であれば、符号配列ＰＡ［Ｘ，Ｙ］及びブロック信頼度配列ＲＡ［Ｘ，Ｙ］を左方向に９０度回転させる（ステップ２５６）。図４（ｂ）に示すようにパターン値「６５」の符号パターンは、パターン値「６４」の符号パターンを右方向に９０度回転させた画像であるので、逆方向に９０度回転させて画像を正立させている。尚、このとき、符号配列ＰＡ［Ｘ，Ｙ］内の全てのパターン値が、左方向に９０度回転させた場合のパターン値に変換され、ブロック信頼度配列ＲＡ［Ｘ，Ｙ］内の全ての信頼度が、左方向に９０度回転させた場合の信頼度に変換される。
また、この回転に伴って、同期符号のあるブロックのＸ座標ＳＸにＬを代入し、Ｙ座標ＳＹに６−Ｋを代入する。また、ブロックフレームのＸ方向への移動量ＳｈｉｆｔＸにＭＹを代入し、Ｙ方向への移動量ＳｈｉｆｔＹに２−ＭＸを代入する（ステップ２５７）。
【００８１】
次に、同期符号検出部２４は、ＰＡ［Ｋ，Ｌ］のパターン値が「６６」かどうかを判定する（ステップ２５８）。
ＰＡ［Ｋ，Ｌ］のパターン値が「６６」であれば、符号配列ＰＡ［Ｘ，Ｙ］及びブロック信頼度配列ＲＡ［Ｘ，Ｙ］を左方向に１８０度回転させる（ステップ２５９）。図４（ｂ）に示すようにパターン値「６６」の符号パターンは、パターン値「６４」の符号パターンを１８０度回転させた画像であるので、パターン値「６６」の符号パターンを１８０度回転させて画像を正立させている。尚、このとき、符号配列ＰＡ［Ｘ，Ｙ］内の全てのパターン値が、１８０度回転させた場合のパターン値に変換され、ブロック信頼度配列ＲＡ［Ｘ，Ｙ］内の全ての信頼度が、１８０度回転させた場合の信頼度に変換される。
また、この回転に伴って、同期符号のあるブロックのＸ座標ＳＸに６−Ｋを代入し、Ｙ座標ＳＹに６−Ｌを代入する。また、ブロックフレームのＸ方向への移動量ＳｈｉｆｔＸに２−ＭＸを代入し、Ｙ方向への移動量ＳｈｉｆｔＹに２−ＭＹを代入する（ステップ２６０）。
【００８２】
次に、同期符号検出部２４は、ＰＡ［Ｋ，Ｌ］のパターン値が「６７」かどうかを判定する（ステップ２６１）。
ＰＡ［Ｋ，Ｌ］のパターン値が「６７」であれば、符号配列ＰＡ［Ｘ，Ｙ］及びブロック信頼度配列ＲＡ［Ｘ，Ｙ］を左方向に２７０度回転させる（ステップ２６２）。図４（ｂ）に示すようにパターン値「６７」の符号パターンは、パターン値「６４」の符号パターンを右に２７０度回転させた画像であるので、逆方向に２７０度回転させて画像を正立させている。尚、このとき、符号配列ＰＡ［Ｘ，Ｙ］内の全てのパターン値が、左方向に２７０度回転させた場合のパターン値に変換され、ブロック信頼度配列ＲＡ［Ｘ，Ｙ］内の全ての信頼度が、左方向に２７０度回転させた場合の信頼度に変換される。
また、この回転に伴って、同期符号のあるブロックのＸ座標ＳＸに６−Ｌを代入し、Ｙ座標ＳＹにＫを代入する。また、ブロックフレームのＸ方向への移動量ＳｈｉｆｔＸに２−ＭＹを代入し、Ｙ方向への移動量ＳｈｉｆｔＹにＭＸを代入する（ステップ２６３）。
【００８３】
そして、ステップ２５４、２５７、２６０、２６３で、ＳＸ、ＳＹ、ＳｈｉｆｔＸ、ＳｈｉｆｔＹに値が代入された場合、同期符号検出部２４は、ＰＡ［Ｘ，Ｙ］とこれらの値とＲＡ［Ｘ，Ｙ］を識別符号検出部３０、Ｘ座標符号検出部４０、Ｙ座標符号検出部４５に出力する（ステップ２６４）。
また、ＰＡ［Ｋ，Ｌ］がパターン値「６４」〜「６７」のいずれでもなければ、同期符号検出部２４は、Ｋ＝１５であるかどうかを判定する（ステップ２６５）。Ｋ＝１５でない場合には、Ｋに「１」を加算し（ステップ２６６）、ステップ２５３に戻る。Ｋ＝１５であれば、Ｌ＝１５であるかどうかを判定する（ステップ２６７）。Ｌ＝１５でない場合には、Ｋに「１」を代入し、Ｌに「１」を加算し（ステップ２６８）、ステップ２５３に戻る。即ち、ステップ２５３〜２６４の処理を、パターン値「６４」〜「６７」のブロックを検出するまでＫ、Ｌの値を変更しながら繰り返し行う。また、Ｋ＝１５、Ｌ＝１５になっても、パターン値「６４」〜「６７」のブロックを検出することができなかった場合には、復号不能の判定信号を出力する（ステップ２６９）。
【００８４】
次に、識別符号検出部３０及び識別符号復号部３２の動作について説明する。尚、識別符号検出部３０の動作としては、図１４に示したような動作と、図１６の信頼度付きヒストグラム法を用いた場合の動作とがあるが、ここでは、後者について説明する。
図１９は、識別符号検出部３０及び識別符号復号部３２の動作例を示したフローチャートである。
まず、識別符号検出部３０は、同期符号検出部２４から符号配列ＰＡ［Ｘ，Ｙ］、ＳＸ、ＳＹ、ブロック信頼度配列ＲＡ［Ｘ，Ｙ］を取得する（ステップ３０１）。
次に、識別符号検出部３０は、判定配列ＩＡ［Ｘ，Ｙ，Ｐ］の全ての要素を「０」で初期化する（ステップ３０２）。そして、符号ブロックにおける各ブロックを識別するためのカウンタＩＸ、ＩＹに「１」を代入する（ステップ３０３）。ここで、ＩＸは、Ｘ方向のブロック数を示すカウンタであり、ＩＹは、Ｙ方向のブロック数を示すカウンタである。
【００８５】
また、識別符号検出部３０は、ＩＹ−ＳＹが「５」で割り切れるかどうかを判定する（ステップ３０４）。即ち、ＩＹで特定されるブロックに同期符号が配置されているかどうかを判定する。
ここで、ＩＹ−ＳＹが「５」で割り切れた場合、つまり、このブロックに同期符号が配置されている場合は、識別符号を取り出す対象ではないため、ＩＹに「１」を加算し（ステップ３０５）、ステップ３０４へ進む。
一方、ＩＹ−ＳＹが「５」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合は、ＩＸ−ＳＸが「５」で割り切れるかどうかを判定する（ステップ３０６）。即ち、ＩＸで特定されるブロックに同期符号が配置されているかどうかを判定する。
【００８６】
ここで、ＩＸ−ＳＸが「５」で割り切れた場合、つまり、このブロックに同期符号が配置されている場合は、識別符号を取り出す対象ではないため、ＩＸに「１」を加算し（ステップ３０７）、ステップ３０６へ進む。
一方、ＩＸ−ＳＸが「５」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合、識別符号検出部３０は、ＩＡ［（ＩＸ−ＳＸ）ｍｏｄ５，（ＩＹ−ＳＹ）ｍｏｄ５，ＰＡ［ＩＸ，ＩＹ］］にＲＡ［ＩＸ，ＩＹ］を加算する（ステップ３０８）。
【００８７】
そして、ＩＸ＝１５であるかどうかを判定する（ステップ３０９）。
ここで、ＩＸ＝１５でない場合には、ＩＸに「１」を加算して（ステップ３０７）、ステップ３０６〜３０８の処理をＩＸ＝１５となるまで繰り返し行う。また、ＩＸ＝１５となると、次に、ＩＹ＝１５であるかどうかを判定する（ステップ３１０）。ＩＹ＝１５でない場合には、ＩＸに「１」を代入し（ステップ３１１）、ＩＹに「１」を加算して（ステップ３０５）、ステップ３０４〜３０９の処理をＩＹ＝１５となるまで繰り返し行う。また、ＩＹ＝１５となると、これまで求めたＩＡ［Ｘ，Ｙ，Ｐ］の最大値を求める処理に移る。
【００８８】
まず、識別符号検出部３０は、識別符号配列における各ブロックを識別するためのＪＸ、ＪＹに「１」を代入する（ステップ３２１）。
次に、識別符号検出部３０は、ステップ３０８で生成した判定配列ＩＡ［ＪＸ，ＪＹ，Ｐ］を最大にするＰの値を、識別符号配列ＩＰ［ＪＸ，ＪＹ］に格納する（ステップ３２２）。
そして、ＪＸ＝４であるかどうかを判定する（ステップ３２３）。
ここで、ＪＸ＝４でない場合には、ＪＸに「１」を加算して（ステップ３２４）、ステップ３２２の処理をＪＸ＝４となるまで繰り返し行う。また、ＪＸ＝４となると、次に、ＪＹ＝４であるかどうかを判定する（ステップ３２５）。ＪＹ＝４でない場合には、ＪＸに「１」を代入し、ＪＹに「１」を加算して（ステップ３２６）、ステップ３２２〜３２４の処理をＪＹ＝４となるまで繰り返し行う。また、ＪＹ＝４となると、識別符号復号部３２の処理に移る。
【００８９】
即ち、識別符号復号部３２は、ＩＰ［Ｘ，Ｙ］を復号できるかどうかを判定する（ステップ３２７）。
ここで、ＩＰ［Ｘ，Ｙ］を復号できると判定すると、識別符号復号部３２は、ＩＰ［Ｘ，Ｙ］から識別情報を復号する（ステップ３２８）。また、ＩＰ［Ｘ，Ｙ］が復号できないと判定された場合は、識別情報にＮ／Ａを代入する（ステップ３２９）。
【００９０】
次に、Ｘ座標符号検出部４０及びＸ座標符号復号部４２の動作について説明する。尚、Ｘ座標符号検出部４０の動作としては、図１５に示したような動作と、図１６の信頼度付きヒストグラム法を用いた場合の動作とがあるが、ここでは、後者について説明する。
図２０は、Ｘ座標符号検出部４０及びＸ座標符号復号部４２の動作例を示したフローチャートである。
まず、Ｘ座標符号検出部４０は、同期符号検出部２４から符号配列ＰＡ［Ｘ，Ｙ］、ＳＸ、ＳＹ、ＳｈｉｆｔＸ、ＳｈｉｆｔＹ、ブロック信頼度配列ＲＡ［Ｘ，Ｙ］を取得する（ステップ４０１）。
次に、Ｘ座標符号検出部４０は、判定配列ＸＡ［Ｘ，Ｐ］の全ての要素を「０」で初期化する（ステップ４０２）。そして、符号ブロックにおける各ブロックを識別するためのカウンタＩＸ、ＩＹに「１」を代入する。ここで、ＩＸは、Ｘ方向のブロック数を示すカウンタであり、ＩＹは、Ｙ方向のブロック数を示すカウンタである。更に、Ｘ座標符号検出部４０は、判定配列における各要素を識別するためのカウンタＫＸにも「１」を代入する（ステップ４０３）。
【００９１】
また、Ｘ座標符号検出部４０は、ＩＹ−ＳＹが「５」で割り切れるかどうかを判定する（ステップ４０４）。即ち、ＩＹで特定されるブロックに同期符号が配置されているかどうかを判定する。
ここで、ＩＹ−ＳＹが「５」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合は、Ｘ座標符号を取り出す対象ではないため、ＩＹに「１」を加算し（ステップ４０５）、ステップ４０４へ進む。
一方、ＩＹ−ＳＹが「５」で割り切れた場合、つまり、このブロックに同期符号が配置されている場合、Ｘ座標符号検出部４０は、ＩＸ−ＳＸが「５」で割り切れるかどうかを判定する（ステップ４０６）。即ち、ＩＸで特定されるブロックに同期符号が配置されているかどうかを判定する。
【００９２】
ここで、ＩＸ−ＳＸが「５」で割り切れた場合、つまり、このブロックに同期符号が配置されている場合は、Ｘ座標符号を取り出す対象ではないため、ＩＸに「１」を加算し（ステップ４０７）、ステップ４０６へ進む。
一方、ＩＸ−ＳＸが「５」で割り切れなかった場合、つまり、このブロックに同期符号が配置されていない場合、Ｘ座標符号検出部４０は、ＸＡ［ＫＸ，ＰＡ［ＩＸ，ＩＹ］］にＲＡ［ＩＸ，ＩＹ］を加算する（ステップ４０８）。
【００９３】
そして、ＩＸ＝１５であるかどうかを判定する（ステップ４０９）。
ここで、ＩＸ＝１５でない場合には、ＫＸに「１」を加算し（ステップ４１０）、ＩＸに「１」を加算して（ステップ４０７）、ステップ４０６〜４０８の処理をＩＸ＝１５となるまで繰り返し行う。また、ＩＸ＝１５となると、次に、ＩＹ＝１５であるかどうかを判定する（ステップ４１１）。ＩＹ＝１５でない場合には、ＩＸ、ＫＸに「１」を代入し（ステップ４１２）、ＩＹに「１」を加算して（ステップ４０５）、ステップ４０４〜４１０の処理をＩＹ＝１５となるまで繰り返し行う。また、ＩＹ＝１５となると、これまで求めたＸＡ［Ｘ，Ｐ］の最大値を求める処理に移る。
【００９４】
まず、Ｘ座標符号検出部４０は、Ｘ座標符号配列における各ブロックを識別するためのＪＸに「１」を代入する（ステップ４２１）。
次に、Ｘ座標符号検出部４０は、ステップ４０８で生成した判定配列ＸＡ［ＪＸ，Ｐ］を最大にするＰの値を、Ｘ座標符号配列ＸＰ［ＪＸ］に格納する（ステップ４２２）。
そして、ＪＸ＝１２であるかどうかを判定する（ステップ４２３）。
ここで、ＪＸ＝１２でない場合には、ＪＸに「１」を加算して（ステップ４２４）、ステップ４２２の処理をＪＸ＝１２となるまで繰り返し行う。また、ＪＸ＝１２となると、Ｘ座標符号復号部４２の処理に移る。
【００９５】
即ち、Ｘ座標符号復号部４２は、ＸＰ［Ｘ］を復号できるかどうかを判定する（ステップ４２５）。
ここで、ＸＰ［Ｘ］を復号できると判定すると、Ｘ座標符号復号部４２は、ＸＰ［Ｘ］とＳｈｉｆｔＸからＸ座標情報を復号する（ステップ４２６）。また、ＸＰ［Ｘ］が復号できないと判定された場合は、Ｘ座標情報にＮ／Ａを代入する（ステップ４２７）。
【００９６】
尚、ここでは、Ｘ座標符号検出部４０及びＸ座標符号復号部４２の動作のみ説明したが、Ｙ座標符号検出部４５及びＹ座標符号復号部４７も同様の動作を行う。
以上により、本実施の形態における画像処理装置２０の動作説明を終了する。
【００９７】
次に、本実施の形態における画像処理装置２０の具体的なハードウェア構成について説明する。
まず、画像処理装置２０を実現する識別装置、電子筆記具の一例としてのペンデバイス６０について説明する。
図２１は、ペンデバイス６０の機構を示した図である。
図示するように、ペンデバイス６０は、ペン全体の動作を制御する制御回路６１を備える。また、制御回路６１は、入力画像から検出した符号画像を処理する画像処理部６１ａと、そこでの処理結果から識別情報及び座標情報を抽出するデータ処理部６１ｂとを含む。ここで、座標情報は、時系列に並べることにより、筆記の軌跡を電子化した筆記データの一例である筆記情報を構成するので、データ処理部６１ｂは、筆記データを生成する生成手段の一例である。
そして、制御回路６１には、ペンデバイス６０による筆記動作をペンチップ６９に加わる圧力によって検出する圧力センサ６２が接続されている。また、媒体上に赤外光を照射する赤外ＬＥＤ６３と、画像を入力する読取手段の一例としての赤外ＣＭＯＳ６４も接続されている。更に、識別情報及び座標情報を記憶するための情報メモリ６５と、識別情報及び座標情報を外部装置に送信する出力手段の一例としての通信回路６６と、ペンを駆動するためのバッテリ６７と、ペンの識別情報（ペンＩＤ）を記憶するペンＩＤメモリ６８も接続されている。
【００９８】
尚、図８に示した画像読取部２１は、例えば、図２１の赤外ＣＭＯＳ６４にて実現される。また、ドット配列生成部２２、ドット信頼度配列生成部２５は、例えば、図２１の画像処理部６１ａにて実現される。更に、図８に示したブロック検出部２３、同期符号検出部２４、ブロック信頼度配列生成部２６、識別符号検出部３０、識別符号復号部３２、Ｘ座標符号検出部４０、Ｘ座標符号復号部４２、Ｙ座標符号検出部４５、Ｙ座標符号復号部４７、情報出力部５０は、例えば、図２１のデータ処理部６１ｂにて実現される。
【００９９】
また、図２１の画像処理部６１ａ又はデータ処理部６１ｂにて実現される処理は、例えば、汎用のコンピュータで実現してもよい。そこで、かかる処理をコンピュータ９０で実現するものとし、コンピュータ９０のハードウェア構成について説明する。
図２２は、コンピュータ９０のハードウェア構成を示した図である。
図示するように、コンピュータ９０は、演算手段であるＣＰＵ（Central Processing Unit）９１と、記憶手段であるメインメモリ９２及び磁気ディスク装置（ＨＤＤ：Hard Disk Drive）９３とを備える。ここで、ＣＰＵ９１は、ＯＳ（Operating System）やアプリケーション等の各種ソフトウェアを実行し、上述した各機能を実現する。また、メインメモリ９２は、各種ソフトウェアやその実行に用いるデータ等を記憶する記憶領域であり、磁気ディスク装置９３は、各種ソフトウェアに対する入力データや各種ソフトウェアからの出力データ等を記憶する記憶領域である。
更に、コンピュータ９０は、外部との通信を行うための通信Ｉ／Ｆ９４と、ビデオメモリやディスプレイ等からなる表示機構９５と、キーボードやマウス等の入力デバイス９６とを備える。
【０１００】
尚、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭ等の記録媒体に格納して提供することも可能である。
【符号の説明】
【０１０１】
２０…画像処理装置、２１…画像読取部、２２…ドット配列生成部、２３…ブロック検出部、２４…同期符号検出部、２５…ドット信頼度配列生成部、２６…ブロック信頼度配列生成部、３０…識別符号検出部、３２…識別符号復号部、４０…Ｘ座標符号検出部、４２…Ｘ座標符号復号部、４５…Ｙ座標符号検出部、４７…Ｙ座標符号復号部、５０…情報出力部
【図１】
0005609469.tif 000002
【図２】
0005609469.tif 000003
【図３】
0005609469.tif 000004
【図４】
0005609469.tif 000005
【図５】
0005609469.tif 000006
【図６】
0005609469.tif 000007
【図７】
0005609469.tif 000008
【図８】
0005609469.tif 000009
【図９】
0005609469.tif 000010
【図１０】
0005609469.tif 000011
【図１１】
0005609469.tif 000012
【図１２】
0005609469.tif 000013
【図１３】
0005609469.tif 000014
【図１４】
0005609469.tif 000015
【図１５】
0005609469.tif 000016
【図１６】
0005609469.tif 000017
【図１７】
0005609469.tif 000018
【図１８】
0005609469.tif 000019
【図１９】
0005609469.tif 000020
【図２０】
0005609469.tif 000021
【図２１】
0005609469.tif 000022
【図２２】
0005609469.tif 000023