(57)【要約】画像歪み検出・補正部１１は、複数の（ここでは２つの）入力画像各々の画像の歪みを検出し、各画像毎に歪み補正を行う。重なり位置検出部１２は、歪み補正後の画像を用いて、２つの入力画像を結合する際の画像相互の重なり位置を検出する。相互の歪み／伸縮検出部１３は、上記２つの入力画像を結合する重なり領域における、当該２つの画像相互の歪みまたは伸縮を検出する。これら検出結果に基づいて、２つの入力画像相互の歪みを補正し、または伸縮を補完する。最後に、画像合成部１５によって、２つの画像を結合する。
2004077356.tif 000002
【特許請求の範囲】
【請求項１】
手動操作型スキャナによってスキャン対象が複数回に分けて読み取られて得られた複数の画像各々の歪みを検出して、該検出結果に基づいて各画像毎の歪みを補正する画像歪み検出・補正手段と、
前記歪み補正した各画像を用いて、画像相互の重なり領域を検出する重なり位置検出手段と、
該検出した重なり領域において、該各画像相互の歪み、または画像の伸縮を検出する画像相互歪み／伸縮検出手段と、
該検出した画像相互の歪み又は伸縮に基づいて、前記複数の画像を補正する画像補正手段と、
該補正後の複数の画像を合成する画像合成手段と、
を有することを特徴とする画像結合装置。
【請求項２】
前記画像相互歪み／伸縮検出手段は、前記重なり領域を複数に分割した各矩形領域のうちの特定の矩形領域間または行画像内の各文字領域間の相互相関を用いて、前記画像相互の歪み／伸縮を検出することを特徴とする請求項１記載の画像結合装置。
【請求項３】
前記特定の矩形領域は、特徴量の多い矩形領域であることを特徴とする請求項２記載の画像結合装置。
【請求項４】
前記画像歪み検出・補正手段、重なり位置検出手段、画像相互歪み／伸縮検出手段の処理に用いる画像は、前記読み取った複数の画像を、情報量を減らした画像へと変換した変換画像であり、
前記画像歪み検出・補正手段、重なり位置検出手段、画像相互歪み／伸縮検出手段は、該変換画像を用いて得た前記検出結果を一時的に記憶しておき、
前記画像補正手段と画像合成手段は、該一時的に記憶した検出結果を用いて、前記読み取った複数の画像を補正し、合成することを特徴とする請求項１〜３記載の画像結合装置。
【請求項５】
前記情報量を減らした画像は、単一の色成分を持つ階調画像、または２値画像、あるいは縮小画像であることを特徴とする請求項４記載の画像結合装置。
【請求項６】
前記画像は、主走査方向に沿う複数列のラインデータを副走査方向に配列したものであり、
前記画像歪み検出・補正手段は、前記副走査方向に所定の間隔をあけて該ラインデータを順次抽出し、該抽出したラインデータ間の相互相関に基づいて、主走査方向のずれ量を推定し、該推定したずれ量に基づいて、前記画像におけるずれを解消するように前記画像を補正することを特徴とする請求項１〜５記載の画像結合装置。
【請求項７】
前記画像歪み検出手段は、前記推定された該主走査方向ずれ量が滑らかな曲線に沿うように、該主走査方向ずれ量に対して平滑化処理を施すことを特徴とする請求項６記載の画像結合装置。
【請求項８】
前記画像歪み検出手段は、前記間隔をあけたラインデータ間に存在する各ラインデータのずれ量を、該主走査方向ずれ量に基づき線形補完を行なって求め、該線形補完の結果に基づいて前記画像を補正することを特徴とする請求項６又は７記載の画像結合装置。
【請求項９】
前記画像は、主走査方向に沿う複数列のラインデータを副走査方向に配列したものであり、
前記画像歪み検出手段は、該複数列のラインデータを成す部分データ間の相互相関に基づいて、前記画像の左側および右側の主走査方向ずれ量をそれぞれ推定し、前記画像の上下両側における画像の傾きをそれぞれ検出し、前記推定された該主走査方向ずれ量と該検出された傾きとに基づいて、前記画像を再構成して該画像の歪みを解消することを特徴とする請求項１〜５記載の画像結合装置。
【請求項１０】
前記画像は、主走査方向に沿う複数列のラインデータを副走査方向に配列したものであり、
前記画像歪み検出手段は、前記画像を該副走査方向について複数のブロックに分割し、該各ブロックの上下両側における画像の傾きを推定し、該各ブロックの左側および右側の主操作方向ずれ量を、各ブロック内のラインデータを成す部分データ間の相互相関に基づいて推定し、前記各ブロックについて、該推定された該主走査方向ずれ量と前記推定された上下両側における傾きとに基づいて、該ブロック内の画像データを再構成して該ブロック内の画像の歪みを解消することを特徴とする請求項１〜５記載の画像結合装置。
【請求項１１】
手動操作型スキャナによってスキャン対象が複数回に分けて読み取られて得られた複数の画像各々の歪みを検出して、該検出結果に基づいて各画像毎の歪みを補正し、
該歪み補正した各画像を用いて、画像相互の重なり領域を検出し、
該検出した重なり領域中において、該各画像相互の歪み、または画像の伸縮を検出し、
該検出した画像相互の歪み又は伸縮に基づいて、前記複数の画像を補正し、
該補正後の複数の画像を合成することを特徴とする画像結合方法。
【請求項１２】
コンピュータに、
手動操作型スキャナによってスキャン対象が複数回に分けて読み取られて得られた複数の画像各々の歪みを検出して、該検出結果に基づいて歪みを補正する機能と、
該歪み補正した各画像を用いて、画像相互の重なり領域を検出する機能と、
該検出した重なり領域中において、該各画像相互の歪み、または画像の伸縮を検出する機能と、
該検出した画像相互の歪み又は伸縮に基づいて、前記複数の画像を補正する機能と、
該補正後の複数の画像を合成する機能と、
を実現させるためのプログラム。
【請求項１３】
コンピュータに、
手動操作型スキャナによってスキャン対象が複数回に分けて読み取られて得られた複数の画像各々の歪みを検出し補正する機能と、
該歪み補正した各画像を用いて、画像相互の重なり領域を検出する機能と、
該検出した重なり領域中において、該各画像相互の歪み、または画像の伸縮を検出する機能と、
該検出した画像相互の歪み又は伸縮に基づいて、前記複数の画像を補正する機能と、
該補正後の複数の画像を合成する機能と、
を実行させるためのプログラムを格納した前記コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】  本発明は、例えばハンドヘルド型スキャナ等の手動操作型スキャナによって、手操作でスキャン対象を複数回に分けて読み取って得た複数の画像を結合することで元のスキャン対象全体の画像を得る画像結合装置、画像結合方法、プログラム、記録媒体等に関する。
【背景技術】  近年、据え置き型のフラットベッドスキャナに加え、持ち運びが容易な手動操作型のハンドヘルド型スキャナが開発・製品化されている。ハンドヘルドスキャナは本体が小型であるため一度にスキャンできる幅が狭い。スキャナ幅を超える大きな画像を取り込むためには、画像を複数回に分けて取り込み合成する必要がある。または、スキャナ幅を超えない場合でも、ユーザが、複数回に分けてスキャンするような操作を行う場合が考えられる。スキャン操作の仕方はユーザの自由であるので、この様な事態も起こり得る。
従来より、ハンドヘルドスキャナ等によって、スキャン対象物（新聞、書籍、写真、図面等）を複数回に分けて光学的に読み取った複数の画像を結合する技術はいくつか存在する。この様な画像結合技術には、例えば、特許文献１に記載の方法や、特許文献２に記載の方法等がある。
特許文献１記載の手法は、スキャン対象の文書（新聞、書籍等）を複数回に分けて読み取った複数の文書画像のそれぞれについて文字領域を抽出し、抽出された文字領域内の文字画像を文字認識し、各文書画像の文字認識結果に基づいて複数の文書画像の重なりを検出し、検出された重なり位置で複数の文書画像を結合する。これによって、ユーザが分割して読み取った複数の文書画像を結合するための操作を特別に行わなくとも、あるいは文書画像に予め結合のためのマーク等を付けなくとも複数の文書を自動的に結合することができる。また、特許文献１では、文書画像に表、図形等が含まれている場合でも、文書画像を複数の領域に分割し、領域毎に行画像を抽出することで、図形等を含まない行画像を抽出し、それらの行画像の文字領域を比較することで文書画像の重なり位置を正確に検出することができる手法等も提案している。
特許文献２記載の手法は、特にスキャン対象が上記文書画像以外のもの（写真、図形、ｅｔｃ．）である場合に、スキャン対象を複数回に分けて読み取った複数の入力画像を結合する技術に係わり、特に処理の高速化、処理中に必要となるメモリ容量の削減を図る手法である。これは、例えば、読み込んだ複数の入力画像データを、データ量を少なくした画像データに変換し、この変換した画像データを用いて上記複数の入力画像の結合位置関係と重なり領域を検出して記憶しておき、記憶された結合位置関係と重なり領域とに基づいて、上記複数の入力画像を結合する。ユーザが、例えばハンドヘルドスキャナ等を用いて自由な操作で複数回に分けて画像を取込んだ場合、この複数の画像の結合位置関係（鏡像反転有無、回転角度）（更に上下左右の位置関係）がどのようになっているか分からない。上記特許文献２の画像結合装置では、例えば入力画像の縮小画像等のようなデータ量を少なくした画像データを用いて、おおまかな重なり位置を検出している。また、入力画像（カラー画像）をグレースケール画像に変換し、このグレースケール画像を用いて、上記おおまかな重なり位置における正確な重なり位置、結合面を検出する。そして、データ量が大きい入力画像を用いた結合処理は、最後に、上記の各種出結果を用いて行うので、処理が高速化でき、また処理に必要なメモリ容量も少なくて済む。
更に、特許文献２には、スキャン対象を複数回に分けて読み取った複数の入力画像のうちの少なくとも一方が傾いている場合に、傾き補正を行う手法も提案されている。
【特許文献１】    特開２０００−２７８５１４号公報
【特許文献２】    特開２００２−３０５６４７号公報
ところで、上記特許文献１や、特許文献２では、ハンドヘルド型スキャナを用いたスキャン画像において、ユーザの操作の仕方に起因する画像の歪み、伸縮が生じた場合に、これを自動的に補正することは、想定されていなかった。
ここで、ハンドヘルド型スキャナによる画像の歪み、伸縮について、説明する。
図４４は、一般的なハンドヘルド型イメージスキャナの構成を説明すべく、その原稿接触面を示す平面図である。この図４４に示すように、ハンドヘルド型イメージスキャナ４００（以下、単に、イメージスキャナ４００と記す）は、基本的に、画像を取り込むための１次元のラインセンサ４０１と、ユーザ（操作者）によるスキャン操作に伴ってその画像原稿に接触しながら回転する複数（図中４個）のローラ４０２と、スキャン操作に伴うイメージスキャナ４００の移動量を検出すべくローラ４０２の回転数を検出する、一次元のロータリエンコーダ（図示省略）とをそなえて構成されている。なお、複数のローラ４０２は、同一回転軸を有し、一体的に回転するように構成されている。また、ラインセンサ４０１の主走査方向幅は固定長Ｗである。
上述したイメージスキャナ４００を用いて画像を取り込む際、ユーザは、イメージスキャナ４００を手で持ってサンプル対象の画像に沿って所定方向（副走査方向）へ移動させる。このとき、イメージスキャナ４００の移動に伴ってローラ４０２が回転し、その回転数がエンコーダにより検出される。そして、検出されたローラ４０２の回転数に応じたタイミングで、ラインセンサ４０１により、主走査方向１ライン分の画像データ（以下、ラインデータという）が得られ、そのラインデータが１ラインずつイメージスキャナから情報処理装置へ送信される。これにより、サンプル対象の画像が、主走査方向に沿う複数列のラインデータを副走査方向に配列して成る画像データとして、情報処理装置に取り込まれる。
ところで、サンプル対象の画像が文書画像である場合、ユーザによるイメージスキャナ４００の操作方向（副走査方向）が文書の文字列の方向に対して平行または垂直であることが理想的である。
しかし、イメージスキャナ４００がサンプル対象の画像に対し一方向のみに移動するようにその移動方向を規制するための機構は特にそなえられていない。ただ、ユーザによる実際のスキャン操作時には、前述したローラ４０２により、イメージスキャナ４００の移動方向をローラ４０２の回転方向に沿わせるような若干の拘束力が作用するが、その拘束力は弱く、その移動方向を一方向に規制できるほどのものではない。
従って、ハンドヘルド型イメージスキャナ４００についてのユーザによる操作自由度は高く、そのため、ユーザの意識とは無関係にイメージスキャナ４００のスキャン操作方向（移動方向）が変化し、読み取られた画像に歪みが発生してしまう場合が多い。
例えば、ユーザの真正面に置かれた画像原稿を、イメージスキャナ４００をユーザ方向へ移動させながら読み取る場合を考える。
この場合、右利きのユーザが右手でイメージスキャナ４００を持ってスキャン操作を行なうと、イメージスキャナ４００が手前に近づくにつれて右肘を右方向へ逃がすような腕の動きが生じる。このような腕の動きに伴って、図４５（ａ）に示すごとく、イメージスキャナ４００の操作方向は無意識のうちに僅かながら右方向へずれていく傾向がある。逆にユーザが左利きの場合、その操作方向は左方向へずれる傾向がある。このときイメージスキャナ４００によって読み取られた画像には、操作方向（副走査方向）の位置に依ってラインセンサ方向（主走査方向）へのずれ、つまり歪みが発生する。
また、場合によっては、上述のような腕の動きに伴い、図４５（ｂ）に示すごとく、イメージスキャナ４００の操作方向が右方向へずれると同時にイメージスキャナ４００の一端側〔図４５（ｂ）では左側〕で滑りが生じ、イメージスキャナ４００によるスキャン領域が扇形になることもある。このときイメージスキャナ４００によって読み取られた画像データには、ラインセンサ方向（主走査方向）のみならず操作方向（副走査方向）にも歪みが発生する。
ここで、従来、イメージスキャナに光学式の二次元センサを埋め込んでおき、この二次元センサを用いて、画像原稿上でイメージスキャナ本体がどのように移動したかを二次元的に検出し、その検出結果に応じて、ハンドヘルド型イメージスキャナによって読み取られた画像データの歪みを補正するという技術が提案されている。ここで、光学式の二次元センサは、紙等の画像形成面上の微小な凹凸状態を追うことにより、スキャン操作開始後、イメージスキャナ本体が二次元的にどのように移動したかを検出する。
しかしながら、上述した二次元センサは高価であるため、二次元センサをそなえた場合、画像データの歪みを補正することはできるが、イメージスキャナの製造コストが高くなるという問題がある。このため、二次元センサ等を新たに追加することなく、ラインセンサによって得られた画像データを用いて、その画像データの歪みを推定し補正できるようにすることが望まれている。
特に、スキャン対象を複数回に分けて読み取った複数の画像を結合する場合、各々の画像の歪みを補正しなければ、重なり位置の検出精度が落ちる。
ここで、複数回に分けて読み取った複数の画像を結合する場合について説明する。
例えば図４６（ａ）に示すように、スキャン対象（写真、紙面等）が、イメージスキャナ４００ラインセンサ４０１の主走査方向幅Ｗより大きい場合、複数回に分けてスキャン操作を行う。図示の例では、図上に▲１▼、▲２▼で示す２回のスキャン操作を行う。その結果、図４６（ｂ）に示す２つの入力画像（画像Ａ、画像Ｂ）が得られる。そして、図４７に示すように、これら２つの画像Ａ、画像Ｂにおいて重複して読み取った部分（図中で三角、四角、円がある部分）、すなわち重なり領域を検出して、この重なり位置で２つの画像を合成する。
このとき、ユーザが、少なくとも▲１▼、▲２▼のどちらか一方のスキャン操作を行う際に、例えば図４８（ａ）に示すような操作、すなわち図４５（ａ）で説明したような操作を行った結果（勿論、図４５（ｂ）の操作を行う場合も有る）、図４８（ｂ）に示すような歪んだ画像（画像Ｂ’）が入力された場合、図４９に示すように、画像Ａと画像Ｂ’を結合しようとすると、画像Ｂ’が歪んでいるために、正確な重なり領域が検出できない。更に、画像の歪みが大きければ、重なり位置を検出できない場合がある。
また、たとえ重なり位置を検出できたとしても、２つの画像相互の重なり位置は完全には一致しないため、画素ずれの影響から、合成部分の画質が低下するといった問題がある。これは、たとえ画像Ｂ’の歪みを補正して重なり位置を検出できるようにしたとしても、完全に元通りの画像へと補正できない限り、２つの画像相互の重なり位置は完全には一致しないため（すなわち、画像相互の歪みが生じる為）、合成部分の画質が低下するという問題は避けられない。
よって、画像の結合に際しては、上記画像の歪みを補正する必要があるだけでなく、画像相互の歪みを検出・補正する必要がある。勿論、歪みの検出等は、二次元センサ等の特別の構成を用いることなく行えることが必要である。
更に、従来では、画像の“伸縮”の問題については、対応できなかった。
よく知られているように、“伸縮”は、例えばスキャン操作のスピードが速すぎた為に、ラインデータの一部が損なわれ、その結果、画像全体が縮んだようになるものである。
本発明の課題は、二次元センサ等の特別の構成を用いることなく、自動的に画像の歪みを補正することで、画像の重なり位置を高精度に検出し、更に、画像相互の歪み又は伸縮を検出して補正又は補完することによって、高画質な結合画像を生成することができる画像結合装置、画像結合方法、プログラム等を提供することである。
【発明の開示】
本発明による画像結合装置は、手動操作型スキャナによってスキャン対象が複数回に分けて読み取られて得られて複数の画像各々の歪みを検出して、該検出結果に基づいて各画像毎の歪みを補正する画像歪み検出・補正手段と、前記歪み補正した各画像を用いて、画像相互の重なり領域を検出する重なり位置検出手段と、該検出した重なり領域中において、該各画像相互の歪み、または画像の伸縮を検出する画像相互歪み／伸縮検出手段と、該検出した画像相互の歪み又は伸縮に基づいて、前記複数の画像を補正する画像補正手段と、該補正後の複数の画像を合成する画像合成手段とを有するように構成する。
例えばハンドヘルド型スキャナのような手動操作型スキャナを用いた場合、ユーザのスキャン操作の自由度が高い為、例えばスキャン操作中にスキャナの操作方向が例えば曲線を描くようにしてズレていく結果、画像の歪みが生じる場合がある。あるいは、例えばスキャン操作が早すぎる為に、ラインデータの一部が取り込めなかった結果、画像が縮んだようになる所謂“伸縮”が生じる場合がある。
上記画像結合装置では、まず、画像歪み検出・補正手段によって、各画像毎に、その画像の歪みを検出して補正する。これによって複数の画像相互の重なり位置を検出できなくなることはない。但し、歪み補正後であっても、これら複数の補正画像を結合しようとする場合に、完全には一致しない場合がある為、画像相互歪み／伸縮検出手段によって、画像相互の歪みを検出し、この検出結果に基づいて画像補正手段によって画像補正してから、画像合成手段によって複数の画像を結合する。これによって、画像の歪みが生じた場合でも、高画質な結合画像を生成することができる。あるいは、画像の伸縮が生じた場合には、画像歪み検出・補正手段では伸縮を検出・補正できないが、画像相互歪み／伸縮検出手段によって、画像相互のずれを検出することで、伸縮を検出することができるので、伸縮が生じた場合でも、これを補正して、高画質な結合画像を生成することができる。
また、上記画像結合装置において、例えば、前記画像は、主走査方向に沿う複数列のラインデータを副走査方向に配列したものであり、前記画像歪み検出・補正手段は、前記副走査方向に所定の間隔をあけて該ラインデータを順次抽出し、該抽出したラインデータ間の相互相関に基づいて、主走査方向のずれ量を推定し、該推定したずれ量に基づいて、前記画像におけるずれを解消するように前記画像を補正するようにしてもよい。
距離がそれほど離れていないラインデータ同士は、それほど大きく変化しないことを利用して、適切な間隔（例えば、５〜２０ライン分程度）を空けたラインデータ間の相互相関を用いて、各ラインデータ間のずれ量を推定することにより、画像の歪みを検出できるようになる。
また、上記画像結合装置において、例えば、前記画像歪み検出・補正手段、重なり位置検出手段、画像相互歪み／伸縮検出手段の処理に用いる画像は、前記読み取った複数の画像を、情報量を減らした画像へと変換した変換画像であり、前記画像歪み検出・補正手段、重なり位置検出手段、画像相互歪み／伸縮検出手段は、該変換画像を用いて得た前記検出結果を一時的に記憶しておき、前記画像補正手段と画像合成手段は、該一時的に記憶した検出結果を用いて、前記読み取った複数の画像を補正し、合成するようにしてもよい。
ハンドヘルド型スキャナによって読み取って得た入力画像が、例えば、カラー画像であったり、解像度が高い場合には、上記画像結合装置の各種処理には、非常に多くの処理時間とメモリ容量を要する。よって、まず、入力画像を、情報量を減らした画像へと変換した変換画像を作成する。変換画像は、例えば、グレースケール画像、２値画像、縮小画像等である。そして、変換画像を用いて前記画像歪み検出・補正手段、重なり位置検出手段、画像相互歪み／伸縮検出手段の各処理を実行し、最後に、これら処理結果（検出結果）に基づいて入力画像を補正、結合することにより、処理時間とメモリ容量を減らすことができる。
尚、本発明は、上記画像結合装置により処理方法としての画像結合方法として構成することもできる。
なお、上述した本発明の各構成により行なわれる機能と同様の制御をコンピュータに行なわせるプログラムを記憶したコンピュータ読み取り可能な記憶媒体から、そのプログラムをコンピュータに読み出させて実行させることによっても、前述した課題を解決することができる。つまり、上記画像結合装置としての機能をコンピュータによって実現させるためにプログラム自体、またはこのプログラムを記録した記録媒体自体として構成することもできる。
【図面の簡単な説明】  本発明は、後述する詳細な説明を、下記の添付図面と共に参照すればより明らかになるであろう。
図１は、画像結合装置の機能ブロック図である。
図２は、第１の実施例の処理手順を説明する為のフローチャート図である。
図３は、図２のステップＳ２０または図４のステップＳ４１の「相互の歪み、伸縮検出」処理の詳細フローチャート図である。
図４は、第２の実施例の処理手順を説明する為のフローチャート図である。
図５は、先出願の画像処理装置の構成を示すブロック図である。
図６は、先出願の画像処理装置の動作を説明する為のフローチャート図である。
図７は、ずれ量推定処理の詳細フローチャート図である。
図８（ａ）〜（ｃ）は、ずれ量推定処理を、具体例を用いて説明する為の図である。
図９は、ラインデータの抽出領域の一例を示す図である。
図１０は、（ａ）はずれ量推定結果、（ｂ）はそのスムージング処理結果を示す図である。
図１１は、（ａ）は重なり領域を複数の矩形領域に分割した一例、（ｂ）は“色差の大きい濃度成分を多く含む矩形領域”を抽出する様子を示す図である。
図１２（ａ）、（ｂ）は、正確な重なり位置検出に使用する矩形領域を抽出する様子を示す図である。
図１３は、２つの画像相互の歪みの検出の一例を示す図（その１）である。
図１４は、２つの画像相互の歪みの検出の一例を示す図（その２）である。
図１５は、伸縮の検出の一例を示す図である。
図１６は、文書画像に係わる画像相互の歪みの検出の一例を示す図である。
図１７（ａ）〜（ｃ）は、伸縮画像の補正方法を説明する為の図である。
図１８は、（ａ）は直線補完、（ｂ）はスプライン補完の例を示す図である。
図１９は、補完のイメージを示す図である。
図２０は、伸縮画像の補完後に結合する様子を示す図である。
図２１は、文書画像の結合方法の一例を示す図（その１）である。
図２２は、文書画像の結合方法の一例を示す図（その２）である。
図２３は、先出願の他の手法（その１）による画像処理装置の構成を示すブロック図である。
図２４は、先出願の他の手法（その１）の画像処理手法を説明する為の図（その１）である。
図２５は、先出願の他の手法（その１）の画像処理手法を説明する為の図（その２）である。
図２６は、先出願の他の手法（その１）の画像処理手法を説明する為の図（その３）である。
図２７は、先出願の他の手法（その１）の画像処理手法を説明する為の図（その４）である。
図２８は、先出願の他の手法（その１）の画像処理手法を説明する為の図（その５）である。
図２９は、先出願の他の手法（その１）の画像処理手法を説明する為の図（その６）である。
図３０は、先出願の他の手法（その１）の画像処理手法を説明する為の図（その７）である。
図３１（ａ）、（ｂ）は、画像の傾きの検出手法を説明するための図である。
図３２は、先出願の他の手法（その２）による画像処理装置の構成を示すブロック図である。
図３３は、画像処理装置の画像処理手順を説明するためのフローチャート図である。
図３４は、ブロック上下両側の画像の傾き（境界の傾き）を推定する手法を説明するための図である。
図３５は、傾きを誤って推定された境界の例を説明するための図（その１）である。
図３６は、傾きを誤って推定された境界の例を説明するための図（その２）である
図３７は、ベジェ曲線のコントロールポイントの選択例を説明するための図である。
図３８は、再構成後のブロックどうしの連結状態を説明するための図である。
図３９は、本例の画像処理手法を説明するための図（その１）である。
図４０は、本例の画像処理手法を説明するための図（その２）である。
図４１は、本例の画像処理手法を説明するための図（その３）である。
図４２は、本発明の画像結合装置／方法を実現するコンピュータのハードウェア構成の一例を示す図である。
図４３は、記録媒体、ダウンロードの一例を示す図である。
図４４は、ハンドヘルド型イメージスキャナの外観構成図である。
図４５（ａ）、（ｂ）は、画像の歪みを生じさせるユーザ操作の一例を示す図である。
図４６は、（ａ）はスキャン対象を複数回に分けて読み込む操作の一例、（ｂ）はこの操作の結果得られる複数の入力画像の一例を示す図である。
図４７は、複数回に分けて読み込んだ複数の画像の合成を示す図である。
図４８は、（ａ）は画像の歪みを生じさせる操作の一例、（ｂ）はこの操作の結果得られる入力画像の一例を示す図である。
図４９は、歪んだ画像を用いた画像合成の様子を示す図である。
【発明を実施するための最良の形態】  以下、図面を参照して、本発明の実施の形態について説明する。
尚、以下の説明では、ハンドヘルド型スキャナを例にして説明するが、本発明は、この例に限らず、ユーザの操作の仕方によって上述した図４５（ａ）、（ｂ）に示すような画像の歪みや、不図示の画像伸縮が生じる可能性がある全てのスキャナを対象とするものであり、このようなスキャナを総称して「手動操作型スキャナ」と呼ぶものとする。
図１は、本例の画像結合装置の機能ブロック図である。
図示の画像結合装置１０は、画像歪み検出部１１、重なり位置検出部１２、相互の歪み／伸縮検出部１３、画像補正部１４、画像合成部１５の各機能部を備える。更に、入力画像記憶部１６、変換画像記憶部１７を備える。
なお、実際には、画像処理装置１０は、例えばパーソナルコンピュータ等の何らかの情報処理機能を有する情報処理装置によって実現される。つまり、情報処理装置内の何らかの記憶装置（ＲＡＭ、ＲＯＭ、ハードディスク等）が、入力画像記憶部１６、変換画像記憶部１７としての機能を果たしている。また、情報処理装置内のＣＰＵが、図１に示す各機能部の機能を実現させる画像結合プログラムを実行することにより、画像歪み検出・補正部１１、重なり位置検出部１２、相互の歪み／伸縮検出部１３、画像補正部１４、画像合成部１５の各機能部が実現される。上記画像結合プログラムは、ハードディスク、可搬型記録媒体（ＣＤ−ＲＯＭ、ＦＤ（フレキシブルディスク等））等に記憶されており、メモリ（ＲＡＭ等）に読み出された上で、ＣＰＵによって実行される。あるいは、上記画像結合プログラムは、外部の他の情報処理装置内に記憶されており、これをインターネット等のネットワークを介してダウンロードして、ＣＰＵが実行するものであってもよい。
入力画像記憶部１６は、例えばハンドヘルド型イメージスキャナ（以下、単に、イメージスキャナと記す場合もある）によって、新聞紙、雑誌、設計図、写真等の何らかのスキャン対象を、複数回に分けて読み取った複数の入力画像データを保持する画像バッファである。この入力画像データは、主走査方向に沿う多数列のラインデータを副走査方向に配列して構成されている。
変換画像記憶部１７は、上記入力画像記憶部１６に記憶された入力画像データを、例えば後述するグレースケール画像、２値画像、縮小画像等へと変換した変換画像を、一時的に記憶する。
尚、以下の説明では、説明を簡単にする為に、スキャン対象を２回に分けて読み取ったものとし、入力画像記憶部１６には２つの入力画像データが格納されるものとして説明する。
画像歪み検出・補正部１１は、上記入力画像記憶部１６に格納された２つの入力画像データ各々について、別々に、画像の歪みを検出する。また、歪み検出結果に基づいて、各画像毎に歪み補正を行う。画像の歪みの検出方法は、例えば、本出願人が既に提案している特願平１３−３２０６２０号（以下、先出願と記す）に記載の方法を用いるが、その他の手法を用いても構わない。先出願に記載の歪み検出・補正手法については、後に詳細に説明するが、概略的には、歪みを比較検出する周辺箇所から複数個のデータ領域を抽出し、Ｘ方向にずらしながら相互相関を求める。そして、相互相関から求めた値が最大となる位置関係を相互のずれ量と判定することで、画像の歪みを検出し、この検出結果に基づいて画像を補正する。
また、上記画像歪み検出・補正部１１による歪み検出・補正処理は、更に、上記特許文献２（特開２００２−３０５６４７号公報）に記載の手法を利用して、入力画像がＲＧＢ色成分を持つ画像であれば、単一の色成分を持つ階調画像、もしくは２値画像に変換して、変換後の画像データを変換画像記憶部１７に格納し、この変換後の画像データを用いて、画像の歪みの検出を実行するようにしてもよい。あるいは、縮小画像に変換してもよい。このようにデータ量を削減した画像を用いて画像の歪みを検出しておき、データ量が大きい入力画像を用いる処理は、上記検出結果を用いて行うようにすることで、計算量を抑え、高速に処理することができる。これは、後述する重なり位置の検出処理、２つの画像相互の歪み／伸縮の検出処理についても同様である。
重なり位置検出部１２は、上記２つの入力画像を結合する際の画像相互の重なり位置を検出する。これは、画像歪み検出・補正部１１によって画像の歪みを補正した画像を用いて行なう。よって、重なり位置を検出できなくなる可能性は非常に少なくなる。重なり位置検出部１２による画像相互の重なり位置検出手法は、もし、入力画像が文書画像であれば、例えば特開２０００−２７８５１４号公報に記載の手法を用いる。その他の手法を用いても構わない。一方、もし、入力画像が文字を含まない写真やグラフのような画像であれば、例えば、特開２００２−３０５６４７号公報に記載の手法を用いる。その他の手法を用いても構わない。
相互の歪み／伸縮検出部１３は、上記２つの入力画像を結合する重なり領域における、当該２つの画像相互の歪みまたは伸縮を検出する。２つの入力画像それぞれ単体については、上記画像歪み検出部１１によって、画像の歪みが検出されている。しかしながら、この画像の歪みの検出結果に基づいて各入力画像を補正したとしても、２つの画像を結合する重なり領域において完全に一致するとは限らず、画素ずれの影響から、合成部分の画質が低下する可能性が高い。また、画像の伸縮は、画像歪み検出部１１では検出できない。
この為、２つの画像相互の歪み、伸縮を検出する必要がある。検出方法については後述する。
画像補正部１４は、上述した画像歪み検出部１１、相互の歪み／伸縮検出部１３による検出結果に基づいて、２つの入力画像を補正する。
画像合成部１５は、画像補正部１４によって補正された２つの画像を、重なり位置検出部１２による検出結果に基づいて、結合する。
上記の通り、画像歪み検出・補正部１１によって、二次元センサ等の特別の構成を用いることなく、自動的に、各入力画像各々の画像の歪みを検出・補正することができる。
更に、上記画像歪み検出・補正部１１によって、各画像単体の歪みの補正を行なうことに加えて、重なり位置検出部１２にて検出した重なり領域の範囲の中で、相互の歪み／伸縮検出部１３によって２つの画像の相対的な歪み、伸縮を検出し、画像補正部１４によって画像相互の歪み、伸縮を補正しているので、画像相互の位置ずれを抑えことができ、より画質の高い合成画像を生成することが可能である。
図２は、上記画像結合装置１０による第１の実施例の処理手順を説明する為のフローチャート図である。
図４は、上記画像結合装置１０による第２の実施例の処理手順を説明する為のフローチャート図である。
図３は、図２のステップＳ２０または図４のステップＳ４１の「相互の歪み、伸縮検出」処理の詳細フローチャート図である。
まず、図２を参照して、第１の実施例の処理手順について説明する。
ここでは、特に入力画像がＲＧＢ成分を持つカラー画像であった場合に、入力画像を正規化（縮小化）、２値化、グレースケール化等してデータ量を削減した画像を用いて、画像単体の歪み、重なり位置、画像相互の歪み／伸縮等の検出を行って、この検出結果（パラメータ）を一時的にメモリに格納しておき、最後に入力画像を用いて、上記パラメータに基づいて入力画像の補正、結合等の処理をまとめて行うようにすることで、入力画像のデータサイズが大きい場合であっても、処理途中に必要となるメモリ容量を削減し、且つ高速処理を行うことができる手法を例にして説明するが、この例に限るわけではない。
例えば、画像の正規化が必要なければ、正規化しない。また、入力画像がグレースケール画像（単一の色成分を持つ階調画像）であれば、必要に応じて２値化処理を行うようにしてもよい。入力画像が２値画像であれば、変換処理は行わない。
まず、ハンドヘルド型イメージスキャナによって、新聞、図面、写真等のスキャン対象を複数回に分けて読み取った複数の入力画像を（ここでは、２回に分けて読み取った２つの入力画像とする）、メモリ（画像バッファ等）に格納する（ステップＳ１１）。
次に、この２つの入力画像の各々を、必要に応じて、正規化（縮小化）して縮小画像を作成する（ステップＳ１２）。画像の歪み、重なり位置の検出は、入力画像のデータサイズが大きい場合、例えば入力画像がカラー画像である場合や解像度が高い場合には、非常に多くの時間とメモリ容量を要する。これに対して、特に入力画像の解像度が高い為に入力画像のデータサイズが大きい場合には、入力画像を幾何学的に縮小する。ここでは１例として、入力画像を縮小変換して縮小画像を作成する。例えば、入力画像をＩｍｇ１（ｘ、ｙ）とすると、縮小率を１／ｎとした場合に、ｎ（ｘ方向）×ｎ（ｙ方向）の領域の平均値を画素成分とする。
また、入力画像がＲＧＢ色成分を持つ画像（カラー画像）である場合には、入力画像を色数変換した変換画像（グレースケール画像、２値画像）を作成する（ステップＳ１３）。画像の歪み、重なり位置の検出は、入力画像のデータサイズが大きい場合には、非常に多くの時間とメモリ容量を要する。その為、入力画像がＲＧＢ色成分を持つ画像（カラー画像）である為に入力画像のデータサイズが大きい場合には、入力画像を、単一の色成分を持つ階調画像（グレースケール画像）もしくは２値画像に変換し、このようにデータ量を削減した変換画像を用いて、後述する各画像単体の歪みの検出、重なり位置の検出、画像相互の歪み、伸縮の検出等の処理を実行する。データ量を削減した変換画像を用いることで、計算量を削減し、高速に処理を実行することができる。
上記ステップＳ１２、Ｓ１３の処理は、入力画像に応じて、どちらか一方を行ってもよいし、両方実行してもよい。
ここで、グレースケール画像の作成方法の一例について説明する。入力画像がＲＧＢ色成分を持つ画像であれば、ＹＣｂＣｒ変換を使用し、例えばＹ成分に着目して階調画像を作成する。差分フィルタを用いて微分値を画素成分とする画像を作成する方法や、ＲＧＢ色成分のうち１つの色成分を階調画像とする方法や、それ以外の変換方法を利用しても構わない。入力画像が単一の色成分を持つ階調画像であれば、変換する必要はない。
２値画像の作成方法の一例を示す。２値画像の作成は、例えば、特開２００１−２９８６２５号公報記載の手法を用いる。その他の手法を用いても構わない。
特開２００１−２９８６２５号公報記載の手法は、簡単に説明するならば、まず、スキャンして得た入力画像データについて、その濃度値のヒストグラムを作成し、ヒストグラムから高濃度側のピーク値と低濃度側のピーク値とを求めてその大小関係を各色成分毎に判別し、高濃度側ピーク値が低濃度ピーク値よりも大きい色成分の数を求め、これに基づいて二値化処理対象とする画像を決定する。
その際に、高濃度側ピーク値の方が大きい色成分の数と低濃度ピーク値の方が大きい色成分の数とを比較し、数が多い色成分を二値化処理対象画像として選択してもよい。
例えば、スキャンして得た入力画像データが、ＲＧＢの３つの色成分より成るカラー画像であった場合、これら３つの色成分についてピーク値の大小関係を見る。そして、仮に、例えば、高濃度ピーク値の方が大きい色成分がＲとＧ、低濃度ピーク値の方が大きい色成分がＢであった場合には、Ｒ成分とＧ成分とを二値化対象の画像として採用する。
そして、二値化処理対象となっている各色成分画像のそれぞれの画素と予め決められた閾値レベルとを比較し、いずれかの色成分について前記閾値レベルを超えた画素については当該画素を白あるいは黒の一方と判定するとともに、他の画素については白と黒の他方と判定することができる。
上記の例で言えば、所定の閾値とＲ成分の画素、Ｇ成分の画素とを比較する。そして、Ｒ成分あるいはＧ成分の少なくとも一方の画素が閾値を超えていた場合にはその画素を白とし、いずれの色成分も閾値を超えない場合にはその画素を黒として、二値化を行う。
あるいは、グレースケール画像を作成し、階調値のＭＡＸとＭＩＮを求め、その中間値を閾値として２値画像を作成する方法を用いてもよい。
例えば、文字を含んだ文書画像では、２値画像に変換することが望ましい。文字を含まない、写真やグラフ等の画像ではグレースケール画像に変換することが望ましい。
そして、上記２つの入力画像を、ステップＳ１２、Ｓ１３によって変換処理した２つの変換画像（グレースケール画像、２値画像等）を、一時的にメモリに格納する（ステップＳ１４）。以下に説明するステップＳ１５〜Ｓ２１の処理は、この変換画像を用いて行うので、計算量を削減し、高速に処理を実行することができる。
以下、ステップＳ１５〜２１の処理について説明する。尚、ステップＳ１５、Ｓ１６、Ｓ１７の処理は、基本的には、入力画像が文書画像である場合に実行され、入力画像が文書画像以外である場合には実行されない。入力画像が文書画像以外である場合には、ステップＳ１４でメモリに格納した変換画像を用いて、ステップＳ１８〜Ｓ２１の処理を実行することになる。
上記メモリに格納した２つの変換画像を用いて、まず、各変換画像それぞれについて、画像の歪みを検出する（ステップＳ１５）。次に、ステップＳ１５より検出した各画像の歪みをパラメータとしてメモリに保存すると共に（ステップＳ１６）、ステップＳ１５より検出した入力画像の歪みに基づいて、変換画像の歪みを補正する（ステップＳ１７）。ここで歪みを補正するのは、変換画像に対してであり、最終的に入力画像の歪みを補正する際には、ステップＳ１６でメモリに格納したパラメータ（各種検出結果）を用いる。
ステップＳ１５、Ｓ１６における画像の歪みの検出／補正方法は、ここでは、本出願人による特願２００１−３２０６２０号（特願平１３−３２０６２０）に記載の手法を用いる。その他の手法を用いても構わない。
ここで、特願２００１−３２０６２０号（以下、先出願と記す）に記載の画像の歪みの検出／補正手法について、その一例について説明する。
本発明においても、先出願においても、入力画像は、例えばハンドヘルド型イメージスキャナによって読み取られた画像データである。このような画像データは、上述してある通り、主走査方向（左右方向）に沿う多数列のラインデータを副走査方向（上下方向）に配列して構成されている。
先出願に記載の画像処理装置では、このような画像の全体的な構造に着目して、距離がそれほど離れていない１次元イメージデータ（ラインデータ）同士はそれほど大きく変化しないことを利用している。つまり、ラインデータ（以下、単にラインという場合がある）間の相互相関を用いることにより、各ラインのずれ量を推定している。
例えば、現在一般的に使用されているイメージスキャナの解像度は、およそ２００〜１２００（ｄｐｉ）であるが、この場合、通常使用されている１２ポイントの大きさの文字は、およそ３３〜２００画素から構成される。これだけの画素数で文字が構成されている場合、１０画素程度はなれた２つのラインはほぼ同一であることが期待される。また、文書には罫線や約物が使用されることが多く、これらは、直線で構成されている部分を多く有しているので、先の２つのラインがほぼ同一になるという性質をより一層補強している。
図５は、画像歪み検出部１１が有する画像処理装置１００の構成図（その１）である。これは、先出願の画像処理装置の一例と略同様である。
図５に示す画像処理装置１００は、画像バッファ１０１、第１ラインカウンタ１０２、第２ラインカウンタ１０３、距離メモリ１０４、相互相関係数演算部１０５、最小相互相関係数検出部１０６、最小相互相関係数メモリ１０７、ずれ量カウンタ１０８、最小相互相関係数位置メモリ１０９、ずれ量メモリ１１０、線形補完処理部１１１および補正画像バッファ１１２から構成されている。
画像バッファ１０１は、ハンドヘルド型イメージスキャナによって読み取られた画像データを保持するもので、この画像データは、主走査方向〔左右方向；一次元ラインセンサの方向〕に沿う多数列のラインデータを副走査方向（上下方向）に配列して構成されている。但し、本例の画像結合装置１０においては、画像バッファ１０１に保持される画像データは、上記ステップＳ１２、Ｓ１３の処理を経てステップＳ１４においてメモリに格納された変換画像、すなわちグレースケール画像、２値画像等である。
第１ラインカウンタ１０２および第２ラインカウンタ１０３は、相互相関係数の演算対象となる、所定の間隔をあけた２本のライン（部分データ）を指定するためのもので、これらのラインカウンタ１０２、１０３によって示される値に応じたラインが、画像バッファ１０１から相互相関係数演算部１０５へ出力されるようになっている。ここで、ラインカウンタ１０２、１０３の値は、画像バッファ１０１から読み出すべきラインデータが何ライン目であるかを示す。ただし、ここでは、一番最初のラインを０ライン目としている。
距離メモリ１０４には、上記２本のラインの間隔（つまり副走査方向の距離に対応するライン数）ｄが予め設定され、その値ｄによって、どれだけ離れたラインとの相互相関を求めるかが指示される。そして、第２ラインカウンタ１０３には、第１ラインカウンタ１０２の値に距離メモリ１０４の値ｄを加算した値が設定される。従って、第１ラインカウンタ１０２によって指定されたラインから副走査方向に所定間隔ｄだけ離れたラインが、第２ラインカウンタ１０３によって指定される。なお、間隔ｄとしては、後述する理由により、５〜２０の値が適当であり、特にここでは‘１０’が設定される。但し、これは、ステップＳ１２の処理によって、入力画像が縮小変換されていた場合には、多少、事情が異なる。例えば、入力画像が１／２に縮小されていた場合には、間隔ｄは、上記の半分程度の値（２．５〜１０程度の値）が適当とすることができる。
相互相関係数演算部１０５は、ラインカウンタ１０２、１０３に設定されている値に応じた２本のラインデータ（部分データ）を、画像バッファ１０１から読み出し、これら２本のラインデータ間の相互相関係数を、後述する式（１）に従って算出するものである。その際、相互相関係数演算部１０５は、上記２本のラインデータ間の主走査方向のずれ量がずれ量カウンタ１０８に設定された値（画素数）ｓである時の相互相関係数を、後述する式（１）に従って演算する。具体的には、第１ラインカウンタ１０２によって指定される第１ラインに対して、第２ラインカウンタ１０３によって指定される第２ラインを、値ｓだけ主走査方向にずらした時の、相互相関係数が算出される。なお、下記（１）式によって算出される相互相関係数は、第１ラインと第２ラインとが全く同じである時には０となり、第１ラインと第２ラインとの類似度合いが低くなるにつれて大きな値となる。
最小相互相関係数検出部１０６は、所定範囲（本例では後述するごとく−１、０、１の３値）のずれ量のそれぞれについて相互相関係数演算部１０５により算出された複数の相互相関係数の中から、最小の相互相関係数を検出するものである。この最小相互相関係数検出部１０６は、図７を参照しながら後述するごとく、最小相互相関係数メモリ１０７、ずれ量カウンタ１０８および最小相互相関係数位置メモリ１０９を利用しながら、最小の相互相関係数を検出・決定する。
ここで、ずれ量カウンタ１０８には、最小相互相関係数検出部１０６により、式（１）に代入すべきずれ量（上記所定範囲の値ｓ）が順次設定される。
また、最小相互相関係数メモリ１０７には、相互相関係数演算部１０５によって演算された相互相関係数のうち最小のものが記憶される。つまり、ある一つのずれ量について相互相関係数が相互相関係数演算部１０５によって算出される都度、最小相互相関係数検出部１０６は、今回算出された相互相関係数と、最小相互相関係数メモリ１０７に記憶されている最小相互相関係数（前回までに算出された１以上の相互相関係数のうち最小のもの）とを比較し、今回の相互相関係数の方が小さければ最小相互相関係数メモリ１０７の値を今回の相互相関係数に書き換える一方、そうでなければ最小相互相関係数メモリ１０７の値を書き換えることなく維持するようになっている。
最小相互相関係数位置メモリ１０９には、最小相互相関係数メモリ１０７の値を新たな相互相関係数に書き換えた場合、その新たな相互相関係数の算出時に用いられたずれ量の値（つまり、ずれ量カウンタ１０８の値ｓ）が、最小相互相関係数位置として書き込まれるようになっている。従って、この最小相互相関係数位置メモリ１０９には、上記所定範囲内の全てのずれ量についての相互相関係数の算出を完了した時点で、上記２本のラインデータ間の相互相関係数が最小になった時のずれ量の値ｓが記憶されることになる。
そして、ずれ量メモリ１１０は、最小相互相関係数検出部１０６によって検出・決定されたずれ量を、第２ラインカウンタ１０３の値に対応させて記憶するものである。本例では、上記所定範囲内の全てのずれ量についての相互相関係数の算出を完了した時点で最小相互相関係数位置メモリ１０９に記憶されている値ｓ（即ち、第１ラインと第２ラインとの相互相関係数が最小になる時のずれ量の値ｓ）が、第１ラインに対する第２ラインの主走査方向ずれ量の推定結果として、ずれ量メモリ１１０に記憶される。なお、以下の説明においては、単に「ずれ量」という場合、その「ずれ量」は主走査方向のずれ量を意味している。
上記所定範囲内の全てのずれ量についての相互相関係数の算出を完了すると、第１ラインカウンタ１０２には、第２ラインカウンタ１０３の値が新たに設定されるとともに、第２ラインカウンタ１０３には、第１ラインカウンタ１０２の新設定値に距離メモリ１０４の値を加算した値が新たに設定されるようになっている。そして、新たな第１ラインと第２ラインとの組について主走査方向ずれ量が推定・算出される。このようにして、画像バッファ１０１に保持された全画像データについて、所定間隔ｄをあけたラインデータごとに、主走査方向のずれ量が推定され、その推定結果がずれ量メモリ１１０に記憶される。
線形補完処理部１１１は、ずれ量メモリ１１０に書き込まれたずれ量、つまり上記のように推定された主走査方向のずれ量に基づき、その主走査方向ずれを解消するように画像データのずれを補正するもので、より具体的には、画像バッファ１０１から画像データをなす各ラインを順次読み出し、ずれ量メモリ１１０のずれ量に応じて各ラインの主走査方向位置を調整・変換し、調整後のデータを補正画像バッファ１１２に書き込む。
その際、線形補完処理部１１１は、上述した第１ラインと第２ラインとの間に存在する各ラインの主走査方向ずれ量を、前記主走査方向ずれ量に基づき線形補完を行なって求めてから、その線形補完の結果に基づいて、各ラインの主走査方向位置を調整するようになっている。その線形補完の具体的な手法については後述する。
補正画像バッファ１１２は、線形補完処理部１１１によって得られた補正画像を保持するものである。後述するステップＳ１８、Ｓ２０の処理は、補正画像バッファ１１２に格納された補正画像を用いて、実行されることになる。
尚、図２のステップＳ１６の「画像の歪みをメモリに格納する」ことと、上記「主走査方向のずれ量の推定結果がずれ量メモリ１１０に記憶される」こととは、基本的には同じ意味である。但し、本例の画像結合装置においては、ずれ量メモリ１１０の記憶内容（主走査方向のずれ量の推定結果；パラメータ）は、上記線形補完処理部１１１によって補正処理が行なわれて補正画像バッファ１１２に補正画像が格納された後も消去せずに残しておき、これをステップＳ２２の処理において利用する。
次に、図６〜図１０を参照しながら、上述した画像処理装置１００の動作について説明する。
図６に示すフローチャート（ステップＳ１１１〜Ｓ１１８）に従って、上述した画像処理装置１００の画像処理手順を説明する。
まず、上述した通り、例えばハンドヘルド型イメージスキャナによって任意のスキャン対象を複数回（ここでは２回）に分けて読み取って、読み取られた２つの入力画像データの各々に対して、ステップＳ１２、Ｓ１３の処理によって、グレースケール画像等の変換画像が作成されて、ステップＳ１４においてメモリに格納される。
ここでは、まず、この２つの変換画像のうちの何れか一方を処理対象として、画像バッファ１０１に格納する（ステップＳ１１１）。
尚、ここでは、操作者のスキャン操作に伴って、上記２つの入力画像を読み取る際に、少なくとも何れか一方において、イメージスキャナ１０が左右方向（主走査方向）に滑り、例えば図４５（ａ）に示すような領域についてスキャンされたものとする。すなわち、２つの入力画像のうち少なくとも何れか一方が歪んでいるものとする。
そして、第１ラインカウンタ１０２に画像データの先頭ラインの番号“０”を設定する（ステップＳ１１２）。また、距離メモリ１０４に、相互相関係数の計算対象である２本のラインの間隔（ライン数）ｄとして“１０”を設定する（ステップＳ１１３）。さらに、第２ラインカウンタ１０３に、第１ラインカウンタ１０２の値と距離メモリ１０４の値とを加算した値（初期値は“１０”）を設定する（ステップＳ１１４）。
この後、相互相関係数演算部１０５によって、第１ラインカウンタ１０２および第２ラインカウンタ１０３に設定された値に対応する２本のライン（最初は０番目のラインと１０番目のライン）が、画像バッファ１０１から読み出される。
そして、後に説明する図７の処理手順に従い、これら２本のラインの相互相関係数が最小になる時の、第１ラインに対する第２ラインの位置が、主走査方向のずれ量として算出・推定される（ステップＳ１１５）。
ずれ量が推定されると、第１ラインカウンタ１０２の値に距離メモリ１０４の値ｄを加算してから（ステップＳ１１６）、この第１ラインカウンタ１０２に新たに設定された値に基づいて、次に相互相関係数の計算対象になる第２ラインが画像データのサイズ（最終ライン）を超えていないかどうかをチェックする（ステップＳ１１７）。このステップＳ１１７では、第１ラインカウンタ１０２の新たな設定値が、画像の最終ライン番号から距離メモリ１０４の値ｄを減算した結果よりも小さいか否かをチェックしている。
次の第２ラインが最終ラインを超えていない場合（ステップＳ１１７、ＹＥＳ）、ステップＳ１１４〜Ｓ１１７を繰り返し実行する。次の第２ラインが最終ラインを超える場合（ステップＳ１１７、ＮＯ）、画像データの全領域に対するずれ量推定を完了したものと判断され、線形補完処理部１１１において、ずれ量メモリ１１０に書き込まれたずれ量に基づき、後述するような一般的な線形補完処理を行ないながら、画像データにおける主走査方向ずれを解消するように画像データのずれが補正される（ステップＳ１１８）。
図７は、上記ステップＳ１１５のずれ量推定処理の詳細フローチャート図である。
図７において、まず、ずれ量カウンタ１０８に、第１ラインに対する第２ラインのずれ量の初期値として“−１”を設定する（ステップＳ１２１）。ここでは、イメージスキャナを１０ライン前後移動させた時に発生する、主走査方向の最大ずれ量は、１画素分程度であることを前提とし、ずれ量カウンタ１０８に設定される値ｓ（ずれ量の範囲）を、−１、０、１の３値としているが、この例に限るわけではない。
そして、最小相互相関係数メモリ１０９に、このメモリ１０９に設定可能な最大値を設定してから（ステップＳ１２２）、相互相関係数演算部１０５において、第１ラインカウンタ１０２によって指定される第１ラインに対し、第２ラインカウンタ１０３によって指定される第２ラインが、ずれ量カウンタに設定されている値ｓだけずれている場合の、これら２本のラインの相互相関係数を、下記（１）式を用いて算出する（ステップＳ１２３）。この相互相関係数の算出手法は一般的なものである。
2004077356.tif 000003
ただし、（１）式において、“Σ”はｉ＝０〜Ｎ−１までの総和演算を意味するものとする。Ｎは１ラインを成す画素の数である。また、ＶＡ（ｉ）は、第１ラインカウンタ１０２によって指定される第１ラインにおけるｉ番目の画素の値であり、ＶＢ（ｉ）は、第２ラインカウンタ１０３によって指定される第２ラインにおけるｉ番目の画素の値であり、ｓは、前述した通り、ずれ量（ずれ量カウンタ１０８に設定されている値）である。上記（１）式では、各画素について算出された｛ＶＡ（ｉ）−ＶＢ（ｉ＋ｓ）｝２の総和が、相互相関係数として算出される。
相互相関係数演算部１０５によって算出された相互相関係数は、最小相互相関係数検出部１０６において、最小相互相関係数メモリ１０７に設定されている値（過去の最小相互相関係数の値）と比較される（ステップＳ１２４）。その比較の結果、今回算出された相互相関係数の値が最小相互相関係数メモリ１０７の設定値よりも小さければ（ステップＳ１２４、ＹＥＳ）、最小相互相関係数検出部１０６により、最小相互相関係数メモリ１０７の値が今回の相互相関係数に書き換えられるとともに、今回の演算に用いたずれ量カウンタ１０８の値ｓが、最小相互相関係数位置として最小相互相関係数位置メモリ１０９に格納される（ステップＳ１２５）。この後、ずれ量カウンタ１０８の値に“１”を加算する（ステップＳ１２６）。
一方、今回算出された相互相関係数の値が最小相互相関係数メモリ１０７の設定値以上であれば（ステップＳ１２４、ＮＯ）、最小相互相関係数メモリ１０７の値は、書き換えられることなくそのまま維持される。この後、ずれ量カウンタ１０８の値に“１”を加算する（ステップＳ１２６）。
そして、ずれ量カウンタ１０８の新たな値（１加算後の値）が“２”であるか否かが判定され（ステップＳ１２７）、“２”でなければ（ステップＳ１２７、ＮＯ）、ステップＳ１２３〜Ｓ１２７の処理を繰り返し実行する。
また、ずれ量カウンタ１０８の新たな値が“２”であると判定された場合（ステップＳ１２７、ＹＥＳ）、上述した所定範囲のずれ量−１、０、１についての処理が完了したものと判断され、この時点で、最小相互相関係数位置メモリ１０９に格納されているずれ量が、第１ラインに対する第２ラインの主走査方向ずれ量の推定結果として、ずれ量メモリ１１０に追加登録される（ステップＳ１２８）。このとき、ずれ量メモリ１１０においては、推定された主走査方向ずれ量と第２ラインカウンタ１０３の値（ライン番号）とが対応付けられている。
次に、上述した処理について、図８（ａ）〜図８（ｃ）に示す具体例を参照しながら、より具体的に説明する。
図８（ａ）は、例えば前述したイメージスキャンによって実際に読み取られた画像データの一部（ある漢字の下部）を拡大して示すもので、ここでは、図８（ａ）に示す画像データに対して、上記の画像処理手法を適用した場合について説明する。
図８（ａ）に示す画像データから、図８（ｂ）に示すように、１０ラインごとにラインデータが切り出される。図８（ｂ）では、図８（ａ）の画像データにおける、０番目（０ライン目）のラインデータと、１０番目（１０ライン目）のラインデータと、２０番目（２０ライン目）の画像データとが示されている。この図８（ｂ）において、３つのラインデータは、主走査方向および副走査方向のいずれについても、図８（ａ）の画像データにおける位置関係を保持した状態で示されている。
そして、図８（ｂ）に示すように切り出された０番目のラインと１０番目のラインとに図７にて説明した手法を適用した結果、１０番目のラインを０番目のラインに対して右方向に１画素だけ移動させた時に、相互相関係数が最小になったものとする。同様に、図８（ｂ）に示すように切り出された１０番目のラインと２０番目のラインとに図７にて説明した手法を適用した結果は、２０番目のラインの１０番目のラインに対するずれ量が０である時に、相互相関係数が最小になったものとする。
このようなずれ量推定の結果に従って、図８（ｂ）に示す３つのラインデータは、図８（ｃ）に示すように補正される。つまり、１０番目のラインは、０番目のラインに対して１画素だけ右方向へ移動され、２０番目のラインは、０番目のラインに対して１画素だけ右方向へ移動される。なお、上記推定結果では、２０番目のラインは、１０番目のラインに対してずれがないと推定されているので、１０番目のラインと２０番目のラインとの相対的な位置関係が変化しないように、２０番目のラインを０番目のラインに対して１画素だけ右方向へ移動させている。
また、このとき、相互相関係数を求めたライン間に存在するライン（１番目〜９番目のラインや１１番目〜１９番目のライン）は、線形補完処理部１１１の機能により、以下のような直線補完処理（線形補完処理）を施されて補正される。
例えば、図８（ｂ）および図８（ｃ）に示す例では、０番目〜１０番目のラインの間で１画素分右にずれているので、０番目〜５番目のラインはそのままの位置に配置し、６番目〜１０番目のラインは１画素ずつ右にずらす。また、１０番目〜２０番目のラインの間ではずれが生じていないと推定されたので、１１番目〜２０番目のラインについては、１０番目のラインに対してはそのままの位置、つまり、原画像に対しては１画素ずつ右にずれた位置に移動する。
なお、本例では、相互相関係数の演算対象となる２本のラインの間隔（距離）ｄを１０ライン（即ち副走査方向に１０画素）としている。これは、以下のような理由による。
本出願の発明者らが行なった実験によると、人間が、スキャン操作方向が曲がらないように意識しながらハンドヘルド型イメージスキャナを操作した場合、このイメージスキャナによって読み取られた画像データに生じる主走査方向ずれ量が、１画素となるのは、副走査方向にほぼ１０ライン（１０画素）だけ離れたラインにおいてであった。
そこで、本例では、相互相関係数の演算対象となる２本のラインの間隔ｄとして、５〜２０の範囲内の値を設定するものとし、好ましくは１０前後の値を設定する。その間隔ｄが５未満であれば、主走査方向へのずれを検出することができなくなる。逆に、その間隔ｄが２０を超え、例えば１００程度になってしまうと、全く相関関係のない２本のラインどうしについて相互相関係数が算出される可能性があるため、有効なずれ量を推定することができなくなってしまう。但し、上述してあるように、変換画像が縮小化されたものである場合には、縮小化の内容によって、間隔ｄの適切な値は違ってくる。
このように、画像処理装置１００によれば、二次元センサを用いることなく、読み取られた画像データのみを用いて画像データのずれ（一次元的な歪み）を確実に補正することができる。例えば、ハンドヘルド型イメージスキャナのスキャン操作時に図４５（ａ）に示すような主走査方向（ラインセンサ方向）への滑りが生じ、画像データに歪み（主走査方向のずれ）が生じたとしても、その歪みを解消し、歪みの無い高品質の画像データを得ることができる。従って、製造コストの増大を招くことなく、歪みの無い高品質の画像データを得ることができる。
また、副走査方向に適当な間隔ｄをあけて順次抽出されるラインデータどうしの相互相関に基づいて、主走査方向ずれ量を推定することにより、主走査方向ずれ量を推定するための計算量が削減されて画像補正処理を効率的に行なえると同時に、主走査方向ずれ量の計算精度を向上させることができる。
このとき、適当な間隔をあけたラインデータ間に存在する各ラインデータのずれ量は、線形補完処理部１１１において、主走査方向ずれ量に基づく線形補完処理を行なうことにより算出され、その線形補完の結果に基づいて画像データが補正される。これにより、適当な間隔ｄをあけて推定された主走査方向ずれ量が、各ラインデータに線形に割り当てられ、画像データの補正が滑らかに行なわれる。
上記相互相関係数の演算対象となる２本のラインデータは、例えば文書画像では、例えば図９に示すように、文字を含む領域から抽出するものとし、行間のラインデータは抽出しないようにする。文字を含む領域から抽出する為には、例えば画像の周波数成分を求め、ある一定の周波数成分を、ある一定量含むラインデータを抽出する。文字領域は特徴量が多く高い周波数成分を多く含み、行間は特徴量が少なく低い周波数成分を多く含むからである。そして、高周波成分を含む領域は、相互相関の値の差が顕著となるため、正確なずれ量を検出できる。
更に、図５には図示していないが、図５に示す構成に加えて更に平滑化処理部を有する構成としてもよい。
不図示の平滑化処理部は、ずれ量メモリ１１０と線形補完処理部１１１との間に介設され、前記ステップＳ１１５で所定間隔ｄをあけて推定された主走査方向ずれ量が滑らかな曲線に沿うように、ずれ量メモリ１１０に格納されている主走査方向のずれ量に基づいて平滑化処理（スムージング処理）を施し、平滑化された主走査方向ずれ量を線形補完処理部１１１へ出力するものである。
図１０（ａ）および図１０（ｂ）を参照しながら、平滑化処理（スムージング処理）について説明する。なお、ずれ量メモリ１１０に格納されている主走査方向ずれ量は、所定間隔をあけたラインどうしのずれ量であり、“−１”もしくは“０”もしくは“１”のいずれか一つの値である。図１０（ａ）は、ずれ量メモリ１１０に格納された複数の主走査方向ずれ量を順次積算することにより原画像に対する主走査方向ずれ量（イメージスキャナの動き）を求め、その結果を副走査方向位置に対応させて図示化したものである。また、図１０（ｂ）は、図１０（ａ）に示した主走査方向ずれ量に対して、平滑化処理部１１３による平滑化処理を施した結果を示している。
実際に計算された主走査方向ずれ量の推定結果は、図１０（ａ）に示すように、細かい凹凸のあるものとなることが多い。しかし、ユーザによるスキャン操作がこのような凹凸通りに操作されることはあまり無く、この凹凸の発生原因の大部分は画像による影響である。
そこで、平滑化処理部１１３により、図１０（ａ）に示す推定結果を、図１０（ｂ）に示すような滑らかな曲線に沿わせるように修正し、その修正結果を用いて線形補完および補正を行なっている。平滑化の手法としては、例えば、移動平均を用いる方法や、ベジェ曲線（Ｂｅｚｉｅｒ  ｃｕｒｖｅ）を用いる方法や、２次関数で近似する方法など、一般的な手法を用いることができる。ベジェ曲線は、一般的に、後述する（４）式により表される。
以上、上記ステップＳ１１１の処理において、２つの変換画像のうちの何れか一方を処理対象として、上述した処理を実行して、この処理対象の変換画像の歪みの検出、検出した歪みの格納、歪み検出結果に基づく画像補正、補正後の画像の格納を行なったら、残りの他方の変換画像を処理対象として、同様にして上述した処理を実行して、当該他方の変換画像の歪みの検出、検出した歪みの格納、歪み検出結果に基づく画像補正、補正後の画像の格納を行なう。
そして、これら２つの補正画像を用いて、以下に説明する図２のステップＳ１８〜Ｓ２１の処理を実行する。
まず、上記２つの補正画像の相互の重なり領域（位置）を検出する（ステップＳ１８）。
これは、もし、入力画像が文書画像であれば、例えば、特開２０００−２７８５１４号公報記載の手法を用いる。その他の手法を用いても構わない。もし、入力画像が、文字を含まない画像（例えば、写真やグラフや図面のような画像）であれば、例えば、特開２００２−３０５６４７号公報記載の手法を用いる。その他の手法を用いても構わない。
また、入力画像が文書画像である場合には、上記ステップＳ１７で補正後の画像を用いて、ステップＳ１８の処理を実行する。一方、もし、入力画像が文書画像以外（写真、図形等）である場合には、上記ステップＳ１４でメモリに格納してある変換画像を用いて、ステップＳ１８の処理を実行する。
ここで、特開２０００−２７８５１４号公報記載の手法、特開２００２−３０５６４７号公報記載の手法について、簡単に説明しておく。
まず、特開２０００−２７８５１４号公報記載の手法は、例えば、文字領域検出部が、スキャナで２回に分けて読み取られた第１、第２の文書画像の各々について、行画像（文書の１行を構成する複数の文字画像に外接する領域内の画像）を抽出する毎に、この行画像の各文字領域の座標（左上角の座標及び大きさ等）を求め、重なり位置検出部に通知する。文字領域とは、文字に外接する四角形で囲まれる領域を指す。
重なり位置検出部は、第１、第２の２つの文書画像のそれぞれについて行画像の文字領域内の文字の認識を行って対応する文字コードを得て、２つの文書画像の文字コードと文字領域の位置及び大きさを比較して、文字コードの一致度及び大きさと位置の一致度の高い行画像の位置を文書画像の重なり位置と判断し、例えば一致した行画像の先頭の文字領域の座標と最後の文字領域の座標とを重なり位置座標として出力する。この重なり位置座標が、ステップＳ１９においてメモリに格納される。尚、特開２０００−２７８５１４号公報には、文字認識は行なわない手法も開示されているが、本例では、歪みが生じている為に、重なり位置の行画像同士であっても、その文字領域の位置がずれている可能性があるので（ステップＳ１７の歪み補正処理後でも完全には歪みが補正されていない場合があるので）、文字領域の位置及び大きさのみでは、重なり位置が判断できない可能性がある為、文字認識結果も比較して判断したほうが望ましい。但し、これは、ステップＳ１７の歪み補正処理後の補正画像の状態による。
次に、特開２００２−３０５６４７号公報記載の手法は、まず、２つの入力画像（カラー画像等）を、各々、単一の色成分を持つ階調画像（グレースケール画像）に変換し、更にデータ量が非常に少ない画像（縮小画像）に変換して、この縮小画像を用いて、おおまかな重なり位置を検出する。グレースケール画像への変換方法は、上述してある通りである。次に、上記グレースケール画像を用いて、正確な重なり位置を検出する。これは、検出したおおまかな重なり領域を複数の矩形領域に分割し、色差の大きい濃度成分を多く含む矩形領域を正確な重なり位置の検出に用い、色差の小さい濃度成分を多く含む矩形領域を２つの画像の結合面（つなぎ目）に用いる。これら重なり位置、結合面等の検出結果は、パラメータとしてメモリ等に一時的に記憶する（ステップＳ１９の処理）。このパラメータは、後述する２つの入力画像（カラー画像等）を用いた画像結合（合成）処理に際に、用いられる。
また、尚、色差が大きい（小さい）濃度成分を多く含む矩形領域は、例えば、各矩形領域を縮小し、この縮小画像を差分フィルタに掛け、画像中の線や縁を強調する。そして、線や縁の数や長さを、第１の閾値以上持つか、第２の閾値以下しか持たない矩形領域を、上記色差が大きい（小さい）濃度成分を多く含む矩形領域と判別する。
上記特開２００２−３０５６４７号公報記載の手法によれば、データ量が大きい入力画像（カラー画像等）は、最後の処理で用いるだけであり、重なり位置の検出等の処理は、データ量が少ない画像（縮小画像、グレースケール画像）を用いて行なうので、高速処理を実現でき、また処理中に必要となるメモリ容量も少なくて済む。
次に、入力画像が文書画像である場合には、上記ステップＳ１７で補正した変換画像と、ステップＳ１８で検出した２つの補正画像相互の重なり領域位置とを用いて、２つの画像相互の歪み又は伸縮を検出する。入力画像が文書画像以外（写真、図形等）である場合には、上記ステップＳ１４でメモリに格納してある変換画像と、ステップＳ１８で検出した２つの画像相互の重なり領域位置とを用いて、２つの画像相互の歪み又は伸縮を検出する（ステップＳ２０）。
図３は、入力画像が文書画像以外である場合のステップＳ２０の処理の詳細フローチャート図である。尚、図３は、入力画像が文書画像以外である場合の後述する図４のステップＳ４１の処理の詳細フローチャート図でもある。
尚、図３において、ステップＳ５１〜Ｓ５３の処理は、上記ステップＳ１８の処理を、特開２００２−３０５６４７号公報記載の手法を用いて行った場合には、ステップＳ１８の処理中に既に行われているので、この処理結果を利用すれば済む。よって、ステップＳ５１〜Ｓ５３の処理は行わなくて良いが、ここでは一応重複して説明するものとし、更に具体例を用いてより詳細に説明するものとする。
まず、２つの変換画像のうち、どちらか一方の画像の重なり領域を、複数の矩形領域に分割する（ステップＳ５１）。ここでは、Ｍ行×Ｎ列の矩形領域に分割する（一例を、図１１（ａ）に示す）。
次に、色差の大きい濃度成分を多く含む矩形領域（以下、第１の矩形領域という）を抽出する（ステップＳ５２）。これは、例えば、各矩形領域を差分フィルタにかけ、画像中の線や縁を強調する。次に輪郭線追跡を行い、線や縁がある一定以上含まれており、さらにある一定以上の長さを持っていれば、この領域を第１の矩形領域として抽出する。つまり、上記特開２００２−３０５６４７号公報に記載の手法によって“色差の大きい濃度成分を多く含む矩形領域”を抽出する。
実際の写真画像等では、背景や人物、山、木、川等それぞれの境界部分で色差が大きいため、このような色成分を含む矩形領域が、第１の矩形領域として抽出されることになる。図１１（ａ）に示す例では、例えば図１１（ｂ）の図中に斜線で示す矩形領域が、第１の矩形領域として抽出される。
尚、上記色差の大きさに基づいて抽出する方法に限るわけではなく、例えば輝度成分を利用した画像を使用する場合には、輝度差が大きい矩形領域を第１の矩形領域として抽出する。
続いて、ステップＳ５２にて抽出した第１の矩形領域の中から、結合面と平行な方向に複数個の矩形領域を選択する（ステップＳ５３）。列の上半分や下半分にかたまらずに、上下に幅広く選択する。
色差の大きい矩形領域を使用して画像のマッチングを取ると、正確な重なり位置とそうではない位置とで大きな差がでる。例えば、ハミング距離やユークリッド距離等を利用したマッチング方法では、正確な重なり位置では値が小さくなり、そうでない位置では値が大きくなる。よって、ステップＳ５２で抽出した第１の矩形領域は、正確な重なり位置検出の為に用いるのに適している。但し、全て用いる必要はないので、ステップＳ５３において、その中から幾つかを選択する。
ステップＳ５３の処理は、例えば、ステップＳ５２にて抽出した第１の矩形領域の中から、正確な重なり位置検出の為に用いる矩形領域を、上記ステップＳ１８で検出した重なり領域の長手方向と平行な方向に選択していく。
これを、図１１（ｂ）に示す例に対して行なった場合、図１２（ａ）に示すように、１列目〜３列目までの各列が抽出されることになり、このような場合には第１の矩形領域を最も多く含む列を選択する。
但し、図１２（ａ）の例では、向かって右側の列と左側の列が、同数（６個）の第１の矩形領域を含むので、このように第１の矩形領域を最も多く含む列が複数個ある場合には、何れか一方を選択する。ここでは図１２（ｂ）に示す様に、３列目が選択されたものとする。
但し、選択した列に含まれる第１の矩形領域の数が少ない場合（例えば、予め７個以上必要等と設定しておく）、他の列からも抽出する。但し、このように複数の列から抽出すると、逆に、正確な重なり位置検出に使用する矩形領域の数が多くなり過ぎることも考えられ、この場合、マッチングに要する処理時間が増加するため、１つの行から２つ以上の矩形領域を抽出しないようにする。
一方、上記の場合とは逆に、選択した列に含まれる第１の矩形領域の数が多過ぎる場合や、あるいは更に処理時間を短縮したい場合には、その列に含まれる第１の矩形領域の数を減らすようにしてもよい。但し、減らした結果、その列に含まれる第１の矩形領域が、列の上半分や下半分にかたまらないようにして、削減すべき第１の矩形領域を選択する（図上における上下に幅広く選択する）。
以上の様にして、マッチングに用いる矩形領域を選択したら、この選択した複数の矩形領域の各々と、他方の画像とのずれ量を検出する（ステップＳ５４）。これは、例えば、各矩形領域を、ステップＳ１８で検出した重なり位置（初期位置）から、前後左右に１画素ずつずらしマッチングを取る。マッチングには、例えば相互相関を用いる。つまり、ハミング距離又はユークリッド距離を使用し、距離が最小となる位置を“一致箇所”と見做す。そして、この一致箇所と、初期位置とのずれ量を検出する。最後に、矩形領域毎に検出したずれの大きさをｘ、ｙ軸上にプロットし、他方の画像を基準とした相対的な歪み量又は当該画像の伸縮を求める（ステップＳ５５）。
一例を図１３、図１４、図１５に示す。
図１３、図１４、図１５には、上記第１の矩形領域の中から選択された矩形領域（マッチングに用いる矩形領域）の一部を示しており、またこれらの矩形領域は、その初期位置を点線で示し、上記“一致箇所”を実線で示している。図示の通り、初期位置（点線の矩形）と“一致箇所”（実線の矩形）との間にずれが生じている。
図１３の例では、Ｘ軸方向にのみずれが生じ、Ｙ軸方向にはずれは生じていないものとする。このずれを、図１３の図上左側に示すようにＸ−Ｙ座標上にプロットする。プロットする位置は、例えば、各矩形領域の中心座標であり、同図では初期位置における各矩形領域の中心座標を●印で示し、“一致箇所”における各矩形領域の中心座標を×印で示してある。これより、図上に点線で示す歪みの曲線（厳密には、折れ線グラフ）が得られる。上記Ｘ−Ｙ座標上のプロット位置のデータと、この歪み曲線のデータが、ステップＳ２１においてメモリに格納される。
図１４についても同様であるが、図１４の例は、Ｘ軸方向だけでなく、Ｙ軸方向にもずれが生じており、図上に一点鎖線で示す歪みの曲線（折れ線グラフ）が得られる。
一方、図１５に示すように、Ｙ軸方向のみにずれが生じ、Ｘ軸方向にはずれは生じていない（但し、全く生じていない場合に限らず、ずれ量が所定の規定値以下の場合も含む）場合には、「伸縮」が生じたものと判断し、上記Ｘ−Ｙ座標上のプロット位置のデータを、ステップＳ２１においてメモリに格納する。
次に、入力画像が文書画像であった場合のステップＳ２０またはＳ４１の処理について説明する。この処理の詳細は特に図示しないが、上記ステップＳ１７の処理において、特開２０００−２７８５１４号公報記載の手法を用いて、文字コード及び各文字領域の位置及び大きさを比較して、これらの一致度が高い行画像の位置を文書画像の重なり位置と判断している。ここでは、この一致度が高い行画像内の各文字領域の位置及び大きさに基づいて、相対的なずれを検出する。すなわち、これら文字領域単位にマッチングを行う。マッチングの方法は、相互相関以外に、文字認識等を利用しても構わない。具体例を図１６に示す。
図１６に示す例では、ステップＳ１７の処理によって検出した重なり位置の行画像内の文字列が「あいうえお」であり、画像Ｂが正常で、画像Ａが歪んでいるものとする。また、画像Ｂにおける各文字領域（矩形領域）の位置・大きさを、図示の点線の矩形で示す。また、比較のために、この画像Ｂにおける各文字領域（矩形領域）の位置・大きさを、画像Ａにおいても図示の点線の矩形で示す。
文字領域は矩形領域であり、上記図１３、図１４、図１５の例と同様に、各文字領域（矩形領域）毎にマッチング処理を行なって、各文字領域毎のずれ量を求めて、文字領域の中心点の座標をプロットし、更に歪み曲線を求めて、これら求めたデータをステップＳ２１においてメモリに格納する。あるいは、文字認識結果を用いて、同一の文字同士の矩形領域の位置のずれ量を求めても良い（同一の文字が複数ある場合には、より距離が近い方を採用する）。
以上説明した図３に示す処理によって検出した、画像相互の歪み、伸縮を示すデータ、すなわち上記プロット位置と歪み曲線データは、上述した通り、メモリに格納しておく（ステップＳ２１）。
そして、最後に、ステップＳ１１でメモリに格納しておいた２つの入力画像（カラー画像）を用いて、ステップＳ１６、Ｓ１９、及びＳ２１でメモリに格納しておいた各種パラメータを用いて、２つの入力画像の歪み／伸縮を補正しつつ、検出した重なり位置で合成処理する（ステップＳ２２）。歪み、伸縮補正に用いるパラメータは、ステップＳ１６、Ｓ１９でメモリに格納した値であり、重なり位置に用いるパラメータは、ステップＳ２１でメモリに格納した値を用いる。
画像相互の歪みの補正方法は、例えば、先出願記載の手法を利用する。ここで、先出願記載の手法では、ラインデータ単位で歪みを検出し、ラインデータ単位で歪みを補正していた。一方、本手法では、上記の通り、矩形領域または文字領域単位で歪みを検出している。
しかしながら、本手法においても、上述した又は以下に説明する先出願記載の手法を適用することができる。すなわち、本手法では、図１３、図１４で説明したように、矩形領域毎のずれ量に基づいて、歪み曲線（折れ線グラフ）を求めて、これを歪みの検出結果としてメモリに格納している。よって、この歪み曲線を用いれば、各ラインデータの歪み量が分かるので、先出願記載の手法を適用して、歪みを補正することができる。但し、先出願以外の他の手法を用いても構わない。
一方、伸縮については、先出願記載の手法では対応していないので、ここで説明する。
２つの入力画像のどちらか一方に伸縮が生じていた場合には、図１７（ａ）〜（ｃ）に示すように、伸縮が生じている画像を、他方の正常な画像に合わせて、補完処理を行なう。伸縮画像は、上述した通り、何らかの理由でラインデータの一部が欠損する為に生じる。よって、この欠損部分を補ってやる必要がある。
まず、上記図１３〜図１５で説明したように、ステップＳ２０又はＳ４１の処理において、各矩形領域の初期位置と“一致箇所”における中心座標の位置をＸ−Ｙ軸上にプロットしており、これがメモリに格納されている。伸縮の場合は、図１５の図上左側に示すような×印、●印の座標がプロットされている。これを、図１７（ａ）に示すように読み出す。伸縮が生じた画像は、必ずＹ軸方向に縮んでいるので、図１７（ａ）の例では画像Ｂが伸縮しており、画像Ｂが補完対象となる。
まず、画像Ｂの●印の座標を境界にして画像Ｂを複数の領域に分割する。これは、図１７（ｂ）における点線を境にして画像Ｂを分割すると、Ｙ軸方向の長さがそれぞれＢ１、Ｂ２の２つの分割領域が得られる。
次に、各分割領域毎に、補完処理を実行する。補完の公式には、直線補完を用いてもよいし、スプライン補完を用いてもよい。
例えばＹ軸方向の長さがＢ１の分割領域の伸縮の比率、すなわちＡ１÷Ｂ１が１．５であった場合、例えばこの分割領域のＹ軸方向１列の画素数が１０個であった場合には、補完した結果、図１７（ｃ）に示す補正画像のＹ軸方向１列の画素数は１５個となる。この例における補完処理では、まず、上記補完公式を利用して、グラフを求める。このグラフは、直線補完の場合は図１８（ａ）に示すような折れ線グラフ、スプライン補完の場合には図１８（ｂ）に示すような曲線グラフとなる。そして、このグラフに基づいて再度サンプリングを行なって、１５個のグリッド点及びその画素値を求めて、これを補完画像に用いる。
あるいは、補完処理の他の例を、図１９に示す。図１９に示す例は、伸縮画像が、元の画像の１／３に縮んでいる。この補完処理では、伸縮画像を複数の矩形領域に分割し、各矩形領域毎に中心点の座標を求め、Ｙ軸方向における各中心点の間でグリッド点を求める（この例では３倍にするので、各中心点間後毎に２箇所のグリッド点を求める）。グリッド点は、例えば、上記折れ線グラフ、曲線グラフに基づいて求める。それ以外の方法であってもよい。そして、図示の通り、求めた各グリッド点をそれぞれ新たな矩形領域の中心点とする補完画像を作成する。
以上、画像の歪み又は伸縮を補正したら、補正後の画像を用いて、例えば図２０に示すように、２つの画像を合成（結合）する。
また、画像の合成方法は、もし、入力画像が文書画像であれば、例えば、特開２０００−２７８５１４号公報記載の手法を用いる。その他の手法を用いても構わない。もし、入力画像が、文字を含まない画像（例えば、写真やグラフや図面のような画像）であれば、例えば、特開２００２−３０５６４７号公報記載の手法を用いる。
例えば、特開２０００−２７８５１４号公報記載の手法では、結合面が行と平行な場合は例えば図２１に示す方法で、結合面が行と垂直な場合には例えば図２２に示す方法で行なう。
図２１は、結合面が行と平行な場合、つまり文書画像を行と平行な方向にスキャンした場合の文書画像の結合方法の説明図である。
第１の文書画像の文字列「あ、い、う・・・」の行と、第２の文書画像の文字列「あ、い、う・・・」の行とが結合位置として検出され、第１及び第２の文書画像の該当する行の左隅上の座標が結合位置の座標として設定される。そして、第１及び第２の文書画像が、結合位置の座標の左側と右側の領域にそれぞれ分割され、第１の文書画像の分割位置（結合位置）の左側の画像を除去した残りの画像Ａと、第２の文書画像の結合位置の右側の画像を除去した残りの画像Ｂとが結合されて元の文書画像が再生される。
図２２は、結合面が行と垂直な場合、つまり文書画像を行と垂直な方向にスキャンした場合の画像の結合方法の説明図である。
この場合、第１の文書画像の文字列「か、き、く、け、こ・・・」の行の文字「か」の左隅上を通り行と直交する線と、第２の文書画像の文字列「か、き、く、け、こ」を含む行の文字「か」の左隅上を通り行と直交する線が、それぞれ分割位置として得られる。そして、第１の文書画像の文字「か」の左上隅を通る線の左側の画像を除去した残りの画像Ａと、第２の文書画像の文字「か」の左上隅を通る線の左側の画像を除去した残りの画像Ｂとが結合されて元の文書画像が再生される。
また、例えば、特開２００２−３０５６４７号公報記載の手法では、まず、上記ステップＳ１８の処理において、上記色差の大きい領域（第１の矩形領域）だけでなく、色差の小さい濃度成分を多く含む矩形領域（以下、第２の矩形領域と呼ぶ）も抽出している。これは、第１の矩形領域の場合と同様に、各第２の矩形領域を“１／ＮＳ”に縮小し、縮小画像を差分フィルタにかけ、画像中の線や縁を強調する。そして、線や縁をある一定値以下しか持っておらず且つそれがある一定値以下の長さである領域を、合成面に用いる領域の候補となる矩形領域として抽出する。尚、上記“一定値”は、予め、適宜設定しておくものであるが、第１の矩形領域の場合の一定値とは異なる（それよりも非常に小さい）。
実際の写真画像等では、背景色など色差の小さい部分が抽出されることになる場合が多い。
そして、これら合成面に用いる領域の候補となる第２の矩形領域の中から、基本的には各行毎に１つの第２の矩形領域を選択して、これを合成面に用いる矩形領域としてメモリに格納しておく。
そして、ステップＳ２２の処理で、これら合成面に用いる矩形領域を用いて、２つの画像を合成する。
例えば画像の歪み、伸縮を完全に補正できなかった場合等には、色差の大きい領域（第１の矩形領域）を結合面に用いて２つの画像を結合すると、画像のつなぎ目が目立つといった問題がある。これに対して、上記の通り、背景色等の色差の小さい領域を結合面として用いるようにすることで、結合面が完全に一致しなくても、画像のつなぎ目を目立たなくすることができる。
以上説明したように、本発明の画像結合装置では、特別な構成を用いる必要なく各入力画像単体の歪みを検出、補正するだけでなく、入力画像相互の歪みを検出・補正したり、あるいは画像の伸縮を検出できるようにしてこれを補完することができるようになるので、画像に歪み又は伸縮が生じていても高精度に複数個の画像を結合することが可能となる。
上記画像結合装置１０によって実行される処理手順は、上述した図２に示す処理手順に限らない。以下、図４を参照して、第２の実施例について説明する。
図４は、上記画像結合装置１０による第２の実施例の処理手順を説明する為のフローチャート図である。
図４において、ステップＳ３１、Ｓ３２、Ｓ３３、Ｓ３４の各処理自体は、それぞれ、図２のステップＳ１１、Ｓ１２、Ｓ１３、Ｓ１５と略同様である。また、ステップＳ３９、Ｓ４０、Ｓ４１、Ｓ４２の各処理自体は、それぞれ、図２のステップＳ１８、Ｓ１９、Ｓ２０、Ｓ２１と略同様である。
図４の処理が、図２の処理と異なる点は、処理の流れである。すなわち、図２の処理では、グレースケール画像等の情報量を減らした画像を用いて、各入力画像単体の歪み、画像相互の重なり位置、画像相互の歪み、伸縮を検出して、パラメータとしてメモリに格納する。そして、入力画像（カラー画像等）を用いた処理は、最後にまとめて、上記パラメータを用いて行う。一方、図４の処理は、各入力画像単体の歪みを検出した時点で、一旦、入力画像に対する補正処理を実行する。すなわち、図４のステップＳ３５の処理において、ステップＳ３１でメモリに格納した入力画像を読み出して、この入力画像に対して、ステップＳ３４で検出した歪みに基づいて、歪み補正を行う。そして、歪み補正後の入力画像を、メモリに格納する（ステップＳ３６）。ステップＳ３５の処理内容自体は、図２のステップＳ１７と略同様であるが、処理対象の画像が異なる。すなわち、ステップＳ１７では変換画像（グレースケール画像等）が処理対象であったが、ステップＳ３５では上記の通り入力画像（カラー画像等）が処理対象となる点が異なる。
その後は、各画像単体の歪み補正した２つの入力画像を使用して、画像相互の歪み、伸縮、重なり位置を検出する。
まず、ステップＳ３６でメモリに格納した「歪み補正した入力画像」を用いて、正規化処理（ステップＳ３７）、色変換処理（ステップＳ３８）を実行する。ステップＳ３７、Ｓ３８の処理内容自体は、ステップＳ３２、Ｓ３３と略同様であるが、処理対象が「歪み補正した入力画像」である点が異なる。その後は、図２のステップＳ１８〜Ｓ２１の処理と同様、ステップＳ３９〜Ｓ４２の処理を実行する。
最後のステップＳ４３の処理は、その処理内容自体は図２のステップＳ２２の処置と略同様であるが、処理対象が「歪み補正した入力画像」である点、及びパラメータとして各画像単体の歪みは用いない点（既に補正済みであるので、当然、必要ない）が異なる。
以上の処理により、第２の実施例においても、第１の実施例と同様に、２つの入力画像の歪みを検出して補正することができ、または伸縮を検出して補完することができるので、歪み又は伸縮が生じていても高精度に複数個の画像を結合することが可能である。
最後に、以下に、上記先出願記載の手法について、詳細に説明しておく。先出願記載の手法の詳細については、既に、その一例について、図５〜図１０を参照して説明してあるが、ここでは更に他の手法（その１）、（その２）について詳細に説明する。
図２３は、先出願に記載の他の手法（その１）による画像処理装置の構成を示すブロック図である。
図２３に示す画像処理装置１００Ｂにおいては、図５に示す画像処理装置１００の構成と略同様の構成には、同一符号を付してあり、その詳細な説明は省略する。更に、この画像処理装置１００Ｂにおいては、左右領域抽出部１１４、上下領域抽出部１１５および傾き検出部１１６が新たに追加されるとともに、線形補完処理部１１１に代えて再構成部１１７が備えられてている。
左右領域抽出部１１４は、図２５を参照しながら後述するように、画像データの左右両側におけるずれ量を推定すべく、画像データの左側領域と右側領域とを画像バッファ１０１からそれぞれ抽出するもので、具体的には、図２５に示すごとく画像データの全体を主走査方向に３分割し、左側領域Ｗ１および右側領域Ｗ２を抽出するものである。
この左右領域抽出部１１４と、上述した第１ラインカウンタ１０２、第２ラインカウンタ１０３、距離メモリ１０４、相互相関係数演算部１０５、最小相互相関係数検出部１０６、最小相互相関係数メモリ１０７、ずれ量カウンタ１０８および最小相互相関係数位置メモリ１０９とによって、複数列のラインデータを成す部分データ間の相互相関、つまり左側領域Ｗ１および右側領域Ｗ２にそれぞれ属するデータ間の相互相関に基づいて、画像データの左側および右側の主走査方向ずれ量をそれぞれ推定する機能を提供する。つまり、本例では、左右領域抽出部１１４によって抽出された左右の領域Ｗ１、Ｗ２のそれぞれに対して、図５〜図１０で説明したずれ量推定手法が適用され、ラインデータの左右両側のずれ量が、副走査方向に適当な間隔ｄをあけたライン毎に推定され、その推定結果がずれ量メモリ１１０に格納されるようになっている。
上下領域抽出部１１５は、図２６を参照しながら後述するように、画像データの上下両側における画像（実際には文字列）の傾きをそれぞれ検出すべく、画像データの上側領域と下側領域とを画像バッファ１０１からそれぞれ抽出するもので、具体的には、図２６に示すごとく、適当な幅を有する上側領域Ｌ１および下側領域Ｌ２を抽出するものである。
傾き検出部（検出手段）１１６は、上下領域抽出部１１５によって抽出された上側領域Ｌ１および下側領域Ｌ２に基づいて、画像データの上下両側における画像の傾きをそれぞれ検出するものである。本例において、画像データが文書画像であるとし、傾き検出部１１６は、その文書画像を成す文字列の傾きに基づいて、上下両側における画像の傾きを検出するが、その際、図２６、図３１（ａ）、図３１（ｂ）を参照しながら後述するごとく、特開平１１−３４１２５９号公報に開示された技術を用いている。
再構成部（再構成手段）１１７は、上述のごとく推定されずれ量メモリ１１０に格納された左右両側のずれ量と、上述のごとく傾き検出部１１６によって検出された上下両側の傾きとに基づいて、画像バッファ１０１の画像データを再構成し、この画像データの歪みを解消してから、補正後の画像データを補正画像バッファ１１２に書き込むものである。
平滑化処理部１１３は、ずれ量メモリ１１０のずれ量に対し、ベジェ曲線（Ｂｅｚｉｅｒ  ｃｕｒｖｅ）を用いた平滑化処理を施し、平滑化後のずれ量を再構成部１１７へ出力するように構成されている。そして、再構成部１１７は、図２７〜図３０を参照しながら後述するごとく、平滑化処理部１１３によって得られた左右両側のベジェ曲線（ずれ量）の媒介変数ｔを用いて、画像データの再構成を行なうように構成されている。
次に、図２４〜図３１（ｂ）を参照しながら、本例の画像処理装置１００Ｂの動作について説明する。なお、図２４〜図３０はいずれも本例の画像処理手法を説明するための図、図３１（ａ）、（ｂ）はいずれも本例における画像の傾きの検出手法を説明するための図である。
まず、ここでは、ハンドヘルド型イメージスキャナによって得られ画像バッファ１０１に格納された画像データ（原画像）が、例えば図２４に示すような文書画像（縦書き）で、この文書画像に対して画像処理装置１００Ｂによる補正処理を施す場合について説明する。この図２４では、二次元的な歪みの生じた画像データ（頂点Ｐ１〜Ｐ４をもつ矩形画像）が示されている。この二次元的な歪みは、例えば、スキャン操作時にイメージスキャナが読取対象原稿に対して滑って、イメージスキャナ１０によるスキャン領域が扇形になったために生じている。なお、図２４、図２６、図３０、図３１（ａ）、（ｂ）において、「○」は文字を示している。また、図２５、図２７および図２８においては、図中の記述を分かりやすくするために、「○」による文字の表示を省略している。
まず、画像データの左右両側のずれ量を推定する。即ち、図２５に示すように、左右領域抽出部１１４によって抽出された、画像データの左右の領域Ｗ１およびＷ２のそれぞれに対して、図５〜図１０で説明したずれ量推定を適用する。これにより、ラインデータの左右両側のずれ量が副走査方向に適当な間隔ｄをあけたライン毎にそれぞれ推定され、その推定結果Ｒ１およびＲ２がずれ量メモリ１１０に格納される。
なお、前述した通り、ずれ量メモリ１１０に格納されている左右両側のずれ量は、所定間隔をあけたラインどうしのずれ量で、“−１”もしくは“０”もしくは“１”のいずれか一つの値である。図２５におけるずれ量の推定結果Ｒ１およびＲ２は、ずれ量メモリ１１０に格納された、左右それぞれの主走査方向ずれ量を順次積算することにより、原画像に対するずれ量（イメージスキャナの動き）を求め、その結果を副走査方向位置に対応させて得られたものである。
次に、上下領域抽出部１１５および傾き検出部１１６により、画像データの上下領域における画像の傾きを検出する。つまり、図２６に示すように、上下領域抽出部１１５によって抽出された上下領域Ｌ１およびＬ２内の画像データ（文字列画像）を用いて、傾き検出部１１６により、上下の画像の傾き角度θおよびφをそれぞれ検出する。傾き角度θは、スキャン操作開始時にイメージスキャナが文字列に対して成す角度に対応し、傾き角度φは、スキャン操作終了時にイメージスキャナが文字列に対して成す角度に対応している。
ここで、傾き検出部１１６により上側の傾き角度θを検出する手法について、図３１（ａ）、（ｂ）を参照しながら説明する。この傾き検出手法は特開平１１−３４１２５９号公報に開示されたものである。
つまり、傾き検出部１１６においては、図３１（ａ）に示すように、上側領域Ｌ１から１列分の文字列〔図３１（ａ）では連続する５文字〕を部分画像として抽出する。この部分画像は、上記文字列に外接するとともに、画像データの主走査方向および副走査方向に平行な辺をもつ矩形として切り出される。このように切り出された部分画像のｘ軸およびｙ軸を図３１（ｂ）に示すように設定し、部分画像内において文字を成す黒画素の座標を直線〔図３１（ｂ）中の直線ｙ＝ａ＊ｘ＋ｂ参照〕で近似する。その直線の傾き“ａ”は、例えば黒画素座標の回帰直線の傾きとして、次式（２）により算出することができる。
2004077356.tif 000004
ここで、“Σ”はｉ＝０〜Ｎ−１までの総和演算を意味するものとする。また、Ｎは部分画像内の黒画素の個数、ｘｉ、ｙｉはｉ番目の黒画素のｘ座標およびｙ座標である。この（２）式によって得られた傾きａに基づいて、上側の傾き角度θが下式（３）によって算出される。下側の傾き角度φについても、上述と同様にして算出される。
2004077356.tif 000005
これにより、画像の傾きとして、文字列の、主走査方向もしくは副走査方向に対する傾き角度θ、φ、つまりは、イメージスキャナが文字列に対して成す角度が算出される。
なお、傾き角度の算出に利用する部分画像を一つのみとすると、直線近似の誤差等の影響を受けてしまい、正しい傾き角度を求めることができなくなる可能性がある。そのため、上下領域Ｌ１、Ｌ２から複数の部分画像を抽出し、各部分画像について、上式（２）および（３）を用いて傾き角度を算出することが望ましい。その場合、算出された複数の傾き角度のうち有効なものを抽出し、抽出された有効な傾き角度の平均値を、最終的な傾き角度θ、φとして決定するようにする。
次に、平滑化処理部１１３により、図２５に示すごとく得られたずれ量の推定結果Ｒ１およびＲ２に対し、ベジェ曲線を用いた平滑化処理が施され、図２７に示すようなベジェ曲線ＢＺ１およびＢＺ２がそれぞれ得られる。これにより、イメージスキャナ（ラインセンサ）の両端の動きがベジェ曲線で近似される。
ベジェ曲線は、一般的に下式（４）で表される。
2004077356.tif 000006
但し、（４）式において、Ａ、Ｂ、Ｃ、Ｄはベクトル定数、ｔは媒介変数である。なお、図２７においては、左側の推定結果Ｒ１を近似したベジェ曲線ＢＺ１のベクトル定数Ａ、Ｂ、Ｃ、Ｄは、それぞれＡ１、Ｂ１、Ｃ１、Ｄ１として表記され、右側の推定結果Ｒ２を近似したベジェ曲線ＢＺ２のベクトル定数Ａ、Ｂ、Ｃ、Ｄは、それぞれＡ２、Ｂ２、Ｃ２、Ｄ２として表記されている。
ここで、ベクトル定数Ａ１、Ａ２は、それぞれ画像データの２つの頂点Ｐ１、Ｐ１（図２４参照）を示すベクトルとして与えられる。また、ベクトルＤ（Ｄ１、Ｄ２）は、それぞれ図２５のごとく得られた推定結果Ｒ１、Ｒ２の最下点を示すベクトルとして与えられる。
ベジェ曲線を求める場合、Ａ、Ｄ間に２点のコントロールポイントＢ（Ｂ１、Ｂ２）およびＣ（Ｃ１、Ｃ２）を決める必要がある。今、上端から副走査方向画像長の１／３の位置ｋ１におけるずれ量の推定結果をｈ１、上端から副走査方向画像長の２／３の位置ｋ２におけるずれ量の推定結果をｈ２とする。このとき、ベジェ曲線の定義から、コントロールポイントＢ、Ｃはそれぞれ下式（５）、（６）のように与えられる。
2004077356.tif 000007
上述のごとくベクトル定数Ａ、Ｂ、Ｃ、Ｄを決定することにより、推定結果Ｒ１、Ｒ２をそれぞれ近似するベジェ曲線ＢＺ１、ＢＺ２が上式（４）によって与えられ、左右両側のずれ量が平滑化されるとともに、イメージスキャナの左右両端の動きを推定することができる。
以上の処理により、図２８に示すように、画像データの左右両側のずれ量を示すベジェ曲線ＢＺ１、ＢＺ２と、画像データ上下における画像の傾き角度θ、φとが得られる。
次に、これらの曲線ＢＺ１、ＢＺ２および傾き角度θ、φに基づいて、再構成部１１７によって、イメージスキャナによって実際にスキャンされた領域の形状（図２９参照）が再構成され、再構成された領域内に図２４に示す画像データを再配置することにより、最終的に図３０に示すような再構成画像データ（補正画像データ）が補正画像バッファ１１２に格納される。
イメージスキャナによって実際にスキャンされた領域の形状は、曲線ＢＺ１、ＢＺ２および傾き角度θ、φに基づいて図２９に示すように再構成される。ここで、イメージスキャナの読取幅および読取長（副走査方向の画像長）をそれぞれＷおよびＬとする。読取幅Ｗは、物理的に一定であり、固定された値になる。また、読取長Ｌは、イメージスキャナによって読み取られたラインの数から決定される。
図２９に示すように、上側の傾き角度θにより、イメージスキャナの読取開始時の位置が直線ｍ１として与えられる。この直線ｍ１の長さは固定の読取幅Ｗである。直線ｍ１の左端と左側のベジェ曲線ＢＺ１の上端とを一致させて、直線ｍ１とベジェ曲線ＢＺ１とを重ね合わせる。そして、ベジェ曲線ＢＺ１の下端と、主走査方向に対する傾き角度φで長さＷの直線ｍ２の左端とを一致させて、ベジェ曲線ＢＺ１と直線ｍ２とを重ね合わせる。直線ｍ２は、イメージスキャナ１０の読取終了時の位置である。最後に、直線ｍ１の右端と直線ｍ２の右端との間に、その間隔に応じてベジェ曲線ＢＺ２を縮小したベジェ曲線ＢＺ２′を重ね合わせる。このようにしてイメージスキャナによって実際にスキャンされた領域が再構成される。
図２９に示す例では、左側の移動量（ずれ幅）の方が右側の移動量（ずれ幅）よりも大きいので、左側を基準としてスキャン領域を再構成している。そして、図２９に示すように、ｘ軸を主走査方向、ｙ軸を副走査方向、再構成領域の左上頂点Ｐ１′を原点（０、０）とした座標系を設定し、左側のベジェ曲線ＢＺ１の上端と下端とのずれ量をＴすると、再構成領域のその他の３つの頂点Ｐ２′、Ｐ３′、Ｐ４′の座標は、それぞれ、（Ｗ＊ｃｏｓθ、Ｗ＊ｓｉｎθ）、（Ｔ、Ｌ）、（Ｔ＋Ｗ＊ｃｏｓφ、Ｌ−Ｗ＊ｓｉｎφ）となる。
そして、図２９に示すように再構成された領域内に、図２４に示す画像データが再配置されて、図３０に示すように、画像が再構成される。当然、図２４に示す画像データの４頂点Ｐ１、Ｐ２、Ｐ３、Ｐ４は、それぞれ、再構成領域の４頂点Ｐ１′、Ｐ２′、Ｐ３′、Ｐ４′に対応することになる。
このとき、左右両側のベジェ曲線ＢＺ１、ＢＺ２′の媒介変数ｔを用いて、画像データの再構成が行なわれる。ベジェ曲線ＢＺ１、ＢＺ２′は、上述した通り媒介変数ｔを使用した関数であり、ｔ＝０の時にベクトルＡ（Ａ１、Ａ２）と一致し、ｔ＝１の時にベクトルＤ（Ｄ１、Ｄ２）と一致する。
そこで、副走査方向の画像長Ｌに対応するライン数ＮＬによって０〜１の範囲を分割した媒介変数を用いて、画素の再配置を行なう。つまり、図２４におけるｊ番目のラインを図２９に示す再構成領域内に再配置する場合、媒介変数ｔをｊ／ＮＬとし、このｊ／ＮＬをベジェ曲線ＢＺ１、ＢＺ２′のそれぞれに代入して得られた２点が、ｊ番目のラインの再配置後の両端位置となる。そして、得られた２点を結んだ直線上に、ｊ番目のライン上の画素を再配置する。
上述のような再構成を行なって得られた画像においては、画素データの抜けた部分が生じる可能性がある。もし画素データの抜けが生じた場合は、その抜けの生じた部分の周囲における画素の平均値を求め、この平均値を、その部分の画素データとして用いる。
以上のようにして画像バッファ１０１の画像データが図３０に示すごとく再構成され、この画像データの歪みが解消され、補正後の画像データが補正画像バッファ１１２に書き込まれる。
なお、本例では、上端から副走査方向画像長の１／３の位置と２／３の位置とにコントロールポイントを置いたが、コントロールポイントはその位置に限定されるものではない。
このように、先出願に記載の他の手法（その１）の画像処理装置１００Ｂによれば、二次元センサを用いることなく、読み取られた画像データのみを用いて画像データの二次元的な歪みを補正することができる。例えば、ハンドヘルド型イメージスキャナ１０のスキャン操作時に図４５（ｂ）に示すような二次元的な滑りが生じ、画像データに図２４に示すような歪みが生じたとしても、その歪みを解消し、歪みの無い高品質の画像データを得ることができる。従って、製造コストの増大を招くことなく、歪みの無い高品質の画像データを得ることができる。
このとき、図５等で説明した一例と同様、左側の画像データ領域および右側の画像データ領域のそれぞれから、副走査方向に適当な間隔（５〜２０ライン）ｄをあけてラインデータが順次抽出され、抽出されたラインデータどうしの相互相関に基づいて、左側および右側のずれ量がそれぞれ推定されるので、主走査方向ずれ量を推定するための計算量が削減されて画像補正処理を効率的に行なえると同時に、主走査方向ずれ量の計算精度を向上させることができる。
また、主走査方向ずれ量に対して平滑化処理してから画像の再構成を行なうことにより、イメージスキャナに急峻な動きをさせたために生じた、画像データにおける急峻なずれを適切に解消することができ、より高画質の画像データを得ることができる。このとき、平滑化処理にベジェ曲線〔上式（４）参照〕を用いることにより、そのベジェ曲線の媒介変数ｔを用いて、画像データの再構成を容易に行なうことができる。
さらに、本例では、画像データである文書画像を成す文字列の傾きに基づいて、画像データの上下両側における画像の傾き角度θ、φを容易に求めることができる。
次に、以下に、先出願記載の他の手法（その２）について説明する。
図３２は、先出願の他の手法（その２）による画像処理装置１００Ｃの構成を示すブロック図であり、この図３２に示す画像処理装置１００Ｃは、上記他の手法（その１）の画像処理装置１００Ｂと比較すると、上下領域抽出部１１５および傾き検出部１１６に代えて、ブロック分割部１１８、傾き推定部１１９、傾きリスト１２０、検知部１２１および境界棄却部１２２が備えられている。なお、図中、既述の符号と同一の符号は同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
ここで、ブロック分割部（分割手段）１１８は、予め指定された分割数（ここでは４または５）に応じて、画像バッファ１０１に格納された画像データを、副走査方向（上下方向）について複数のブロック（例えば図３４の符号ＢＬ１〜ＢＬ４参照）に分割するものである。
傾き推定部（傾き推定手段）１１９は、ブロック分割部１１８により分割されて得られた各ブロックの上下両側における画像の傾きを推定するものである。
この傾き推定部１１９は、複数のブロック（例えば図３４の符号ＢＬ１〜ＢＬ４参照）のうちの隣接する２つのブロックの境界（例えば図３４の符号ｂ１〜ｂ３参照）における画像の傾きを、その境界に跨る領域（例えば図３４の符号ＢＬＲ１〜ＢＬＲ３参照）に存在する画像データに基づいてその境界の傾きとして推定し、傾きリスト１２０に記録する。このように推定された境界（境界ｂｉ；ｉ＝１、２、３）の傾きは、２つのブロックのうちの上側ブロック（ブロックＢＬｉ）の下側における画像の傾き、および、２つのブロックのうちの下側ブロック（ブロックＢＬｉ＋１）の上側における画像の傾きの推定結果として採用される。
また、傾き推定部１１９は、最上ブロック（図３４の符号ＢＬ１参照）の上側における画像の傾きを、画像データの上側領域（例えば図３４の符号ＢＬＲ０参照）に存在する画像データに基づいて、最上部の境界つまり最上ブロックの上側境界（図３４の符号ｂ０参照）の傾きとして推定するとともに、最下ブロック（図３４の符号ＢＬ４参照）の下側における画像の傾きを、画像データの下側領域（例えば図３４の符号ＢＬＲ４参照）に存在する画像データに基づいて、最下部の境界つまり最下ブロックの下側境界（図３４の符号ｂ４参照）の傾きとして推定する。
なお、当該他の手法（その２）においても、上記他の手法（その１）と同様、画像データが文書画像であるものとし、傾き推定部１１９は、その文書画像を成す文字列の傾きに基づいて、各ブロックの上下両側における画像の傾きを検出するが、その際、他の手法（その１）と同様、特開平１１−３４１２５９号公報に開示された技術を用いている。傾き推定部１１９による傾き推定手法については、図３４を参照しながら後述する。
傾きリスト１２０は、上述のように傾き推定部１１９によって推定された各境界の傾きを、各境界を特定しうる識別情報に対応付けて格納するものである。
検知部（検知手段）１２１は、傾きリスト１２０に格納された複数の境界の傾きに基づいて、直近の他の境界に対して所定角度以上の角度を成す境界や他の境界と画像領域内で交差する境界を、傾きを誤って推定された境界として検知するものである。なお、傾きを誤って推定された境界の具体例については、図３５および図３６を参照しながら後述する。
境界棄却部（ブロック統合手段）１２２は、検知部１２１によって検知された境界を挟む２つのブロックを１つのブロックに統合するものである。本例では、境界棄却部１２２が、検知部１２１によって検知された境界（傾きを誤って推定された境界）に対応する傾きを、傾きリスト１２０から削除・棄却することにより、その境界を挟む２つのブロックが１つのブロックに統合されるようになっている。そして、本例では、上述のごとく誤った傾きを棄却された傾きリスト１２０に基づいて、つまり、統合後のブロックに基づいて、ずれ量推定手段２００および再構成部１１７が、それぞれ、推定処理および再構成処理を実行するようになっている。
ずれ量推定部２００は、上述した第１ラインカウンタ１０２、第２ラインカウンタ１０３、距離メモリ１０４、相互相関係数演算部１０５、最小相互相関係数検出部１０６、最小相互相関係数メモリ１０７、ずれ量カウンタ１０８、最小相互相関係数位置メモリ１０９および左右領域抽出部１１４から構成されている。本例のずれ量推定部２００は、上記他の手法（その１）の構成と同様の構成を有し、同一符号を付しており、基本的には同様の機能を果たすものであるが、本例では、ブロック分割部１１８により分割されて得られた各ブロックＢＬｉの左側および右側の主操作方向ずれ量を、各ブロックＢＬｉ内のラインデータを成す部分データ間の相互相関、つまり左側領域Ｗ１および右側領域Ｗ２にそれぞれ属するデータ間の相互相関に基づいて推定するものである。
つまり、本例のずれ量推定部２００においては、ブロックＢＬｉ毎に、左右領域抽出部１１４によって抽出された左右の領域Ｗ１、Ｗ２のそれぞれに対して、図５等で説明したずれ量推定手法が適用され、ラインデータの左右両側のずれ量が、副走査方向に適当な間隔ｄ（例えば５〜２０ライン）をあけたライン毎に推定され、その推定結果がずれ量メモリ１１０に格納されるようになっている。
本例における平滑化処理部１１３は、他の手法（その１）と同様、ずれ量メモリ１１０のずれ量に対し、ベジェ曲線（Ｂｅｚｉｅｒ  ｃｕｒｖｅ）を用いた平滑化処理を施し、平滑化後のずれ量を再構成部１１７へ出力するように構成されている。ただし、本例の平滑化処理部１１３においては、他の手法（その１）とは異なり、図３７を参照しながら後述するごとく、ブロックＢＬｉ毎に、ベジェ曲線を求める際のコントロールポイントが、傾き推定部１１９によって推定され傾きリスト１２０に格納された上下両側における傾きを考慮して決定される。
そして、再構成部１１７は、他の手法（その１）と同様、平滑化処理部１１３によって得られた左右両側のベジェ曲線（ずれ量）の媒介変数ｔを用いて、画像データの再構成を行なうように構成されている。ただし、本例の平滑化処理部１１３および再構成部１１７は、ブロックＢＬｉ毎に平滑化処理および再構成処理を行なうようになっている。
そして、再構成部１１７は、各ブロックＢＬｉについて、ずれ量推定部２００によって推定されずれ量メモリ１１０に格納された左右両側のずれ量（実際には平滑化処理部１１３によって得られたベジェ曲線）と、傾き推定部１１９によって推定され傾きリスト１２０に格納された上下両側における傾きとに基づいて、画像バッファ１０１における各ブロックＢＬｉ内の画像データを再構成し、各ブロックＢＬｉ内の画像データの歪みを解消してから、補正後の各ブロックＢＬｉ内の画像データを補正画像バッファ１１２に書き込むものである。
このとき、再構成部１１７は、図３８を参照しながら後述するごとく、各ブロックＢＬｉについて、上下両側の左右端における画像領域の副走査方向接線と傾き推定部１１９によって推定された上下両側における傾きとを直交させるように各ブロックＢＬｉ内の画像データを再構成する。
このように、ずれ量推定部２００、平滑化処理部１１３および再構成手段１１７は、各ブロックＢＬｉに対して上記その他の手法（その１）の推定部、平滑化処理部１１３および再構成手段１１７と同様の処理を施すものである。
次に、図３３〜図４１を参照しながら、画像処理装置１００Ｃの動作について説明する。
図３３は画像処理装置１００Ｃの画像処理手順を説明するためのフローチャート図、図３４はブロック上下両側の画像の傾き（境界の傾き）を推定する手法を説明するための図、図３５および図３６は、それぞれ、傾きを誤って推定された境界の例を説明するための図、図３７はベジェ曲線のコントロールポイントの選択例を説明するための図、図３８は再構成後のブロックどうしの連結状態（境界の左右端における連結状態）を説明するための図、図３９〜図４１はいずれも本例の画像処理手法を説明するための図である。
本例では、ハンドヘルド型イメージスキャナによって得られ画像バッファ１０１に格納された画像データ（原画像）が、例えば図３９や図４０に示すような文書画像（縦書きの日本語新聞画像）で、この文書画像に対して画像処理装置１００Ｃによる補正処理を施す場合について説明する。本例では、図３９や図４０に示すような二次元的な歪みの生じた文書画像を補正することができる。ここに示す二次元的な歪みは、例えば、スキャン操作時にイメージスキャナが読取対象原稿に対して滑って蛇行することにより生じている。なお、図３９〜図４１において、「○」は文字を示している。また、図３９〜図４１においては、見出し以外の小さな文字（新聞記事を成す文字）について、左右両側の３行分の文字を「○」で示し、それ以外の小さな文字の「○」による表示は省略されている。
図３３に示すフローチャート（ステップＳ１３１〜Ｓ１４１）に従って、第４実施形態の画像処理手順を説明する。
まず、ハンドヘルド型イメージスキャナによって所定の文書画像が読み取られ、読み取られた画像データが画像バッファ１０１に格納される（ステップＳ１３１）。その際、操作者のスキャン操作に伴ってイメージスキャナが蛇行し、例えば図３９に示すような画像データ（文書画像）がスキャンされたものとする。
そして、ブロック分割部１１８により、予め指定された分割情報（分割数）に基づいて、画像バッファ１０１に格納された画像データが、副走査方向（上下方向）について複数のブロックに分割される（ステップＳ１３２）。図３４に示す例では、分割数として４が指定された例が示されており、画像データは、副走査方向に均等な４つのブロックＢＬ１〜ＢＬ４に分割される。なお、図３９に示す例では、分割数として５が指定された例が示されており、画像データは、副走査方向に均等な４つのブロックＢＬ１〜ＢＬ５に分割されている。
この後、傾き推定部１１９により、ブロック分割部１１８により分割されて得られた各ブロックＢＬｉ（ｉ＝１〜４もしくは１〜５）の上下両側における画像の傾きが推定され傾きリスト１２０に格納される（ステップＳ１３３）。その際、特開平１１−３４１２５９号公報に開示された技術を用いて、つまり、図２６、図３１（ａ）および図３１（ｂ）を参照しながら前述した手法に従って、文書画像を成す文字列の傾きに基づいて、各ブロックＢＬｉの上下両側における画像の傾きが検出される。
具体的に説明すると、図３４〜図３６や図３９に示すように、最上ブロックＢＬ１の上側における画像の傾きは、ブロックＢＬ１の上半分の領域ＢＬＲ０に存在する文字列（画像データ）の傾きに基づいて、最上部の境界ｂ０の傾きθ０として推定される。
また、最上ブロックＢＬ１の下側における画像の傾きは、ブロックＢＬ１の下半分およびブロックＢＬ２の上半分からなる領域ＢＬＲ１に存在する文字列（画像データ）の傾きに基づいて、ブロックＢＬ１とブロックＢＬ２との境界ｂ１の傾きθ１として推定される。
このように推定された境界ｂ１の傾きθ１は、ブロックＢ２の上側における画像の傾きとしても採用される。以下、同様にして、各ブロックＢ２、Ｂ３、Ｂ４、Ｂ５の上下両側における画像の傾きが、各境界ｂ２、ｂ３、ｂ４、ｂ５の傾きθ２〜θ５として推定される。
なお、最下ブロックＢＬ４またはＢＬ５の下側における画像の傾きは、ブロックＢＬ４またはＢＬ５の下半分の領域ＢＬＲ４またはＢＬＲ５に存在する文字列（画像データ）の傾きに基づいて、最下部の境界ｂ４またはｂ５の傾きθ４またはθ５として推定される。
ついで、検知部１２１により、傾きリスト１２０に格納された各境界ｂ０〜ｂ５の傾きθ０〜θ５に基づいて、傾きを誤って推定された境界が、棄却対象境界として検知される（ステップＳ１３４）。棄却対象の境界は、直近の他の境界に対して所定角度以上の角度を成す境界、あるいは、他の境界と画像領域内で交差する境界である。
図３５に示す例では、境界ｂ１が、直近の他の境界ｂ０の傾きに対して所定角度以上の角度を成すものと判断され、この境界ｂ１が棄却対象となる。また、図３９に示す例では、境界ｂ４が、直近の他の境界ｂ３に対して所定角度以上の角度を成すものと判断され、この境界ｂ４が棄却対象となる。さらに、図３６に示す例では、境界ｂ１が、他の境界ｂ２と画像領域内で交差するものと判断され、この境界ｂ１が棄却対象となる。
上述のごとく検知部１２１により棄却対象の境界が検知されると、境界棄却部１２２により、棄却対象の境界を挟む２つのブロックが１つのブロックに統合される。このとき、境界棄却部１２２により、棄却対象の境界に関する情報（識別情報や傾きなど）が傾きリスト１２０から削除・棄却され、その棄却対象の境界を挟む２つのブロックが１つのブロックに統合される（ステップＳ１３５）。
図３５や図３６に示す例では、境界ｂ１に関する情報を傾きリスト１２０から削除・棄却することにより、ブロックＢＬ１とＢＬ２とが統合され、統合されたブロックが例えばブロックＢＬ１として取り扱われる。また、図３９および図４０に示す例では、境界ｂ４に関する情報を傾きリスト１２０から削除・棄却することにより、ブロックＢＬ４とＢＬ５とが統合され、統合されたブロックが例えばフロックＢＬ４として取り扱われる。
この後、パラメータｉを初期値“１”に設定してから（ステップＳ１３６）、ずれ量推定部２００により、ブロックＢＬｉについて、左右のずれ量が推定される（ステップＳ１３７）。その際、左右領域抽出部１１４によって抽出された、ブロックＢＬｉの左右の領域Ｗ１およびＷ２のそれぞれに対し、図５等で説明したずれ量推定手法を適用する。これにより、ブロックＢＬｉを成すラインデータの左右両側のずれ量が副走査方向に適当な間隔ｄをあけたライン毎にそれぞれ推定され、その推定結果Ｒ１およびＲ２がずれ量メモリ１１０に格納される。
なお、本例においても、前述した通り、ずれ量メモリ１１０に格納されている左右両側のずれ量は、所定間隔をあけたラインどうしのずれ量で、“−１”もしくは“０”もしくは“１”のいずれか一つの値である。ずれ量の推定結果Ｒ１およびＲ２は、ずれ量メモリ１１０に格納された、左右それぞれの主走査方向ずれ量を順次積算することにより、原画像に対するずれ量（イメージスキャナの動き）を求め、その結果を副走査方向位置に対応させて得られたものである。
ついで、平滑化処理部１１３により、ブロックＢＬｉについて、上述のごとく得られたずれ量の推定結果Ｒ１およびＲ２に対し、ベジェ曲線を用いた平滑化処理が施され、イメージスキャナ（そのラインセンサ）の両端の動きがベジェ曲線で近似される（ステップＳ１３８）。
ベジェ曲線は、一般に上式（４）で表される。
ここでは、ブロックＢＬｉの左側の推定結果Ｒ１を近似したベジェ曲線ＢＺ１のベクトル定数Ａ、Ｂ、Ｃ、Ｄは、それぞれＡ１、Ｂ１、Ｃ１、Ｄ１として表記され、ブロックＢＬｉの右側の推定結果Ｒ２を近似したベジェ曲線ＢＺ２のベクトル定数Ａ、Ｂ、Ｃ、Ｄは、それぞれＡ２、Ｂ２、Ｃ２、Ｄ２として表記されるものとする。そして、図３７に示すように、ベクトル定数Ａ１、Ａ２は、それぞれブロックＢＬｉの２つの上側頂点を示すベクトルとして与えられ、ベクトルＤ１、Ｄ２は、それぞブロックＢＬｉの２つの下側頂点（推定結果Ｒ１、Ｒ２の最下点）を示すベクトルとして与えられる。
そして、ベジェ曲線を求める場合、Ａ（Ａ１、Ａ２）、Ｄ（Ｄ１、Ｄ２）間に２点のコントロールポイントＢ（Ｂ１、Ｂ２）およびＣ（Ｃ１、Ｃ２）を決める必要がある。その際、本例の平滑化処理では、図３７に示すように、傾き推定部１１９によって推定された上下両側における傾き、つまり境界ｂｉ−１およびｂｉの傾きθｉ−１およびθｉを考慮して、コントロールポイントＢ（Ｂ１、Ｂ２）およびＣ（Ｃ１、Ｃ２）が決定される。
図３７において、ブロックＢＬｉの左側頂点Ａ１、Ｄ１間の副走査方向距離をＬｉとし、頂点Ａ１から距離Ｌｉ／３だけ離れた副走査方向ラインをｋ１、頂点Ａ１から距離２・Ｌｉ／３だけ離れた副走査方向ラインをｋ２とする。同様に、ブロックＢＬｉの右側頂点Ａ２、Ｄ２間の副走査方向距離をＬｉ´とし、頂点Ａ２から距離Ｌｉ´／３だけ離れた副走査方向ラインをｋ１´、頂点Ａ２から距離２・Ｌｉ´／３だけ離れた副走査方向ラインをｋ２´とする。なお、Ｗは、前述した通り、イメージスキャナ１０の読取幅（一定）である。また、ここでは、ブロックＢＬｉの頂点間距離ＬｉまたはＬｉ´の３分の１の位置にコントロールポイントＢ（Ｂ１、Ｂ２）およびＣ（Ｃ１、Ｃ２）を設定しているが、これに限定されるものではない。
そして、頂点Ａ１を通過する境界ｂｉ−１に対する垂線と副走査方向ラインｋ１との交点がコントロールポイントＢ１として決定され、頂点Ｄ１を通過する境界ｂｉに対する垂線と副走査方向ラインｋ２との交点がコントロールポイントＣ１として決定される。同様に、頂点Ａ２を通過する境界ｂｉ−１に対する垂線と副走査方向ラインｋ１´との交点がコントロールポイントＢ２として決定され、頂点Ｄ２を通過する境界ｂｉに対する垂線と副走査方向ラインｋ２´との交点がコントロールポイントＣ２として決定される。
上述のごとくベクトル定数Ａ、Ｂ、Ｃ、Ｄを決定することにより、推定結果Ｒ１、Ｒ２をそれぞれ近似するベジェ曲線ＢＺ１、ＢＺ２が上式（４）によって与えられ、左右両側のずれ量が平滑化されるとともに、イメージスキャナの左右両端の動きが推定され、ブロックＢＬｉの外形状が決まる。
この後、再構成部１１７においては、ブロックＢＬｉについて、平滑化処理部１１３での平滑化処理結果を受け、平滑化処理部１１３によって得られた左右両側のベジェ曲線（ずれ量）の媒介変数ｔを用いて、且つ、上下両側の境界ｂｉ−１およびｂｉの傾きθｉ−１およびθｉに基づいて、ブロックＢＬｉ内の画像データが再構成され、各ブロックＢＬｉ内の画像データの歪みが解消される。そして、その再構成結果、つまり補正後のブロックＢＬｉ内の画像データが補正画像バッファ１１２に書き込まれる（ステップＳ１３９）。
このとき、図３７にて説明したようにコントロールポイントＢ（Ｂ１、Ｂ２）およびＣ（Ｃ１、Ｃ２）を設定することにより、再構成部１１７では、図３８に示すごとく、ブロックＢＬｉについて、上側左右端Ａ１、Ａ２における画像領域の副走査方向接線と傾き推定部１１９によって推定された上下両側における傾きθｉ−１およびθｉをもつ境界ｂｉ−１とが直交するように、且つ、下側左右端Ｄ１、Ｄ２における画像領域の副走査方向接線と傾き推定部１１９によって推定された上下両側における傾きθｉをもつ境界ｂｉとが直交するように、ブロックＢＬｉ内の画像データが再構成される。
そして、パラメータｉが分割数（ここでは４または５）に達したか否かを判定し（ステップＳ１４０）、達している場合（ステップＳ１４０、ＹＥＳ）には処理を終了する一方、達していない場合（ステップＳ１４０、ＮＯ）にはパラメータｉを１だけインクリメントしてから（ステップＳ１４１）、ステップＳ１３７に戻る。なお、パラメータｉが、境界棄却部１２２によって棄却された境界に対応するものである場合、ステップＳ１３７〜Ｓ１３９の処理を省略してステップＳ１４０へ移行する。
上述のような処理を繰り返すことにより、例えば、図３９に示すごとくイメージスキャナ１０によって取り込まれ５分割された後、図４０に示すごとく境界棄却部１２２によって４つのブロックＢＬ１〜ＢＬ４に統合された画像データは、図４１に示すように、ブロックＢＬｉ（ｉ＝１〜４）毎に再構成されることになる。
このように、本例の画像処理装置１００Ｃによれば、画像データを複数のブロックＢＬｉに分割し、ブロックＢＬｉ毎にそのブロックＢＬｉ内の画像データの再構成を行なうことにより、例えばハンドヘルド型イメージスキャナで画像データを読み取った際にこのイメージスキャナが蛇行していたとしても、二次元センサを用いることなく、イメージスキャナにより読み取られた画像データのみを用いて、蛇行に伴う画像データの二次元的な歪みを補正することができるので、製造コストの増大を招くことなく、歪みの無い高品質の画像データを得ることができる。
このとき、隣接する２つのブロックＢＬｉ−１、ＢＬｉの境界ｂｉ−１における画像の傾きが、この境界ｂｉ−１に跨って存在する画像データに基づいて、この境界ｂｉ−１の傾きθｉ−１として推定され、推定された傾きθｉ−１が、上側ブロックＢＬｉ−１の下側における画像の傾き、および、下側ブロックＢＬｉの上側における画像の傾きの推定結果として採用される。つまり、一つの境界ｂｉ−１の傾きθｉ−１を推定することで、上側ブロックＢＬｉ−１の下側傾きと下側ブロックＢＬｉの上側傾きとを同時に推定することができる。また、上側ブロックＢＬｉ−１の下側傾きと下側ブロックＢＬｉの上側傾きとが、別々に推定されるのではなく、共通の傾きとして推定され同一の傾きとなるので、再構成後のブロックＢＬｉ−１、ＢＬｉ同士が、副走査方向に隙間なく確実に連結されることになる。
境界棄却部１２２を用いて、直近の他の境界に対して所定角度以上の角度を成す境界や、他の境界と画像領域内で交差する境界は、その傾きを誤って推定されたものであると判断し、その誤った境界を挟む２つのブロックを１つのブロックに統合することにより、傾きを誤って推定された境界は棄却されるので、誤った傾きに基づいて画像再構成が行なわれるのを防止でき、誤りの少ない画像再構成を行なうことができる。
また、上側ブロックＢＬｉ−１の下側傾きと下側ブロックＢＬｉの上側傾きとが同一の傾きとなるように推定された場合、各ブロックＢＬｉについて、上下両側の左右端における画像領域の副走査方向接線と上下両側における傾きとを直交させるように、そのブロックＢＬｉ内の画像データを再構成する。これにより、再構成後のブロックどうしを連結した際に、境界の左右端における画像領域の副走査方向接線が滑らかになり、より高品質の画像データを得ることができる。
このとき、図５等で説明した手法と同様、左側の画像データ領域および右側の画像データ領域のそれぞれから、副走査方向に適当な間隔（５〜２０ライン）ｄをあけてラインデータが順次抽出され、抽出されたラインデータどうしの相互相関に基づいて、左側および右側のずれ量がそれぞれ推定されるので、主走査方向ずれ量を推定するための計算量が削減されて画像補正処理を効率的に行なえると同時に、主走査方向ずれ量の計算精度を向上させることができる。
また、上記他の手法（その１）と同様、本例でも、主走査方向ずれ量に対して平滑化処理してから画像の再構成を行なうことにより、イメージスキャナに急峻な動きをさせたために生じた、画像データにおける急峻なずれを適切に解消することができ、より高画質の画像データを得ることができる。このとき、平滑化処理にベジェ曲線〔上式（４）参照〕を用いることにより、そのベジェ曲線の媒介変数ｔを用いて、画像データの再構成を容易に行なうことができる。
さらに、上記他の例（その１）と同様、本例でも、画像データである文書画像を成す文字列の傾きに基づいて、各ブロックＢＬｉの上下両側における画像の傾きθｉ−１およびθｉを容易に求めることができる。
上述した画像処理装置１００〜１００Ｃによれば、二次元センサを用いることなく、読み取られた画像データのみを用いて画像データのずれ（一次元的な歪み、または蛇行に伴う画像データの二次元的な歪み）を補正することができるので、製造コストの増大を招くことなく、歪みの無い高品質の画像データを得ることができる。
尚、上述した説明では、処理対象の画像データが文書画像である場合について説明しているが、これに限定されるものではなく、罫線やグラフや枠付き画像などを含む画像データであれば、上述と同様にして画像データの歪みを解消するようにその画像データを補正することができる。
なお、実際には、画像処理装置１００は、例えばパーソナルコンピュータ等の情報処理装置によって実現される。情報処理装置内のメモリ（ＲＡＭ、ＲＯＭ、ハードディスク等）が、画像バッファ１０１、第１ラインカウンタ１０２、第２ラインカウンタ１０３、距離メモリ１０４、最小相互相関係数メモリ１０７、ずれ量カウンタ１０８、最小相互相関係数位置メモリ１０９、ずれ量メモリ１１０および補正画像バッファ１１２としての機能を果たしている。また、情報処理装置内のＣＰＵが所定の画像処理プログラムを実行することにより、相互相関係数演算部１０５、最小相互相関係数検出部１０６、線形補完処理部１１１等の各種機能部の機能が実現されるようになっている。
上述してある通り、本発明の画像結合装置１０は、任意の情報処理装置（コンピュータ）によって実現される（画像処理装置１００等も同様である）。
図４２は、このようなコンピュータのハードウェア構成の一例を示す図である。
同図に示すコンピュータ３００は、ＣＰＵ３０１、メモリ３０２、入力装置３０３、出力装置３０４、外部記憶装置３０５、媒体駆動装置３０６、ネットワーク接続装置３０７等を有し、これらがバス３０８に接続された構成となっている。同図に示す構成は一例であり、これに限るものではない。
ＣＰＵ３０１は、当該サーバ３００全体を制御する中央処理装置である。
メモリ３０２は、プログラム実行、データ更新等の際に、外部記憶装置３０５（あるいは可搬記録媒体３０９）に記憶されているプログラムあるいはデータを一時的に格納するＲＡＭ等のメモリである。ＣＰＵ３０１は、メモリ３０２に読み出したプログラムを実行して、上述してある各種処理／機能（図２〜図４等に示す処理等や、図１に示す各機能部の機能）を実現する。
入力装置３０３は、例えばキーボード、マウス、タッチパネル等である。
出力装置３０４は、例えばディスプレイ、プリンタ等である。
外部記憶装置３０５は、例えば磁気ディスク装置、光ディスク装置、光磁気ディスク装置等であり、上述してきた画像結合装置としての各種機能を実現させる為のプログラム／データ等が格納されている。
媒体駆動装置３０６は、可搬記録媒体３０９に記憶されているプログラム／データ等を読み出す。可搬記録媒体３０９は、例えば、ＦＤ（フレキシブルディスク）、ＣＤ−ＲＯＭ、その他、ＤＶＤ、光磁気ディスク等である。
ネットワーク接続装置３０７は、ネットワークに接続して、外部の情報処理装置とプログラム／データ等の送受信を可能にする構成である。
図４３は、上記プログラムを記録した記録媒体、当該プログラムのダウンロードの一例を示す図である。
図示のように、上記本発明の機能を実現するプログラム／データが記憶されている可搬記録媒体３０９から情報処理装置３００側に読み出して、メモリ３０２に格納し実行するものであってもよいし、また、上記プログラム／データは、ネットワーク接続装置３０７により接続しているネットワーク３２０（インターネット等）を介して、外部のサーバ３１０の記憶部３１１に記憶されているプログラム／データをダウンロードするものであってもよい。
また、本発明は、装置／方法に限らず、上記プログラム／データを格納した記録媒体（可搬記録媒体３０９等）自体として構成することもできるし、上記プログラム自体として構成することもできる。
【産業上の利用の可能性】
以上詳細に説明したように、本発明の画像結合装置、画像結合方法、プログラム等によれば、手動操作型スキャナ等を用いて複数回に分けて入力した複数の画像の少なくとも１つに、歪み／伸縮が生じていた場合でも、これら複数の画像を結合する際に、まず、各画像単体の歪みの検出・補正を行うことで、重なり位置を検出できるようにし、更に複数の画像相互の歪みの検出・補正、または伸縮の検出・補正を行うことで、重なり部分の画素ずれの影響を抑え、合成部分の画質が低下することなく高精度に複数個の画像を結合することができる。
以上のことから、本発明は、手動操作型スキャナによる画像入力の操作性およびユーザインタフェースの改善に寄与するところが大きい。
【図１】
2004077356.tif 000008
【図２】
2004077356.tif 000009
【図３】
2004077356.tif 000010
【図４】
2004077356.tif 000011
【図５】
2004077356.tif 000012
【図６】
2004077356.tif 000013
【図７】
2004077356.tif 000014
【図８】
2004077356.tif 000015
【図９】
2004077356.tif 000016
【図１０】
2004077356.tif 000017
【図１１】
2004077356.tif 000018
【図１２】
2004077356.tif 000019
【図１３】
2004077356.tif 000020
【図１４】
2004077356.tif 000021
【図１５】
2004077356.tif 000022
【図１６】
2004077356.tif 000023
【図１７】
2004077356.tif 000024
【図１８】
2004077356.tif 000025
【図１９】
2004077356.tif 000026
【図２０】
2004077356.tif 000027
【図２１】
2004077356.tif 000028
【図２２】
2004077356.tif 000029
【図２３】
2004077356.tif 000030
【図２４】
2004077356.tif 000031
【図２５】
2004077356.tif 000032
【図２６】
2004077356.tif 000033
【図２７】
2004077356.tif 000034
【図２８】
2004077356.tif 000035
【図２９】
2004077356.tif 000036
【図３０】
2004077356.tif 000037
【図３１】
2004077356.tif 000038
【図３２】
2004077356.tif 000039
【図３３】
2004077356.tif 000040
【図３４】
2004077356.tif 000041
【図３５】
2004077356.tif 000042
【図３６】
2004077356.tif 000043
【図３７】
2004077356.tif 000044
【図３８】
2004077356.tif 000045
【図３９】
2004077356.tif 000046
【図４０】
2004077356.tif 000047
【図４１】
2004077356.tif 000048
【図４２】
2004077356.tif 000049
【図４３】
2004077356.tif 000050
【図４４】
2004077356.tif 000051
【図４５】
2004077356.tif 000052
【図４６】
2004077356.tif 000053
【図４７】
2004077356.tif 000054
【図４８】
2004077356.tif 000055
【図４９】
2004077356.tif 000056
【国際調査報告】
2004077356.tif 000057
2004077356.tif 000058
2004077356.tif 000059
2004077356.tif 000060