(57)【特許請求の範囲】
【請求項１】
主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なう画像処理装置であって、
該複数列のライン画像データを成す部分データ間の相互相関に基づいて、該画像データの左側および右側の主走査方向ずれ量をそれぞれ推定する推定手段と、
該画像データに基づいて、該画像データの上下両側における画像の傾きをそれぞれ検出する検出手段と、
該推定手段によって推定された該主走査方向ずれ量と該検出手段によって検出された該傾きとに基づいて、該画像データを再構成して該画像データの歪みを解消する再構成手段とをそなえたことを特徴とする、画像処理装置。
【請求項２】
該推定手段が、前記左側の画像データ領域および前記右側の画像データ領域のそれぞれから、前記副走査方向に適当な間隔をあけて該ライン画像データを順次抽出し、前記間隔をあけた該ライン画像データどうしの相互相関に基づいて、前記の左側および右側の主走査方向ずれ量をそれぞれ推定することを特徴とする、請求項１記載の画像処理装置。
【請求項３】
主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なう画像処理機能をコンピュータに実行させるための画像処理プログラムであって、
該複数列のライン画像データを成す部分データ間の相互相関に基づいて、該画像データの左側および右側の主走査方向ずれ量をそれぞれ推定する推定手段、
該画像データに基づいて、該画像データの上下両側における画像の傾きをそれぞれ検出する検出手段、および、
該推定手段によって推定された該主走査方向ずれ量と該検出手段によって検出された該傾きとに基づいて、該画像データを再構成して該画像データの歪みを解消する再構成手段として、該コンピュータを機能させることを特徴とする、画像処理プログラム。
【請求項４】
主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なう画像処理装置であって、
該画像データを該副走査方向について複数のブロックに分割する分割手段と、
該分割手段により分割されて得られた各ブロックの上下両側における画像の傾きを推定する傾き推定手段と、
該分割手段により分割されて得られた各ブロックの左側および右側の主操作方向ずれ量を、各ブロック内のライン画像データを成す部分データ間の相互相関に基づいて推定するずれ量推定手段と、
該分割手段により分割されて得られた各ブロックについて、該ずれ量推定手段によって推定された該主走査方向ずれ量と該傾き推定手段によって推定された上下両側における該傾きとに基づいて、当該ブロック内の画像データを再構成して当該ブロック内の画像データの歪みを解消する再構成手段とをそなえたことを特徴とする、画像処理装置。
【請求項５】
該傾き推定手段が、該複数のブロックのうちの隣接する２つのブロックの境界における画像の傾きを、該境界に跨って存在する画像データに基づいて該境界の傾きとして推定し、推定された該境界の傾きを、該２つのブロックのうちの上側ブロックの下側における画像の傾き、および、該２つのブロックのうちの下側ブロックの上側における画像の傾きの推定結果として採用することを特徴とする、請求項４記載の画像処理装置。
【請求項６】
主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なう画像処理機能をコンピュータに実行させるための画像処理プログラムであって、
該画像データを該副走査方向について複数のブロックに分割する分割手段、
該分割手段により分割されて得られた各ブロックの上下両側における画像の傾きを推定する傾き推定手段、
該分割手段により分割されて得られた各ブロックの左側および右側の主操作方向ずれ量を、各ブロック内のライン画像データを成す部分データ間の相互相関に基づいて推定するずれ量推定手段、および、
該分割手段により分割されて得られた各ブロックについて、該ずれ量推定手段によって推定された該主走査方向ずれ量と該傾き推定手段によって推定された上下両側における該傾きとに基づいて、当該ブロック内の画像データを再構成して当該ブロック内の画像データの歪みを解消する再構成手段として、該コンピュータを機能させることを特徴とする、画像処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばハンドヘルド型イメージスキャナなどの画像入力装置から入力された画像（特に文書画像）の歪みを補正するための画像処理装置および画像処理プログラムに関する。
【０００２】
【従来の技術】
一般に、パーソナルコンピュータ等の情報処理装置に画像を入力するための装置としては、イメージスキャナが利用されている。これまでのイメージスキャナとしては、据置き型の、いわゆるフラットベッド型やドラムスキャナ型のイメージスキャナが用いられているが、近年、持ち運びが容易でユーザが手で持って画像のスキャンを行なうことのできる、簡易型のイメージスキャナ（ハンドヘルド型イメージスキャナ）が開発・製品化されている。
【０００３】
図１６は、一般的なハンドヘルド型イメージスキャナの構成を説明すべく、その原稿接触面を示す平面図である。この図１６に示すように、ハンドヘルド型イメージスキャナ１０は、基本的に、画像を取り込むための１次元のラインセンサ１１と、ユーザ（操作者）によるスキャン操作に伴ってその画像原稿に接触しながら回転する複数（図中４個）のローラ１２と、スキャン操作に伴うイメージスキャナ１０の移動量を検出すべくローラ１２の回転数を検出する、一次元のロータリエンコーダ（図示省略）とをそなえて構成されている。なお、複数のローラ１２は、同一回転軸を有し、一体的に回転するように構成されている。また、ラインセンサ１１の主走査方向幅は固定長Ｗである。
【０００４】
上述したイメージスキャナ１０を用いて画像を取り込む際、ユーザは、イメージスキャナ１０を手で持ってサンプル対象の画像に沿って所定方向（副走査方向）へ移動させる。このとき、イメージスキャナ１０の移動に伴ってローラ１２が回転し、その回転数がエンコーダにより検出される。そして、検出されたローラ１２の回転数に応じたタイミングで、ラインセンサ１１により、主走査方向１ライン分の画像データ（以下、ライン画像データという）が得られ、そのライン画像データが１ラインずつイメージスキャナから情報処理装置へ送信される。これにより、サンプル対象の画像が、主走査方向に沿う複数列のライン画像データを副走査方向に配列して成る画像データとして、情報処理装置に取り込まれる。
【０００５】
ところで、サンプル対象の画像が文書画像である場合、ユーザによるイメージスキャナ１０の操作方向（副走査方向）が文書の文字列の方向に対して平行または垂直であることが理想的である。
しかし、イメージスキャナ１０がサンプル対象の画像に対し一方向のみに移動するようにその移動方向を規制するための機構は特にそなえられていない。ただ、ユーザによる実際のスキャン操作時には、前述したローラ１２により、イメージスキャナ１０の移動方向をローラ１２の回転方向に沿わせるような若干の拘束力が作用するが、その拘束力は弱く、その移動方向を一方向に規制できるほどのものではない。
【０００６】
従って、ハンドヘルド型イメージスキャナ１０についてのユーザによる操作自由度は高く、そのため、ユーザの意識とは無関係にイメージスキャナ１０のスキャン操作方向（移動方向）が変化し、読み取られた画像に歪みが発生してしまう場合が多い。
【０００７】
例えば、ユーザの真正面に置かれた画像原稿を、イメージスキャナ１０をユーザ方向へ移動させながら読み取る場合を考える。
この場合、右利きのユーザが右手でイメージスキャナ１０を持ってスキャン操作を行なうと、イメージスキャナ１０が手前に近づくにつれて右肘を右方向へ逃がすような腕の動きが生じる。このような腕の動きに伴って、図１７（Ａ）に示すごとく、イメージスキャナ１０の操作方向は無意識のうちに僅かながら右方向へずれていく傾向がある。逆にユーザが左利きの場合、その操作方向は左方向へずれる傾向がある。このときイメージスキャナ１０によって読み取られた画像には、操作方向（副走査方向）の位置に依ってラインセンサ方向（主走査方向）へのずれ、つまり歪みが発生する。
【０００８】
また、場合によっては、上述のような腕の動きに伴い、図１７（Ｂ）に示すごとく、イメージスキャナ１０の操作方向が右方向へずれると同時にイメージスキャナ１０の一端側〔図１７（Ｂ）では左側〕で滑りが生じ、イメージスキャナ１０によるスキャン領域が扇形になることもある。このときイメージスキャナ１０によって読み取られた画像データには、ラインセンサ方向（主走査方向）のみならず操作方向（副走査方向）にも歪みが発生する。
【０００９】
そこで、従来、イメージスキャナに光学式の二次元センサを埋め込んでおき、この二次元センサを用いて、画像原稿上でイメージスキャナ本体がどのように移動したかを二次元的に検出し、その検出結果に応じて、ハンドヘルド型イメージスキャナによって読み取られた画像データを補正するという技術が提案されている。ここで、光学式の二次元センサは、紙等の画像形成面上の微小な凹凸状態を追うことにより、スキャン操作開始後、イメージスキャナ本体が二次元的にどのように移動したかを検出する。
【００１０】
【発明が解決しようとする課題】
しかしながら、上述した二次元センサは高価であるため、二次元センサをそなえた場合、画像データの歪みを補正することはできるが、イメージスキャナの製造コストが高くなるという課題がある。このため、二次元センサ等を新たに追加することなく、ラインセンサによって得られた画像データを用いて、その画像データの歪みを推定し補正できるようにすることが望まれている。
【００１１】
本発明は、このような課題に鑑み創案されたもので、二次元センサを用いることなく、読み取られた画像データのみを用いて画像データの歪みを補正可能にして、製造コストの増大を招くことなく、歪みの無い高品質の画像データを得られるようにした、画像処理装置および画像処理プログラムを提供することを目的とする。
【００１５】
【課題を解決するための手段】
上記目的を達成するために、本発明の画像処理装置（請求項１）は、主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なうものであって、該複数列のライン画像データを成す部分データ間の相互相関に基づいて該画像データの左側および右側の主走査方向ずれ量をそれぞれ推定する推定手段と、該画像データに基づいて該画像データの上下両側における画像の傾きをそれぞれ検出する検出手段と、該推定手段によって推定された該主走査方向ずれ量と該検出手段によって検出された該傾きとに基づいて該画像データを再構成して該画像データの歪みを解消する再構成手段とをそなえたことを特徴としている。
このとき、該推定手段が、前記左側の画像データ領域および前記右側の画像データ領域のそれぞれから、前記副走査方向に適当な間隔をあけて該ライン画像データを順次抽出し、前記間隔をあけた該ライン画像データどうしの相互相関に基づいて、前記の左側および右側の主走査方向ずれ量をそれぞれ推定してもよい（請求項２）。
そして、本発明の画像処理プログラム（請求項３）は、コンピュータを、上述した本発明の画像処理装置（請求項１）における推定手段，検出手段および再構成手段として機能させるものである。
【００１６】
この画像処理装置（請求項１，２）や画像処理プログラム（請求項３）によって実現される画像処理装置においては、画像（特に文書画像）の全体的な構造に着目して、距離がそれほど離れていない１次元イメージデータ（部分データ）どうしはそれほど大きく変化しない場合が多いことを利用し、部分データ間の相互相関に基づいて画像データの左側および右側の主走査方向ずれ量を推定している。そして、この画像処理装置においては、画像データの上下両側における画像の傾きを検出した上で、これらのずれ量および傾きに基づいて画像データの本来の外形を推定して画像データの再構成を行なうことで、画像データの歪みが解消される。これにより、二次元センサを用いることなく、読み取られた画像データのみを用いて画像データの二次元的な歪みを補正することができる。
【００１７】
一方、本発明の画像処理装置（請求項４）は、主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なうものであって、該画像データを該副走査方向について複数のブロックに分割する分割手段と、該分割手段により分割されて得られた各ブロックの上下両側における画像の傾きを推定する傾き推定手段と、該分割手段により分割されて得られた各ブロックの左側および右側の主操作方向ずれ量を、各ブロック内のライン画像データを成す部分データ間の相互相関に基づいて推定するずれ量推定手段と、該分割手段により分割されて得られた各ブロックについて、該ずれ量推定手段によって推定された該主走査方向ずれ量と該傾き推定手段によって推定された上下両側における該傾きとに基づいて、当該ブロック内の画像データを再構成して当該ブロック内の画像データの歪みを解消する再構成手段とをそなえたことを特徴としている。
このとき、該傾き推定手段が、該複数のブロックのうちの隣接する２つのブロックの境界における画像の傾きを、該境界に跨って存在する画像データに基づいて該境界の傾きとして推定し、推定された該境界の傾きを、該２つのブロックのうちの上側ブロックの下側における画像の傾き、および、該２つのブロックのうちの下側ブロックの上側における画像の傾きの推定結果として採用してもよい（請求項５）。
そして、本発明の画像処理プログラム（請求項６）は、コンピュータを、上述した本発明の画像処理装置（請求項４）における分割手段，傾き推定手段，ずれ量推定手段および再構成手段として機能させるものである。
【００１８】
上述した画像処理装置（請求項４，５）や画像処理プログラム（請求項６）によって実現される画像処理装置においては、まず、画像データを副走査方向について複数のブロックに分割してから、各ブロックの上下両側における画像の傾きを推定しておく。また、各ブロックにおいて、画像（特に文書画像）の全体的な構造に着目し、距離がそれほど離れていない１次元イメージデータ（部分データ）どうしはそれほど大きく変化しない場合が多いことを利用し、部分データ間の相互相関に基づいて画像データの左側および右側の主走査方向ずれ量を推定する。そして、この画像処理装置においては、ブロック毎に、推定された傾きとずれ量とに基づいて、そのブロックの本来の外形を推定して画像データの再構成を行ない、各ブロック内の画像データの歪みが解消される。これにより、例えばハンドヘルド型イメージスキャナで画像データを読み取った際にこのイメージスキャナが蛇行していたとしても、二次元センサを用いることなく、上記イメージスキャナにより読み取られた画像データのみを用いて、蛇行に伴う画像データの二次元的な歪みを補正することができる。
【００１９】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
本実施形態の画像処理装置（符号１００，１００Ａ，１００Ｂ参照）は、例えばハンドヘルド型イメージスキャナ（図１６の符号１０参照）により読み取られた画像データを処理対象としている。このような画像データは、主走査方向（左右方向）に沿う多数列のライン画像データを副走査方向（上下方向）に配列して構成されている。
【００２０】
そして、本実施形態の画像処理装置では、前述したように、画像の全体的な構造に着目して、距離がそれほど離れていない１次元イメージデータ（ライン画像データ）どうしはそれほど大きく変化しないことを利用している。つまり、ライン画像データ（以下、単にラインという場合がある）間の相互相関を用いることにより、各ラインのずれ量を推定している。
【００２１】
例えば、現在一般的に使用されているイメージスキャナの解像度は、およそ２００〜１２００dpiであるが、この場合、通常使用されている１２ポイントの大きさの文字は、およそ３３〜２００画素から構成される。これだけの画素数で文字が構成されている場合、１０画素程度はなれた２つのラインはほぼ同一であることが期待される。また、文書には罫線や約物が使用されることが多く、これらは、直線で構成されている部分を多く有しているので、先の２つのラインがほぼ同一になるという性質をより一層補強している。
【００２２】
〔１〕本発明の第１実施形態の説明
図１は本発明の第１実施形態としての画像処理装置の構成を示すブロック図であり、この図１に示すように、第１実施形態の画像処理装置１００は、画像バッファ１０１，第１ラインカウンタ１０２，第２ラインカウンタ１０３，距離メモリ１０４，相互相関係数演算部１０５，最小相互相関係数検出部１０６，最小相互相関係数メモリ１０７，ずれ量カウンタ１０８，最小相互相関係数位置メモリ１０９，ずれ量メモリ１１０，線形補間処理部１１１および補正画像バッファ１１２から構成されている。
【００２３】
なお、実際には、画像処理装置１００は、例えばパーソナルコンピュータ等の情報処理装置によって実現される。
つまり、情報処理装置内のメモリ（ＲＡＭ，ＲＯＭ，ハードディスク等）が、画像バッファ１０１，第１ラインカウンタ１０２，第２ラインカウンタ１０３，距離メモリ１０４，最小相互相関係数メモリ１０７，ずれ量カウンタ１０８，最小相互相関係数位置メモリ１０９，ずれ量メモリ１１０および補正画像バッファ１１２としての機能を果たしている。
【００２４】
また、情報処理装置内のＣＰＵが所定の画像処理プログラムを実行することにより、相互相関係数演算部１０５，最小相互相関係数検出部１０６および線形補間処理部１１１としての機能（後述する推定手段および補正手段としての機能）が実現されるようになっている。このように、本実施形態の画像処理装置１００は、情報処理装置において、画像処理プログラムを起動・実行することによって実現される。なお、実際には、画像処理プログラムは、情報処理装置のハードディスクに記憶されており、ハードディスクからメモリ（ＲＡＭ等）に読み出された上で、ＣＰＵによって起動・実行される。
【００２５】
ここで、本実施形態の画像処理プログラムを記録されたコンピュータ読取可能な記録媒体について説明する。本実施形態では、画像処理プログラムは、ハードディスクに予め記録され、必要に応じてメモリ（ＲＡＭ等）に読み出されて起動されるものとして説明するが、画像処理プログラムは、必ずしもハードディスク上に記録されている必要はない。
【００２６】
画像処理プログラムは、その画像処理プログラムを予め記録された可搬型記録媒体から、画像処理装置１００として機能させるべき情報処理装置にロードされてもよい。あるいは、情報処理装置が、インターネット等の通信回線を通じて、その画像処理プログラムを予め記憶したサーバと通信することにより、その画像処理プログラムを、サーバの記憶装置から情報処理装置にダウンロードしてもよい。なお、サーバは、例えばプログラム提供者の所有するものである。また、外部から情報処理装置にダウンロードされた画像処理プログラムは、ハードディスクではなく、情報処理装置に接続された補助記憶装置に保管してもよい。この場合、画像処理プログラムは、その補助記憶装置から情報処理装置内のメモリ（ＲＡＭ等）に読み出されて実行される。
【００２７】
上述した可搬型記録媒体は、例えばフレキシブルディスク，ＣＤ−ＲＯＭ等の、コンピュータ読取可能な記録媒体である。また、上述したサーバの記憶装置や補助記憶装置は、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（コンピュータ読取可能な記録媒体）である。さらに、画像処理プログラムを記録する記録媒体としては、ＩＣカード，ＲＯＭカートリッジ，磁気テープ，パンチカードのほか、バーコードなどの符号を印刷した印刷物等の、コンピュータ読取可能な種々の媒体を利用することもできる。
【００２８】
画像バッファ１０１は、例えばハンドヘルド型イメージスキャナ（図１６の符号１０参照）によって読み取られた画像データを保持するもので、この画像データは、主走査方向〔左右方向；一次元ラインセンサ（図１６の符号１１参照）の方向〕に沿う多数列のライン画像データを副走査方向（上下方向）に配列して構成されている。
【００２９】
第１ラインカウンタ１０２および第２ラインカウンタ１０３は、相互相関係数の演算対象となる、所定の間隔をあけた２本のライン（部分データ）を指定するためのもので、これらのラインカウンタ１０２，１０３によって示される値に応じたラインが、画像バッファ１０１から相互相関係数演算部１０５へ出力されるようになっている。ここで、ラインカウンタ１０２，１０３の値は、画像バッファ１０１から読み出すべきライン画像データが何ライン目であるかを示す。ただし、本実施形態では、一番最初のラインを０ライン目としている。
【００３０】
距離メモリ１０４には、上記２本のラインの間隔（つまり副走査方向の距離に対応するライン数）ｄが予め設定され、その値ｄによって、どれだけ離れたラインとの相互相関を求めるかが指示される。そして、第２ラインカウンタ１０３には、第１ラインカウンタ１０２の値に距離メモリ１０４の値ｄを加算した値が設定される。従って、第１ラインカウンタ１０２によって指定されたラインから副走査方向に所定間隔ｄだけ離れたラインが、第２ラインカウンタ１０３によって指定される。なお、間隔ｄとしては、後述する理由により、５〜２０の値が適当であり、特に本実施形態では１０が設定される。
【００３１】
相互相関係数演算部１０５は、ラインカウンタ１０２，１０３に設定されている値に応じた２本のライン画像データ（部分データ）を、画像バッファ１０１から読み出し、これら２本のライン画像データ間の相互相関係数を、後述する式（１）に従って算出するものである。その際、相互相関係数演算部１０５は、上記２本のライン画像データ間の主走査方向のずれ量がずれ量カウンタ１０８に設定された値（画素数）ｓである時の相互相関係数を、後述する式（１）に従って演算する。具体的には、第１ラインカウンタ１０２によって指定される第１ラインに対して、第２ラインカウンタ１０３によって指定される第２ラインを、値ｓだけ主走査方向にずらした時の、相互相関係数が算出される。なお、下記（１）式によって算出される相互相関係数は、第１ラインと第２ラインとが全く同じである時には０となり、第１ラインと第２ラインとの類似度合いが低くなるにつれて大きな値となる。
【００３２】
最小相互相関係数検出部１０６は、所定範囲（本実施形態では後述するごとく−１，０，１の３値）のずれ量のそれぞれについて相互相関係数演算部１０５により算出された複数の相互相関係数の中から、最小の相互相関係数を検出するものである。この最小相互相関係数検出部１０６は、図３を参照しながら後述するごとく、最小相互相関係数メモリ１０７，ずれ量カウンタ１０８および最小相互相関係数位置メモリ１０９を利用しながら、最小の相互相関係数を検出・決定する。
【００３３】
ここで、ずれ量カウンタ１０８には、最小相互相関係数検出部１０６により、式（１）に代入すべきずれ量（上記所定範囲の値ｓ）が順次設定される。
また、最小相互相関係数メモリ１０７には、相互相関係数演算部１０５によって演算された相互相関係数のうち最小のものが記憶される。つまり、ある一つのずれ量について相互相関係数が相互相関係数演算部１０５によって算出される都度、最小相互相関係数検出部１０６は、今回算出された相互相関係数と、最小相互相関係数メモリ１０７に記憶されている最小相互相関係数（前回までに算出された１以上の相互相関係数のうち最小のもの）とを比較し、今回の相互相関係数の方が小さければ最小相互相関係数メモリ１０７の値を今回の相互相関係数に書き換える一方、そうでなければ最小相互相関係数メモリ１０７の値を書き換えることなく維持するようになっている。
【００３４】
最小相互相関係数位置メモリ１０９には、最小相互相関係数メモリ１０７の値を新たな相互相関係数に書き換えた場合、その新たな相互相関係数の算出時に用いられたずれ量の値（つまり、ずれ量カウンタ１０８の値ｓ）が、最小相互相関係数位置として書き込まれるようになっている。従って、この最小相互相関係数位置メモリ１０９には、上記所定範囲内の全てのずれ量についての相互相関係数の算出を完了した時点で、上記２本のライン画像データ間の相互相関係数が最小になった時のずれ量の値ｓが記憶されることになる。
【００３５】
そして、ずれ量メモリ１１０は、最小相互相関係数検出部１０６によって検出・決定されたずれ量を、第２ラインカウンタ１０３の値に対応させて記憶するものである。本実施形態では、上記所定範囲内の全てのずれ量についての相互相関係数の算出を完了した時点で最小相互相関係数位置メモリ１０９に記憶されている値ｓ（即ち、第１ラインと第２ラインとの相互相関係数が最小になる時のずれ量の値ｓ）が、第１ラインに対する第２ラインの主走査方向ずれ量の推定結果として、ずれ量メモリ１１０に記憶される。なお、以下、本実施形態においては、単に「ずれ量」という場合、その「ずれ量」は主走査方向のずれ量を意味している。
【００３６】
上記所定範囲内の全てのずれ量についての相互相関係数の算出を完了すると、第１ラインカウンタ１０２には、第２ラインカウンタ１０３の値が新たに設定されるとともに、第２ラインカウンタ１０３には、第１ラインカウンタ１０２の新設定値に距離メモリ１０４の値を加算した値が新たに設定されるようになっている。そして、新たな第１ラインと第２ラインとの組について主走査方向ずれ量が推定・算出される。このようにして、画像バッファ１０１に保持された全画像データについて、所定間隔ｄをあけたライン画像データごとに、主走査方向のずれ量が推定され、その推定結果がずれ量メモリ１１０に記憶される。
【００３７】
本実施形態では、上述した第１ラインカウンタ１０２，第２ラインカウンタ１０３，距離メモリ１０４，相互相関係数演算部１０５，最小相互相関係数検出部１０６，最小相互相関係数メモリ１０７，ずれ量カウンタ１０８および最小相互相関係数位置メモリ１０９によって、画像データを成すライン画像データ間の相互相関に基づいてこれらのライン画像データ間のずれ量を推定する推定手段が構成されている。
【００３８】
特に、本実施形態の推定手段は、画像バッファ１０１に保持された画像データから、副走査方向に所定間隔ｄをあけてライン画像データを順次抽出し、抽出されたライン画像データ間の相互相関に基づいて、これらのライン画像データ間の主走査方向ずれ量を推定するし、推定された主走査方向ずれ量をずれ量メモリ１１０に書き込むように構成されている。
【００３９】
線形補間処理部（補正手段）１１１は、ずれ量メモリ１１０に書き込まれたずれ量、つまり上記推定手段によって推定された主走査方向ずれ量に基づき、その主走査方向ずれを解消するように画像データのずれを補正するもので、より具体的には、画像バッファ１０１から画像データをなす各ラインを順次読み出し、ずれ量メモリ１１０のずれ量に応じて各ラインの主走査方向位置を調整・変換し、調整後のデータを補正画像バッファ１１２に書き込む。
【００４０】
その際、線形補間処理部１１１は、上述した第１ラインと第２ラインとの間に存在する各ラインの主走査方向ずれ量を、前記主走査方向ずれ量に基づき線形補間を行なって求めてから、その線形補間の結果に基づいて、各ラインの主走査方向位置を調整するようになっている。その線形補間の具体的な手法については後述する。
なお、補正画像バッファ１１２は、前述した通り、線形補間処理部１１１によって得られた補正画像を保持するものである。
【００４１】
次に、図２，図３および図４（Ａ）〜図４（Ｃ）を参照しながら、上述した第１実施形態の画像処理装置１００の動作について説明する。
図２に示すフローチャート（ステップＳ１１〜Ｓ１８）に従って、第１実施形態の画像処理手順を説明する。
まず、本実施形態では、例えば図１６に示したようなハンドヘルド型イメージスキャナ１０によって所定の文書画像が読み取られ、読み取られた画像データが画像バッファ１０１に格納される（ステップＳ１１）。その際、第１実施形態では、操作者のスキャン操作に伴ってイメージスキャナ１０が左右方向（主走査方向）に滑り、例えば図１７（Ａ）に示すような領域についてスキャンされたものとする。
【００４２】
そして、第１ラインカウンタ１０２に画像データの先頭ラインの番号“０”を設定する（ステップＳ１２）。また、距離メモリ１０４に、相互相関係数の計算対象である２本のラインの間隔（ライン数）ｄとして“１０”を設定する（ステップＳ１３）。さらに、第２ラインカウンタ１０３に、第１ラインカウンタ１０２の値と距離メモリ１０４の値とを加算した値（初期値は“１０”）を設定する（ステップＳ１４）。
【００４３】
この後、相互相関係数演算部１０５によって、第１ラインカウンタ１０２および第２ラインカウンタ１０３に設定された値に対応する２本のライン（最初は０番目のラインと１０番目のライン）が、画像バッファ１０１から読み出される。そして、図３によって後述する手順に従い、これら２本のラインの相互相関係数が最小になる時の、第１ラインに対する第２ラインの位置が、主走査方向のずれ量として算出・推定される（ステップＳ１５；推定ステップ）。
【００４４】
ずれ量が推定されると、第１ラインカウンタ１０２の値に距離メモリ１０４の値ｄを加算してから（ステップＳ１６）、この第１ラインカウンタ１０２に新たに設定された値に基づいて、次に相互相関係数の計算対象になる第２ラインが画像データのサイズ（最終ライン）を超えていないかどうかをチェックする（ステップＳ１７）。このステップＳ１７では、第１ラインカウンタ１０２の新たな設定値が、画像の最終ライン番号から距離メモリ１０４の値ｄを減算した結果よりも小さいか否かをチェックしている。
【００４５】
次の第２ラインが最終ラインを超えていない場合（ステップＳ１７のＹＥＳルート）、ステップＳ１４〜Ｓ１７を繰り返し実行する。次の第２ラインが最終ラインを超える場合（ステップＳ１７のＮＯルート）、画像データの全領域に対するずれ量推定を完了したものと判断され、線形補間処理部１１１において、ずれ量メモリ１１０に書き込まれたずれ量に基づき、後述するような一般的な線形補間処理を行ないながら、画像データにおける主走査方向ずれを解消するように画像データのずれが補正される（ステップＳ１８；補正ステップ）。
【００４６】
ついで、図３に示すフローチャート（ステップＳ２１〜Ｓ２８）に従って、ステップＳ１５（推定ステップ）でのずれ量推定手順について説明する。
まず、ずれ量カウンタ１０８に、第１ラインに対する第２ラインのずれ量の初期値として“−１”を設定する（ステップＳ２１）。本実施形態においては、イメージスキャナ１０を１０ライン前後移動させた時に発生する、主走査方向の最大ずれ量は、１画素分程度であることを前提とし、ずれ量カウンタ１０８に設定される値ｓ（ずれ量の範囲）を、−１，０，１の３値としている。
【００４７】
そして、最小相互相関係数メモリ１０９に、このメモリ１０９に設定可能な最大値を設定してから（ステップＳ２２）、相互相関係数演算部１０５において、第１ラインカウンタ１０２によって指定される第１ラインに対し、第２ラインカウンタ１０３によって指定される第２ラインが、ずれ量カウンタに設定されている値ｓだけずれている場合の、これら２本のラインの相互相関係数を、下記（１）式を用いて算出する（ステップＳ２３）。この相互相関係数の算出手法は一般的なものである。
【００４８】
〔相互相関係数〕＝Σ｛ＶA(i)−ＶB(i+s)｝2          （１）
ただし、（１）式において、“Σ”はｉ＝０〜Ｎ−１までの総和演算を意味するものとする。Ｎは１ラインを成す画素の数である。また、ＶA(i)は、第１ラインカウンタ１０２によって指定される第１ラインにおけるｉ番目の画素の値であり、ＶB(i)は、第２ラインカウンタ１０３によって指定される第２ラインにおけるi番目の画素の値であり、ｓは、前述した通り、ずれ量（ずれ量カウンタ１０８に設定されている値）である。上記（１）式では、各画素について算出された｛ＶA(i)−ＶB(i+s)｝2の総和が、相互相関係数として算出される。
【００４９】
相互相関係数演算部１０５によって算出された相互相関係数は、最小相互相関係数検出部１０６において、最小相互相関係数メモリ１０７に設定されている値（過去の最小相互相関係数の値）と比較される（ステップＳ２４）。その比較の結果、今回算出された相互相関係数の値が最小相互相関係数メモリ１０７の設定値よりも小さければ（ステップＳ２４のＹＥＳルート）、最小相互相関係数検出部１０６により、最小相互相関係数メモリ１０７の値が今回の相互相関係数に書き換えられるとともに、今回の演算に用いたずれ量カウンタ１０８の値ｓが、最小相互相関係数位置として最小相互相関係数位置メモリ１０９に格納される（ステップＳ２５）。この後、ずれ量カウンタ１０８の値に“１”を加算する（ステップＳ２６）。
【００５０】
一方、今回算出された相互相関係数の値が最小相互相関係数メモリ１０７の設定値以上であれば（ステップＳ２４のＮＯルート）、最小相互相関係数メモリ１０７の値は、書き換えられることなくそのまま維持される。この後、ずれ量カウンタ１０８の値に“１”を加算する（ステップＳ２６）。
そして、ずれ量カウンタ１０８の新たな値（１加算後の値）が“２”であるか否かが判定され（ステップＳ２７）、“２”でなければ（ＮＯルート）、ステップＳ２３〜Ｓ２７を繰り返し実行する。
【００５１】
また、ずれ量カウンタ１０８の新たな値が“２”であると判定された場合（ステップＳ２７のＹＥＳルート）、上述した所定範囲のずれ量−１，０，１についての処理が完了したものと判断され、この時点で、最小相互相関係数位置メモリ１０９に格納されているずれ量が、第１ラインに対する第２ラインの主走査方向ずれ量の推定結果として、ずれ量メモリ１１０に追加登録される（ステップＳ２８）。このとき、ずれ量メモリ１１０においては、推定された主走査方向ずれ量と第２ラインカウンタ１０３の値（ライン番号）とが対応付けられている。
【００５２】
次に、図４（Ａ）〜図４（Ｃ）を参照しながら、第１実施形態の画像処理手法を、より具体的に説明する。
図４（Ａ）は、例えば前述したイメージスキャン１０によって実際に読み取られた画像データの一部（ある漢字の下部）を拡大して示すもので、ここでは、図４（Ａ）に示す画像データに対して、第１実施形態の画像処理手法を適用した場合について説明する。
【００５３】
図４（Ａ）に示す画像データから、図４（Ｂ）に示すように、１０ラインごとにライン画像データが切り出される。図４（Ｂ）では、図４（Ａ）の画像データにおける、０番目（０ライン目）のライン画像データと、１０番目（１０ライン目）のライン画像データと、２０番目（２０ライン目）の画像データとが示されている。この図４（Ｂ）において、３つのライン画像データは、主走査方向および副走査方向のいずれについても、図４（Ａ）の画像データにおける位置関係を保持した状態で示されている。
【００５４】
そして、図４（Ｂ）に示すように切り出された０番目のラインと１０番目のラインとに図３にて説明した手法を適用した結果、１０番目のラインを０番目のラインに対して右方向に１画素だけ移動させた時に、相互相関係数が最小になったものとする。同様に、図４（Ｂ）に示すように切り出された１０番目のラインと２０番目のラインとに図３にて説明した手法を適用した結果は、２０番目のラインの１０番目のラインに対するずれ量が０である時に、相互相関係数が最小になったものとする。
【００５５】
このようなずれ量推定の結果に従って、図４（Ｂ）に示す３つのライン画像データは、図４（Ｃ）に示すように補正される。つまり、１０番目のラインは、０番目のラインに対して１画素だけ右方向へ移動され、２０番目のラインは、０番目のラインに対して１画素だけ右方向へ移動される。なお、上記推定結果では、２０番目のラインは、１０番目のラインに対してずれがないと推定されているので、１０番目のラインと２０番目のラインとの相対的な位置関係が変化しないように、２０番目のラインを０番目のラインに対して１画素だけ右方向へ移動させている。
【００５６】
また、このとき、相互相関係数を求めたライン間に存在するライン（１番目〜９番目のラインや１１番目〜１９番目のライン）は、線形補間処理部１１１の機能により、以下のような直線補間処理（線形補間処理）を施されて補正される。例えば、図４（Ｂ）および図４（Ｃ）に示す例では、０番目〜１０番目のラインの間で１画素分右にずれているので、０番目〜５番目のラインはそのままの位置に配置し、６番目〜１０番目のラインは１画素ずつ右にずらす。また、１０番目〜２０番目のラインの間ではずれが生じていないと推定されたので、１１番目〜２０番目のラインについては、１０番目のラインに対してはそのままの位置、つまり、原画像に対しては１画素ずつ右にずれた位置に移動する。
【００５７】
なお、本実施形態では、相互相関係数の演算対象となる２本のラインの間隔（距離）ｄを１０ライン（即ち副走査方向に１０画素）としている。これは、以下のような理由による。
発明者らが行なった実験によると、人間が、スキャン操作方向が曲がらないように意識しながらハンドヘルド型イメージスキャナを操作した場合、このイメージスキャナによって読み取られた画像データに生じる主走査方向ずれ量が、１画素となるのは、副走査方向にほぼ１０ライン（１０画素）だけ離れたラインにおいてであった。
【００５８】
そこで、本発明では、相互相関係数の演算対象となる２本のラインの間隔ｄとして、５〜２０の範囲内の値を設定するものとし、好ましくは１０前後の値を設定する。その間隔ｄが５未満であれば、主走査方向へのずれを検出することができなくなる。逆に、その間隔ｄが２０を超え、例えば１００程度になってしまうと、全く相関関係のない２本のラインどうしについて相互相関係数が算出される可能性があるため、有効なずれ量を推定することができなくなってしまう。
【００５９】
このように、本発明の第１実施形態としての画像処理装置１００によれば、二次元センサを用いることなく、読み取られた画像データのみを用いて画像データのずれ（一次元的な歪み）を確実に補正することができる。例えば、ハンドヘルド型イメージスキャナ１０のスキャン操作時に図１７（Ａ）に示すような主走査方向（ラインセンサ方向）への滑りが生じ、画像データに歪み（主走査方向のずれ）が生じたとしても、その歪みを解消し、歪みの無い高品質の画像データを得ることができる。従って、製造コストの増大を招くことなく、歪みの無い高品質の画像データを得ることができる。
【００６０】
また、副走査方向に適当な間隔ｄをあけて順次抽出されるライン画像データどうしの相互相関に基づいて、主走査方向ずれ量を推定することにより、主走査方向ずれ量を推定するための計算量が削減されて画像補正処理を効率的に行なえると同時に、主走査方向ずれ量の計算精度を向上させることができる。
【００６１】
このとき、適当な間隔をあけたライン画像データ間に存在する各ライン画像データのずれ量は、線形補間処理部１１１において、主走査方向ずれ量に基づく線形補間処理を行なうことにより算出され、その線形補間の結果に基づいて画像データが補正される。これにより、適当な間隔ｄをあけて推定された主走査方向ずれ量が、各ライン画像データに線形に割り当てられ、画像データの補正が滑らかに行なわれる。
【００６２】
〔２〕本発明の第２実施形態の説明
図５は本発明の第２実施形態としての画像処理装置の構成を示すブロック図であり、この図５に示すように、第２実施形態の画像処理装置１００Ａは、第１実施形態の画像処理装置１００とほぼ同様に構成されているが、この画像処理装置１００Ａにおいては平滑化処理部１１３が新たに追加されている。なお、図中、既述の符号と同一の符号は同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
【００６３】
この画像処理装置１００Ａにおいて新たに追加された平滑化処理部（平滑化手段）１１３は、ずれ量メモリ１１０と線形補間処理部１１１との間に介設され、前記ステップＳ１５（図２参照）で所定間隔ｄをあけて推定された主走査方向ずれ量が滑らかな曲線に沿うように、ずれ量メモリ１１０の主走査方向ずれ量に対して平滑化処理（スムージング処理）を施し、平滑化された主走査方向ずれ量を線形補間処理部１１１へ出力するものである。なお、第２実施形態の画像処理装置１００Ａも、第１実施形態と同様、例えばパーソナルコンピュータ等の情報処理装置によって実現されるもので、上述した平滑化処理部１１３としての機能は、情報処理装置内のＣＰＵが所定の画像処理プログラムを実行することにより実現される。
【００６４】
上述のごとく構成された第２実施形態の画像処理装置１００Ａも、基本的に前述した第１実施形態の画像処理装置１００と同様に動作するが、この第２実施形態では、平滑化処理部１１３によって、推定された主走査方向ずれ量に対し平滑化処理が施され、線形補間処理部１１１では、平滑化された主走査方向ずれ量に基づいて線形補間および補正が行なわれることになる。
【００６５】
次に、図６（Ａ）および図６（Ｂ）を参照しながら、第２実施形態の平滑化処理（スムージング処理）について説明する。なお、ずれ量メモリ１１０に格納されている主走査方向ずれ量は、所定間隔をあけたラインどうしのずれ量であり、“−１”もしくは“０”もしくは“１”のいずれか一つの値である。図６（Ａ）は、ずれ量メモリ１１０に格納された複数の主走査方向ずれ量を順次積算することにより原画像に対する主走査方向ずれ量（イメージスキャナ１０の動き）を求め、その結果を副走査方向位置に対応させて図示化したものである。また、図６（Ｂ）は、図６（Ａ）に示した主走査方向ずれ量に対して、平滑化処理部１１３による平滑化処理を施した結果を示している。
【００６６】
実際に計算された主走査方向ずれ量の推定結果は、図６（Ａ）に示すように、細かい凹凸のあるものとなることが多い。実際のスキャン動作では、このような凹凸が発生することはあまり無く、この凹凸の発生原因の大部分は画像による影響である。
【００６７】
そこで、画像処理装置１００Ａでは、平滑化処理部１１３により、図６（Ａ）に示す推定結果を、図６（Ｂ）に示すような滑らかな曲線に沿わせるように修正し、その修正結果を用いて線形補間および補正を行なっている。平滑化の手法としては、例えば、移動平均を用いる方法や、ベジェ曲線（Bezier curve）を用いる方法や、２次関数で近似する方法など、一般的な手法を用いることができる。
【００６８】
このように、本発明の第２実施形態としての画像処理装置１００Ａによれば、第１実施形態と同様の作用効果が得られるほか、推定された主走査方向ずれ量が滑らかな曲線に沿うように、その主走査方向ずれ量に対して平滑化処理を施してから、線形補間処理部１１１による線形補間および補正が行なわれるので、イメージスキャナ１０に急峻な動きをさせたために生じた、画像データにおける急峻なずれを適切に解消することができ、より高画質の画像データを得ることが可能になる。
【００６９】
〔３〕本発明の第３実施形態の説明
図７は本発明の第３実施形態としての画像処理装置の構成を示すブロック図であり、この図７に示すように、第３実施形態の画像処理装置１００Ｂは、第２実施形態の画像処理装置１００Ａと同様に構成されているが、この画像処理装置１００Ｂにおいては、左右領域抽出部１１４，上下領域抽出部１１５および傾き検出部１１６が新たに追加されるとともに、線形補間処理部１１１に代えて再構成部１１７がそなえられている。なお、図中、既述の符号と同一の符号は同一もしくはほぼ同一の部分を示しているので、その説明は省略する。また、本実施形態においても、単に「ずれ量」という場合、その「ずれ量」は主走査方向のずれ量を意味している。
【００７０】
ここで、左右領域抽出部１１４は、図９を参照しながら後述するように、画像データの左右両側におけるずれ量を推定すべく、画像データの左側領域と右側領域とを画像バッファ１０１からそれぞれ抽出するもので、具体的には、図９に示すごとく画像データの全体を主走査方向に３分割し、左側領域Ｗ１および右側領域Ｗ２を抽出するものである。
【００７１】
この左右領域抽出部１１４は、上述した第１ラインカウンタ１０２，第２ラインカウンタ１０３，距離メモリ１０４，相互相関係数演算部１０５，最小相互相関係数検出部１０６，最小相互相関係数メモリ１０７，ずれ量カウンタ１０８および最小相互相関係数位置メモリ１０９とともに、推定手段を構成している。第３実施形態の推定手段は、複数列のライン画像データを成す部分データ間の相互相関、つまり左側領域Ｗ１および右側領域Ｗ２にそれぞれ属するデータ間の相互相関に基づいて、画像データの左側および右側の主走査方向ずれ量をそれぞれ推定するものである。つまり、第３実施形態では、左右領域抽出部１１４によって抽出された左右の領域Ｗ１，Ｗ２のそれぞれに対して、第１実施形態で前述したずれ量推定（図３参照）が適用され、ライン画像データの左右両側のずれ量が、副走査方向に適当な間隔ｄをあけたライン毎に推定され、その推定結果がずれ量メモリ１１０に格納されるようになっている。
【００７２】
上下領域抽出部１１５は、図１０を参照しながら後述するように、画像データの上下両側における画像（実際には文字列）の傾きをそれぞれ検出すべく、画像データの上側領域と下側領域とを画像バッファ１０１からそれぞれ抽出するもので、具体的には、図１０に示すごとく、適当な幅を有する上側領域Ｌ１および下側領域Ｌ２を抽出するものである。
【００７３】
傾き検出部（検出手段）１１６は、上下領域抽出部１１５によって抽出された上側領域Ｌ１および下側領域Ｌ２に基づいて、画像データの上下両側における画像の傾きをそれぞれ検出するものである。第３実施形態において、画像データが文書画像であるとし、傾き検出部１１６は、その文書画像を成す文字列の傾きに基づいて、上下両側における画像の傾きを検出するが、その際、図１０，図１５（Ａ）および図１５（Ｂ）を参照しながら後述するごとく、特開平１１−３４１２５９号公報に開示された技術を用いている。
【００７４】
再構成部（再構成手段）１１７は、上述のごとく推定されずれ量メモリ１１０に格納された左右両側のずれ量と、上述のごとく傾き検出部１１６によって検出された上下両側の傾きとに基づいて、画像バッファ１０１の画像データを再構成し、この画像データの歪みを解消してから、補正後の画像データを補正画像バッファ１１２に書き込むものである。
【００７５】
第３実施形態の平滑化処理部１１３は、第２実施形態と同様、ずれ量メモリ１１０のずれ量に対し、ベジェ曲線（Bezier curve）を用いた平滑化処理を施し、平滑化後のずれ量を再構成部１１７へ出力するように構成されている。そして、再構成部１１７は、図１１〜図１４を参照しながら後述するごとく、平滑化処理部１１３によって得られた左右両側のベジェ曲線（ずれ量）の媒介変数ｔを用いて、画像データの再構成を行なうように構成されている。
【００７６】
なお、第３実施形態の画像処理装置１００Ｂも、第１や第２実施形態と同様、例えばパーソナルコンピュータ等の情報処理装置によって実現されるもので、上述した左右領域抽出部１１４，上下領域抽出部１１５，傾き検出部１１６および再構成部１１７としての機能は、情報処理装置内のＣＰＵが所定の画像処理プログラムを実行することにより実現される。
【００７７】
次に、図８〜図１５（Ｂ）を参照しながら、上述した第３実施形態の画像処理装置１００Ｂの動作について説明する。なお、図８〜図１４はいずれも第３実施形態の画像処理手法を説明するための図、図１５（Ａ）および図１５（Ｂ）はいずれも第３実施形態における画像の傾きの検出手法を説明するための図である。
【００７８】
ここでは、図１６に示すようなハンドヘルド型イメージスキャナ１０によって得られ画像バッファ１０１に格納された画像データ（原画像）が、例えば図８に示すような文書画像（縦書き）で、この文書画像に対して画像処理装置１００Ｂによる補正処理を施す場合について説明する。この図８では、二次元的な歪みの生じた画像データ（頂点Ｐ１〜Ｐ４をもつ矩形画像）が示されている。この二次元的な歪みは、例えば、スキャン操作時にイメージスキャナ１０が読取対象原稿に対して滑って、イメージスキャナ１０によるスキャン領域が扇形になったために生じている。なお、図８，図１０，図１４，図１５（Ａ）および図１５（Ｂ）において、「○」は文字を示している。また、図９，図１１および図１２においては、図中の記述を分かりやすくするために、「○」による文字の表示を省略している。
【００７９】
まず、画像データの左右両側のずれ量を推定する。即ち、図９に示すように、左右領域抽出部１１４によって抽出された、画像データの左右の領域Ｗ１およびＷ２のそれぞれに対して、第１実施形態で前述したずれ量推定（図３参照）を適用する。これにより、ライン画像データの左右両側のずれ量が副走査方向に適当な間隔ｄをあけたライン毎にそれぞれ推定され、その推定結果Ｒ１およびＲ２がずれ量メモリ１１０に格納される（推定ステップ）。
【００８０】
なお、前述した通り、ずれ量メモリ１１０に格納されている左右両側のずれ量は、所定間隔をあけたラインどうしのずれ量で、“−１”もしくは“０”もしくは“１”のいずれか一つの値である。図９における、ずれ量の推定結果Ｒ１およびＲ２は、図６（Ａ）と同様、ずれ量メモリ１１０に格納された、左右それぞれの主走査方向ずれ量を順次積算することにより、原画像に対するずれ量（イメージスキャナ１０の動き）を求め、その結果を副走査方向位置に対応させて得られたものである。
【００８１】
ついで、上下領域抽出部１１５および傾き検出部１１６により、画像データの上下領域における画像の傾きを検出する。つまり、図１０に示すように、上下領域抽出部１１５によって抽出された上下領域Ｌ１およびＬ２内の画像データ（文字列画像）を用いて、傾き検出部１１６により、上下の画像の傾き角度θおよびφをそれぞれ検出する（検出ステップ）。傾き角度θは、スキャン操作開始時にイメージスキャナ１０が文字列に対して成す角度に対応し、傾き角度φは、スキャン操作終了時にイメージスキャナ１０が文字列に対して成す角度に対応している。
【００８２】
ここで、傾き検出部１１６により上側の傾き角度θを検出する手法について、図１５（A）および図１５（B）を参照しながら説明する。この傾き検出手法は特開平１１−３４１２５９号公報に開示されたものである。
つまり、傾き検出部１１６においては、図１５（Ａ）に示すように、上側領域Ｌ１から１列分の文字列〔図１５（Ａ）では連続する５文字〕を部分画像として抽出する。この部分画像は、上記文字列に外接するとともに、画像データの主走査方向および副走査方向に平行な辺をもつ矩形として切り出される。このように切り出された部分画像のｘ軸およびｙ軸を図１５（Ｂ）に示すように設定し、部分画像内において文字を成す黒画素の座標を直線〔図１５（Ｂ）中の直線ｙ＝ａ＊ｘ＋ｂ参照〕で近似する。その直線の傾き“ａ”は、例えば黒画素座標の回帰直線の傾きとして、次式（２）により算出することができる。
【００８３】
ａ＝(ＮΣｘiｙi−ΣｘiΣｙi)／(ＮΣｘi2−（Σｘi）2) （２）
ここで、“Σ”はｉ＝０〜Ｎ−１までの総和演算を意味するものとする。また、Ｎは部分画像内の黒画素の個数、ｘi，ｙiはｉ番目の黒画素のｘ座標およびｙ座標である。この（２）式によって得られた傾きａに基づいて、上側の傾き角度θが下式（３）によって算出される。下側の傾き角度φについても、上述と同様にして算出される。
【００８４】
θ＝Tan-1ａ      （３）
これにより、画像の傾きとして、文字列の、主走査方向もしくは副走査方向に対する傾き角度θ，φ、つまりは、イメージスキャナ１０が文字列に対して成す角度が算出される。
【００８５】
なお、傾き角度の算出に利用する部分画像を一つのみとすると、直線近似の誤差等の影響を受けてしまい、正しい傾き角度を求めることができなくなる可能性がある。そのため、上下領域Ｌ１，Ｌ２から複数の部分画像を抽出し、各部分画像について、上式（２）および（３）を用いて傾き角度を算出することが望ましい。その場合、算出された複数の傾き角度のうち有効なものを抽出し、抽出された有効な傾き角度の平均値を、最終的な傾き角度θ，φとして決定するようにする。
【００８６】
ついで、平滑化処理部１１３により、図９に示すごとく得られたずれ量の推定結果Ｒ１およびＲ２に対し、ベジェ曲線を用いた平滑化処理が施され、図１１に示すようなベジェ曲線ＢＺ１およびＢＺ２がそれぞれ得られる。これにより、イメージスキャナ１０（ラインセンサ１１）の両端の動きがベジェ曲線で近似される（平滑化ステップ）。
【００８７】
ベジェ曲線は、一般的に下式（４）で表される。
r(t)=Ａ*(1-t)3+３*Ｂ*t*(1-t)2+３*Ｃ*t2* (1-t)+Ｄ*t3    （４）
ただし、（４）式において、Ａ，Ｂ，Ｃ，Ｄはベクトル定数、ｔは媒介変数である。なお、図１１においては、左側の推定結果Ｒ１を近似したベジェ曲線ＢＺ１のベクトル定数Ａ，Ｂ，Ｃ，Ｄは、それぞれＡ１，Ｂ１，Ｃ１，Ｄ１として表記され、右側の推定結果Ｒ２を近似したベジェ曲線ＢＺ２のベクトル定数Ａ，Ｂ，Ｃ，Ｄは、それぞれＡ２，Ｂ２，Ｃ２，Ｄ２として表記されている。
【００８８】
ここで、ベクトル定数Ａ１，Ａ２は、それぞれ画像データの２つの頂点Ｐ１，Ｐ１（図８参照）を示すベクトルとして与えられる。また、ベクトルＤ（Ｄ１，Ｄ２）は、それぞれ図９のごとく得られた推定結果Ｒ１，Ｒ２の最下点を示すベクトルとして与えられる。
【００８９】
ベジェ曲線を求める場合、Ａ，Ｄ間に２点のコントロールポイントＢ（Ｂ１，Ｂ２）およびＣ（Ｃ１，Ｃ２）を決める必要がある。今、上端から副走査方向画像長の１／３の位置ｋ１におけるずれ量の推定結果をh1、上端から副走査方向画像長の２／３の位置ｋ２におけるずれ量の推定結果をh2とする。このとき、ベジェ曲線の定義から、コントロールポイントＢ，Ｃはそれぞれ下式（５），（６）のように与えられる。
【００９０】
Ｂ＝(18.0 * h1 - 9.0 * h2 - 5.0 * Ａ + 2.0 * Ｄ) / 2.0 （５）
Ｃ＝(18.0 * h2 - 9.0 * h1 - 5.0 * Ｄ + 2.0 * Ａ) / 2.0 （６）
上述のごとくベクトル定数Ａ，Ｂ，Ｃ，Ｄを決定することにより、推定結果Ｒ１，Ｒ２をそれぞれ近似するベジェ曲線ＢＺ１，ＢＺ２が上式（４）によって与えられ、左右両側のずれ量が平滑化されるとともに、イメージスキャナ１０の左右両端の動きを推定することができる。
【００９１】
以上の処理により、図１２に示すように、画像データの左右両側のずれ量を示すベジェ曲線ＢＺ１，ＢＺ２と、画像データ上下における画像の傾き角度θ，φとが得られる。
次に、これらの曲線ＢＺ１，ＢＺ２および傾き角度θ，φに基づいて、再構成部１１７によって、イメージスキャナ１０によって実際にスキャンされた領域の形状（図１３参照）が再構成され、再構成された領域内に図８に示す画像データを再配置することにより、最終的に図１４に示すような再構成画像データ（補正画像データ）が補正画像バッファ１１２に格納される（再構成ステップ）。
【００９２】
イメージスキャナ１０によって実際にスキャンされた領域の形状は、曲線ＢＺ１，ＢＺ２および傾き角度θ，φに基づいて図１３に示すように再構成される。ここで、イメージスキャナ１０の読取幅および読取長（副走査方向の画像長）をそれぞれＷおよびＬとする。読取幅Ｗは、物理的に一定であり、固定された値になる。また、読取長Ｌは、イメージスキャナ１０によって読み取られたラインの数から決定される。
【００９３】
図１３に示すように、上側の傾き角度θにより、イメージスキャナ１０の読取開始時の位置が直線ｍ１として与えられる。この直線ｍ１の長さは固定の読取幅Ｗである。直線ｍ１の左端と左側のベジェ曲線ＢＺ１の上端とを一致させて、直線ｍ１とベジェ曲線ＢＺ１とを重ね合わせる。そして、ベジェ曲線ＢＺ１の下端と、主走査方向に対する傾き角度φで長さＷの直線ｍ２の左端とを一致させて、ベジェ曲線ＢＺ１と直線ｍ２とを重ね合わせる。直線ｍ２は、イメージスキャナ１０の読取終了時の位置である。最後に、直線ｍ１の右端と直線ｍ２の右端との間に、その間隔に応じてベジェ曲線ＢＺ２を縮小したベジェ曲線ＢＺ２′を重ね合わせる。このようにしてイメージスキャナ１０によって実際にスキャンされた領域が再構成される。
【００９４】
図１３に示す例では、左側の移動量（ずれ幅）の方が右側の移動量（ずれ幅）よりも大きいので、左側を基準としてスキャン領域を再構成している。そして、図１３に示すように、ｘ軸を主走査方向、ｙ軸を副走査方向、再構成領域の左上頂点Ｐ１′を原点（０，０）とした座標系を設定し、左側のベジェ曲線ＢＺ１の上端と下端とのずれ量をＴすると、再構成領域のその他の３つの頂点Ｐ２′，Ｐ３′，Ｐ４′の座標は、それぞれ、(Ｗ * cosθ，Ｗ * sinθ)，(Ｔ，Ｌ)，(Ｔ + Ｗ * cosφ，Ｌ - Ｗ * sinφ)となる。
【００９５】
そして、図１３に示すように再構成された領域内に、図８に示す画像データが再配置されて、図１４に示すように、画像が再構成される。当然、図８に示す画像データの４頂点Ｐ１，Ｐ２，Ｐ３，Ｐ４は、それぞれ、再構成領域の４頂点Ｐ１′，Ｐ２′，Ｐ３′，Ｐ４′に対応することになる。
このとき、左右両側のベジェ曲線ＢＺ１，ＢＺ２′の媒介変数ｔを用いて、画像データの再構成が行なわれる。ベジェ曲線ＢＺ１，ＢＺ２′は、上述した通り媒介変数ｔを使用した関数であり、ｔ＝０の時にベクトルＡ（Ａ１，Ａ２）と一致し、ｔ＝１の時にベクトルＤ（Ｄ１，Ｄ２）と一致する。
【００９６】
そこで、副走査方向の画像長Ｌに対応するライン数ＮＬによって０〜１の範囲を分割した媒介変数を用いて、画素の再配置を行なう。つまり、図８におけるｊ番目のラインを図１３に示す再構成領域内に再配置する場合、媒介変数ｔをｊ／ＮＬとし、このｊ／ＮＬをベジェ曲線ＢＺ１，ＢＺ２′のそれぞれに代入して得られた２点が、ｊ番目のラインの再配置後の両端位置となる。そして、得られた２点を結んだ直線上に、ｊ番目のライン上の画素を再配置する。
【００９７】
上述のような再構成を行なって得られた画像においては、画素データの抜けた部分が生じる可能性がある。もし画素データの抜けが生じた場合は、その抜けの生じた部分の周囲における画素の平均値を求め、この平均値を、その部分の画素データとして用いる。
【００９８】
以上のようにして画像バッファ１０１の画像データが図１４に示すごとく再構成され、この画像データの歪みが解消され、補正後の画像データが補正画像バッファ１１２に書き込まれる。
なお、本実施形態では、上端から副走査方向画像長の１／３の位置と２／３の位置とにコントロールポイントを置いたが、コントロールポイントはその位置に限定されるものではない。
【００９９】
このように、本発明の第３実施形態としての画像処理装置１００Ｂによれば、二次元センサを用いることなく、読み取られた画像データのみを用いて画像データの二次元的な歪みを補正することができる。例えば、ハンドヘルド型イメージスキャナ１０のスキャン操作時に図１７（Ｂ）に示すような二次元的な滑りが生じ、画像データに図８に示すような歪みが生じたとしても、その歪みを解消し、歪みの無い高品質の画像データを得ることができる。従って、製造コストの増大を招くことなく、歪みの無い高品質の画像データを得ることができる。
【０１００】
このとき、第１実施形態と同様、左側の画像データ領域および右側の画像データ領域のそれぞれから、副走査方向に適当な間隔（５〜２０ライン）ｄをあけてライン画像データが順次抽出され、抽出されたライン画像データどうしの相互相関に基づいて、左側および右側のずれ量がそれぞれ推定されるので、主走査方向ずれ量を推定するための計算量が削減されて画像補正処理を効率的に行なえると同時に、主走査方向ずれ量の計算精度を向上させることができる。
【０１０１】
また、主走査方向ずれ量に対して平滑化処理してから画像の再構成を行なうことにより、イメージスキャナ１０に急峻な動きをさせたために生じた、画像データにおける急峻なずれを適切に解消することができ、より高画質の画像データを得ることができる。このとき、平滑化処理にベジェ曲線〔上式（４）参照〕を用いることにより、そのベジェ曲線の媒介変数ｔを用いて、画像データの再構成を容易に行なうことができる。
さらに、第３実施形態では、画像データである文書画像を成す文字列の傾きに基づいて、画像データの上下両側における画像の傾き角度θ，φを容易に求めることができる。
【０１０２】
〔４〕本発明の第４実施形態の説明
図１８は本発明の第４実施形態としての画像処理装置の構成を示すブロック図であり、この図１８に示すように、第４実施形態の画像処理装置１００Ｃは、第３実施形態の画像処理装置１００Ｂと同様に構成されているが、この画像処理装置１００Ｃにおいては、上下領域抽出部１１５および傾き検出部１１６に代えてブロック分割部１１８，傾き推定部１１９，傾きリスト１２０，検知部１２１および境界棄却部１２２がそなえられている。なお、図中、既述の符号と同一の符号は同一もしくはほぼ同一の部分を示しているので、その説明は省略する。また、本実施形態においても、単に「ずれ量」という場合、その「ずれ量」は主走査方向のずれ量を意味している。
【０１０３】
ここで、ブロック分割部（分割手段）１１８は、予め指定された分割数（第４実施形態では４または５）に応じて、画像バッファ１０１に格納された画像データを、副走査方向（上下方向）について複数のブロック（例えば図２０の符号ＢＬ１〜ＢＬ４参照）に分割するものである。
傾き推定部（傾き推定手段）１１９は、ブロック分割部１１８により分割されて得られた各ブロックの上下両側における画像の傾きを推定するものである。
【０１０４】
この傾き推定部１１９は、複数のブロック（例えば図２０の符号ＢＬ１〜ＢＬ４参照）のうちの隣接する２つのブロックの境界（例えば図２０の符号ｂ１〜ｂ３参照）における画像の傾きを、その境界に跨る領域（例えば図２０の符号ＢＬＲ１〜ＢＬＲ３参照）に存在する画像データに基づいてその境界の傾きとして推定し、傾きリスト１２０に記録する。このように推定された境界（境界ｂｉ；ｉ＝１，２，３）の傾きは、２つのブロックのうちの上側ブロック（ブロックＢＬｉ）の下側における画像の傾き、および、２つのブロックのうちの下側ブロック（ブロックＢＬi+1）の上側における画像の傾きの推定結果として採用される。
【０１０５】
また、傾き推定部１１９は、最上ブロック（図２０の符号ＢＬ１参照）の上側における画像の傾きを、画像データの上側領域（例えば図２０の符号ＢＬＲ０参照）に存在する画像データに基づいて、最上部の境界つまり最上ブロックの上側境界（図２０の符号ｂ０参照）の傾きとして推定するとともに、最下ブロック（図２０の符号ＢＬ４参照）の下側における画像の傾きを、画像データの下側領域（例えば図２０の符号ＢＬＲ４参照）に存在する画像データに基づいて、最下部の境界つまり最下ブロックの下側境界（図２０の符号ｂ４参照）の傾きとして推定する。
【０１０６】
なお、第４実施形態においても、第３実施形態と同様、画像データが文書画像であるものとし、傾き推定部１１９は、その文書画像を成す文字列の傾きに基づいて、各ブロックの上下両側における画像の傾きを検出するが、その際、第３実施形態と同様、特開平１１−３４１２５９号公報に開示された技術を用いている。傾き推定部１１９による傾き推定手法については、図２０を参照しながら後述する。
【０１０７】
傾きリスト１２０は、上述のように傾き推定部１１９によって推定された各境界の傾きを、各境界を特定しうる識別情報に対応付けて格納するものである。
検知部（検知手段）１２１は、傾きリスト１２０に格納された複数の境界の傾きに基づいて、直近の他の境界に対して所定角度以上の角度を成す境界や他の境界と画像領域内で交差する境界を、傾きを誤って推定された境界として検知するものである。なお、傾きを誤って推定された境界の具体例については、図２１および図２２を参照しながら後述する。
【０１０８】
境界棄却部（ブロック統合手段）１２２は、検知部１２１によって検知された境界を挟む２つのブロックを１つのブロックに統合するものである。本実施形態では、境界棄却部１２２が、検知部１２１によって検知された境界（傾きを誤って推定された境界）に対応する傾きを、傾きリスト１２０から削除・棄却することにより、その境界を挟む２つのブロックが１つのブロックに統合されるようになっている。そして、本実施形態では、上述のごとく誤った傾きを棄却された傾きリスト１２０に基づいて、つまり、統合後のブロックに基づいて、ずれ量推定手段２００および再構成部１１７が、それぞれ、推定処理および再構成処理を実行するようになっている。
【０１０９】
ずれ量推定手段２００は、第３実施形態の推定手段と同様、上述した第１ラインカウンタ１０２，第２ラインカウンタ１０３，距離メモリ１０４，相互相関係数演算部１０５，最小相互相関係数検出部１０６，最小相互相関係数メモリ１０７，ずれ量カウンタ１０８，最小相互相関係数位置メモリ１０９および左右領域抽出部１１４から構成されている。第４実施形態のずれ量推定手段２００も、基本的には第３実施形態の推定手段と同様の機能を果たすものであるが、第４実施形態では、ブロック分割部１１８により分割されて得られた各ブロックＢＬｉの左側および右側の主操作方向ずれ量を、各ブロックＢＬｉ内のライン画像データを成す部分データ間の相互相関、つまり左側領域Ｗ１および右側領域Ｗ２（図９参照）にそれぞれ属するデータ間の相互相関に基づいて推定するものである。
【０１１０】
つまり、第４実施形態のずれ量推定手段２００においては、ブロックＢＬｉ毎に、左右領域抽出部１１４によって抽出された左右の領域Ｗ１，Ｗ２のそれぞれに対して、第１実施形態で前述したずれ量推定（図３参照）が適用され、ライン画像データの左右両側のずれ量が、副走査方向に適当な間隔ｄ（例えば５〜２０ライン）をあけたライン毎に推定され、その推定結果がずれ量メモリ１１０に格納されるようになっている。
【０１１１】
第４実施形態における平滑化処理部１１３は、第３実施形態と同様、ずれ量メモリ１１０のずれ量に対し、ベジェ曲線（Bezier curve）を用いた平滑化処理を施し、平滑化後のずれ量を再構成部１１７へ出力するように構成されている。ただし、第４実施形態の平滑化処理部１１３においては、第３実施形態とは異なり、図２３を参照しながら後述するごとく、ブロックＢＬｉ毎に、ベジェ曲線を求める際のコントロールポイントが、傾き推定部１１９によって推定され傾きリスト１２０に格納された上下両側における傾きを考慮して決定される。
【０１１２】
そして、再構成部１１７は、第３実施形態と同様、平滑化処理部１１３によって得られた左右両側のベジェ曲線（ずれ量）の媒介変数ｔを用いて、画像データの再構成を行なうように構成されている。ただし、第４実施形態の平滑化処理部１１３および再構成部１１７は、ブロックＢＬｉ毎に平滑化処理および再構成処理を行なうようになっている。
【０１１３】
そして、第４実施形態における再構成部１１７は、各ブロックＢＬｉについて、ずれ量推定手段２００によって推定されずれ量メモリ１１０に格納された左右両側のずれ量（実際には平滑化処理部１１３によって得られたベジェ曲線）と、傾き推定部１１９によって推定され傾きリスト１２０に格納された上下両側における傾きとに基づいて、画像バッファ１０１における各ブロックＢＬｉ内の画像データを再構成し、各ブロックＢＬｉ内の画像データの歪みを解消してから、補正後の各ブロックＢＬｉ内の画像データを補正画像バッファ１１２に書き込むものである。
【０１１４】
このとき、再構成部１１７は、図２４を参照しながら後述するごとく、各ブロックＢＬｉについて、上下両側の左右端における画像領域の副走査方向接線と傾き推定部１１９によって推定された上下両側における傾きとを直交させるように各ブロックＢＬｉ内の画像データを再構成する。
このように第４実施形態におけるずれ量推定手段２００，平滑化処理部１１３および再構成手段１１７は、各ブロックＢＬｉに対して第３実施形態の推定手段，平滑化処理部１１３および再構成手段１１７と同様の処理を施すものである。
【０１１５】
なお、第４実施形態の画像処理装置１００Ｃも、第１〜第３実施形態と同様、例えばパーソナルコンピュータ等の情報処理装置によって実現されるもので、上述したブロック分割部１１８，傾き推定部１１９，検知部１２１，境界棄却部１２２，ずれ量推定手段２００，平滑化処理部１１３および再構成部１１７としての機能は、情報処理装置内のＣＰＵが所定の画像処理プログラムを実行することにより実現される。また、画像バッファ１０１，傾きリスト１２０，ずれ量メモリ１１０および補正画像バッファ１１２としての機能は、情報処理装置内のメモリ（ＲＡＭ，ＲＯＭ，ハードディスク等）により実現される。
【０１１６】
次に、図１９〜図２７を参照しながら、上述した第４実施形態の画像処理装置１００Ｃの動作について説明する。なお、図１９は第４実施形態の画像処理手順を説明するためのフローチャート、図２０はブロック上下両側の画像の傾き（境界の傾き）を推定する手法を説明するための図、図２１および図２２は、それぞれ、傾きを誤って推定された境界の例を説明するための図、図２３はベジェ曲線のコントロールポイントの選択例を説明するための図、図２４は再構成後のブロックどうしの連結状態（境界の左右端における連結状態）を説明するための図、図２５〜図２７はいずれも第４実施形態の画像処理手法を説明するための図である。
【０１１７】
第４実施形態では、図１６に示すようなハンドヘルド型イメージスキャナ１０によって得られ画像バッファ１０１に格納された画像データ（原画像）が、例えば図２５や図２６に示すような文書画像（縦書きの日本語新聞画像）で、この文書画像に対して画像処理装置１００Ｃによる補正処理を施す場合について説明する。第４実施形態では、図２５や図２６に示すような二次元的な歪みの生じた文書画像を補正することができる。ここに示す二次元的な歪みは、例えば、スキャン操作時にイメージスキャナ１０が読取対象原稿に対して滑って蛇行することにより生じている。なお、図２５〜図２７において、「○」は文字を示している。また、図２５〜図２７においては、見出し以外の小さな文字（新聞記事を成す文字）について、左右両側の３行分の文字を「○」で示し、それ以外の小さな文字の「○」による表示は省略されている。
【０１１８】
図１９に示すフローチャート（ステップＳ３１〜Ｓ４１）に従って、第４実施形態の画像処理手順を説明する。
まず、第４実施形態では、例えば図１６に示したようなハンドヘルド型イメージスキャナ１０によって所定の文書画像が読み取られ、読み取られた画像データが画像バッファ１０１に格納される（ステップＳ３１）。その際、第４実施形態では、操作者のスキャン操作に伴ってイメージスキャナ１０が蛇行し、例えば図２５に示すような画像データ（文書画像）がスキャンされたものとする。
【０１１９】
そして、ブロック分割部１１８により、予め指定された分割情報（分割数）に基づいて、画像バッファ１０１に格納された画像データが、副走査方向（上下方向）について複数のブロックに分割される（ステップＳ３２，分割ステップ）。図２０に示す例では、分割数として４が指定された例が示されており、画像データは、副走査方向に均等な４つのブロックＢＬ１〜ＢＬ４に分割される。なお、図２５に示す例では、分割数として５が指定された例が示されており、画像データは、副走査方向に均等な４つのブロックＢＬ１〜ＢＬ５に分割されている。
【０１２０】
この後、傾き推定部１１９により、ブロック分割部１１８により分割されて得られた各ブロックＢＬｉ（ｉ＝１〜４もしくは１〜５）の上下両側における画像の傾きが推定され傾きリスト１２０に格納される（ステップＳ３３，傾き推定ステップ）。その際、第３実施形態と同様、特開平１１−３４１２５９号公報に開示された技術を用いて、つまり、図１０，図１５（Ａ）および図１５（Ｂ）を参照しながら前述した手法に従って、文書画像を成す文字列の傾きに基づいて、各ブロックＢＬｉの上下両側における画像の傾きが検出される。
【０１２１】
具体的に説明すると、図２０〜図２２や図２５に示すように、最上ブロックＢＬ１の上側における画像の傾きは、ブロックＢＬ１の上半分の領域ＢＬＲ０に存在する文字列（画像データ）の傾きに基づいて、最上部の境界ｂ０の傾きθ０として推定される。
また、最上ブロックＢＬ１の下側における画像の傾きは、ブロックＢＬ１の下半分およびブロックＢＬ２の上半分からなる領域ＢＬＲ１に存在する文字列（画像データ）の傾きに基づいて、ブロックＢＬ１とブロックＢＬ２との境界ｂ１の傾きθ１として推定される。
【０１２２】
このように推定された境界ｂ１の傾きθ１は、ブロックＢ２の上側における画像の傾きとしても採用される。以下、同様にして、各ブロックＢ２，Ｂ３，Ｂ４，Ｂ５の上下両側における画像の傾きが、各境界ｂ２，ｂ３，ｂ４，ｂ５の傾きθ２〜θ５として推定される。
なお、最下ブロックＢＬ４またはＢＬ５の下側における画像の傾きは、ブロックＢＬ４またはＢＬ５の下半分の領域ＢＬＲ４またはＢＬＲ５に存在する文字列（画像データ）の傾きに基づいて、最下部の境界ｂ４またはｂ５の傾きθ４またはθ５として推定される。
【０１２３】
ついで、検知部１２１により、傾きリスト１２０に格納された各境界ｂ０〜ｂ５の傾きθ０〜θ５に基づいて、傾きを誤って推定された境界が、棄却対象境界として検知される（ステップS３４）。棄却対象の境界は、直近の他の境界に対して所定角度以上の角度を成す境界、あるいは、他の境界と画像領域内で交差する境界である。
【０１２４】
図２１に示す例では、境界ｂ１が、直近の他の境界ｂ０の傾きに対して所定角度以上の角度を成すものと判断され、この境界ｂ１が棄却対象となる。また、図２５に示す例では、境界ｂ４が、直近の他の境界ｂ３に対して所定角度以上の角度を成すものと判断され、この境界ｂ４が棄却対象となる。さらに、図２２に示す例では、境界ｂ１が、他の境界ｂ２と画像領域内で交差するものと判断され、この境界ｂ１が棄却対象となる。
【０１２５】
上述のごとく検知部１２１により棄却対象の境界が検知されると、境界棄却部１２２により、棄却対象の境界を挟む２つのブロックが１つのブロックに統合される。このとき、境界棄却部１２２により、棄却対象の境界に関する情報（識別情報や傾きなど）が傾きリスト１２０から削除・棄却され、その棄却対象の境界を挟む２つのブロックが１つのブロックに統合される（ステップＳ３５）。
【０１２６】
図２１や図２２に示す例では、境界ｂ１に関する情報を傾きリスト１２０から削除・棄却することにより、ブロックＢＬ１とＢＬ２とが統合され、統合されたブロックが例えばブロックＢＬ１として取り扱われる。また、図２５および図２６に示す例では、境界ｂ４に関する情報を傾きリスト１２０から削除・棄却することにより、ブロックＢＬ４とＢＬ５とが統合され、統合されたブロックが例えばフロックＢＬ４として取り扱われる。
【０１２７】
この後、パラメータｉを初期値“１”に設定してから（ステップＳ３６）、ずれ量推定手段２００により、ブロックＢＬｉについて、左右のずれ量が推定される（ステップＳ３７，ずれ量推定ステップ）。その際、左右領域抽出部１１４によって抽出された、ブロックＢＬｉの左右の領域Ｗ１およびＷ２（部分データ；図９参照）のそれぞれに対し、第１実施形態で前述したずれ量推定（図３参照）を適用する。これにより、ブロックＢＬｉを成すライン画像データの左右両側のずれ量が副走査方向に適当な間隔ｄをあけたライン毎にそれぞれ推定され、その推定結果Ｒ１およびＲ２がずれ量メモリ１１０に格納される。
【０１２８】
なお、第４実施形態においても、前述した通り、ずれ量メモリ１１０に格納されている左右両側のずれ量は、所定間隔をあけたラインどうしのずれ量で、“−１”もしくは“０”もしくは“１”のいずれか一つの値である。ずれ量の推定結果Ｒ１およびＲ２は、図６（Ａ）と同様、ずれ量メモリ１１０に格納された、左右それぞれの主走査方向ずれ量を順次積算することにより、原画像に対するずれ量（イメージスキャナ１０の動き）を求め、その結果を副走査方向位置に対応させて得られたものである。
【０１２９】
ついで、平滑化処理部１１３により、ブロックＢＬｉについて、上述のごとく得られたずれ量の推定結果Ｒ１およびＲ２に対し、ベジェ曲線を用いた平滑化処理が施され、イメージスキャナ１０（ラインセンサ１１）の両端の動きがベジェ曲線で近似される（ステップＳ３８，平滑化ステップ）。
【０１３０】
ベジェ曲線は、第３実施形態で説明した通り、一般に上式（４）で表される。ここでは、ブロックＢＬｉの左側の推定結果Ｒ１を近似したベジェ曲線ＢＺ１のベクトル定数Ａ，Ｂ，Ｃ，Ｄは、それぞれＡ１，Ｂ１，Ｃ１，Ｄ１として表記され、ブロックＢＬｉの右側の推定結果Ｒ２を近似したベジェ曲線ＢＺ２のベクトル定数Ａ，Ｂ，Ｃ，Ｄは、それぞれＡ２，Ｂ２，Ｃ２，Ｄ２として表記されるものとする。そして、図２３に示すように、ベクトル定数Ａ１，Ａ２は、それぞれブロックＢＬｉの２つの上側頂点を示すベクトルとして与えられ、ベクトルＤ１，Ｄ２は、それぞブロックＢＬｉの２つの下側頂点（推定結果Ｒ１，Ｒ２の最下点）を示すベクトルとして与えられる。
【０１３１】
そして、ベジェ曲線を求める場合、Ａ（Ａ１，Ａ２），Ｄ（Ｄ１，Ｄ２）間に２点のコントロールポイントＢ（Ｂ１，Ｂ２）およびＣ（Ｃ１，Ｃ２）を決める必要がある。その際、第４実施形態の平滑化処理では、図２３に示すように、傾き推定部１１９によって推定された上下両側における傾き、つまり境界ｂi-1およびｂｉの傾きθi-1およびθｉを考慮して、コントロールポイントＢ（Ｂ１，Ｂ２）およびＣ（Ｃ１，Ｃ２）が決定される。
【０１３２】
図２３において、ブロックＢＬｉの左側頂点Ａ１，Ｄ１間の副走査方向距離をＬｉとし、頂点Ａ１から距離Ｌｉ／３だけ離れた副走査方向ラインをｋ１、頂点Ａ１から距離２・Ｌｉ／３だけ離れた副走査方向ラインをｋ２とする。同様に、ブロックＢＬｉの右側頂点Ａ２，Ｄ２間の副走査方向距離をＬｉ´とし、頂点Ａ２から距離Ｌｉ´／３だけ離れた副走査方向ラインをｋ１´、頂点Ａ２から距離２・Ｌｉ´／３だけ離れた副走査方向ラインをｋ２´とする。なお、Ｗは、前述した通り、イメージスキャナ１０の読取幅（一定）である。また、ここでは、ブロックＢＬｉの頂点間距離ＬｉまたはＬｉ´の３分の１の位置にコントロールポイントＢ（Ｂ１，Ｂ２）およびＣ（Ｃ１，Ｃ２）を設定しているが、本発明は、これに限定されるものではない。
【０１３３】
そして、頂点Ａ１を通過する境界ｂi-1に対する垂線と副走査方向ラインｋ１との交点がコントロールポイントＢ１として決定され、頂点Ｄ１を通過する境界ｂｉに対する垂線と副走査方向ラインｋ２との交点がコントロールポイントＣ１として決定される。同様に、頂点Ａ２を通過する境界ｂi-1に対する垂線と副走査方向ラインｋ１´との交点がコントロールポイントＢ２として決定され、頂点Ｄ２を通過する境界ｂｉに対する垂線と副走査方向ラインｋ２´との交点がコントロールポイントＣ２として決定される。
【０１３４】
上述のごとくベクトル定数Ａ，Ｂ，Ｃ，Ｄを決定することにより、推定結果Ｒ１，Ｒ２をそれぞれ近似するベジェ曲線ＢＺ１，ＢＺ２が上式（４）によって与えられ、左右両側のずれ量が平滑化されるとともに、イメージスキャナ１０の左右両端の動きが推定され、ブロックＢＬｉの外形状が決まる。
【０１３５】
この後、再構成部１１７においては、ブロックＢＬｉについて、平滑化処理部１１３での平滑化処理結果を受け、平滑化処理部１１３によって得られた左右両側のベジェ曲線（ずれ量）の媒介変数ｔを用いて、且つ、上下両側の境界ｂi-1およびｂｉの傾きθi-1およびθｉに基づいて、ブロックＢＬｉ内の画像データが再構成され、各ブロックＢＬｉ内の画像データの歪みが解消される。そして、その再構成結果、つまり補正後のブロックＢＬｉ内の画像データが補正画像バッファ１１２に書き込まれる（ステップＳ３９，再構成ステップ）。
【０１３６】
このとき、図２３にて説明したようにコントロールポイントＢ（Ｂ１，Ｂ２）およびＣ（Ｃ１，Ｃ２）を設定することにより、再構成部１１７では、図２４に示すごとく、ブロックＢＬｉについて、上側左右端Ａ１，Ａ２における画像領域の副走査方向接線と傾き推定部１１９によって推定された上側における傾きθi-1をもつ境界ｂi-1とが直交するように、且つ、下側左右端Ｄ１，Ｄ２における画像領域の副走査方向接線と傾き推定部１１９によって推定された下側における傾きθｉをもつ境界ｂｉとが直交するように、ブロックＢＬｉ内の画像データが再構成される。
【０１３７】
そして、パラメータｉが分割数（ここでは４または５）に達したか否かを判定し（ステップＳ４０）、達している場合（ＹＥＳルート）には処理を終了する一方、達していない場合（ＮＯルート）にはパラメータｉを１だけインクリメントしてから（ステップＳ４１）、ステップＳ３７に戻る。なお、パラメータｉが、境界棄却部１２２によって棄却された境界に対応するものである場合、ステップＳ３７〜Ｓ３９の処理を省略してステップＳ４０へ移行する。
【０１３８】
上述のような処理を繰り返すことにより、例えば、図２５に示すごとくイメージスキャナ１０によって取り込まれ５分割された後、図２６に示すごとく境界棄却部１２２によって４つのブロックＢＬ１〜ＢＬ４に統合された画像データは、図２７に示すように、ブロックＢＬｉ（ｉ＝１〜４）毎に再構成されることになる。
【０１３９】
このように、本発明の第４実施形態としての画像処理装置１００Ｃによれば、画像データを複数のブロックＢＬｉに分割し、ブロックＢＬｉ毎にそのブロックＢＬｉ内の画像データの再構成を行なうことにより、例えばハンドヘルド型イメージスキャナ１０で画像データを読み取った際にこのイメージスキャナ１０が蛇行していたとしても、二次元センサを用いることなく、イメージスキャナ１０により読み取られた画像データのみを用いて、蛇行に伴う画像データの二次元的な歪みを補正することができるので、製造コストの増大を招くことなく、歪みの無い高品質の画像データを得ることができる。
【０１４０】
このとき、隣接する２つのブロックＢＬi-1，ＢＬｉの境界ｂi-1における画像の傾きが、この境界ｂi-1に跨って存在する画像データに基づいて、この境界ｂi-1の傾きθi-1として推定され、推定された傾きθi-1が、上側ブロックＢＬi-1の下側における画像の傾き、および、下側ブロックＢＬｉの上側における画像の傾きの推定結果として採用される。つまり、一つの境界ｂi-1の傾きθi-1を推定することで、上側ブロックＢＬi-1の下側傾きと下側ブロックＢＬｉの上側傾きとを同時に推定することができる。また、上側ブロックＢＬi-1の下側傾きと下側ブロックＢＬｉの上側傾きとが、別々に推定されるのではなく、共通の傾きとして推定され同一の傾きとなるので、再構成後のブロックＢＬi-1，ＢＬｉどうしが、副走査方向に隙間なく確実に連結されることになる。
【０１４１】
境界棄却部１２２を用いて、直近の他の境界に対して所定角度以上の角度を成す境界や、他の境界と画像領域内で交差する境界は、その傾きを誤って推定されたものであると判断し、その誤った境界を挟む２つのブロックを１つのブロックに統合することにより、傾きを誤って推定された境界は棄却されるので、誤った傾きに基づいて画像再構成が行なわれるのを防止でき、誤りの少ない画像再構成を行なうことができる。
【０１４２】
また、上側ブロックＢＬi-1の下側傾きと下側ブロックＢＬｉの上側傾きとが同一の傾きとなるように推定された場合、各ブロックＢＬｉについて、上下両側の左右端における画像領域の副走査方向接線と上下両側における傾きとを直交させるように、そのブロックＢＬｉ内の画像データを再構成する。これにより、再構成後のブロックどうしを連結した際に、境界の左右端における画像領域の副走査方向接線が滑らかになり、より高品質の画像データを得ることができる。
【０１４３】
このとき、第１実施形態と同様、左側の画像データ領域および右側の画像データ領域のそれぞれから、副走査方向に適当な間隔（５〜２０ライン）ｄをあけてライン画像データが順次抽出され、抽出されたライン画像データどうしの相互相関に基づいて、左側および右側のずれ量がそれぞれ推定されるので、主走査方向ずれ量を推定するための計算量が削減されて画像補正処理を効率的に行なえると同時に、主走査方向ずれ量の計算精度を向上させることができる。
【０１４４】
また、第３実施形態と同様、第４実施形態でも、主走査方向ずれ量に対して平滑化処理してから画像の再構成を行なうことにより、イメージスキャナ１０に急峻な動きをさせたために生じた、画像データにおける急峻なずれを適切に解消することができ、より高画質の画像データを得ることができる。このとき、平滑化処理にベジェ曲線〔上式（４）参照〕を用いることにより、そのベジェ曲線の媒介変数ｔを用いて、画像データの再構成を容易に行なうことができる。
さらに、第３実施形態と同様、第４実施形態でも、画像データである文書画像を成す文字列の傾きに基づいて、各ブロックＢＬｉの上下両側における画像の傾きθi-1およびθｉを容易に求めることができる。
【０１４５】
〔５〕その他
なお、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態では、処理対象の画像データが文書画像である場合について説明しているが、本発明は、これに限定されるものではなく、罫線やグラフや枠付き画像などを含む画像データであれば、上述と同様にして画像データの歪みを解消するようにその画像データを補正することができる。
【０１４６】
また、上述した実施形態では、ハンドヘルド型イメージスキャナ１０によって得られた画像データに対して処理を行なう場合について説明したが、本発明は、これに限定されるものではなく、何らかの理由により歪みの生じた画像データに対しても適用され、上述と同様の作用効果を得ることができる。
【０１４７】
さらに、処理対象の画像データについて、最初に傾き検出部１１６により上下領域の画像の傾きを検出し、上下の傾きに差が無い場合には第１または第２実施形態にて説明した処理を行なう一方、上下の傾きに差が有る場合には第３実施形態にて説明した処理を行なうようにしてもよい。
また、第４実施形態では、画像データの分割数が４または５である場合について説明したが、本発明はこれに限定されるものではない。
【０１４８】
〔６〕付記
（付記１）  画像データを成す部分データ間の相互相関に基づいて該部分データ間のずれ量を推定する推定手段と、
該推定手段によって推定されたずれ量に基づいて、該画像データにおけるずれを解消するように該画像データを補正する補正手段とをそなえたことを特徴とする、画像処理装置。
【０１４９】
（付記２）  該画像データが、主走査方向に沿う複数列のライン画像データを副走査方向に配列したものであり、
該推定手段が、該画像データから、前記部分データとして一列分のライン画像データを順次抽出し、抽出された該ライン画像データ間の相互相関に基づいて、これらのライン画像データ間の主走査方向ずれ量を前記ずれ量として推定し、
該補正手段が、該推定手段によって推定された該主走査方向ずれ量に基づいて、主走査方向ずれを解消するように該画像データを補正することを特徴とする、付記１記載の画像処理装置。
【０１５０】
（付記３）  該推定手段が、前記副走査方向に適当な間隔をあけて該ライン画像データを順次抽出し、前記間隔をあけた該ライン画像データどうしの相互相関に基づいて、該主走査方向ずれ量を推定することを特徴とする、付記２記載の画像処理装置。
（付記４）  前記間隔が５〜２０ラインであることを特徴とする、付記３記載の画像処理装置。
【０１５１】
（付記５）  該補正手段が、前記間隔をあけた該ライン画像データ間に存在する各ライン画像データのずれ量を、該主走査方向ずれ量に基づき線形補間を行なって求め、該線形補間の結果に基づいて該画像データを補正することを特徴とする、付記３または付記４に記載の画像処理装置。
（付記６）  該推定手段により前記間隔で推定された該主走査方向ずれ量が滑らかな曲線に沿うように、該主走査方向ずれ量に対して平滑化処理を施す平滑化手段をさらにそなえ、
該補正手段が、該平滑化手段により平滑化された該主走査方向ずれ量に基づいて、前記線形補間を行なうことを特徴とする、付記５記載の画像処理装置。
【０１５２】
（付記７）  画像データを成す部分データ間の相互相関に基づいて該部分データ間のずれ量を推定する推定ステップと、
該推定ステップで推定されたずれ量に基づいて、該画像データにおけるずれを解消するように該画像データを補正する補正ステップとを含むことを特徴とする、画像処理方法。
【０１５３】
（付記８）  画像データを成す部分データ間の相互相関に基づいて該部分データ間のずれ量を推定する推定手段、および、
該推定手段によって推定されたずれ量に基づいて、該画像データにおけるずれを解消するように該画像データを補正する補正手段として、コンピュータを機能させることを特徴とする、画像処理プログラム。
【０１５４】
（付記９）  画像データを成す部分データ間の相互相関に基づいて該部分データ間のずれ量を推定する推定手段、および、
該推定手段によって推定されたずれ量に基づいて、該画像データにおけるずれを解消するように該画像データを補正する補正手段として、該コンピュータを機能させることを特徴とする、画像処理プログラムを記録したコンピュータ読取可能な記録媒体。
【０１５５】
（付記１０）  主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なう画像処理装置であって、
該複数列のライン画像データを成す部分データ間の相互相関に基づいて、該画像データの左側および右側の主走査方向ずれ量をそれぞれ推定する推定手段と、該画像データに基づいて、該画像データの上下両側における画像の傾きをそれぞれ検出する検出手段と、
該推定手段によって推定された該主走査方向ずれ量と該検出手段によって検出された該傾きとに基づいて、該画像データを再構成して該画像データの歪みを解消する再構成手段とをそなえたことを特徴とする、画像処理装置。
【０１５６】
（付記１１）  該推定手段が、前記左側の画像データ領域および前記右側の画像データ領域のそれぞれから、前記副走査方向に適当な間隔をあけて該ライン画像データを順次抽出し、前記間隔をあけた該ライン画像データどうしの相互相関に基づいて、前記の左側および右側の主走査方向ずれ量をそれぞれ推定することを特徴とする、付記１０記載の画像処理装置。
【０１５７】
（付記１２）  前記間隔が５〜２０ラインであることを特徴とする、付記１１記載の画像処理装置。
（付記１３）  前記間隔で推定された該主走査方向ずれ量が滑らかな曲線に沿うように、該主走査方向ずれ量に対して平滑化処理を施す平滑化手段をさらにそなえ、
該再構成手段が、該平滑化手段により得られた曲線に基づいて、該画像の再構成を行なうことを特徴とする、付記１１または付記１２に記載の画像処理装置。
【０１５８】
（付記１４）  前記平滑化処理にベジェ曲線が用いられ、
該再構成手段が、該ベジェ曲線の媒介変数を用いて、該画像データの再構成を行なうことを特徴とする、付記１３記載の画像処理装置。
（付記１５）  該画像データが文書画像にかかるものであり、
該検出手段が、前記文書画像を成す文字列の傾きに基づいて該画像の傾きを検出することを特徴とする、付記１０〜付記１４のいずれか一つに記載の画像処理装置。
【０１５９】
（付記１６）  主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なう画像処理方法であって、
該複数列のライン画像データを成す部分データ間の相互相関に基づいて、該画像データの左側および右側の主走査方向ずれ量をそれぞれ推定する推定ステップと、
該画像データに基づいて、該画像データの上下両側における画像の傾きをそれぞれ検出する検出ステップと、
該推定ステップで推定された該主走査方向ずれ量と該検出ステップで検出された該傾きとに基づいて、該画像データを再構成して該画像データの歪みを解消する再構成ステップとを含むことを特徴とする、画像処理方法。
【０１６０】
（付記１７）  主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なう画像処理機能をコンピュータに実行させるための画像処理プログラムであって、
該複数列のライン画像データを成す部分データ間の相互相関に基づいて、該画像データの左側および右側の主走査方向ずれ量をそれぞれ推定する推定手段、
該画像データに基づいて、該画像データの上下両側における画像の傾きをそれぞれ検出する検出手段、および、
該推定手段によって推定された該主走査方向ずれ量と該検出手段によって検出された該傾きとに基づいて、該画像データを再構成して該画像データの歪みを解消する再構成手段として、該コンピュータを機能させることを特徴とする、画像処理プログラム。
【０１６１】
（付記１８）  主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なう画像処理機能をコンピュータに実行させるための画像処理プログラムを記録したコンピュータ読取可能な記録媒体であって、
該画像処理プログラムが、
該複数列のライン画像データを成す部分データ間の相互相関に基づいて、該画像データの左側および右側の主走査方向ずれ量をそれぞれ推定する推定手段、
該画像データに基づいて、該画像データの上下両側における画像の傾きをそれぞれ検出する検出手段、および、
該推定手段によって推定された該主走査方向ずれ量と該検出手段によって検出された該傾きとに基づいて、該画像データを再構成して該画像データの歪みを解消する再構成手段として、該コンピュータを機能させることを特徴とする、画像処理プログラムを記録したコンピュータ読取可能な記録媒体。
【０１６２】
（付記１９）  主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なう画像処理装置であって、
該画像データを該副走査方向について複数のブロックに分割する分割手段と、
該分割手段により分割されて得られた各ブロックの上下両側における画像の傾きを推定する傾き推定手段と、
該分割手段により分割されて得られた各ブロックの左側および右側の主操作方向ずれ量を、各ブロック内のライン画像データを成す部分データ間の相互相関に基づいて推定するずれ量推定手段と、
該分割手段により分割されて得られた各ブロックについて、該ずれ量推定手段によって推定された該主走査方向ずれ量と該傾き推定手段によって推定された上下両側における該傾きとに基づいて、当該ブロック内の画像データを再構成して当該ブロック内の画像データの歪みを解消する再構成手段とをそなえたことを特徴とする、画像処理装置。
【０１６３】
（付記２０）  該傾き推定手段が、該複数のブロックのうちの隣接する２つのブロックの境界における画像の傾きを、該境界に跨って存在する画像データに基づいて該境界の傾きとして推定し、推定された該境界の傾きを、該２つのブロックのうちの上側ブロックの下側における画像の傾き、および、該２つのブロックのうちの下側ブロックの上側における画像の傾きの推定結果として採用することを特徴とする、付記１９記載の画像処理装置。
【０１６４】
（付記２１）  該傾き推定手段により推定された複数の境界の傾きに基づいて、該複数の境界のうち、直近の他の境界に対して所定角度以上の角度を成す境界を検知する検知手段と、
該検知手段によって検知された該境界を挟む２つのブロックを１つのブロックに統合するブロック統合手段とをさらにそなえ、
該ブロック統合手段による統合後のブロックに基づいて、該ずれ量推定手段および該再構成手段が、それぞれ、上述した推定処理および再構成処理を実行することを特徴とする、付記２０記載の画像処理装置。
【０１６５】
（付記２２）  該傾き推定手段により推定された複数の境界の傾きに基づいて、該複数の境界のうち、他の境界と画像領域内で交差する境界を検知する検知手段と、
該検知手段によって検知された該境界を挟む２つのブロックを１つのブロックに統合するブロック統合手段とをさらにそなえ、
該ブロック統合手段による統合後のブロックに基づいて、該ずれ量推定手段および該再構成手段が、それぞれ、上述した推定処理および再構成処理を実行することを特徴とする、付記２０記載の画像処理装置。
【０１６６】
（付記２３）  該再構成手段が、上記の各ブロックについて、上下両側の左右端における画像領域の副走査方向接線と該傾き推定手段によって推定された上下両側における該傾きとを直交させるように、当該ブロック内の画像データを再構成することを特徴とする、付記２０〜付記２２のいずれか一つに記載の画像処理装置。
（付記２４）  該画像データが文書画像にかかるものであり、
該傾き推定手段が、前記文書画像を成す文字列の傾きに基づいて該画像の傾きを推定することを特徴とする、付記１９〜付記２３のいずれか一つに記載の画像処理装置。
【０１６７】
（付記２５）  該ずれ量推定手段が、前記左側の画像データ領域および前記右側の画像データ領域のそれぞれから、前記副走査方向に適当な間隔をあけて該ライン画像データを順次抽出し、前記間隔をあけた該ライン画像データどうしの相互相関に基づいて、前記の左側および右側の主走査方向ずれ量をそれぞれ推定することを特徴とする、付記１９〜付記２４のいずれか一つに記載の画像処理装置。
（付記２６）  前記間隔が５〜２０ラインであることを特徴とする、付記２５記載の画像処理装置。
【０１６８】
（付記２７）  前記間隔で推定された該主走査方向ずれ量が滑らかな曲線に沿うように、該主走査方向ずれ量に対して平滑化処理を施す平滑化手段をさらにそなえ、
該再構成手段が、該平滑化手段により得られた曲線に基づいて、各ブロック内の画像データの再構成を行なうことを特徴とする、付記２５または付記２６に記載の画像処理装置。
（付記２８）  前記平滑化処理にベジェ曲線が用いられ、
該再構成手段が、該ベジェ曲線の媒介変数を用いて、各ブロック内の画像データの再構成を行なうことを特徴とする、付記２７記載の画像処理装置。
【０１６９】
（付記２９）  主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なう画像処理方法であって、
該画像データを該副走査方向について複数のブロックに分割する分割ステップと、
該分割ステップで分割されて得られた各ブロックの上下両側における画像の傾きを推定する傾き推定ステップと、
該分割ステップで分割されて得られた各ブロックの左側および右側の主操作方向ずれ量を、各ブロック内のライン画像データを成す部分データ間の相互相関に基づいて推定するずれ量推定ステップと、
該分割ステップで分割されて得られた各ブロックについて、該ずれ量推定ステップで推定された該主走査方向ずれ量と該傾き推定ステップで推定された上下両側における該傾きとに基づいて、当該ブロック内の画像データを再構成して当該ブロック内の画像データの歪みを解消する再構成ステップとを含むことを特徴とする、画像処理方法。
【０１７０】
（付記３０）  主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なう画像処理機能をコンピュータに実行させるための画像処理プログラムであって、
該画像データを該副走査方向について複数のブロックに分割する分割手段、
該分割手段により分割されて得られた各ブロックの上下両側における画像の傾きを推定する傾き推定手段、
該分割手段により分割されて得られた各ブロックの左側および右側の主操作方向ずれ量を、各ブロック内のライン画像データを成す部分データ間の相互相関に基づいて推定するずれ量推定手段、および、
該分割手段により分割されて得られた各ブロックについて、該ずれ量推定手段によって推定された該主走査方向ずれ量と該傾き推定手段によって推定された上下両側における該傾きとに基づいて、当該ブロック内の画像データを再構成して当該ブロック内の画像データの歪みを解消する再構成手段として、該コンピュータを機能させることを特徴とする、画像処理プログラム。
【０１７１】
（付記３１）  主走査方向（左右方向）に沿う複数列のライン画像データを副走査方向（上下方向）に配列してなる画像データに対する処理を行なう画像処理機能をコンピュータに実行させるための画像処理プログラムを記録したコンピュータ読取可能な記録媒体であって、
該画像処理プログラムが、
該画像データを該副走査方向について複数のブロックに分割する分割手段、  該分割手段により分割されて得られた各ブロックの上下両側における画像の傾きを推定する傾き推定手段、
該分割手段により分割されて得られた各ブロックの左側および右側の主操作方向ずれ量を、各ブロック内のライン画像データを成す部分データ間の相互相関に基づいて推定するずれ量推定手段、および、
該分割手段により分割されて得られた各ブロックについて、該ずれ量推定手段によって推定された該主走査方向ずれ量と該傾き推定手段によって推定された上下両側における該傾きとに基づいて、当該ブロック内の画像データを再構成して当該ブロック内の画像データの歪みを解消する再構成手段として、該コンピュータを機能させることを特徴とする、画像処理プログラムを記録したコンピュータ読取可能な記録媒体。
【０１７７】
【発明の効果】
以上詳述したように、本発明の画像処理装置および画像処理プログラムによれば、二次元センサを用いることなく、読み取られた画像データのみを用いて画像データの二次元的な歪みを補正することができるので、製造コストの増大を招くことなく、歪みの無い高品質の画像データを得ることができる。
【０１７８】
このとき、左側の画像データ領域および右側の画像データ領域のそれぞれから、副走査方向に適当な間隔（５〜２０ライン）をあけてライン画像データが順次抽出され、抽出されたライン画像データどうしの相互相関に基づいて、左側および右側の主走査方向ずれ量がそれぞれ推定されるので、前述したように、主走査方向ずれ量を推定するための計算量が削減されて画像補正処理を効率的に行なえると同時に、主走査方向ずれ量の計算精度を向上させることができる。
【０１７９】
また、推定された主走査方向ずれ量が滑らかな曲線に沿うように、その主走査方向ずれ量に対して平滑化処理してから、画像の再構成を行なうことにより、イメージスキャナに急峻な動きをさせたために生じた、画像データにおける急峻なずれを適切に解消することができ、より高画質の画像データを得ることが可能になる。このとき、平滑化処理にベジェ曲線を用いることにより、そのベジェ曲線の媒介変数を用いて、画像データの再構成を容易に行なうことが可能になる。
【０１８０】
さらに、画像データが文書画像にかかるものである場合、その文書画像を成す文字列の傾きに基づいて、画像データの上下両側における画像の傾きを容易に求めることが可能である。
【０１８１】
そして、本発明の画像処理装置および画像処理プログラムによれば、画像データを複数のブロックに分割し、ブロック毎にそのブロック内の画像データの再構成を行なうことにより、例えばハンドヘルド型イメージスキャナで画像データを読み取った際にこのイメージスキャナが蛇行していたとしても、二次元センサを用いることなく、上記イメージスキャナにより読み取られた画像データのみを用いて、蛇行に伴う画像データの二次元的な歪みを補正することができるので、製造コストの増大を招くことなく、歪みの無い高品質の画像データを得ることができる。
【０１８２】
このとき、隣接する２つのブロックの境界における画像の傾きが、この境界に跨って存在する画像データに基づいて、この境界の傾きとして推定され、推定された境界の傾きが、２つのブロックのうちの上側ブロックの下側における画像の傾き、および、２つのブロックのうちの下側ブロックの上側における画像の傾きの推定結果として採用される。つまり、一つの境界の傾きを推定することで、上側ブロックの下側傾きと下側ブロックの上側傾きとを同時に推定することができる。また、上側ブロックの下側傾きと下側ブロックの上側傾きとが、別々に推定されるのではなく、共通の傾きとして推定され同一の傾きとなるので、再構成後のブロックどうしが、副走査方向に隙間なく確実に連結されることになる。
【０１８３】
複数の境界の傾きを推定した場合、直近の他の境界に対して所定角度以上の角度を成す境界や、他の境界と画像領域内で交差する境界は、その傾きを誤って推定されたものであると判断し、その誤った境界を挟む２つのブロックを１つのブロックに統合して処理を実行する。これにより、傾きを誤って推定された境界は棄却されるので、誤った傾きに基づいて画像再構成が行なわれるのを防止でき、誤りの少ない画像再構成を行なうことができる。
【０１８４】
また、上側ブロックの下側傾きと下側ブロックの上側傾きとが同一の傾きとなるように推定された場合、各ブロックについて、上下両側の左右端における画像領域の副走査方向接線と上下両側における傾きとを直交させるように、そのブロック内の画像データを再構成する。これにより、再構成後のブロックどうしを連結した際に、境界の左右端における画像領域の副走査方向接線が滑らかになり、より高品質の画像データを得ることができる。
【０１８５】
さらに、画像データが文書画像にかかるものである場合、その文書画像を成す文字列の傾きに基づいて、各ブロックの上下両側における画像の傾きを容易に求めることが可能である。
【図面の簡単な説明】
【図１】本発明の第１実施形態としての画像処理装置の構成を示すブロック図である。
【図２】第１実施形態の画像処理手順を説明するためのフローチャートである。
【図３】第１実施形態のずれ量推定手順を説明するためのフローチャートである。
【図４】（Ａ）〜（Ｃ）はいずれも第１実施形態の画像処理手法を具体的に説明するための図である。
【図５】本発明の第２実施形態としての画像処理装置の構成を示すブロック図である。
【図６】（Ａ）および（Ｂ）はいずれも第２実施形態の平滑化処理を説明するための図である。
【図７】本発明の第３実施形態としての画像処理装置の構成を示すブロック図である。
【図８】第３実施形態の画像処理手法を説明するための図である。
【図９】第３実施形態の画像処理手法を説明するための図である。
【図１０】第３実施形態の画像処理手法を説明するための図である。
【図１１】第３実施形態の画像処理手法を説明するための図である。
【図１２】第３実施形態の画像処理手法を説明するための図である。
【図１３】第３実施形態の画像処理手法を説明するための図である。
【図１４】第３実施形態の画像処理手法を説明するための図である。
【図１５】（Ａ）および（Ｂ）はいずれも第３実施形態における画像の傾きの検出手法を説明するための図である。
【図１６】一般的なハンドヘルド型イメージスキャナの構成を説明すべくその原稿接触面を示す平面図である。
【図１７】（Ａ）および（Ｂ）は、いずれも、ハンドヘルド型イメージスキャナによるスキャン領域の例を示す図である。
【図１８】本発明の第４実施形態としての画像処理装置の構成を示すブロック図である。
【図１９】第４実施形態の画像処理手順を説明するためのフローチャートである。
【図２０】第４実施形態における、ブロック上下両側の画像の傾き（境界の傾き）を推定する手法を説明するための図である。
【図２１】第４実施形態における、傾きを誤って推定された境界の一例を説明するための図である。
【図２２】第４実施形態における、傾きを誤って推定された境界の他例を説明するための図である。
【図２３】第４実施形態における、ベジェ曲線のコントロールポイントの選択例を説明するための図である。
【図２４】第４実施形態における、再構成後のブロックどうしの連結状態（境界の左右端における連結状態）を説明するための図である。
【図２５】第４実施形態の画像処理手法を説明するための図である。
【図２６】第４実施形態の画像処理手法を説明するための図である。
【図２７】第４実施形態の画像処理手法を説明するための図である。
【符号の説明】
１０  ハンドヘルド型イメージスキャナ
１１  一次元ラインセンサ
１２  ローラ
１００，１００Ａ，１００Ｂ，１００Ｃ  画像処理装置
１０１  画像バッファ
１０２  第１ラインカウンタ（推定手段，ずれ量推定手段）
１０３  第２ラインカウンタ（推定手段，ずれ量推定手段）
１０４  距離メモリ（推定手段，ずれ量推定手段）
１０５  相互相関係数演算部（推定手段，ずれ量推定手段）
１０６  最小相互相関係数検出部（推定手段，ずれ量推定手段）
１０７  最小相互相関係数メモリ（推定手段，ずれ量推定手段）
１０８  ずれ量カウンタ（推定手段，ずれ量推定手段）
１０９  最小相互相関係数位置メモリ（推定手段，ずれ量推定手段）
１１０  ずれ量メモリ
１１１  線形補間処理部（補正手段）
１１２  補正画像バッファ
１１３  平滑化処理部（平滑化手段）
１１４  左右領域抽出部（推定手段，ずれ量推定手段）
１１５  上下領域抽出部
１１６  傾き検出部（検出手段）
１１７  再構成部（再構成手段）
１１８  ブロック分割部（分割手段）
１１９  傾き推定部（傾き推定手段）
１２０  傾きリスト
１２１  検知部（検知手段）
１２２  境界棄却部（ブロック統合手段）
２００  ずれ量推定手段
【図１】
0003938859.tif 000002
【図２】
0003938859.tif 000003
【図３】
0003938859.tif 000004
【図４】
0003938859.tif 000005
【図５】
0003938859.tif 000006
【図６】
0003938859.tif 000007
【図７】
0003938859.tif 000008
【図８】
0003938859.tif 000009
【図９】
0003938859.tif 000010
【図１０】
0003938859.tif 000011
【図１１】
0003938859.tif 000012
【図１２】
0003938859.tif 000013
【図１３】
0003938859.tif 000014
【図１４】
0003938859.tif 000015
【図１５】
0003938859.tif 000016
【図１６】
0003938859.tif 000017
【図１７】
0003938859.tif 000018
【図１８】
0003938859.tif 000019
【図１９】
0003938859.tif 000020
【図２０】
0003938859.tif 000021
【図２１】
0003938859.tif 000022
【図２２】
0003938859.tif 000023
【図２３】
0003938859.tif 000024
【図２４】
0003938859.tif 000025
【図２５】
0003938859.tif 000026
【図２６】
0003938859.tif 000027
【図２７】
0003938859.tif 000028