(57)【要約】【課題】  原稿領域と背景領域の境界線を検出するにあたって、検出された境界線と原稿影との距離を比較することで境界線の確からしさを判定する方法が従来から存在するが、従来の方法では、原稿画像が歪んでいた場合に、境界線の確からしさを正しく判定できない問題があった。【解決手段】  本発明の画像処理装置は、画像データから原稿領域の端部を検出する原稿端検出部と、前記原稿端検出部によって検出された原稿端の座標に基づいて、原稿領域の境界線を算出する境界線算出部と、原稿の縁から原稿の影を検出する原稿影検出部と、前記原稿影検出部によって検出された結果と前記境界線算出部によって算出された境界線との距離を判定する距離判定部と、距離判定部の判定結果に応じて前記境界線の確からしさを決定する確からしさ判定部と、を備えることを特徴とする。【選択図】図５
2020072325.tif 000002
【特許請求の範囲】
【請求項１】
画像データから原稿領域の端部を検出する原稿端検出部と、
前記原稿端検出部によって検出された原稿端の座標に基づいて、原稿領域の境界線を算出する境界線算出部と、
原稿の縁から原稿の影を検出する原稿影検出部と、
前記原稿影検出部によって検出された結果と前記境界線算出部によって算出された境界線との距離を判定する距離判定部と、
距離判定部の判定結果に応じて前記境界線の確からしさを決定する確からしさ判定部と、を備えることを特徴とする、画像処理装置。
【請求項２】
前記境界候補線算出部が、曲線を算出することを特徴とする、請求項１に記載の画像読取装置。
【請求項３】
前記境界線候補算出部が、多項式で記述される曲線を算出することを特徴とする、請求項１または２に記載の画像読取装置。
【請求項４】
前記境界候補線算出部が複数の候補線を算出し、前記確からしさ判定部が前記複数の候補線の中から最も確からしい候補線を判定することを特徴とする、請求項１〜３のいずれか一項に記載の画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関し、特に、画像データに含まれる原稿領域と背景領域との境界線の検出に関する。
【背景技術】
【０００２】
近年、原稿を電子的に読み取るスキャナ等の画像処理装装置として、異なったサイズの原稿が混在する環境において、原稿サイズを自動的に検知し、最適なサイズで原稿の画像を読み取るものが利用されている。このような画像処理装置では、原稿サイズを検知するために、原稿を読み取って得られる画像データから、原稿が映っている領域（以下、原稿領域）と原稿が映っていない領域（以下、背景領域）の境界を検出することが行われている。画像処理装置は、境界の検出にあたって、例えば次のような処理を行う。まず画像処理装置は、原稿領域を含む画像を取得する。次に取得した画像から、原稿端と想定される画素（以下、原稿端画素）を検出し、その座標値を取得する。最後に、原稿端画素の座標値に対して、最小二乗法やハフ変換などの手法を適用することで境界を決定する。
【０００３】
ところで原稿領域の検出では、誤検出が発生する可能性がある。例えば、画像データにノイズが発生していた場合に、ノイズを原稿端画素と検出してしまうことで、誤った原稿領域を検出してしまうことがある。また原稿領域と、原稿が映っていない背景領域との濃度差が小さい場合に、原稿領域と背景領域の境界が原稿端画素として検出されないことで、誤った原稿領域を検出してしまうことがある。
【０００４】
このような誤検出が発生した場合に、誤検出が発生したことを検知する方法が、特許文献１で提案されている。特許文献１の技術では、まず原稿端画素から原稿領域の境界の候補となる直線（以下、境界候補直線）を算出し、次に算出した境界候補直線と、原稿の周囲に写りこむ原稿の影との距離のヒストグラムを生成する。そして、生成したヒストグラムの形状を分析することで、算出された境界候補直線が、原稿領域と背景領域の境界として正しいかを判定する。例えば、境界候補直線が正しい境界である場合には、境界候補直線と影の距離がほぼ一定のため、ヒストグラムのピークは鋭くなる（図１（ａ））。しかし、境界候補直線の角度が誤っている場合には、境界候補直線と影の距離が連続的に変化するため、ヒストグラムのピークは幅広になる（図１（ｂ））。このため、ヒストグラムのピークの幅から、境界候補直線の正しさを判定できる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】２０１４-７２６２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術には、原稿画像が歪んでいる場合に、誤検出の検知を正しく行えなくなるという問題がある。原稿を搬送しながら読み取る原稿読取装置において原稿が歪んで搬送された場合、また見開き本をスキャンしたりした場合などには、原稿画像が扇形になる場合がある。このような画像では、境界候補直線が適切なものであっても、境界候補直線と影の距離が連続的に変化するため、ヒストグラムのピークの幅は広くなる（図２）。このヒストグラムは、角度を誤った時のヒストグラムと同様の形状になるため、境界候補直線は正しくないものと判定されてしまう。
【０００７】
本発明は上記問題の解決を図るものであり、原稿画像が歪んでいても、原稿領域と背景領域の境界を正しく判定できる判定方法の実現を目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の画像処理装置は、画像データから原稿領域の端部を検出する原稿端検出部と、前記原稿端検出部によって検出された原稿端の座標に基づいて、原稿領域の境界線を算出する境界線算出部と、原稿の縁から原稿の影を検出する原稿影検出部と、前記原稿影検出部によって検出された結果と前記境界線算出部によって算出された境界線との距離を判定する距離判定部と、距離判定部の判定結果に応じて前記境界線の確からしさを決定する確からしさ判定部と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、原稿画像が歪んでいても、算出された原稿領域と背景領域の境界線が正しいものかを判定できる。
【図面の簡単な説明】
【００１０】
【図１】境界線と原稿影との距離のヒストグラム
【図２】原稿画像が歪んだ場合の、境界線と原稿影との距離のヒストグラム
【図３】本発明における画像読み取りユニットの構成図
【図４】本発明における画像読み取り装置の構成図
【図５】第１の実施形態における処理の流れを示すフローチャート
【図６】原稿端画素判定処理の流れを示すフローチャート
【図７】原稿影画素判定処理の流れを示すフローチャート
【図８】最小二乗法の計算方法を示す図
【図９】第２の実施形態における処理の流れを示すフローチャート
【発明を実施するための形態】
【００１１】
（実施例１）
以下図面を参照して本発明に係る実施形態の例を詳細に説明する。
【００１２】
図３は、本発明における画像読み取りユニットの構成図である。画像読み取りユニット３０１は、原稿Ｄをピックアップするピックアップローラ３０２と、ピックアップローラ３０２によりピックアップされた原稿束Ｄを装置内に給送する給送ローラ３０３と、ピックアップされた原稿束Ｄを１枚ずつ分離する分離ローラ３０４と、給紙した原稿を排紙口まで搬送するための搬送ローラ３０８と、原稿束Ｄから分離された原稿の画像情報を読み取るラインイメージセンサ３０５と、ラインイメージセンサ３０５の対向位置に配置された対向面３０７と、原稿を検知するレジストセンサ３０６と、原稿検知センサ３０９を備えている。画像読み取りが開始されると、画像読み取りユニット３０１は、ピックアップローラ３０２と給送ローラ３０３によって原稿束Ｄを取り込み、分離ローラ３０４によって１枚ずつに分離する。分離された原稿Ｄは、副走査方向に搬送されつつ、その上面に形成されている画像がラインイメージセンサ３０５によって主走査方向（原稿搬送方向と直交する方向）に沿って読み取られる。画像が読み取られた後、原稿は装置外部へ排出される。
【００１３】
図４は、本発明における画像読み取り装置の構成図である。画像読み取り装置４０１は、原稿を読み取る画像読み取りユニット４０２と、読み取られた画像に対して画像処理を行う画像処理回路４０３と、画像処理回路４０３から出力される画像データを一時的に記憶するＲＡＭ４０４と、 画像読み取り装置内４０１で使用されるプログラムを格納するＲＯＭ４０５と、ＲＯＭ４０５に格納されたプログラムに従って画像読み取り装置全体を制御し、またＲＡＭ４０５内の画像データを解析し原稿領域と背景領域の境界の算出をおこなうＣＰＵ４０６と、ＣＰＵ４０６から送信されたＲＡＭ４０４内の画像データを外部ＰＣ４０７に転送すると共に、外部ＰＣ４０７からの画像読み取りを指示する割り込みをＣＰＵ４０６に転送する転送部４０８とを備える。
【００１４】
なお、本実施形態においては、画像読み取り装置として、転送部を通して画像読み取り装置と接続され画像読み取り装置に対して読み取り指示や画像データの受信を行う外部ＰＣと接続されている構成を考えるが、外部ＰＣと接続することなく画像読み取りを行える構成であっても良い。
【００１５】
また、本実施形態においてＣＰＵ４０６が行っている処理は、ＣＰＵ４０６ではなく、転送部４０８を通して接続された外部ＰＣ４０７や、さらに外部ＰＣ４０７に接続されている他の情報処理装置で行っても良い。
【００１６】
図５に、本実施形態における処理の流れを示す。ここでは、原稿上端の境界の検出方法について説明する。
【００１７】
ステップＳ１０１で、ユーザーは外部ＰＣ４０７に対して原稿読み取りの指示を出し、原稿読み取りの指示を受け取った外部ＰＣ４０７は、接続された画像読み取り装置に対して、画像読み取り指示を送る。画像読み取り指示を受けた画像読み取り装置は、あらかじめ画像読み取り装置に置かれた原稿を搬送し、画像の読み取りを行う。
【００１８】
ステップＳ１０２で、読み取られた画像データは画像処理回路４０３によって画像処理され、ＲＡＭ４０４に格納される。本実施形態では、図２に示す画像データが、ＲＡＭ４０４に格納されたものとする。
【００１９】
ステップＳ１０３で、ＣＰＵ４０６が、ＲＡＭ４０４に格納された画像データを解析し、原稿端画素を検出する。本実施形態では、画像の端から画像の中央方向に向けて、隣り合う画素との濃度差を算出していき、隣との濃度差が所定の値以上になる画素が見つかったら、その画素を原稿端画素と判定するという方法で行う。ただしこの検出方法は一例であり、原稿の端部と想定される画素を検出する方法であれば、どのような方法を用いても良い。
【００２０】
ステップＳ１０３の中で行われる原稿端画素判定処理の流れを示したものが、図６である。
【００２１】
ステップＳ２０１で、ＣＰＵ４０６は、ＲＡＭ４０４に格納された、座標を示すための変数ｘ、ｙに０を設定する。
【００２２】
ステップＳ２０２で、濃度差が所定の値以上であるかを判定するための閾値Ｔ１を取得する。本実施形態では、閾値Ｔ１は予めＲＯＭ４０５に格納されているものとし、取得はＣＰＵ４０６がこの値を読み出すことで行う。
【００２３】
ステップＳ２０３で、ＣＰＵ４０６は、ＲＡＭ４０４に格納された変数ｘの値が、画像の主走査方向の画素数より小さいか否かを判定する。主走査方向の画素数より小さい場合には、処理はステップＳ２０４に進む。主走査方向の画素数以上の場合には、処理を終了する。
【００２４】
ステップＳ２０４で、ＣＰＵ４０６は、ＲＡＭ４０４に格納された変数ｙに１加算した値が、画像の副走査方向の画素数より小さいか否かを判定する。副走査方向の画素数より小さい場合には、処理はステップＳ２０５に進む。副走査方向の画素数以上の場合には、処理はステップＳ２０８に進む。
【００２５】
ステップＳ２０５で、ＣＰＵ４０６は座標（ｘ、ｙ）の画素と、座標（ｘ、ｙ＋１）の画素の濃度差を算出し、その濃度差がステップＳ２０２で取得した閾値Ｔ１以上であるかを判定する。濃度差が閾値Ｔ１以上である場合には、処理はステップＳ２０７に進み、閾値Ｔ１より小さい場合には、処理はステップＳ２０６に進む。なお、座標（ｘ、ｙ）という表記は、主走査方向の座標がｘで、副走査方向の座標がｙであることを意味している。また、本実施形態においては、画像の左上端を座標原点（０，０）とし、画像の右側ほど主走査座標が大きく、また画像の下側ほど副走査座標が大きくなるように座標系を定める。
【００２６】
ステップＳ２０６で、ＣＰＵはＲＡＭ４０４に格納された変数ｙに１加算する。
【００２７】
ステップＳ２０７で、座標（ｘ、ｙ）を示す座標データをＲＡＭ４０４中の原稿端画素格納領域に追加する。ただしＲＡＭ４０４における原稿端画素の格納方法は、複数の座標情報を格納できるものであれば、リスト構造など一般的なもので良い。
【００２８】
ステップＳ２０８で、ＣＰＵはＲＡＭ４０４に格納された変数ｘに１加算し、また変数ｙに０を設定する。
【００２９】
ステップＳ２０１からステップＳ２０８の手続きにより、原稿端画素がＲＡＭ４０４中の原稿端画素格納領域に格納される。
【００３０】
ステップＳ１０４で、ＣＰＵ４０６が、ＲＡＭ４０４に格納された画像データを解析し、原稿の影に対応する画素の座標を検出する。本実施形態では、画像の端から画像の中央方向に向けて、画素の濃度を抽出し、濃度が一定以下なる画素が見つかったら、その画素を原稿の影と判定するという方法で行う。ただしこの検出方法は一例であり、原稿の影と想定される画素を検出する方法であれば、どのような方法を用いても良い。
【００３１】
ステップＳ１０４の中で行われる原稿影画素判定処理の流れを示したものが、図７である。ステップＳ３０１で、ＣＰＵ４０６は、ＲＡＭ４０４に格納された、座標を示すための変数ｘ、ｙに０を設定する。
【００３２】
ステップＳ３０２で、濃度が所定の値以上であるかを判定するための閾値Ｔ２を取得する。本実施形態では、閾値Ｔ２は予めＲＯＭ４０５に格納されているものとし、取得はＣＰＵ４０６がこの値を読み出すことで行う。
【００３３】
ステップＳ３０３で、ＣＰＵ４０６は、ＲＡＭ４０４に格納された変数ｘの値が、画像の主走査方向の画素数より小さいか否かを判定する。主走査方向の画素数より小さい場合には、処理はステップＳ３０４に進む。主走査方向の画素数以上の場合には、処理を終了する。
【００３４】
ステップＳ３０４で、ＣＰＵ４０６は、ＲＡＭ４０４に格納された変数ｙの値が、画像の副走査方向の画素数より小さいか否かを判定する。副走査方向の画素数より小さい場合には、処理はステップＳ３０５に進む。副走査方向の画素数以上の場合には、処理はステップＳ３０８に進む。
【００３５】
ステップＳ３０５で、ＣＰＵ４０６は座標（ｘ、ｙ）の画素の濃度を取得し、その濃度がステップＳ３０２で取得した閾値Ｔ２以上であるかを判定する。濃度が閾値Ｔ２以上である場合には、処理はステップＳ３０７に進み、閾値Ｔ２より小さい場合には、処理はステップＳ３０６に進む。
【００３６】
ステップＳ３０６で、ＣＰＵはＲＡＭ４０４に格納された変数ｙに１加算する。
【００３７】
ステップＳ３０７で、座標（ｘ、ｙ）を示す座標データを、ＲＡＭ４０４中の原稿影画素格納領域に追加する。ただしＲＡＭ４０４における原稿影画素の格納方法は、複数の座標情報を格納できるものであれば、リスト構造など一般的なもので良い。
【００３８】
ステップＳ３０８で、ＣＰＵはＲＡＭ４０４に格納された変数ｘに１加算し、また変数ｙに０を設定する。
【００３９】
ステップＳ３０１からステップＳ３０８の手続きにより、原稿の影の画素がＲＡＭ４０４中の原稿影画素格納領域に格納される。
【００４０】
ステップＳ１０５で、ＣＰＵ４０６が、原稿端画素格納領域に格納された座標データを基に、原稿境界の候補（以下、境界候補）を算出する。本実施形態では、境界候補として二次曲線を用いる。二次曲線の算出はどのような方法で行っても良いが、本実施形態では、最小二乗法を用いて行う。すなわち、ＣＰＵ４０６は原稿端画素格納領域に格納された各座標データとの二乗誤差が最小になる二次曲線を算出する。本実施形態では、境界候補としてｙ＝ａ２ｘ２＋ａ１ｘ＋ａ０が算出されたものとする。ただしａ０、ａ１、ａ２は、最小二乗法で決定される定数である。
【００４１】
ここで図８を用いて最小二乗法の計算方法を簡単に説明する。ここでは簡単のために原稿端画素格納領域に格納された座標データが１０個だけであった場合を考える。ただし、一般には原稿端画素格納領域に格納された座標データの数は１０より多いことも少ないこともある。図８では、この１０個の座標データをｐ１〜ｐ１０として示している。二次曲線を算出する最小二乗法では、これらの座標データに対して二乗誤差Σ１０ｎ＝１（ｙｎ−ａ２ｘｎ２−ａ１ｘｎ−ａ０）２を算出し、この二乗誤差を最小にするａ０、ａ１、ａ２を求める。図８では、算出した二次曲線を破線で描いている。
【００４２】
ステップＳ１０６で、原稿影画素格納領域に格納された各座標データについて、Ｓ１０５で算出した境界候補までの距離を算出し、距離のヒストグラムを生成する。原稿影画素格納領域に格納された各座標データから境界候補までの距離の算出はどのような方法で行っても良いが、例えば次の方法でも良い。まず原稿影画素格納領域から座標データを１つ取得する。ここでは座標データが座標（ｘＳ、ｙＳ）を示すものであったとする。次に算出した境界候補が主走査方向座標値ｘＳで持つ副走査方向座標値ｙＬを算出する。本実施形態では、ｙＬ＝ａ２ｘＳ２＋ａ１ｘＳ＋ａ０である。続いてｙＳとｙＬの差分の絶対値｜ｙＳ−ｙＬ｜を算出し、この値を影から境界候補までの距離とする。
【００４３】
続いて、生成したヒストグラムのピークの幅の広さに基づいて、算出された境界候補が正しい境界になっているかを判定する。この判定のために、ステップＳ１０７で、ヒストグラムの幅Ｗを取得する。本実施形態では、ヒストグラムの幅Ｗとして半値幅（ヒストグラムのピークの高さの５０％の値を持つ２点の間隔）を用いる。ただし、ヒストグラムの幅Ｗとして半値幅を用いるのは一例であり、ピークの幅を特徴づける量であればどのようなものでも良い。例えば５０％以外のピークの高さの値を持つ２点の間隔としても良く、またヒストグラムを構成する全要素のうち特定の割合の要素が含まれる区間などとしても良い。
【００４４】
ステップＳ１０８で、ステップＳ１０７で取得したヒストグラムの幅が、算出された境界候補が正しい境界になっているかを判定するための閾値ＴＷを取得する。本実施形態では、閾値ＴＷは予めＲＯＭ４０５に格納されているものとする。なお、本実施形態では、閾値ＴＷとしてＲＯＭ４０５に格納されているものを使用しているが、これは一例であり、ピークの幅が広いか否かを判定できるものであれば、他の値を使用しても良い。
【００４５】
ステップＳ１０９で、ヒストグラムのピークの幅Ｗと閾値ＴＷに基づいて、算出された境界候補が正しい境界になっているかを判定する。本実施形態では、幅Ｗが閾値ＴＷより大きい場合（Ｗ＞ＴＷ）には、算出された境界候補が正しい境界になっていないと判定する。一方、幅Ｗが閾値Ｔ以下の場合（Ｗ≦ＴＷ）には、算出された境界候補が正しい境界になっていると判定する。
【００４６】
本実施形態では、境界候補を算出する際に二次の曲線を用いているが、三次以上の高次曲線や、三角関数や指数関数など他の関数で記述される曲線を用いても良い。また関数で記述される曲線ではなく、ＲＯＭ４０５に格納された座標テーブルで記述される曲線であっても良い。
【００４７】
（実施例２）
本実施形態では、境界候補の正しさを判定するだけでなく、最適な境界の検出を行う。
【００４８】
本実施形態では、第１の実施形態と同様の画像読み取りユニットと画像読み取り装置を用いる。
【００４９】
図９に、本実施形態における処理の流れを示す。
【００５０】
ステップＳ４０１からＳ４０４で、第１の実施形態と同様にして、原稿読取指示の受信、原稿の読取、原稿端画素の検出、原稿の影の検出を行う。
【００５１】
ステップＳ４０５で、予めＲＯＭ４０５に格納された、最適な境界を検出する際に探索する曲線の次数の最高値ＮＭＡＸを取得する。ただし、最高値ＮＭＡＸはＲＯＭ４０５に格納された固定値を使うのではなく、動的に算出するのでも良い。例えば、ステップＳ４０３で取得した原稿端画素の数−１をＮＭＡＸとして用いるのでもよい。なお、後述するように本実施形態では、最小二乗法で曲線を算出する。最小二乗法には、元となるデータ数以上の次数の曲線に対しては、パラメーターを一意に決定できないという特徴があるため、原稿端画素の数−１をＮＭＡＸとして用いることには、曲線を一意に決定できるというメリットがある。
【００５２】
ステップＳ４０６で、曲線の次数を示す変数Ｎに１を設定する。なお、変数Ｎは、ＲＡＭ４０４の所定の場所に格納されているものとする。
【００５３】
ステップＳ４０７で、ＲＡＭ４０４の所定の場所に設けられた、最適な曲線の情報を格納するための最適曲線格納変数を初期化する。最適な曲線の情報としては、本実施形態では、曲線の次数ＮＢＥＳＴと、ＮＢＥＳＴ＋１個の多項式の係数、ヒストグラムの幅、の組を用いる。ただしこの情報は一例であり、曲線の形状と適している度合いを特定できるものであれば、どのようなものでも良い。また本実施形態では、ＮＢＥＳＴに０を設定することで、変数の初期化を行う。
【００５４】
ステップＳ４０８で、ステップＳ４０３で原稿端画素格納領域に格納された座標データを基に、境界候補となるＮ次曲線を算出する。Ｎ次曲線の算出はどのような方法で行っても良いが、本実施形態では、最小二乗法を用いて行う。最小二乗法によって、Ｎ次曲線ｙ＝ａＮｘＮ＋ａＮ−１ｘＮ−１＋・・・＋ａ１ｘ＋ａ０のＮ＋１個の係数ａＮ、ａＮ−１、・・・、ａ１、ａ０が算出される。
【００５５】
ステップＳ４０９で、ステップＳ４０４で原稿影画素格納領域に格納された各座標データについて、Ｓ４０８で算出した境界候補までの距離を算出し、距離のヒストグラムを生成する。原稿影画素格納領域に格納された各座標データから境界候補までの距離の算出はどのような方法で行っても良いが、例えば次の方法でも良い。まず原稿影画素格納領域から座標データを１つ取得する。ここでは座標データが（ｘＳ、ｙＳ）であったとする。次に算出した境界候補が主走査方向座標値ｘＳで持つ副走査方向座標値ｙＬを算出する。本実施形態では、ｙＬ＝ａＮｘＳＮ＋ａＮ−１ｘＳＮ−１＋・・・＋ａ１ｘＳ＋ａ０である。続いてｙＳとｙＬの差分の絶対値｜ｙＳ−ｙＬ｜を算出し、この値を影から直線までの距離とする。
【００５６】
ステップＳ４１０で、第１の実施形態と同様にして、ヒストグラムの幅の取得を行う。
【００５７】
ステップＳ４１１で、最適曲線格納変数が初期化されているかを判定し、初期化されていなければステップＳ４１２に、初期化されていたらＳ４１３に進む。なお、本実施形態では、最適曲線格納変数中の曲線の次数ＮＢＥＳＴについて、０が設定されていたら初期化されている、０以外が設定されていたら初期化されていないと判定する。
【００５８】
ステップＳ４１２で、ステップＳ４０８で算出した境界候補が、最適曲線格納変数に格納されている曲線よりも適しているかを判定する。そして、適していると判定された場合には、ステップＳ４１３に進み、適していないと判定された場合には、ステップＳ４１４に進む。本実施形態では、最適曲線格納変数中のヒストグラムの幅と、ステップＳ４１０で取得したヒストグラムの幅を比較し、最適曲線格納変数中のヒストグラムの幅の方が小さければ適していないと判定し、最適曲線格納変数中のヒストグラムの幅の方が大きければ適していると判定する。なお、本実施形態においては、ステップＳ４１０で取得したヒストグラムの幅と、最適曲線格納変数中のヒストグラムの幅が等しい場合には、適していないと判定するものとするが、これは一例であり、適していると判定するのでも良い。ただし、適していないと判定する方法には、次数が低くより簡単な関数で記述される境界を検出できるというメリットがある。
【００５９】
ステップＳ４１３で、ステップＳ４０８で算出した境界候補の情報を、最適曲線格納変数に格納する。ここでは曲線の次数ＮＢＥＳＴにＮを、係数にステップＳ４０８で算出したａＮ〜ａ０を、ヒストグラムの幅にステップＳ４１０で算出した幅を、それぞれ格納する。
【００６０】
ステップＳ４１４で、Ｎに１だけ加算する。ステップＳ４１５で、ＮがＮＭＡＸより大きいかを判定する。ＮがＮＭＡＸ以下の場合には、処理はステップＳ４０８に進む。ＮがＮＭＡＸより大きい場合には、処理を終了する。
【００６１】
以上の手続きにより、処理が終了した時点でＲＡＭ４０４の最適曲線格納変数に最適な境界が格納されることになり、すなわち最適な境界が取得される。
【００６２】
なお、本実施形態では、境界候補としてＮ次曲線のみを用いていたが、これは一例であり、三角関数や指数関数、またＲＯＭ４０５に格納された座標テーブルで記述される曲線を用いても良い。これらの曲線を用いる場合には、例えばＮの値と用いる関数との対応関係を示す情報を予めＲＡＭ４０４に格納しておき、ステップＳ４０８で曲線の算出を行う際に、ＲＡＭ４０４に格納された対応関係を参照して用いる関数を決定すればよい。
【００６３】
第１および第２の実施形態では、原稿の上端についてのみ、境界候補の判定・検出を行っている。しかし第１および第２の実施形態の手法を用いれば、座標系の定め方を９０度、１８０度、２７０度回転させることによって、容易に左端、下端、右端の境界候補を検出することができる。
【００６４】
また、原稿の特定の端部に対してのみ第１および第２の実施形態に記載の方法による検出を適用し、それ以外の端部は従来技術を用いて検出するものとしても良い。例えば見開き原稿には、原稿の閉じ部を含む端部（例えば、左右開き原稿の場合には上下端）では歪みが発生しやすく、一方、閉じ部を含まない端部（例えば、左右開き原稿の場合には左右端）では歪みが発生しにくいという特徴がある。また歪んで搬送された原稿の場合には、原稿を読み取るラインイメージセンサに該直交の端部では歪みが発生しやすく、原稿を読み取るラインイメージセンサに該平行の端部では歪みが発生しにくいという特徴がある。これらの場合には、歪みが発生しやすい端部の境界を第１および第２の実施形態に記載の方法で検出し、歪みが発生しにくい端部の境界は従来技術で検出するとしても良い。
【００６５】
第１および第２の実施形態では、原稿の１つの端部の境界を検出する際に、検知された原稿端および原稿影の全てを用いて１つの境界を検出していた。しかし、これは一例であり、検出された原稿端および原稿影を複数のグループに分割し、各グループから１つの境界を検出するものとしても良い。なお、検出された原稿端および原稿影を複数のグループに分割する方法としては、例えば、原稿端および原稿影の中で副走査方向の座標が最小となる要素に対して、主走査方向座標が大きい要素（画像上で右側の要素）を１つのグループに分類し、主走査方向座標が小さい要素（画像上で左側の要素）をもう１つのグループに分類するという方法でも良い。
【符号の説明】
【００６６】
３０１  画像読み取りユニット
３０２  ピックアップローラ
３０３  給送ローラ
３０４  分離ローラ
３０５  ラインイメージセンサ
３０６  レジストセンサ
３０７  対向面
３０８  搬送ローラ
４０１  画像読み取り装置
４０２  画像読み取りユニット
４０３  画像処理回路
４０４  ＲＡＭ
４０５  ＲＯＭ
４０６  ＣＰＵ
４０７  外部ＰＣ
４０８  転送部
【図１】
2020072325.tif 000003
【図２】
2020072325.tif 000004
【図３】
2020072325.tif 000005
【図４】
2020072325.tif 000006
【図５】
2020072325.tif 000007
【図６】
2020072325.tif 000008
【図７】
2020072325.tif 000009
【図８】
2020072325.tif 000010
【図９】
2020072325.tif 000011