(57)【特許請求の範囲】
【請求項１】
互いに異なる局所的な伸縮が生じている一対の画像について、前記一対の画像を連結する画像端上の注目画素から個々の画像上で注目画素と同一の画素値範囲の画素が最も長く繋がっている方向を各々演算し、演算した前記方向の差に基づいて前記一対の画像における二組以上のラインの対応関係を検知する対応関係検知部と、
前記対応関係検知部によって検知された前記一対の画像におけるラインの対応関係に基づいて、前記一対の画像に対して前記局所的な伸縮を各々補正する補正部と、
前記補正部による補正を経た前記一対の画像を単一の画像に連結する連結部と、
を含む画像処理装置。
【請求項２】
前記補正部は、前記一対の画像に対して前記局所的な伸縮を各々補正する処理として、前記ラインの対応関係に基づいて、前記一対の画像のうちの一方の画像の各ラインの中に、他方の画像の同一のラインと対応付いているラインが複数存在していた場合に、前記他方の画像の同一のラインと対応付いている複数のラインを１本のラインを残して削除する処理を含む処理を行う請求項１に記載の画像処理装置。
【請求項３】
前記補正部は、前記一対の画像に対して前記局所的な伸縮を各々補正する処理として、前記ラインの対応関係に基づいて、一対の画像のうちの一方の画像上で隣合う第１の一対のラインで挟まれた領域における前記第１の一対のラインの間隔を、他方の画像において前記第１の一対のラインに対応する第２の一対のラインで挟まれた領域における前記第２の一対のラインの間隔に合致するように縮小又は拡大する処理を行う請求項１又は請求項２に記載の画像処理装置。
【請求項４】
互いに異なる局所的な伸縮が生じている一対の画像について、前記一対の画像を連結する画像端上の注目画素から個々の画像上で注目画素と同一の画素値範囲の画素が最も長く繋がっている方向を各々演算し、演算した前記方向の差に基づいて前記一対の画像における二組以上のラインの対応関係を検知し、
前記検知した前記一対の画像におけるラインの対応関係に基づいて、前記一対の画像に対して前記局所的な伸縮を各々補正し、
前記補正を経た前記一対の画像を単一の画像に合成する処理をコンピュータが実行する画像処理方法。
【請求項５】
コンピュータに、
互いに異なる局所的な伸縮が生じている一対の画像について、前記一対の画像を連結する画像端上の注目画素から個々の画像上で注目画素と同一の画素値範囲の画素が最も長く繋がっている方向を各々演算し、演算した前記方向の差に基づいて前記一対の画像における二組以上のラインの対応関係を検知し、
前記検知した前記一対の画像におけるラインの対応関係に基づいて、前記一対の画像に対して前記局所的な伸縮を各々補正し、
前記補正を経た前記一対の画像を単一の画像に合成する
処理を行わせるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は画像処理装置、画像処理方法及び画像処理プログラムに関する。
【背景技術】
【０００２】
原稿をスキャナで読み取る際に、スキャナの読取可能な原稿サイズが読取対象の原稿サイズよりも小さい場合、以下の読取方法が知られている。第１の読取方法は、例えばスキャナの読取可能な原稿サイズがＡ４で読取対象の原稿サイズがＡ３の場合に、Ａ３サイズの原稿を二つ折りにして専用のシートの所定の位置に挟み込んだ後に両面スキャンし、スキャン画像を連結する方法である。また、第２の読取方法は、例えばスキャナの読取可能な原稿サイズＡ４で読取対象の原稿サイズがＡ３の場合に、スキャナを非分離給紙モードに設定し、二つ折りにしたＡ３サイズの原稿を両面スキャンし、スキャン画像を連結する方法である。
【０００３】
しかし、第１の読取方法及び第２の読取方法は、共に、原稿を二つ折りにした後、原稿を一枚一枚手作業で専用シートに挟み込んだり、スキャナに投入する必要がある。従って、読取対象の原稿が大量に存在した場合、ＡＤＦ(Auto Document Feeder)を十分に活用できず、作業に非常に手間が掛かる。そこで、第３の読取方法として、原稿をスキャナが読取可能なサイズ(例えばＡ３サイズを半分のＡ４サイズ)に切断し、ＡＤＦを用いてスキャンした後、読み取った画像を元のサイズの画像に再構成(連結)する方法が考えられる。但し、第３の読取方法では、読み取り時の原稿の搬送速度の変動などにより、読み取った複数の画像を単純に連結すると、画像の境界で不整合が生じる。
【０００４】
上記に関連して、分割して読み取った画像を自動的につなぎ合わせる技術が提案されている。この技術は、境界に垂直方向に存在する線分を抽出し、抽出した線分に画像の境界で段差が生じないように、一方の画像を平行移動して位置を調整している。
【０００５】
また、１枚目の画像と２枚目の画像に跨る文字や図形について、その合致するポイントが最大となるように左右の画像の位置を調整し、原稿のずれが少ない合成画像を得る技術も提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−２３２０４号公報
【特許文献２】特開平８−２０４９４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の各技術は、一対の画像の連結に際し、上下左右に画像を平行移動させることで、画像の境界で図形が滑らかに繋がるように調整している。しかしながら、原稿を搬送しながら前記原稿を読み取ることで得られる画像は、原稿の搬送速度の変動などにより、局所的な伸縮が生じている。そして、例えば前述の第３の読取方法では、原稿を異なるタイミングで読み取ることで連結対象の一対の画像を得ているため、連結対象の一対の画像における局所的な伸縮が生じている箇所や伸縮の程度は互いに相違している。このように、互いに異なる局所的な伸縮が生じている複数の部分画像を連結する場合、画像を平行移動させる位置調整を行ったのみでは、画像の境界の全長に亘ってずれなく繋げることは困難であった。
【０００８】
開示の技術は、一つの側面として、互いに異なる局所的な伸縮が生じている複数の部分画像の連結に際し、画像の境界の全長に亘ってずれの発生を抑制することが目的である。
【課題を解決するための手段】
【０００９】
開示の技術では、互いに異なる局所的な伸縮が生じている一対の画像について、前記一対の画像を連結する画像端上の注目画素から個々の画像上で注目画素と同一の画素値範囲の画素が最も長く繋がっている方向を各々演算する。また、演算した前記方向の差に基づいて前記一対の画像における二組以上のラインの対応関係を検知する。また、前記対応関係検知部によって検知された前記一対の画像におけるラインの対応関係に基づいて、前記一対の画像に対して前記局所的な伸縮を各々補正する。そして、前記補正を経た前記一対の画像を単一の画像に連結する。
また、開示の技術では、原稿を搬送しながらライン単位で前記原稿を読み取ることを、互いに異なるタイミングで各々で行うことで得られた、互いに異なる局所的な伸縮が生じている一対の画像に対して以下の処理を行う。すなわち、一方の画像についてライン単位で前記原稿の読み取りを行っている期間にライン毎に検出された前記原稿の搬送量を、他方の画像についてライン単位で前記原稿の読み取りを行っている期間にライン毎に検出された前記原稿の搬送量と比較する。また、一方の画像の個々のライン毎に、他方の画像の個々のラインのうち前記原稿の搬送量が最も近いラインと対応付けることで、前記一対の画像における二組以上のラインの対応関係を検知する。そして、前記検知した前記一対の画像におけるラインの対応関係に基づいて、前記一対の画像に対して前記局所的な伸縮を各々補正し、前記補正を経た前記一対の画像を単一の画像に合成する。
また、開示の技術では、原稿を搬送しながらライン単位で前記原稿を読み取ることを、互いに異なるタイミングで各々で行うことで得られ、互いに異なる局所的な伸縮が生じている一対の画像に対して以下の処理を行う。すなわち、前記原稿を搬送しながらライン単位で前記原稿の読み取りを行っている期間にライン毎に検出された前記原稿の搬送量を、原稿の読み取りにおける解像度から演算した、画像の個々のラインを読み取った際の前記原稿の理想搬送量と比較する。また、前記画像の個々のライン毎に、個々のラインのうち前記原稿の理想搬送量が最も近いラインと対応付けることを各々行うことで、前記一対の画像における二組以上のラインの対応関係を検知する。そして、前記検知した前記一対の画像におけるラインの対応関係に基づいて、前記一対の画像に対して前記局所的な伸縮を各々補正し、前記補正を経た前記一対の画像を単一の画像に合成する。
【発明の効果】
【００１０】
開示の技術は、一つの側面として、互いに異なる局所的な伸縮が生じている複数の部分画像の連結に際し、画像の境界の全長に亘ってずれの発生を抑制できる、という効果を有する。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係る画像処理装置の機能ブロック図である。
【図２】画像処理装置として機能するコンピュータの一例を示す概略ブロック図である。
【図３】画像連結処理を示すフローチャートである。
【図４】第１実施形態に係る対応関係検知処理を示すフローチャートである。
【図５】黒画素から連続して最も長く繋がる方向を特徴として演算する例を説明するための説明図である。
【図６】(Ａ)は左画像の右辺上の特徴量の一例、(Ｂ)は右画像の左辺上の特徴量の一例を示す概略図である。
【図７】動的計画法によるコストの演算を説明するための説明図である。
【図８】コストの演算に伴って選択されるパスを説明するための説明図である。
【図９】対応関係検知処理で検知された対応関係の一例を示す図表である。
【図１０】第１実施形態に係る局所伸縮補正処理を示すフローチャートである。
【図１１】局所伸縮補正処理における重複するラインの削除を説明するためのイメージ図である。
【図１２】局所伸縮補正処理における重複するラインの削除を説明するためのイメージ図である。
【図１３】局所伸縮補正処理による局所的な伸縮補正を説明するためのイメージ図である。
【図１４】第２実施形態に係る画像処理装置の機能ブロック図である。
【図１５】第２実施形態に係るスキャナの原稿読取部の一例を示す概略構成図である。
【図１６】ライン毎の原稿搬送量の検出結果の一例を示す図表である。
【図１７】左画像及び右画像のライン毎の原稿搬送量の検出結果の一例を示す図表である
【図１８】第２実施形態に係る対応関係検知処理を示すフローチャートである。
【図１９】対応関係検知処理で検知された対応関係の一例を示す図表である。
【図２０】第３実施形態に係る画像処理装置の機能ブロック図である。
【図２１】ライン毎の原稿搬送量の検出結果の一例を示す図表である
【図２２】第３実施形態に係る対応関係検知処理を示すフローチャートである。
【図２３】演算で求められたライン毎の原稿の理想搬送量の一例を示す図表である。
【図２４】第３実施形態に係る局所伸縮補正処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
【００１３】
〔第１実施形態〕
図１には、本実施形態に係る画像処理装置１０が示されている。画像処理装置１０は、原稿の頁をスキャナが読取可能なサイズに切断し、原稿を搬送しながら前記原稿を読み取る構成のスキャナによって別々に読み取った後、得られた複数の部分画像に対して局所的な伸縮補正を行って元のサイズの画像に連結する装置である。画像処理装置１０は、画像記憶部１２、対応関係検知部１４、局所伸縮補正部１６、画像連結部１８、連結画像記憶部２０を備えている。
【００１４】
画像記憶部１２は、スキャナが読取可能なサイズに原稿の各頁が切断されてスキャナによって読み取られることで得られた連結対象の複数の部分画像の画像データをスキャナから取得し、取得した連結対象の複数の部分画像の画像データを記憶する。なお、例えば原稿のサイズがＡ３、スキャナの読取可能なサイズがＡ４の場合、原稿は短辺と平行な方向に沿って２つのＡ４サイズの部分原稿に切断され、Ａ４サイズの部分原稿はスキャナによって長辺方向に沿って搬送されて別々に読み取られる。
【００１５】
画像記憶部１２に記憶される個々の画像(例えば左画像と右画像)は、スキャナによって別々に読み取られることで、互いに異なる局所的な伸縮が生じている。対応関係検知部１４は、画像記憶部１２に記憶され、互いに異なる局所的な伸縮が生じている連結対象の一対の画像における各ラインの対応関係を検知する処理を行う。なお、本実施形態におけるラインは、連結対象の一対の画像における連結対象の辺におよそ直交する方向に沿って延びる画素列を意味しており、連結対象の辺には、辺の延びる方向に沿って複数のラインが配列されている。局所伸縮補正部１６は、対応関係検知部１４によって検知された連結対象の一対の画像における各ラインの対応関係に基づき、連結対象の一対の画像に対して局所的な伸縮を各々補正する。画像連結部１８は、局所伸縮補正部１６によって局所的な伸縮が補正された連結対象の一対の画像を単一の画像として連結する。連結画像記憶部２０は、画像連結部１８によって連結された画像を記憶する。
【００１６】
なお、対応関係検知部１４は開示の技術における検知部の一例であり、局所伸縮補正部１６は開示の技術における補正部の一例であり、画像連結部１８は開示の技術における連結部の一例である。
【００１７】
画像処理装置１０は、例えば図２に示すコンピュータ２４で実現することができる。コンピュータ２４はＣＰＵ２６、メモリ２８、不揮発性の記憶部３０、ディスプレイ３２、キーボードやマウス等の入力デバイス３４及び外部Ｉ／Ｆ部３６を備えている。ＣＰＵ２６、メモリ２８、記憶部３０、ディスプレイ３２、入力デバイス３４及び外部Ｉ／Ｆ部３６はバス３８を介して互いに接続されている。外部Ｉ／Ｆ部３６にはスキャナ４０が接続されている。スキャナ４０は、読取対象の原稿を搬送しながら読み取る構成である。
【００１８】
また、記憶部３０はＨＤＤ(Hard Disk Drive)やフラッシュメモリ等によって実現できる。記録媒体としての記憶部３０は、コンピュータ２４を画像処理装置１０として機能させるための画像連結プログラム４２を記憶し、画像記憶領域５２及び連結画像記憶領域５４が設けられている。ＣＰＵ２６は、画像連結プログラム４２を記憶部３０から読み出してメモリ２８に展開し、画像連結プログラム４２が有するプロセスを順次実行する。
【００１９】
画像連結プログラム４２は、対応関係検知プロセス４４、局所伸縮補正プロセス４６及び画像連結プロセス４８を有する。ＣＰＵ２６は、対応関係検知プロセス４４を実行することで、図１に示す対応関係検知部１４として動作する。またＣＰＵ２６は、局所伸縮補正プロセス４６を実行することで、図１に示す局所伸縮補正部１６として動作する。またＣＰＵ２６は、画像連結プロセス４８を実行することで、図１に示す画像連結部１８として動作する。
【００２０】
画像処理装置１０がコンピュータ２４で実現される場合、画像記憶領域５２は図１に示す画像記憶部１２として機能し、連結画像記憶領域５４は図１に示す連結画像記憶部２０として機能する。これにより、画像連結プログラム４２を実行したコンピュータ２４が、画像処理装置１０として機能することになる。なお、画像連結プログラム４２は開示の技術における画像処理プログラムの一例である。
【００２１】
なお、画像処理装置１０は、例えば半導体集積回路、より詳しくはＡＳＩＣ(Application Specific Integrated Circuit)等で実現することも可能である。
【００２２】
次に本第１実施形態の作用を説明する。画像処理装置１０は、スキャナ４０による部分原稿の読み取りが完了し、連結対象の一対の画像の画像データがスキャナ４０から出力されて画像記憶部１２に記憶されると、図３に示す画像連結処理を行う。画像連結処理のステップ７０において、対応関係検知部１４は、画像記憶部１２に記憶された連結対象の一対の画像の画像データを画像記憶部１２から読み出す。
【００２３】
次のステップ７２において、対応関係検知部１４は、連結対象の一対の画像における各ラインの対応関係を検知する対応関係検知処理を行う。以下、図４を参照し、本第１実施形態に係る対応関係検知処理の詳細を説明する。
【００２４】
対応関係検知処理のステップ８０において、対応関係検知部１４は、連結対象の一対の画像(以下ではそれぞれを左画像、右画像と称して区別する)に対して二値化処理を行う。
【００２５】
なお、スキャナ４０から出力されて画像記憶部１２に記憶された画像が既に二値画像であった場合は、上記の二値化処理は不要である。二値画像以外の画像を二値画像に変換する方法については、既に様々な方法が知られており、例えば、カラー画像(24ビットフルカラー画像)を8ビットグレイスケール画像へ変換した後、二値画像へ変換する方法等を適用可能である。なお、以下では二値画像上における背景の画素を白画素、それ以外の画素を黒画素と称する。
【００２６】
次のステップ８２において、対応関係検知部１４は、左画像の右辺の画素列(座標(ｘ,ｙ)の画素列)を処理対象の画素列に設定する。但し、処理対象の画素列の座標(ｘ,ｙ)において、ｘ＝Ｎl，ｙ＝１〜Ｍlであり、Ｍlは左画像の高さ、Ｎlは左画像の幅である。ここで、処理対象の画素列に設定した左画像の右辺は、右画像と連結する辺であり、以下では、左画像の右辺についてライン毎に特徴量を求める。
【００２７】
すなわち、ステップ８４において、対応関係検知部１４は、変数ｙに１を設定する。次のステップ８６において、対応関係検知部１４は、処理対象の画素列に含まれる座標(Ｎl,ｙ)の画素が黒画素か否か判定する。ステップ８６の判定が否定された場合(白画素の場合)はステップ９０へ移行し、ステップ９０において、対応関係検知部１４は、座標(Ｎl,ｙ)の画素の特徴量を０に設定し、ステップ９２へ移行する。なお、白画素の特徴量として０以外の一定値を用いてもよい。
【００２８】
一方、座標(Ｎl,ｙ)の画素が黒画素の場合は、ステップ８６の判定が肯定されてステップ８８へ移行する。ステップ８８において、対応関係検知部１４は、座標(Ｎl,ｙ)の画素の特徴量として、座標(Ｎl,ｙ)の画素から黒画素が連続して最も長く繋がる方向を演算する。具体的には、例として図５に示すように、注目画素(座標(Ｎl,ｙ)の画素)から放射状に直線を伸ばし、他の黒画素と連続して交わる距離の最も長い方向を求め、求めた方向を注目画素の特徴量とする。注目画素から放射状に伸ばす方向は、例えば、０°〜180°を12等分したときの角度を１単位として用いることができる。図５に示す例では、連続する最後の黒画素迄の距離が、０°では"1"、15°では"2.2"、30°では"5"、45°では"9.9"、60°では"7.2"、75°では"3.2"、90°では"3"であるので、注目画素の特徴量は"45"になる。
【００２９】
次のステップ９２において、対応関係検知部１４は、ステップ８８又はステップ９０で設定された画素(Ｎl,ｙ)における特徴量を、例えばメモリ２８等に記憶させる。次のステップ９４において、対応関係検知部１４は、変数ｙが左画像の高さＭl以下か否か判定する。ステップ９４の判定が肯定された場合はステップ９６へ移行し、ステップ９６において、対応関係検知部１４は、変数ｙを１だけインクリメントしてステップ８６に戻る。これにより、ステップ９４の判定が否定される迄、ステップ８６〜ステップ９６が繰り返される。
【００３０】
左画像の右辺の全画素の特徴量がＭl個の要素として配列化されたデータが、左画像の右辺の特徴量として求まると、変数ｙが左画像の高さＭlよりも大きくなり、ステップ９４の判定が否定されてステップ９８へ移行する。ステップ９８において、対応関係検知部１４は、右画像の左辺の画素列(座標(ｘ,ｙ)の画素列)を処理対象の画素列に設定する。但し、処理対象の画素列の座標(ｘ,ｙ)において、ｘ＝１、ｙ＝１〜Ｍrであり、Ｍrは右画像の高さ、Ｎrは右画像の幅である。処理対象の画素列に設定した右画像の左辺は、左画像と連結する辺であり、以下では、右画像の左辺についてライン毎に特徴量を求める。
【００３１】
すなわち、ステップ１００において、対応関係検知部１４は、変数ｙに１を設定する。次のステップ１０２において、対応関係検知部１４は、処理対象の画素列に含まれる座標(１,ｙ)の画素が黒画素か否か判定する。ステップ１０２の判定が否定された場合(白画素の場合)はステップ１０６へ移行し、ステップ１０６において、対応関係検知部１４は、座標(１,ｙ)の画素の特徴量を０に設定し、ステップ１０８へ移行する。なお、白画素の特徴量として０以外の一定値を用いてもよい。
【００３２】
一方、座標(１,ｙ)の画素が黒画素の場合は、ステップ１０２の判定が肯定されてステップ１０４へ移行する。ステップ１０４において、対応関係検知部１４は、先に説明したステップ８８と同様にして、座標(Ｎr,ｙ)の画素の特徴量として、座標(１,ｙ)の画素から黒画素が連続して最も長く繋がる方向を演算する。
【００３３】
次のステップ１０８において、対応関係検知部１４は、ステップ１０４又はステップ１０６で設定された画素(１,ｙ)における特徴量を、例えばメモリ２８等に記憶させる。次のステップ１１０において、対応関係検知部１４は、変数ｙが右画像の高さＭr以下か否か判定する。ステップ１１０の判定が肯定された場合はステップ１１２へ移行し、ステップ１１２において、対応関係検知部１４は、変数ｙを１だけインクリメントしてステップ１０２に戻る。これにより、ステップ１１０の判定が否定される迄、ステップ１０２〜ステップ１１２が繰り返される。
【００３４】
右画像の左辺の全画素の特徴量がＭr個の要素として配列化されたデータが、右画像の左辺の特徴量として求まると、変数ｙが右画像の高さＭrの値よりも大きくなり、ステップ１１０の判定が肯定されてステップ１１４へ移行する。次のステップ１１４以降において、対応関係検知部１４は、左画像の右辺の特徴量ａi(i=1,…,Ｍl)及び右画像の左辺の特徴量ｂj(j=1,…,Ｍr)の配列に対し、端点固定の動的計画法(ＤＰ：Dynamic Programming)を適用してライン間の対応関係を求める。
【００３５】
すなわち、ステップ１１４において、対応関係検知部１４は、左画像の右辺の特徴量ａiと右画像の左辺の特徴量ｂjに対し、動的計画法の漸化式(次の(１),(２)式)に基づいて変数Ｘij及びコストＣijの演算を行い、選択されたパスも記録する。
Ｘij＝|ａi−ｂj|  …(１)
Ｃij＝ＭＩＮ{Ｃi-2,j-1＋Ｃi-1,j＋Ｘij  ,
Ｃi-1,j-1＋２×Ｘij  ,     
Ｃi-1,j-2＋Ｃi,j-1＋Ｘij}  …(２) 
【００３６】
なお、(１)式における"| |"は特徴量が表す方向の差を示す。例えば図６(Ａ),(Ｂ)に示す二つの方向の差は15°(＝45°−30°、又は、45°−(−150°)＋180°)となる。方向の差は(ａi−ｂj)の値に対して180°を加減算することで、必ず0°以上90°未満の値となる。(１)式に従って変数Ｘijを演算した結果の一例を図７(Ａ)に示す。また、(２)式におけるＭＩＮ( )は括弧内の最小値を選択することを表す演算子である。(２)式に従ってコストＣijを演算した結果の一例を図７(Ｂ)に示す。
【００３７】
また、(２)式におけるＭＩＮ( )内に配列された３つの項は、図７(Ｃ)に示すように、左画像の右辺の特徴量ａiと右画像の左辺の特徴量ｂjによって形成されるマトリクス上における互いに異なるパス(1)〜(3)に対応している(図８も参照)。(２)式に従ってコストＣijを演算する際には、ＭＩＮ( )の３つの項のうちの何れの項(パス)を選択したのかも記録する。パスの記録結果の一例を図７(Ｃ)に示す。
【００３８】
次のステップ１１６において、対応関係検知部１４は、動的計画法のコスト表(図７(Ｂ)参照)において、ＣMl,Mr(コスト表の右下隅)からＣ0,0(コスト表の左上隅)へ向かい、かつコストが最小のパスのルートをバックトレースにより探索する。例えば、図７(Ｃ)において、(i,j)＝(3,3)からバックトレースを行うことを考えると、(i,j)＝(3,3)のセルに記録されているパスは(3)であるので、図８にパス(3)として示すルートに沿って(3, 3)→(3,2)→(2, 1)と遡る。次に、(i,j)＝(2,1)のセルにはパス(1)が記録されているので、図８にパス(1)として示すルートに沿って(2, 1)→(1, 1)→開始点と遡ることができる。従って、(3, 3)→(3, 2)→(2, 1)→(1, 1)→開始点と遡るルートがバックトレースにより発見される。
【００３９】
次のステップ１１８において、対応関係検知部１４は、ステップ１１６の探索で発見したルートを記録し、記録したルートを、左画像の右辺と右画像の左辺における各ラインのライン番号の対応関係を表す対応関係情報へ変換する。一例として、ステップ１１６の探索で(3, 3)→(3,2)→(2, 1)→(1, 1)→開始点と遡るルートが発見された場合、対応関係情報が表す各ラインの対応関係として、図９に示す対応関係が得られる。なお、(１)式及び(２)式の漸化式は単なる一例であり、漸化式を変えることで特徴量ａi,ｂjの対応付けの特性を制御することができ、許容する局所的伸縮の程度を調整することができる。
【００４０】
上記のように対応関係検知処理を行うと、画像連結処理(図３)のステップ７４へ移行する。画像連結処理のステップ７４において、局所伸縮補正部１６は局所伸縮補正処理を行う。以下、図１０を参照し、局所伸縮補正処理の詳細を説明する。
【００４１】
局所伸縮補正処理のステップ１３０において、局所伸縮補正部１６は、対応関係検知部１４によって求められた対応関係情報が表す左画像と右画像の対応するライン番号の組を、配列Ｐ＝{(Ａi,Ｂi)}(ｉ＝１〜Ｎ)に設定する。またステップ１３２において、局所伸縮補正部１６は、配列Ｐを変数Ａi又は変数Ｂiの昇順にソートする。
【００４２】
この時点での画像と配列Ｐとの関係の一例を図１１に示す。なお、図１１では左画像の幅をＷl、右画像の幅をＷrとしている。左画像と右画像とで対応する最初のライン番号の組が(Ａ1,Ｂ1)なので、左画像の右辺上の点(Ｗl,Ａ1)と、右画像の左辺上の点(1,Ｂ1)と、が対応する点となる。ここで、左画像の右辺上の点(Ｗl,Ａ3)〜点(Ｗl,Ａ4)に挟まれた部分は、左画像の読み取り時にローラの滑り等により間延びした状態になっている。図１１の例では、図１１に破線で示すように、対応関係情報により左画像と右画像のラインの対応関係が(Ａ3,Ｂ3)、(Ａ4,Ｂ4)と求まっており、Ｂ3とＢ4の値(ライン番号)が一致している。以降の処理では左画像のうち右画像に対して間延びした状態となっている領域のラインを削除する。
【００４３】
まずステップ１３４において、局所伸縮補正部１６は、変数ｉに１を設定する。次のステップ１３６において、局所伸縮補正部１６は、配列Ｐの全ての組を評価したか否か判定する。ステップ１３６の判定が否定された場合はステップ１３８へ移行する。ステップ１３８において、局所伸縮補正部１６は、変数Ｂiの値(ライン番号)が変数Ｂi+1の値(ライン番号)に等しいか否か判定する。ステップ１３８の判定が否定された場合はステップ１５０へ移行し、ステップ１５０において、局所伸縮補正部１６は、変数ｉを１だけインクリメントしてステップ１３６に戻る。
【００４４】
一方、ステップ１３８の判定が肯定された場合、右画像に対して左画像が間延びしていると判断できるので、ステップ１４０へ移行する。ステップ１４０において、局所伸縮補正部１６は、左画像のうち、変数Ａiに設定されていたライン番号のラインの次のラインから、変数Ａi+1に設定されていたライン番号のラインまでの、Ｄ＝(Ａi+1−Ａi)本のラインを削除し、配列Ｐからラインの組(Ａi+1,Ｂi+1)の情報を削除する。左画像は、Ｄ＝(Ａi+1−Ａi)のライン本数だけ画像の高さが小さくなる。
【００４５】
次のステップ１４２において、局所伸縮補正部１６は、ｉに１を加算した値を変数ｊに設定する。またステップ１４４において、局所伸縮補正部１６は、変数Ａjに設定されているライン番号をＤだけデクリメントする。次のステップ１４６において、局所伸縮補正部１６は、変数ｊが配列Ｐの要素数以下か否か判定する。ステップ１４６の判定が肯定された場合はステップ１４８へ移行し、ステップ１４８において、局所伸縮補正部１６は、変数ｊを１だけインクリメントしてステップ１４４へ戻る。従って、ステップ１４６の判定が否定される迄、ステップ１４４〜ステップ１４８が繰り返される。
【００４６】
なお、ステップ１４２〜ステップ１４８は、先のステップ１４０で左画像からＤ本分のラインを削除したことに伴って、配列Ｐに設定された左画像の各ラインのライン番号の繰り上げを行っている。ステップ１４０〜ステップ１４８の処理は、ステップ１３８の判定が肯定される度、すなわち右画像に対して左画像が間延びしている箇所が発見される度に行われる。従って、左画像の各ラインの中に、右画像の同一のラインと対応付いているラインが複数存在していた場合、右画像の同一のラインと対応付いている複数のラインが１本のラインを残して左画像から全て削除される。
【００４７】
一例として、図１１に示すラインの組(Ａ3,Ｂ3)とラインの組(Ａ4,Ｂ4)に注目すると、変数Ｂ3,Ｂ4に設定されたライン番号が同じである。従って、変数Ａ3に設定されたライン番号のラインと変数Ａ4に設定されたライン番号のラインは、原稿上の同じ位置を指していることが分かる。上述した処理では、上記のような場合に、ラインの組(Ａ4,Ｂ4)の情報を配列Ｐから削除すると共に、変数Ａiに設定されていたライン番号のラインの次のラインから、変数Ａi+1に設定されていたライン番号のラインまでのＤ＝(Ａi+1−Ａi)本のラインを左画像から削除する。また、ラインの削除に伴い、配列Ｐの左画像に関するライン番号がずれることから、配列Ｐのうち以降のライン番号を削除したライン本数分だけデクリメントする。
【００４８】
ステップ１３６の判定が肯定されると、ステップ１５２へ移行する。ステップ１５２以降では、右画像のうち左画像に対して間延びした状態となっている領域のラインを削除する。すなわち、まずステップ１５２において、局所伸縮補正部１６は、変数ｉに１を設定する。次のステップ１５４において、局所伸縮補正部１６は、配列Ｐの全ての組を評価したか否か判定する。ステップ１５４の判定が否定された場合はステップ１５６へ移行する。ステップ１５６において、局所伸縮補正部１６は、変数Ａiの値(ライン番号)が変数Ａi+1の値(ライン番号)に等しいか否か判定する。ステップ１５６の判定が否定された場合はステップ１６８へ移行し、ステップ１６８において、局所伸縮補正部１６は、変数ｉを１だけインクリメントしてステップ１５４に戻る。
【００４９】
一方、ステップ１５４の判定が肯定された場合、左画像に対して右画像が間延びしていると判断できるので、ステップ１５８へ移行する。ステップ１５８において、局所伸縮補正部１６は、右画像のうち、変数Ｂiに設定されていたライン番号のラインの次のラインから、変数Ｂi+1に設定されていたライン番号のラインまでの、Ｅ＝(Ｂi+1−Ｂi)本のラインを削除し、配列Ｐからラインの組(Ａi+1,Ｂi+1)の情報を削除する。右画像は、Ｅ＝(Ｂi+1−Ｂi)のライン本数だけ画像の高さが小さくなる。
【００５０】
次のステップ１６０において、局所伸縮補正部１６は、変数ｉに１を加算した値を変数ｊに設定する。またステップ１６２において、局所伸縮補正部１６は、変数Ｂjに設定されているライン番号をＥだけデクリメントする。次のステップ１６４において、局所伸縮補正部１６は、変数ｊが配列Ｐの要素数以下か否か判定する。ステップ１６４の判定が肯定された場合はステップ１６６へ移行し、ステップ１６６において、局所伸縮補正部１６は、変数ｊを１だけインクリメントしてステップ１６２へ戻る。従って、ステップ１６４の判定が否定される迄、ステップ１６２〜ステップ１６６が繰り返される。
【００５１】
なお、ステップ１６０〜ステップ１６６は、先のステップ１５８で右画像からＥ本分のラインを削除したことに伴って、配列Ｐに設定された右画像の各ラインのライン番号の繰り上げを行っている。ステップ１５８〜ステップ１６６の処理は、ステップ１５６の判定が肯定される度、すなわち左画像に対して右画像が間延びしている箇所が発見される度に行われる。従って、右画像の各ラインの中に、左画像の同一のラインと対応付いているラインが複数存在していた場合、左画像の同一のラインと対応付いている複数のラインが１本のラインを残して右画像から全て削除される。
【００５２】
ステップ１５４の判定が肯定されると、ステップ１７０へ移行する。図１１に示す左画像及び右画像に対し、上述した間延びしている箇所のラインを全て削除する処理を完了した時点での左画像、右画像及び配列Ｐの関係の一例を図１２に示す。
【００５３】
ステップ１７０において、局所伸縮補正部１６は、上述した処理を経た左画像と右画像のサイズ(幅×高さ)を、それぞれＷl×Ｈl,Ｗr×Ｈrに設定する。次のステップ１７２以降は、一方の画像を基準とし、他方の画像に対して伸縮補正を行う。左画像及び右画像の局所的なずれは画像の大きさに比べて僅かなので、左画像と右画像のどちらを基準にしてもよいが、一例としてステップ１７２以降では、左画像を基準とし、右画像に対して伸縮補正を行っている。
【００５４】
すなわち、まずステップ１７２において、局所伸縮補正部１６は、伸縮補正後の右画像を格納するための画像領域として、幅が右画像の幅Ｗrに一致し、高さが左画像の高さＨlに一致する画像領域Ｍを用意する。次のステップ１７４において、局所伸縮補正部１６は変数ｉに２を設定する。ステップ１７６において、局所伸縮補正部１６は、右画像のうち、右上隅の頂点が座標(1,Ｂi-1)で右下隅が座標(Ｗr,Ｂi-1)の矩形領域の画像を、高さが(Ａi−Ａi-1)で幅Ｗrのサイズの画像に縮小又は拡大する。これは、左画像の対応する領域のサイズを基準として、右画像の上記の矩形領域を縮小又は拡大することに相当する。
【００５５】
次のステップ１７８において、局所伸縮補正部１６は、ステップ１７６で縮小又は拡大した矩形領域画像を、画像領域Ｍのうち右上隅の頂点が座標(1,Ａi-1)で右下隅が座標(Ｗr,Ａi-1)の矩形領域に書き込む。次のステップ１８０において、局所伸縮補正部１６は、配列Ｐの全ての組を評価したか否か判定する。ステップ１８０の判定が否定された場合はステップ１８２へ移行し、ステップ１８２において、局所伸縮補正部１６は、変数ｉを１だけインクリメントし、ステップ１７６に戻る。
【００５６】
従って、ステップ１８０の判定が肯定される迄ステップ１７６〜ステップ１８２が繰り返され、ステップ１８０の判定が肯定されると局所伸縮補正処理を終了する。これにより、右画像のうち右上隅の頂点が座標(1,Ｂi-1)で右下隅が座標(Ｗr,Ｂi-1)の矩形領域を単位として、例として図１３に示すように、局所的に縮小又は拡大が行われることで、右画像の高さが左画像の高さＨlに一致された状態で画像領域Ｍに書き込まれる。
【００５７】
局所伸縮補正処理が完了すると、図３の画像連結処理のステップ７６へ移行する。ステップ７６において、画像連結部１８は、左画像と局所的な縮小又は拡大が行われて画像領域Ｍに書き込まれた右画像を、左画像の右辺と右画像の左辺を境界として、単一の画像に連結する画像連結処理を行う。そして、次のステップ７８において、画像連結部１８は、ステップ７６の画像連結処理によって得られた画像を連結画像記憶部２０に保存し、画像連結処理を終了する。
【００５８】
上記のように、第１実施形態では、連結対象の画像における各ラインの対応関係を検知し、検知した各ラインの対応関係に基づいて、連結対象の画像に対して局所的な伸縮を各々補正している。これにより、スキャナ４０が読取可能なサイズに切断した原稿を別々に読み取ることで、互いに異なる局所的な伸縮が生じている複数の部分画像の連結に際し、画像の境界の全長に亘ってずれの発生を抑制することができる。
【００５９】
また、第１実施形態では、左画像の右辺及び右画像の左辺についてライン毎に特徴量を求め、端点固定の動的計画法を適用してライン間の対応関係を求めている。このため、後述する第２実施形態等と比較して、ライン間の対応関係を検知するにあたって原稿の搬送量を検知する必要がなくなり、原稿の読み取りを行うスキャナ４０の構成が簡単になる。
【００６０】
〔第２実施形態〕
次に開示の技術の第２実施形態について説明する。なお、第１実施形態と同一の部分には同一の符号を付し、説明を省略する。
【００６１】
図１４には本第２実施形態に係る画像処理装置６０が示されている。画像処理装置６０は、第１実施形態で説明した画像処理装置１０(図１)と比較して、原稿搬送量記憶部６１が設けられている点が相違している。画像処理装置６０では、原稿搬送量記憶部６１が対応関係検知部１４に接続され、画像記憶部１２が局所伸縮補正部１６に接続されている。
【００６２】
本第２実施形態に係るスキャナ４０は、例えば図１５に示すように、読取部６２が原稿を複数の搬送ローラ対６３によって搬送し、原稿の搬送路を挟んで読取センサ６４と搬送量検出センサ６５が配置されている。
【００６３】
搬送量検出センサ６５は、光学式マウスにおけるマウスの移動量を測定するセンサなどと同様に、光源とイメージセンサを備え、光源から射出した光(例えばレーザ光)を原稿に照射し、反射光をイメージセンサによって読み取り、原稿の搬送量をイメージの移動量として検出する。搬送量検出センサ６５は、読取センサ６４による１ライン毎の原稿の読み取りと同期したタイミングで、検出した原稿の搬送量を１ライン毎の原稿搬送量として出力する。
【００６４】
原稿搬送量記憶部６１は、スキャナ４０の搬送量検出センサ６５から順次出力される１ライン毎の原稿搬送量を取得し、取得した原稿搬送量をライン番号と対応付けて記憶する。これにより、原稿搬送量記憶部６１には、例として図１６に示すような原稿搬送量情報が記憶される。また、スキャナ４０では原稿の元の１頁を成す複数の部分原稿が別々に読み取られるので、原稿搬送量記憶部６１には、例として図１７に示すように、原稿搬送量情報が左画像及び右画像について各々記憶される。なお、原稿搬送量情報における原稿搬送量の単位は特に定める必要は無く、搬送量検出センサ６５の独自の単位を適用可能である。
【００６５】
次に本第２実施形態の作用について、第１実施形態と異なる部分についてのみ説明する。第１実施形態では、画像連結処理(図３)のステップ７２における対応関係検知処理として、図４に示す処理を行っていた。一方、本第２実施形態では、画像連結処理(図３)のステップ７２における対応関係検知処理として、図１８に示す対応関係検知処理を行う。以下、本第２実施形態に係る対応関係検知処理について説明する。
【００６６】
対応関係検知処理のステップ２００において、対応関係検知部１４は、左画像読み取り時の各ライン毎の原稿搬送量を変数Ａiの配列(ｉ＝１〜Ｍl)に設定すると共に、右画像読み取り時の各ライン毎の原稿搬送量を変数Ｂjの配列(ｊ＝１〜Ｍr)に設定する。なお、変数ｉ,ｊは各ラインのライン番号である。次のステップ２０２において、対応関係検知部１４は、変数ｉに１を設定する。ステップ２０４において、対応関係検知部１４は、変数Ａiに設定された原稿搬送量に最も近い原稿搬送量が設定された変数Ｂkを探索する。
【００６７】
ステップ２０４の探索によって最も近い原稿搬送量が設定された変数Ｂkを発見すると、次のステップ２０６において、対応関係検知部１４は、左画像と右画像のラインの対応関係(ｉ,ｋ)を対応関係情報としてメモリ２８等に記憶させる。次のステップ２０８において、対応関係検知部１４は、変数ｉが変数Ａiの配列の要素数Ｍl以下か否か判定する。判定が否定された場合はステップ２１０へ移行し、ステップ２１０において、対応関係検知部１４は、変数ｉを１だけインクリメントしてステップ２０４に戻る。
【００６８】
これにより、ステップ２０８の判定が肯定される迄、ステップ２０４〜ステップ２１０が繰り返され、例として図１９に示すように、左画像と右画像のラインの対応関係を表す対応関係情報がメモリ２８等に記憶される。そして、ステップ２０８の判定が肯定されると対応関係検知処理を終了する。
【００６９】
なお、第２実施形態において、局所伸縮補正処理等の以降の処理は第１実施形態と同じであるので、説明を省略する。
【００７０】
上記のように、第２実施形態についても、連結対象の画像における各ラインの対応関係を検知し、検知した各ラインの対応関係に基づいて、連結対象の画像に対して局所的な伸縮を各々補正している。これにより、スキャナ４０が読取可能なサイズに切断した原稿を別々に読み取ることで、互いに異なる局所的な伸縮が生じている複数の部分画像の連結に際し、画像の境界の全長に亘ってずれの発生を抑制することができる。
【００７１】
また、第２実施形態では、スキャナ４０による原稿の読み取りに際して原稿搬送量を１ライン毎に検出し、検出した１ライン毎の原稿搬送量に基づいて、左画像と右画像のラインの対応関係を求めている。従って、搬送量検出センサ６５を設ける必要があるのでスキャナ４０の構成が複雑になるものの、対応関係検知処理が簡単になり、左画像と右画像のラインの対応関係を求めるための画像処理装置６０の負荷が軽減される。
【００７２】
〔第３実施形態〕
次に開示の技術の第３実施形態について説明する。なお、第１実施形態及び第２実施形態と同一の部分には同一の符号を付し、説明を省略する。
【００７３】
図２０には本第３実施形態に係る画像処理装置６６が示されている。画像処理装置６６は、第２実施形態で説明した画像処理装置６０(図１４)と比較して、読取解像度記憶部６７が設けられている点が相違している。読取解像度記憶部６７は、スキャナ４０によって原稿が読み取られた際の解像度をスキャナ４０から取得し、取得した解像度を記憶する。読取解像度記憶部６７は対応関係検知部１４に接続されている。
【００７４】
また、本第３実施形態では、第２実施形態と同様に、スキャナ４０の読取部６２に搬送量検出センサ６５が配置されているが、本第３実施形態に係る搬送量検出センサ６５は、原稿搬送量として、メートルなどの標準単位系の値を出力する。従って、本第３実施形態に係る原稿搬送量記憶部６１は、例として図２１に示すように、１ライン毎の原稿搬送量を標準単位系の値(図２１では"μｍ")で表す原稿搬送量情報を記憶する。
【００７５】
次に本第３実施形態の作用を説明する。本第３実施形態では、画像連結処理(図３)のステップ７２における対応関係検知処理として、図２２に示す対応関係検知処理を行う。以下、本第３実施形態に係る対応関係検知処理について説明する。
【００７６】
対応関係検知処理のステップ２２０において、対応関係検知部１４は、読取解像度記憶部６７に記憶された読取解像度に基づき、原稿の理想搬送量を各ラインについて各々演算する。読取解像度(dpi)が既知の場合、原稿を読み取ることで得られた画像の各ラインの原稿の理想搬送量は、次の(３)式で規定される。
原稿の理想搬送量＝(画像のライン番号)／(スキャン解像度)  …(３)
【００７７】
例えば、原稿が300dpiの解像度で読み取られた場合、１インチ＝25.4ｍｍ＝25400μｍなので、単位系をあわせると以下の(４)式が得られる。但し、(４)式では画像の１ライン目を原稿搬送量の測定起点としている。
原稿の理想搬送量(μｍ)＝(スキャン画像のライン番号−１)×25400／300  …(４)
ステップ２２０の演算により、例として図２３に示すように、原稿の各ライン毎の理想搬送量が得られる。
【００７８】
第２実施形態で説明した対応関係検知処理(図１８)では、左画像と右画像のラインの対応関係を求めていた。一方、本第３実施形態に係る対応関係検知処理では、左画像と、理想搬送量で搬送されたと仮定した基準画像とのラインの対応関係を求めると共に、右画像と、理想搬送量で搬送されたと仮定した基準画像とのラインの対応関係を求めている。
【００７９】
すなわち、ステップ２２２において、対応関係検知部１４は、左画像が読み取られた際の各ライン毎の原稿搬送量を変数Ａiの配列(ｉ＝１〜Ｍl)に設定すると共に、原稿の理想搬送量を変数Ｒkの配列(ｋ＝１〜Ｎ)に設定する。なお、変数ｉ,ｋは各ラインのライン番号である。次のステップ２２４において、対応関係検知部１４は、変数ｉに１を設定する。ステップ２２６において、対応関係検知部１４は、変数Ａiに設定された原稿搬送量に最も近い原稿搬送量が設定された変数Ｒkを探索する。
【００８０】
ステップ２２６の探索によって最も近い原稿搬送量が設定された変数Ｒkを発見すると、次のステップ２２８において、対応関係検知部１４は、左画像と基準画像のラインの対応関係(ｉ,ｋ)を対応関係情報としてメモリ２８等に記憶させる。次のステップ２３０において、対応関係検知部１４は、変数ｉが変数Ａiの配列の要素数Ｍl以下か否か判定する。判定が否定された場合はステップ２３２へ移行し、ステップ２３２において、対応関係検知部１４は、変数ｉを１だけインクリメントしてステップ２２６に戻る。
【００８１】
これにより、ステップ２３０の判定が肯定される迄、ステップ２２６〜ステップ２３２が繰り返され、左画像と基準画像のラインの対応関係を表す対応関係情報がメモリ２８等に記憶される。
【００８２】
また、ステップ２３０の判定が肯定されるとステップ２３４へ移行する。ステップ２２２において、対応関係検知部１４は、右画像が読み取られた際の各ライン毎の原稿搬送量を変数Ｂjの配列(ｊ＝１〜Ｍr)に設定すると共に、原稿の理想搬送量を変数Ｒkの配列(ｋ＝１〜Ｎ)に設定する。なお、変数ｊ,ｋは各ラインのライン番号である。次のステップ２３６において、対応関係検知部１４は、変数ｊに１を設定する。ステップ２３８において、対応関係検知部１４は、変数Ｂjに設定された原稿搬送量に最も近い原稿搬送量が設定された変数Ｒkを探索する。
【００８３】
ステップ２３８の探索によって最も近い原稿搬送量が設定された変数Ｒkを発見すると、次のステップ２４０において、対応関係検知部１４は、右画像と基準画像のラインの対応関係(ｊ,ｋ)を対応関係情報としてメモリ２８等に記憶させる。次のステップ２４２において、対応関係検知部１４は、変数ｊが変数Ｂjの配列の要素数Ｍr以下か否か判定する。判定が否定された場合はステップ２４４へ移行し、ステップ２４４において、対応関係検知部１４は、変数ｊを１だけインクリメントしてステップ２３８に戻る。
【００８４】
これにより、ステップ２４２の判定が肯定される迄、ステップ２３８〜ステップ２４４が繰り返され、右画像と基準画像のラインの対応関係を表す対応関係情報がメモリ２８等に記憶される。そして、ステップ２０８の判定が肯定されると対応関係検知処理を終了する。
【００８５】
次に、図２４を参照し、本第３実施形態に係る局所伸縮補正処理を説明する。第１実施形態で説明した局所伸縮補正処理(図１０)では、左画像と右画像を比較して重複するライン削除及び局所的な伸縮補正を行っていた。一方、本第３実施形態に係る局所伸縮補正処理では、左画像と基準画像を比較して重複するライン削除及び局所的な伸縮補正を行うと共に、右画像と基準画像を比較して重複するライン削除及び局所的な伸縮補正を行っている。
【００８６】
局所伸縮補正処理のステップ２５０において、局所伸縮補正部１６は、対応関係検知部１４によって求められた対応関係情報が表す左画像と基準画像の対応するライン番号の組を、配列ＰA＝{(Ａi,Ｒi)}(ｉ＝１〜Ｎ)に設定する。またステップ２５２において、局所伸縮補正部１６は、配列ＰAを変数Ａi又は変数Ｒiの昇順にソートする。以降の処理では左画像のうち基準画像に対して間延びした状態となっている領域のラインを削除する。
【００８７】
まずステップ２５４において、局所伸縮補正部１６は、変数ｉに１を設定する。次のステップ２５６において、局所伸縮補正部１６は、配列ＰAの全ての組を評価したか否か判定する。ステップ２５６の判定が否定された場合はステップ２５８へ移行する。ステップ２５８において、局所伸縮補正部１６は、変数Ｒiの値(ライン番号)が変数Ｒi+1の値(ライン番号)に等しいか否か判定する。ステップ２５８の判定が否定された場合はステップ２７０へ移行し、ステップ２７０において、局所伸縮補正部１６は、変数ｉを１だけインクリメントしてステップ２５６に戻る。
【００８８】
一方、ステップ２５８の判定が肯定された場合、基準画像に対して左画像が間延びしていると判断できるので、ステップ２６０へ移行する。ステップ２６０において、局所伸縮補正部１６は、左画像のうち変数Ａi+1に設定されていたライン番号の１ラインを削除し、配列ＰAからラインの組(Ａi+1,Ｒi+1)の情報を削除する。
【００８９】
次のステップ２６２において、局所伸縮補正部１６は、ｉに１を加算した値を変数ｊに設定する。またステップ２６４において、局所伸縮補正部１６は、変数Ａjに設定されているライン番号を１だけデクリメントする。次のステップ２６６において、局所伸縮補正部１６は、変数ｊが配列ＰAの要素数以下か否か判定する。ステップ２６６の判定が肯定された場合はステップ２６８へ移行し、ステップ２６８において、局所伸縮補正部１６は、変数ｊを１だけインクリメントしてステップ２６４へ戻る。従って、ステップ２６６の判定が否定される迄、ステップ２６４〜ステップ２６８が繰り返される。
【００９０】
なお、ステップ２６２〜ステップ２６８は、先のステップ２６０で左画像から１ラインを削除したことに伴って、配列ＰAに設定された左画像の各ラインのライン番号の繰り上げを行っている。ステップ２６０〜ステップ２６８の処理は、ステップ２５８の判定が肯定される度、すなわち基準画像に対して左画像が間延びしている箇所が発見される度に行われる。従って、左画像の各ラインの中に、基準画像の同一のラインと対応付いているラインが複数存在していた場合、基準画像の同一のラインと対応付いている複数のラインが１本のラインを残して左画像から全て削除される。
【００９１】
ステップ２５６の判定が肯定されると、ステップ２７２へ移行する。ステップ２７２において、局所伸縮補正部１６は、対応関係検知部１４によって求められた対応関係情報が表す右画像と基準画像の対応するライン番号の組を、配列ＰB＝{(Ｂi,Ｒi)}(ｉ＝１〜Ｎ)に設定する。またステップ２７４において、局所伸縮補正部１６は、配列ＰBを変数Ｂi又は変数Ｒiの昇順にソートする。次のステップ２７６以降では、右画像のうち基準画像に対して間延びした状態となっている領域のラインを削除する。
【００９２】
すなわち、まずステップ２７６において、局所伸縮補正部１６は、変数ｉに１を設定する。次のステップ２７８において、局所伸縮補正部１６は、配列ＰBの全ての組を評価したか否か判定する。ステップ２７８の判定が否定された場合はステップ２８０へ移行する。ステップ２８０において、局所伸縮補正部１６は、変数Ｒiの値(ライン番号)が変数Ｒi+1の値(ライン番号)に等しいか否か判定する。ステップ２８０の判定が否定された場合はステップ２９２へ移行し、ステップ２９２において、局所伸縮補正部１６は、変数ｉを１だけインクリメントしてステップ２７８に戻る。
【００９３】
一方、ステップ２８０の判定が肯定された場合、基準画像に対して右画像が間延びしていると判断できるので、ステップ２８２へ移行する。ステップ２８２において、局所伸縮補正部１６は、右画像のうち変数Ｂi+1に設定されていたライン番号の１ラインを削除し、配列ＰBからラインの組(Ａi+1,Ｒi+1)の情報を削除する。
【００９４】
次のステップ２８４において、局所伸縮補正部１６は、変数ｉに１を加算した値を変数ｊに設定する。またステップ２８６において、局所伸縮補正部１６は、変数Ｂjに設定されているライン番号を１だけデクリメントする。次のステップ２８８において、局所伸縮補正部１６は、変数ｊが配列ＰBの要素数以下か否か判定する。ステップ２８８の判定が肯定された場合はステップ２９０へ移行し、ステップ２９０において、局所伸縮補正部１６は、変数ｊを１だけインクリメントしてステップ２８６へ戻る。従って、ステップ２８８の判定が否定される迄、ステップ２８６〜ステップ２９０が繰り返される。
【００９５】
なお、ステップ２８４〜ステップ２９０は、先のステップ２８２で右画像から１ラインを削除したことに伴って、配列ＰBに設定された右画像の各ラインのライン番号の繰り上げを行っている。ステップ２８２〜ステップ２９０の処理は、ステップ２８０の判定が肯定される度、すなわち基準画像に対して右画像が間延びしている箇所が発見される度に行われる。従って、右画像の各ラインの中に、基準画像の同一のラインと対応付いているラインが複数存在していた場合、基準画像の同一のラインと対応付いている複数のラインが１本のラインを残して右画像から全て削除される。
【００９６】
ステップ２７８の判定が肯定されると、ステップ２９４へ移行する。ステップ２９４において、局所伸縮補正部１６は、上述した処理を経た左画像と基準画像のサイズ(幅×高さ)を、それぞれＷl×Ｈl,Ｗ×Ｈに設定する。次のステップ２９６以降は、基準画像を基準とし、左画像に対して伸縮補正を行う。すなわち、まずステップ２９６において、局所伸縮補正部１６は、伸縮補正後の左画像を格納するための画像領域として、幅が左画像の幅Ｗlに一致し、高さが基準画像の高さＨに一致する画像領域Ｍを用意する。
【００９７】
次のステップ２９８において、局所伸縮補正部１６は変数ｉに２を設定する。ステップ３００において、局所伸縮補正部１６は、左画像のうち、右上隅の頂点が座標(1,Ａi-1)で右下隅が座標(Ｗl,Ａi-1)の矩形領域の画像を、高さが(Ｒi−Ｒi-1)で幅Ｗlのサイズの画像に縮小又は拡大する。これは、基準画像の対応する領域のサイズを基準として、左画像の上記の矩形領域を縮小又は拡大することに相当する。
【００９８】
次のステップ３０２において、局所伸縮補正部１６は、ステップ３００で縮小又は拡大した矩形領域画像を、画像領域Ｍのうち右上隅の頂点が座標(1,Ｒi-1)で右下隅が座標(Ｗl,Ｒi-1)の矩形領域に書き込む。次のステップ３０４において、局所伸縮補正部１６は、配列ＰAの全ての組を評価したか否か判定する。ステップ３０４の判定が否定された場合はステップ３０６へ移行し、ステップ３０６において、局所伸縮補正部１６は、変数ｉを１だけインクリメントし、ステップ３００に戻る。
【００９９】
従って、ステップ３０４の判定が肯定される迄ステップ３００〜ステップ３０６が繰り返され、ステップ３０４の判定が肯定されるとステップ３０８へ移行する。これにより、左画像のうち右上隅の頂点が座標(1,Ａi-1)で右下隅が座標(Ｗｌ,Ａi-1)の矩形領域を単位として局所的に縮小又は拡大が行われることで、左画像の高さが基準画像の高さＨに一致された状態で画像領域Ｍに書き込まれる。
【０１００】
またステップ３０８において、局所伸縮補正部１６は、右画像と基準画像のサイズ(幅×高さ)を、それぞれＷr×Ｈr,Ｗ×Ｈに設定する。次のステップ３１０以降は、基準画像を基準とし、右画像に対して伸縮補正を行う。すなわち、まずステップ３１０において、局所伸縮補正部１６は、伸縮補正後の右画像を格納するための画像領域として、幅が右画像の幅Ｗrに一致し、高さが基準画像の高さＨに一致する画像領域Ｍを用意する。
【０１０１】
次のステップ３１２において、局所伸縮補正部１６は変数ｉに２を設定する。ステップ３１４において、局所伸縮補正部１６は、右画像のうち、右上隅の頂点が座標(1,Ｂi-1)で右下隅が座標(Ｗr,Ｂi-1)の矩形領域の画像を、高さが(Ｒi−Ｒi-1)で幅Ｗrのサイズの画像に縮小又は拡大する。これは、基準画像の対応する領域のサイズを基準として、右画像の上記の矩形領域を縮小又は拡大することに相当する。
【０１０２】
次のステップ３１６において、局所伸縮補正部１６は、ステップ３１４で縮小又は拡大した矩形領域画像を、画像領域Ｍのうち右上隅の頂点が座標(1,Ｒi-1)で右下隅が座標(Ｗr,Ｒi-1)の矩形領域に書き込む。次のステップ３１８において、局所伸縮補正部１６は、配列ＰBの全ての組を評価したか否か判定する。ステップ３１８の判定が否定された場合はステップ３２０へ移行し、ステップ３２０において、局所伸縮補正部１６は、変数ｉを１だけインクリメントし、ステップ３１４に戻る。
【０１０３】
従って、ステップ３１８の判定が肯定される迄ステップ３１４〜ステップ３２０が繰り返され、ステップ３１８の判定が肯定されると局所伸縮補正処理を終了する。これにより、右画像のうち右上隅の頂点が座標(1,Ｂi-1)で右下隅が座標(Ｗr,Ｂi-1)の矩形領域を単位として局所的に縮小又は拡大が行われることで、右画像の高さが基準画像の高さＨに一致された状態で画像領域Ｍに書き込まれる。
【０１０４】
上述した局所伸縮補正処理を経た左画像と右画像は、第１実施形態と同様に、画像連結部１８により、左画像の右辺と右画像の左辺を境界として単一の画像に連結され、連結画像記憶部２０に保存される。
【０１０５】
上記のように、第３実施形態についても、連結対象の画像における各ラインの対応関係を検知し、検知した各ラインの対応関係に基づいて、連結対象の画像に対して局所的な伸縮を各々補正している。これにより、スキャナ４０が読取可能なサイズに切断した原稿を別々に読み取ることで、互いに異なる局所的な伸縮が生じている複数の部分画像の連結に際し、画像の境界の全長に亘ってずれの発生を抑制することができる。
【０１０６】
また、第３実施形態では、スキャナ４０による原稿の読み取りに際して原稿搬送量を１ライン毎に検出し、検出した１ライン毎の原稿搬送量に基づいて、左画像及び右画像と基準画像とのラインの対応関係を各々求めている。従って、搬送量検出センサ６５を設ける必要があるのでスキャナ４０の構成が複雑になるものの、対応関係検知処理が簡単になり、左画像と右画像のラインの対応関係を求めるための画像処理装置６０の負荷が軽減される。
【０１０７】
なお、第１実施形態では、左画像の右辺及び右画像の左辺についてライン毎に特徴量を求め、端点固定の動的計画法を適用してライン間の対応関係を求めた態様を説明したが、これに限定されるものではない。左画像と右画像のライン毎の対応関係を求めるにあたり、動的計画法以外の手法を適用することも可能である。例えば、左画像と右画像を画面に表示し、利用者が、左画像における右辺と右画像における左辺の対応する点同士をマウス操作により結びつける等、ＧＵＩを介して利用者がマニュアルで対応関係を指定する手法を適用することも可能である。
【０１０８】
また、上記ではスキャナ４０と別に設けられたコンピュータ２４を開示の技術に係る画像処理装置として機能させる態様を説明したが、これに限定されるものではなく、スキャナ４０自体を開示の技術に係る画像処理装置として機能させるようにしてもよい。
【０１０９】
また、上記では開示の技術の画像処理プログラムの一例である画像連結プログラム４２がコンピュータ２４の記憶部３０に予め記憶（インストール）されている態様を説明したが、これに限定されるものではない。開示の技術に係る画像処理プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。
【０１１０】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【０１１１】
以上の実施形態に関し、更に以下の付記を開示する。
【０１１２】
（付記１）
互いに異なる局所的な伸縮が生じている一対の画像における二組以上のラインの対応関係を検知する対応関係検知部(図１：14)と、前記対応関係検知部によって検知された前記一対の画像におけるラインの対応関係に基づいて、前記一対の画像に対して前記局所的な伸縮を各々補正する補正部(図１：16)と、前記補正部による補正を経た前記一対の画像を単一の画像に連結する連結部(図１：18)と、を含む画像処理装置。
【０１１３】
（付記２）
前記補正部は、前記一対の画像に対して前記局所的な伸縮を各々補正する処理として、前記各ラインの対応関係に基づいて、前記一対の画像のうちの一方の画像の各ラインの中に、他方の画像の同一のラインと対応付いているラインが複数存在していた場合に、前記他方の画像の同一のラインと対応付いている複数のラインを１本のラインを残して削除する処理を含む処理(図１０：130〜166)を行う付記１記載の画像処理装置。
【０１１４】
（付記３）
前記補正部は、前記一対の画像に対して前記局所的な伸縮を各々補正する処理として、前記各ラインの対応関係に基づいて、一対の画像のうちの一方の画像上で隣合う第１の一対のラインで挟まれた領域における前記第１の一対のラインの間隔を、他方の画像において前記第１の一対のラインに対応する第２の一対のラインで挟まれた領域における前記第２の一対のラインの間隔に合致するように縮小又は拡大する処理(図１０：170〜182)を行う付記１又は付記２記載の画像処理装置。
【０１１５】
（付記４）
前記対応関係検知部は、前記一対の画像を連結する画像端における前記一対の画像の特徴量を各々演算し(図４：80〜112)、演算した前記一対の画像の各々の画像端における特徴量を比較することで、前記一対の画像における各ラインの対応関係を検知する(図４：114〜118)付記１〜付記３の何れか１項記載の画像処理装置。
【０１１６】
（付記５）
前記対応関係検知部は、演算した前記一対の画像の各々の画像端における特徴量の比較に、端点固定の動的計画法を適用することで、一対の画像における各ラインの対応関係を検知する(図４：114〜118)付記４記載の画像処理装置。
【０１１７】
（付記６）
前記互いに異なる局所的な伸縮が生じている一対の画像は、原稿を搬送しながらライン単位で前記原稿を読み取ることを、互いに異なるタイミングで各々で行うことで得られた画像であり、前記対応関係検知部は、前記原稿を搬送しながらライン単位で前記原稿の読み取りを行っている期間にライン毎で検出された前記原稿の搬送量に基づいて、互いに異なる局所的な伸縮が生じている一対の画像における各ラインの対応関係を検知する(図１８：200〜210)付記１〜付記３の何れか１項記載の画像処理装置。
【０１１８】
（付記７）
前記対応関係検知部は、前記一対の画像のうちの一方の画像について個々のラインを読み取った際に検出された前記原稿の搬送量を、他方の画像について個々のラインを読み取った際に検出された前記原稿の搬送量と比較し、一方の画像の個々のライン毎に、他方の画像の個々のラインのうち前記原稿の搬送量が最も近いラインと対応付けることで、前記各ラインの対応関係を検知する(図１８：200〜210)付記６記載の画像処理装置。
【０１１９】
（付記８）
前記対応関係検知部は、画像の個々のラインを読み取った際に検出された前記原稿の搬送量を、原稿の読み取りにおける解像度から演算した、画像の個々のラインを読み取った際の前記原稿の理想搬送量(図２３)と比較し、前記画像の個々のライン毎に、個々のラインのうち前記原稿の理想搬送量が最も近いラインと対応付けることを、前記一対の画像について各々行うことで、前記各ラインの対応関係を検知する(図２２：220〜244)付記６記載の画像処理装置。
【０１２０】
（付記９）
互いに異なる局所的な伸縮が生じている一対の画像における二組以上のラインの対応関係を検知し、前記検知した前記一対の画像におけるラインの対応関係に基づいて、前記一対の画像に対して前記局所的な伸縮を各々補正し、前記補正を経た前記一対の画像を単一の画像に合成する画像処理方法。
【０１２１】
（付記１０）
前記一対の画像に対して前記局所的な伸縮を各々補正する処理として、前記各ラインの対応関係に基づいて、前記一対の画像のうちの一方の画像の各ラインの中に、他方の画像の同一のラインと対応付いているラインが複数存在していた場合に、前記他方の画像の同一のラインと対応付いている複数のラインを１本のラインを残して削除する処理を含む処理を行う付記９記載の画像処理方法。
【０１２２】
（付記１１）
前記一対の画像に対して前記局所的な伸縮を各々補正する処理として、前記各ラインの対応関係に基づいて、一対の画像のうちの一方の画像上で隣合う第１の一対のラインで挟まれた領域における前記第１の一対のラインの間隔を、他方の画像において前記第１の一対のラインに対応する第２の一対のラインで挟まれた領域における前記第２の一対のラインの間隔に合致するように縮小又は拡大する処理を行う付記９又は付記１０記載の画像処理方法。
【０１２３】
（付記１２）
前記一対の画像を連結する画像端における前記一対の画像の特徴量を各々演算し、演算した前記一対の画像の各々の画像端における特徴量を比較することで、前記一対の画像における各ラインの対応関係を検知する付記９〜付記１１の何れか１項記載の画像処理方法。
【０１２４】
（付記１３）
演算した前記一対の画像の各々の画像端における特徴量の比較に、端点固定の動的計画法を適用することで、一対の画像における各ラインの対応関係を検知する付記１２記載の画像処理方法。
【０１２５】
（付記１４）
前記互いに異なる局所的な伸縮が生じている一対の画像は、原稿を搬送しながらライン単位で前記原稿を読み取ることを、互いに異なるタイミングで各々で行うことで得られた画像であり、前記原稿を搬送しながらライン単位で前記原稿の読み取りを行っている期間にライン毎で検出された前記原稿の搬送量に基づいて、互いに異なる局所的な伸縮が生じている一対の画像における各ラインの対応関係を検知する付記９〜付記１１の何れか１項記載の画像処理方法。
【０１２６】
（付記１５）
前記一対の画像のうちの一方の画像について個々のラインを読み取った際に検出された前記原稿の搬送量を、他方の画像について個々のラインを読み取った際に検出された前記原稿の搬送量と比較し、一方の画像の個々のライン毎に、他方の画像の個々のラインのうち前記原稿の搬送量が最も近いラインと対応付けることで、前記各ラインの対応関係を検知する付記１４記載の画像処理方法。
【０１２７】
（付記１６）
画像の個々のラインを読み取った際に検出された前記原稿の搬送量を、原稿の読み取りにおける解像度から演算した、画像の個々のラインを読み取った際の前記原稿の理想搬送量と比較し、前記画像の個々のライン毎に、個々のラインのうち前記原稿の理想搬送量が最も近いラインと対応付けることを、前記一対の画像について各々行うことで、前記各ラインの対応関係を検知する付記１４記載の画像処理装置。
【０１２８】
（付記１７）
コンピュータに、互いに異なる局所的な伸縮が生じている一対の画像における二組以上のラインの対応関係を検知し、前記検知した前記一対の画像におけるラインの対応関係に基づいて、前記一対の画像に対して前記局所的な伸縮を各々補正し、前記補正を経た前記一対の画像を単一の画像に合成する処理を行わせるための画像処理プログラム又は当該画像処理プログラムが記録された記録媒体。
【０１２９】
（付記１８）
前記一対の画像に対して前記局所的な伸縮を各々補正する処理として、前記各ラインの対応関係に基づいて、前記一対の画像のうちの一方の画像の各ラインの中に、他方の画像の同一のラインと対応付いているラインが複数存在していた場合に、前記他方の画像の同一のラインと対応付いている複数のラインを１本のラインを残して削除する処理を含む処理を行う付記１７記載の画像処理プログラム又は記録媒体。
【０１３０】
（付記１９）
前記一対の画像に対して前記局所的な伸縮を各々補正する処理として、前記各ラインの対応関係に基づいて、一対の画像のうちの一方の画像上で隣合う第１の一対のラインで挟まれた領域における前記第１の一対のラインの間隔を、他方の画像において前記第１の一対のラインに対応する第２の一対のラインで挟まれた領域における前記第２の一対のラインの間隔に合致するように縮小又は拡大する処理を行う付記１７又は付記１８記載の画像処理プログラム又は記録媒体。
【０１３１】
（付記２０）
前記一対の画像を連結する画像端における前記一対の画像の特徴量を各々演算し、演算した前記一対の画像の各々の画像端における特徴量を比較することで、前記一対の画像における各ラインの対応関係を検知する付記１７〜付記１９の何れか１項記載の画像処理プログラム又は記録媒体。
【０１３２】
（付記２１）
演算した前記一対の画像の各々の画像端における特徴量の比較に、端点固定の動的計画法を適用することで、一対の画像における各ラインの対応関係を検知する付記２０記載の画像処理プログラム又は記録媒体。
【０１３３】
（付記２２）
前記互いに異なる局所的な伸縮が生じている一対の画像は、原稿を搬送しながらライン単位で前記原稿を読み取ることを、互いに異なるタイミングで各々で行うことで得られた画像であり、前記原稿を搬送しながらライン単位で前記原稿の読み取りを行っている期間にライン毎で検出された前記原稿の搬送量に基づいて、互いに異なる局所的な伸縮が生じている一対の画像における各ラインの対応関係を検知する付記１７〜付記１９の何れか１項記載の画像処理プログラム又は記録媒体。
【０１３４】
（付記２３）
前記一対の画像のうちの一方の画像について個々のラインを読み取った際に検出された前記原稿の搬送量を、他方の画像について個々のラインを読み取った際に検出された前記原稿の搬送量と比較し、一方の画像の個々のライン毎に、他方の画像の個々のラインのうち前記原稿の搬送量が最も近いラインと対応付けることで、前記各ラインの対応関係を検知する付記２２記載の画像処理プログラム又は記録媒体。
【０１３５】
（付記２４）
画像の個々のラインを読み取った際に検出された前記原稿の搬送量を、原稿の読み取りにおける解像度から演算した、画像の個々のラインを読み取った際の前記原稿の理想搬送量と比較し、前記画像の個々のライン毎に、個々のラインのうち前記原稿の理想搬送量が最も近いラインと対応付けることを、前記一対の画像について各々行うことで、前記各ラインの対応関係を検知する付記２２記載の画像処理プログラム又は記録媒体。
【符号の説明】
【０１３６】
１０  画像処理装置
１２  画像記憶部
１４  対応関係検知部
１６  局所伸縮補正部
１８  画像連結部
２０  連結画像記憶部
２４  コンピュータ
２６  ＣＰＵ
２８  メモリ
３０  記憶部
４０  スキャナ
４２  画像連結プログラム
６０  画像処理装置
６１  原稿搬送量記憶部
６５  搬送量検出センサ
６６  画像処理装置
６７  読取解像度記憶部
【図３】
0005970970.tif 000002
【図６】
0005970970.tif 000003
【図７】
0005970970.tif 000004
【図９】
0005970970.tif 000005
【図１１】
0005970970.tif 000006
【図１２】
0005970970.tif 000007
【図１５】
0005970970.tif 000008
【図１７】
0005970970.tif 000009
【図１８】
0005970970.tif 000010
【図１９】
0005970970.tif 000011
【図２１】
0005970970.tif 000012
【図２２】
0005970970.tif 000013
【図２３】
0005970970.tif 000014
【図１】
0005970970.tif 000015
【図２】
0005970970.tif 000016
【図４】
0005970970.tif 000017
【図５】
0005970970.tif 000018
【図８】
0005970970.tif 000019
【図１０】
0005970970.tif 000020
【図１３】
0005970970.tif 000021
【図１４】
0005970970.tif 000022
【図１６】
0005970970.tif 000023
【図２０】
0005970970.tif 000024
【図２４】
0005970970.tif 000025