(57)【要約】【課題】読取画像において、原稿の縁の少なくとも一部を表す直線と原稿の傾きとの少なくとも一方を含む原稿情報を、適切に特定する。【解決手段】読取画像を解析することによって、原稿の縁を表す直線の候補である複数の候補直線を特定する。読取画像の端よりも内側を通る候補直線を内直線と呼び、読取画像の端を形成する候補直線を端直線と呼ぶ。内直線を含む第１種基準直線群を選択可能か否かを判断する。第１種基準直線群を選択可能と判断される場合に、第１種基準直線群を用いて原稿情報を特定する。第１種基準直線群を選択可能と判断されない場合に、端直線を含む第２種基準直線群を用いて原稿情報を特定する。第２種基準直線群における端直線の割合は、第１種基準直線群における端直線の割合よりも高い。【選択図】  図１
2018121270.tif 000002
【特許請求の範囲】
【請求項１】
画像処理のためのコンピュータプログラムであって、
原稿を光学的に読み取ることによって生成される前記原稿を含む読取画像を表す読取画像データを取得する機能と、
前記読取画像を解析することによって、前記原稿の縁を表す直線の候補である複数の候補直線を特定する直線特定機能と、
特定される複数の候補直線のうちの少なくとも一本の候補直線で構成される基準直線を用いて、前記読取画像中の前記原稿の前記縁の少なくとも一部を表す候補直線と前記読取画像に対する前記原稿の傾きとの少なくとも一方を含む原稿情報を特定する原稿情報特定機能と、
をコンピュータに実現させ、
前記原稿情報特定機能は、
前記複数の候補直線からＰ本（Ｐは１以上の整数）の内直線を含む第１種基準直線群を選択可能か否か判断する機能であって、前記内直線は前記読取画像の端よりも内側を通る候補直線である、第１判断機能と、
前記第１種基準直線群を選択可能と判断される場合に、前記第１種基準直線群を用いて前記原稿情報を特定する第１特定機能と、
前記第１種基準直線群を選択可能と判断されない場合に、前記複数の候補直線のうちのＱ本（Ｑは１以上の整数）の端直線を含む第２種基準直線群を用いて前記原稿情報を特定する機能であって、前記端直線は前記読取画像の端を形成する候補直線であり、前記第２種基準直線群に含まれる前記候補直線の総数に対する前記端直線の総数Ｑの割合は前記第１種基準直線群に含まれる前記候補直線の総数に対する前記端直線の総数の割合よりも高い第２特定機能と、
を含む、コンピュータプログラム。
【請求項２】
請求項１に記載のコンピュータプログラムであって、
前記複数の候補直線が前記内直線及び前記端直線を含む場合に、
前記第１判断機能は、前記第１種基準直線群として、前記端直線を含まずに、前記Ｐ本の内直線のみで構成される直線群を用いる、
コンピュータプログラム。
【請求項３】
請求項１または２に記載のコンピュータプログラムであって、
前記複数の候補直線が前記内直線及び前記端直線を含む場合に、
前記第２特定機能は、前記第２種基準直線群として、前記Ｑ本の端直線と、Ｓ本（Ｓは１以上の整数）の内直線と、で構成される直線群を用いる、コンピュータプログラム。
【請求項４】
請求項１から３のいずれかに記載のコンピュータプログラムであって、
前記原稿情報特定機能は、
前記複数の候補直線から前記第２種基準直線群を選択可能か否かを判断する第２判断機能と、
前記第２種基準直線群を選択可能と判断されない場合に、前記複数の候補直線のうちのＴ本（Ｔは１以上の整数）の端直線のみで構成されている第３種基準直線群を用いて前記原稿情報を特定する第３特定機能と、
を含み、
前記第２特定機能は、前記第２種基準直線群を選択可能と判断される場合に、前記第２種基準直線群を用いて前記原稿情報を特定する、
コンピュータプログラム。
【請求項５】
請求項１から４のいずれかに記載のコンピュータプログラムであって、
前記原稿情報特定機能を、第１原稿情報特定機能と呼ぶ場合に、
前記第１原稿情報特定機能は、前記読取画像データが、光学素子を移動させずに前記原稿を前記光学素子に対して移動させることによって前記原稿を光学的に読み取ることによって生成されるデータである場合に、前記原稿情報を特定する機能であり、
前記コンピュータプログラムは、前記読取画像データが、前記原稿を移動させずに光学素子を前記原稿に対して移動させることによって前記原稿を光学的に読み取ることによって生成されるデータである場合に、前記原稿情報を特定する第２原稿情報特定機能を、前記コンピュータに実現させ、
前記第２原稿情報特定機能は、
前記複数の候補直線が１本以上の端直線を含むか否かを判断する機能と、
前記複数の候補直線が１本以上の端直線を含む場合に、前記１本以上の端直線を含む直線群を用いて前記原稿情報を特定する機能と、
前記複数の候補直線が１本以上の端直線を含まない場合に、前記内直線のみからなる直線群を用いて前記原稿情報を特定する機能と、
を含む、コンピュータプログラム。
【請求項６】
請求項１から５のいずれかに記載のコンピュータプログラムであって、
前記第１判断機能は、前記複数の候補直線から、Ｐ本の内直線を含む２本の候補直線であって予め決められた平行状態または予め決められた垂直状態の第１候補直線と第２候補直線とを選択できる場合に、前記第１候補直線と前記第２候補直線とで構成される前記第１種基準直線群を選択できると判断する、コンピュータプログラム。
【請求項７】
請求項６に記載のコンピュータプログラムであって、
前記第１特定機能は、前記第１候補直線と前記第２候補直線とを、前記読取画像中の前記原稿の前記縁の少なくとも一部を表す候補直線として、特定し、
前記コンピュータプログラムは、さらに、
前記複数の候補直線から、前記第１候補直線と前記第２候補直線とに組み合わせることによって矩形を形成する第３候補直線と第４候補直線とを特定する機能と、
前記読取画像のうちの前記第１候補直線と前記第２候補直線と前記第３候補直線と前記第４候補直線とで形成される矩形の内部領域を、前記原稿を表す領域として特定する機能と、
を前記コンピュータに実現させる、コンピュータプログラム。
【請求項８】
画像処理装置であって、
原稿を光学的に読み取ることによって生成される前記原稿を含む読取画像を表す読取画像データを取得する取得部と、
前記読取画像を解析することによって、前記原稿の縁を表す直線の候補である複数の候補直線を特定する直線特定部と、
特定される複数の候補直線のうちの少なくとも一本の候補直線で構成される基準直線群を用いて、前記読取画像中の前記原稿の前記縁の少なくとも一部を表す候補直線と前記読取画像に対する前記原稿の傾きとの少なくとも一方を含む原稿情報を特定する原稿情報特定部と、
を備え、
前記原稿情報特定部は、
前記複数の候補直線からＰ本（Ｐは１以上の整数）の内直線を含む第１種基準直線群を選択可能か否か判断する判断部であって、前記内直線は前記読取画像の端よりも内側を通る候補直線である、第１判断部と、
前記第１種基準直線群を選択可能と判断される場合に、前記第１種基準直線群を用いて前記原稿情報を特定する第１特定部と、
前記第１種基準直線群を選択可能と判断されない場合に、前記複数の候補直線のうちのＱ本（Ｑは１以上の整数）の端直線を含む第２種基準直線群を用いて前記原稿情報を特定する特定部であって、前記端直線は前記読取画像の端を形成する候補直線であり、前記第２種基準直線群に含まれる前記候補直線の総数に対する前記端直線の総数Ｑの割合は前記第１種基準直線群に含まれる前記候補直線の総数に対する前記端直線の総数の割合よりも高い第２特定部と、
を含む、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、原稿を光学的に読み取ることによって生成される画像データを用いる画像処理に関する。
【背景技術】
【０００２】
従来から、スキャナなどの画像読取装置を用いて、原稿を表す原稿領域を含む画像を表す画像データが生成されている。このような画像データによって表される画像中のエッジ候補画素の座標値に基づいて、ハフ変換や最小二乗法などの手法によって、原稿領域のエッジに対応する直線の候補となるエッジ候補直線を算出し、算出されたエッジ候補直線に基づいて原稿領域の傾きを算出する技術が提案されている。また、原稿の傾き検出の精度を向上させるために、原稿エッジの中で、直角な２辺や平行な２辺を選択して原稿傾きを検出する方法が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２１８９５３号公報
【特許文献２】特開２０１５−１７０９２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、原稿の一部が、画像データによって表される読取画像の端の外にはみ出る場合があった。このような場合に、読取画像に対する原稿の傾きを適切に算出することができない場合があった。このような問題は、原稿の傾きを算出する場合に限らず、読取画像中の原稿の縁の少なくとも一部を表す直線を特定する場合に共通する問題であった。
【０００５】
本明細書は、読取画像の端から原稿の一部がはみ出る場合に、原稿の縁の少なくとも一部を表す直線と原稿の傾きとの少なくとも一方を含む原稿情報を、適切に特定できる技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書は、例えば、以下の適用例を開示する。
【０００７】
［適用例１］画像処理のためのコンピュータプログラムであって、原稿を光学的に読み取ることによって生成される前記原稿を含む読取画像を表す読取画像データを取得する機能と、前記読取画像を解析することによって、前記原稿の縁を表す直線の候補である複数の候補直線を特定する直線特定機能と、特定される複数の候補直線のうちの少なくとも一本の候補直線で構成される基準直線を用いて、前記読取画像中の前記原稿の前記縁の少なくとも一部を表す候補直線と前記読取画像に対する前記原稿の傾きとの少なくとも一方を含む原稿情報を特定する原稿情報特定機能と、をコンピュータに実現させ、前記原稿情報特定機能は、前記複数の候補直線からＰ本（Ｐは１以上の整数）の内直線を含む第１種基準直線群を選択可能か否か判断する機能であって、前記内直線は前記読取画像の端よりも内側を通る候補直線である、第１判断機能と、前記第１種基準直線群を選択可能と判断される場合に、前記第１種基準直線群を用いて前記原稿情報を特定する第１特定機能と、前記第１種基準直線群を選択可能と判断されない場合に、前記複数の候補直線のうちのＱ本（Ｑは１以上の整数）の端直線を含む第２種基準直線群を用いて前記原稿情報を特定する機能であって、前記端直線は前記読取画像の端を形成する候補直線であり、前記第２種基準直線群に含まれる前記候補直線の総数に対する前記端直線の総数Ｑの割合は前記第１種基準直線群に含まれる前記候補直線の総数に対する前記端直線の総数の割合よりも高い第２特定機能と、を含む、コンピュータプログラム。
【０００８】
この構成によれば、読取画像の端から原稿の一部がはみ出る場合に、原稿情報を適切に特定できる。
【０００９】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、画像処理方法および画像処理装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体（例えば、一時的ではない記録媒体）、等の形態で実現することができる。
【図面の簡単な説明】
【００１０】
【図１】画像処理システムの説明図である。
【図２】スキャン処理の例を示すフローチャートである。
【図３】読取画像の例を示す説明図である。
【図４】縁直線と原稿領域を特定する処理の例を示すフローチャートである。
【図５】読取画像の別の例を示す説明図である。
【図６】読取画像の別の例を示す説明図である。
【図７】読取画像の別の例を示す説明図である。
【図８】縁直線と原稿領域を特定する処理の別の実施例を示すフローチャートである。
【図９】読取画像の別の例を示す説明図である。
【図１０】読取画像の別の例を示す説明図である。
【発明を実施するための形態】
【００１１】
Ａ．第１実施例：
図１（Ａ）は、一実施例としての画像処理システムを示す説明図である。この画像処理システムは、画像処理装置１００と、スキャナ４００と、を含んでいる。画像処理装置１００とスキャナ４００とは、ネットワークＮＴに接続されており、互いに通信可能である。
【００１２】
画像処理装置１００は、例えば、パーソナルコンピュータである（例えば、デスクトップコンピュータ、タブレットコンピュータ）。画像処理装置１００は、プロセッサ１１０と、揮発性記憶装置１２０と、不揮発性記憶装置１３０と、画像を表示する表示部１４０と、ユーザによる操作を受け入れる操作部１５０と、インタフェース１９０と、を有している。これらの要素は、バスを介して互いに接続されている。
【００１３】
プロセッサ１１０は、データ処理を行う装置であり、例えば、ＣＰＵである。揮発性記憶装置１２０は、例えば、ＤＲＡＭであり、不揮発性記憶装置１３０は、例えば、フラッシュメモリである。不揮発性記憶装置１３０は、プログラム１３２を格納している。プロセッサ１１０は、プログラム１３２を実行することによって、スキャナ４００に原稿を読み取らせて、読み取った原稿を表す出力画像データを生成する処理を実行する（詳細は後述）。プログラム１３２は、例えば、スキャナ４００を制御するためのスキャナドライバであってよい。プロセッサ１１０は、プログラム１３２の実行に利用される種々の中間データを、記憶装置（例えば、揮発性記憶装置１２０、不揮発性記憶装置１３０のいずれか）に、一時的に格納する。プログラム１３２は、例えば、スキャナ４００の製造者によって提供される。
【００１４】
表示部１４０は、画像を表示する装置であり、例えば、液晶ディスプレイである。これに代えて、ＬＥＤディスプレイ、有機ＥＬディスプレイなどの、画像を表示する他の種類の装置を採用してもよい。操作部１５０は、ユーザによる操作を受け取る装置であり、例えば、表示部１４０上に重ねて配置されたタッチパネルである。これに代えて、ボタン、レバーなどの、ユーザによって操作される他の種類の装置を採用してもよい。ユーザは、操作部１５０を操作することによって、種々の指示を画像処理装置１００に入力可能である。
【００１５】
インタフェース１９０は、他の装置と通信するためのインタフェースである（例えば、ＵＳＢインタフェース、有線ＬＡＮインタフェース、IEEE802.11の無線インタフェース）。本実施例では、インタフェース１９０は、有線または無線のネットワークインタフェースであり、ネットワークＮＴに接続されている。
【００１６】
図１（Ａ）、図１（Ｂ）には、スキャナ４００の斜視図が示されている。図中の第１方向Ｄｐ１と第２方向Ｄｐ２とは、水平な方向を示し、第３方向Ｄｐ３は、鉛直上方向を示している。第１方向Ｄｐ１と第２方向Ｄｐ２とは、互いに垂直である。以下、第１方向Ｄｐ１を「＋Ｄｐ１方向」とも呼び、第１方向Ｄｐ１の反対の方向を「−Ｄｐ１方向」とも呼ぶ。第２方向Ｄｐ２と第２方向Ｄｐ２に反対の方向と第３方向Ｄｐ３と第３方向Ｄｐ３に反対の方向とについても、同様に、それぞれ、「＋Ｄｐ２方向」「−Ｄｐ２方向」「＋Ｄｐ３方向」「−Ｄｐ３方向」とも呼ぶ。また、第３方向Ｄｐ３を、上方向Ｄｐ３とも呼ぶ。
【００１７】
スキャナ４００は、本体部４９０と、本体部４９０の上方向Ｄｐ３側に開閉可能に取り付けられた搬送装置４５０と、を有している。図１（Ａ）は、搬送装置４５０が閉じられた状態のスキャナ４００を示し、図１（Ｂ）は、搬送装置４５０が上方向Ｄｐ３に向けて開けられた状態のスキャナ４００を示している。
【００１８】
本体部４９０には、制御部４１０と、原稿を光学的に読み取る読取部４２０と、読取部４２０を第１方向Ｄｐ１に平行に移動させる移動装置４３０と、が収容されている。移動装置４３０は、読取部４２０を移動させる図示しない動力源（例えば、電気モータ）を含んでいる。搬送装置４５０は、原稿を搬送するための装置であり、自動給紙装置（Auto Document Feeder）とも呼ばれる。本実施例では、搬送装置４５０は、スキャンすべき原稿を載せ置くための給紙トレー４５６と、給紙トレー４５６上の原稿を搬送する搬送ローラ４５２と、搬送ローラ４５２を回転させる図示しない動力源（例えば、電気モータ）と、スキャン済の原稿を載せ置くための排紙トレー４５８と、を有している。
【００１９】
本体部４９０（図１（Ｂ））の上方向Ｄｐ３側の面には、原稿台４４０が設けられている。原稿台４４０は、搬送装置４５０を上方向Ｄｐ３に向けて開くことによって、現れる。原稿台４４０は、第１方向Ｄｐ１に平行な２辺と第２方向Ｄｐ２に平行な２辺とで囲まれる略矩形状の台であり、透明板（例えば、ガラス板）を用いて構成されている。原稿台４４０は、フラットベッドとも呼ばれる。
【００２０】
読取部４２０は、原稿台４４０の−Ｄｐ３方向側（すなわち、原稿台４４０の下）に配置されている。読取部４２０は、原稿を光学的に読み取る光学センサであり、ＣＣＤやＣＭＯＳなどの複数の光電変換素子（単に、光学素子とも呼ぶ）が、第２方向Ｄｐ２に並んで配置された構成を有している。読取部４２０は、原稿台４４０上の原稿を、光学的に読み取ることによって、読み取った原稿を表す信号を出力する。
【００２１】
制御部４１０は、読取部４２０と移動装置４３０と搬送装置４５０とを制御する。制御部４１０は、例えば、データ処理を行うプロセッサ４１１（例えば、ＣＰＵ）と、揮発性記憶装置４１２（例えば、ＤＲＡＭ）と、不揮発性記憶装置４１３（例えば、フラッシュメモリ）と、インタフェース４１９と、を含むコンピュータである。制御部４１０の各要素は、バスを介して互いに接続されている。不揮発性記憶装置４１３は、予め、プログラム４１４を格納している。プロセッサ４１１は、プログラム４１４を実行することによって、読取部４２０と移動装置４３０と搬送装置４５０とを制御する。インタフェース４１９は、他の装置と通信するためのインタフェースである（例えば、ＵＳＢインタフェース、有線ＬＡＮインタフェース、IEEE802.11の無線インタフェース）。本実施例では、インタフェース４１９は、有線または無線のネットワークインタフェースであり、ネットワークＮＴに接続されている。
【００２２】
スキャナ４００は、搬送装置４５０（図１（Ａ））を用いて原稿を読み取るモード（搬送モードと呼ぶ）と、搬送装置４５０を用いずに原稿台４４０（図１（Ｂ））を用いて原稿を読み取るモード（台モードと呼ぶ）と、で動作可能である。制御部４１０のプロセッサ４１１は、画像処理装置１００からの指示に従って、搬送モードと台モードとのいずれかの読取モードで、スキャナ４００を制御する。
【００２３】
搬送モードで原稿を読み取る場合、図１（Ａ）のように、搬送装置４５０が閉じられた状態で（すなわち、搬送装置４５０が原稿台４４０上に載った状態で）、スキャナ４００が用いられる。制御部４１０のプロセッサ４１１は、移動装置４３０を制御して、読取部４２０を、予め決められた位置（例えば、原稿台４４０のうちの第１方向Ｄｐ１とは反対方向側の端の位置）に配置する。そして、プロセッサ４１１は、搬送装置４５０の搬送ローラ４５２を回転させることにより、原稿を、給紙トレー４５６から、原稿台４４０上の読取部４２０に対向する位置を通って、排紙トレー４５８へ至る経路４５４に沿って、搬送する。プロセッサ４１１は、読取部４２０（すなわち、光学素子）を移動させずに、読取部４２０に、読取部４２０に対して移動する原稿を読み取らせる。これにより、原稿の全体が読み取られる。読取部４２０は、読み取った画像（「読取画像」と呼ぶ）を表す信号を出力する。プロセッサ４１１は、読取部４２０からの信号を用いて、読取画像を表す読取画像データを生成し、生成した読取画像データを、画像処理装置１００へ送信する。
【００２４】
原稿台４４０を用いて原稿を読み取る場合、原稿台４４０上に原稿が載せ置かれる。制御部４１０のプロセッサ４１１は、移動装置４３０を制御して、読取部４２０を、原稿台４４０のうち第１方向Ｄｐ１とは反対方向側の端の位置から第１方向Ｄｐ１側の端の位置まで移動させる。また、プロセッサ４１１は、原稿を移動させずに、読取部４２０（すなわち、光学素子）を原稿に対して第１方向Ｄｐ１に移動させながら、読取部４２０に原稿を読み取らせる。これにより、原稿の全体が読み取られる。プロセッサ４１１は、読取部４２０からの信号を用いて読取画像を表す読取画像データを生成し、生成した読取画像データを、画像処理装置１００へ送信する。
【００２５】
図２は、スキャン処理の例を示すフローチャートである。本実施例では、画像処理装置１００のプロセッサ１１０は、スキャナドライバとして、スキャン処理を実行する。このスキャン処理では、スキャナ４００に原稿を読み取らせることによって読取画像データが取得され、取得された読取画像データを用いて、傾きなどが補正された原稿を表す出力画像データが生成される。ユーザは、操作部１５０を操作することによって、スキャン処理の開始指示を入力する。開始指示は、読取モードを指定する指示を含んでいる。プロセッサ１１０は、入力された開始指示に応じて、図２の処理を開始する。
【００２６】
Ｓ１１０では、プロセッサ１１０は、入力された開始指示に基づいて、ユーザによって指定された読取モードを特定する（指定モードと呼ぶ）。Ｓ１２０では、プロセッサ１１０は、指定モードで原稿を読み取る指示を、スキャナ４００に送信する。スキャナ４００の制御部４１０のプロセッサ４１１は、画像処理装置１００からの指示に応じて、指定モードで原稿を読み取り、読取部４２０からの信号を用いて読取画像データを生成し、生成した読取画像データを、画像処理装置１００に送信する。Ｓ１３０では、画像処理装置１００のプロセッサ１１０は、スキャナ４００からの読取画像データを取得する。読取画像データのデータ形式は、種々の形式であってよい。本実施例では、読取画像データは、赤Ｒ、緑Ｇ、青Ｂのビットマップデータであることとする。
【００２７】
図３（Ａ）は、読取画像の例を示す説明図である。読取画像Ｉ１ａの形状は、第１方向Ｄ１に平行な２個の辺Ｓｉ３、Ｓｉ４と、第１方向Ｄ１に垂直な第２方向Ｄ２に平行な２個の辺Ｓｉ１、Ｓｉ２と、で囲まれる矩形状である。図中では、第１方向Ｄ１が垂直方向を示し、第２方向Ｄ２が水平方向を示している。以下、第１方向Ｄ１と、第１方向Ｄ１に反対の方向と、第２方向Ｄ２と、第２方向Ｄ２に反対の方向とを、それぞれ、「＋Ｄ１方向」、「−Ｄ１方向」、「＋Ｄ２方向」、「−Ｄ２方向」とも呼ぶ。また、原稿と画像とに対する方向に関し、＋Ｄ１方向側を下側とも呼び、−Ｄ１方向側を上側とも呼び、＋Ｄ２方向側を右側とも呼び、−Ｄ２方向側を左側とも呼ぶ。本実施例では、読取画像に対応する読取領域の形状と大きさは、読取モードに拘わらず、原稿台４４０の全体の形状と大きさと、それぞれ同じである。ただし、読取画像に対応する読取領域の形状と大きさが、ユーザによって指定されてもよい。
【００２８】
読取画像Ｉ１ａは、矩形の原稿Ｄａを読み取ることによって生成された画像の例である。読取画像Ｉ１ａは、原稿Ｄａなどの対象物を表す前景領域Ａｄと、対象物を表さない領域である背景領域Ａｂと、を表している。本実施例では、背景領域Ａｂは、搬送装置４５０（図１（Ａ））の−Ｄｐ３方向側の面を表し得る。図中では、背景領域Ａｂにハッチングが付されている。また、原稿Ｄａは、読取画像Ｉ１ａに対して斜めに傾斜しており、原稿Ｄａの一部は、読取画像Ｉ１ａの外にはみ出ている。図３（Ａ）の例では、原稿Ｄａの下側の一部が、読取画像Ｉ１ａの下側の辺Ｓｉ１の外にはみ出、原稿Ｄａの上側の一部が、読取画像Ｉ１ａの上側の辺Ｓｉ２の外にはみ出ている。
【００２９】
図２のＳ１４０では、プロセッサ１１０は、読取画像中の原稿の縁を表す縁直線と縁直線によって形成される矩形の内部領域である原稿領域とを特定する処理を実行する（詳細は後述）。Ｓ１５０では、プロセッサ１１０は、読取画像から原稿領域を抽出し、抽出した原稿領域の傾きを縁直線を用いて補正することによって、原稿を表す出力画像データを生成する（なお、画像の一部分を抽出して残りの部分を除去する処理は、クロップとも呼ばれる）。図３（Ｆ）は、出力画像データによって表される出力画像Ｉ２ａの例を示す説明図である。出力画像Ｉ２ａは、図３（Ａ）の読取画像Ｉ１ａのうちの背景領域Ａｂを表さずに、読取画像Ｉ１ａから抽出された前景領域Ａｄを表している。また、前景領域Ａｄの傾きは補正されている。出力画像データのデータ形式としては、任意の形式を採用可能である。本実施例では、プロセッサ１１０は、ＪＰＥＧ形式の出力画像データを生成する。また、プロセッサ１１０は、ユーザによって指定されたデータ形式の出力画像データを生成してもよい。
【００３０】
図２のＳ１６０では、プロセッサ１１０は、生成した出力画像データを、記憶装置に格納する。そして、プロセッサ１１０は、図２の処理を終了する。本実施例では、プロセッサ１１０は、出力画像データを、画像処理装置１００の内部の記憶装置（例えば、不揮発性記憶装置１３０）に格納する。ただし、プロセッサ１１０は、画像処理装置１００に接続された外部記憶装置（例えば、図示しないＵＳＢメモリ）に、出力画像データを格納してもよい。また、プロセッサ１１０は、ユーザによって選択された記憶装置に、出力画像データを格納してもよい。ユーザは、記憶装置に格納された出力画像データを、自由に利用できる。
【００３１】
図４は、縁直線と原稿領域を特定する処理（図２：Ｓ１４０）の例を示すフローチャートである。Ｓ２１０では、プロセッサ１１０は、読取画像を解析することによって、原稿を表す前景領域と背景領域とを分離する。このような分離の方法としては、公知の方法を採用可能である。本実施例では、スキャナ４００によって生成される読取画像のうちの背景領域は、予め決められた色（例えば、黒色など）で表されることとする。プロセッサ１１０は、予め決められた背景色範囲（例えば、黒を表す色範囲）の色を示す領域を背景領域として特定し、他の色を示す領域を前景領域として特定する。図３（Ａ）の前景領域Ａｄと背景領域Ａｂとは、Ｓ２１０で分離された領域を示している。
【００３２】
Ｓ２２０では、プロセッサ１１０は、読取画像を解析することによって、前景領域の輪郭を表す輪郭画素を特定する。輪郭画素を特定する方法としては、公知の方法を採用可能である。例えば、プロセッサ１１０は、前景領域の画素のうち、背景領域の画素に隣接する画素を、輪郭画素として特定する。例えば、前景領域の注目画素を中心とする３×３の９個の画素のうち、１以上の画素が背景領域の画素である場合に、注目画素は、輪郭画素として特定される。また、プロセッサ１１０は、前景領域の画素のうち、読取画像の端を表す画素も、輪郭画素として特定する。これにより、図３（Ａ）の読取画像Ｉ１ａのように、原稿Ｄａの一部が読取画像Ｉ１ａの外にはみ出ている場合であっても、プロセッサ１１０は、読取画像の中の前景領域Ａｄの縁の全周に亘って、輪郭画素を特定できる。また、プロセッサ１１０は、ソーベルフィルタなどのエッジ検出フィルタを用いて、輪郭画素を特定してもよい。
【００３３】
Ｓ２３０では、プロセッサ１１０は、原稿の縁を表す直線の候補である候補直線を特定する。プロセッサ１１０は、Ｓ２２０で特定した輪郭画素によって表される直線を、候補直線として採用する。図３（Ｂ）は、読取画像Ｉ１ａから特定される候補直線の例を示している。図３（Ｂ）の例では、６本の候補直線ＬＡ１〜ＬＡ４、ＬＢ１、ＬＢ２が特定されている。４本の候補直線ＬＡ１〜ＬＡ４は、読取画像Ｉ１ａの端を形成せずに背景領域Ａｂに接する直線であり、読取画像Ｉ１ａの端よりも内側を通る直線である。２本の候補直線ＬＢ１、ＬＢ２は、読取画像Ｉ１ａの端を形成する直線である。候補直線ＬＢ１、ＬＢ２は、原稿Ｄａのうちの読取画像Ｉ１ａからはみ出た部分を示している。
【００３４】
このような候補直線を特定する方法としては、公知の方法を採用可能である。例えば、プロセッサ１１０は、輪郭画素を用いるハフ変換によって、候補直線を特定する。図３（Ｃ）は、読取画像Ｉ１ａのハフ変換の結果の例を示すグラフである。横軸は、角度Ａｎｇを示し、縦軸は、距離Ｄｓを示している。角度Ａｎｇと距離Ｄｓとの１個の組合せは、読取画像Ｉ１ａ上の１本の直線を表している。角度Ａｎｇは、読取画像Ｉ１ａ上の基準方向（図示せず）と直線との間の角度を示している。距離Ｄｓは、読取画像Ｉ１ａ上の基準点（図示せず）と直線との間の距離を示している。
【００３５】
プロセッサ１１０は、ハフ変換を実行することによって、角度Ａｎｇと距離Ｄｓとの組合せ毎に、その組合せによって特定される直線と重なる輪郭画素の総数を算出する（以下、「輪郭画素数」と呼ぶ）。輪郭画素数が多い場合、輪郭画素数に対応付けられた角度Ａｎｇと距離Ｄｓとによって特定される直線は、多数の輪郭画素によって表される輪郭を表していると推定される。すなわち、輪郭画素数が多いほど、読取画像内において角度Ａｎｇと距離Ｄｓとによって特定される直線（より具体的には、複数の輪郭画素によって表される線分）の長さが長い。プロセッサ１１０は、角度Ａｎｇと距離Ｄｓとのそれぞれの範囲を複数の部分範囲に分割し、角度Ａｎｇの部分範囲と距離Ｄｓの部分範囲との組合せ（セルと呼ぶ）毎に、輪郭画素数を算出する。角度Ａｎｇの部分範囲の中心値は、セルを代表する角度Ａｎｇとして採用可能である。同様に、距離Ｄｓの部分範囲の中心値は、セルを代表する距離Ｄｓとして採用可能である。
【００３６】
図３（Ｃ）のグラフ中では、輪郭画素数が多い角度Ａｎｇと距離Ｄｓとの組合せが、黒点で示されている。具体的には、４本の候補直線ＬＡ１〜ＬＡ４を表す４個の黒点と、２本の候補直線ＬＢ１、ＬＢ２を表す２個の黒点と、が示されている。図中の第１角度Ａｎｇ１は、読取画像Ｉ１ａ（図３（Ｂ））の辺Ｓｉ１、Ｓｉ２を表す直線（ここでは、第２方向Ｄ２に平行な直線）の角度Ａｎｇである。第１距離Ｄｓ１は、読取画像Ｉ１ａの辺Ｓｉ１を表す直線の距離Ｄｓである。第２距離Ｄｓ２は、読取画像Ｉ１ａの辺Ｓｉ２を表す直線の距離Ｄｓである。辺Ｓｉ１に重なる候補直線ＬＢ１を形成する複数の輪郭画素は、辺Ｓｉ１を表す第１角度Ａｎｇ１と第１距離Ｄｓ１との組み合わせ（セル）の輪郭画素数を増大させる。同様に、辺Ｓｉ２に重なる候補直線ＬＢ２を形成する複数の輪郭画素は、辺Ｓｉ２を表す第１角度Ａｎｇ１と第２距離Ｄｓ２との組み合わせの輪郭画素数を増大させる。
【００３７】
また、原稿Ｄａが読取画像Ｉ１ａに対して傾斜しているので、図３（Ｂ）中の上側の候補直線ＬＡ３と下側の候補直線ＬＡ４とは、第２方向Ｄ２に対して、傾斜している。図３（Ｃ）中の角度Ａｎｇ２と距離Ｄｓ４とは、上側の内直線ＬＡ３の複数の輪郭画素が集中するセルの角度Ａｎｇと距離Ｄｓとを示し、角度Ａｎｇ２と距離Ｄｓ３とは、下側の内直線ＬＡ４の複数の輪郭画素が集中するセルの角度Ａｎｇと距離Ｄｓとを示している。本実施例では、原稿Ｄａの形状は略矩形状であり、内直線ＬＡ３と内直線ＬＡ４とは、互いに平行である。従って、図３（Ｃ）のグラフにおいて、内直線ＬＡ３に対応する角度Ａｎｇと、内直線ＬＡ４に対応する角度Ａｎｇとは、同じである（ここでは、角度Ａｎｇ２）。また、下側の内直線ＬＡ４は、下側の端直線ＬＢ１と同様に辺Ｓｉ１に沿って延びているものの、端直線ＬＢ１に対して、若干、傾斜している。従って、図３（Ｃ）のグラフでは、内直線ＬＡ４に対応する角度Ａｎｇ２は、端直線ＬＢ１に対応する第１角度Ａｎｇ１とは異なっている。また、内直線ＬＡ４に対応する距離Ｄｓ３も、端直線ＬＢ１に対応する距離Ｄｓ１と、異なり得る。また、上側の内直線ＬＡ３は、上側の端直線ＬＢ２と同様に辺Ｓｉ２に沿って延びているものの、端直線ＬＢ２に対して、若干、傾斜している。従って、図３（Ｃ）のグラフでは、内直線ＬＡ３に対応する角度Ａｎｇ２は、端直線ＬＢ２に対応する第１角度Ａｎｇ１とは異なっている。また、内直線ＬＡ３に対応する距離Ｄｓ４も、端直線ＬＢ２に対応する距離Ｄｓ２と、異なり得る。
【００３８】
また、図３（Ｃ）中の角度Ａｎｇ３は、左側の内直線ＬＡ１（図３（Ｂ））の複数の輪郭画素が集中するセルの角度Ａｎｇを示している。本実施例では、原稿Ｄａの形状は、略矩形状である。左側の内直線ＬＡ１（図３（Ｂ））と右側の内直線ＬＡ２とは、互いに平行である。従って、右側の内直線ＬＡ２の複数の輪郭画素が集中するセルの角度Ａｎｇは、左側の内直線ＬＡ１に対応する角度Ａｎｇ３と同じである。なお、左側の内直線ＬＡ１と右側の内直線ＬＡ２との間では、距離Ｄｓは、異なっている。また、本実施例では、左側の候補直線ＬＡ１と右側の候補直線ＬＡ２とは、上側の候補直線ＬＡ３と下側の候補直線ＬＡ４と、直交する。従って、図３（Ｃ）のグラフでは、左右の内直線ＬＡ１、ＬＡ２に対応する角度Ａｎｇ３は、上下の内直線ＬＡ３、ＬＡ４に対応する角度Ａｎｇ２とは９０度異なっている。
【００３９】
図４のＳ２３０では、プロセッサ１１０は、Ｓ２２０で特定された複数の輪郭画素を用いて図３（Ｃ）で説明したグラフを生成し、生成したグラフを用いて、原稿の縁を表す直線の候補である候補直線を特定する。プロセッサ１１０は、例えば、輪郭画素数が所定の閾値以上であり、かつ、輪郭画素数が極大（すなわち、局所的なピーク）を示すセルを代表する角度Ａｎｇと距離Ｄｓの組合せによって特定される直線を、候補直線として採用する。本実施例では、輪郭画素数の閾値は、予め決められている。閾値は、例えば、原稿Ｄａ上で２ｃｍの長さに相当する画素数に設定される。図３（Ｃ）の例では、６本の直線ＬＡ１〜ＬＡ４、ＬＢ１、ＬＢ２が特定される。なお、プロセッサ１１０は、読取画像に応じて閾値を変更してもよい。例えば、プロセッサ１１０は、読取画像から検出された輪郭画素の総数が多いほど大きくなるように、閾値を調整してもよい。
【００４０】
また、１本の直線を表す複数の輪郭画素は、角度Ａｎｇと距離Ｄｓとの少なくとも一方が互いに異なる複数のセルに分散して割り当てられ得る。このような複数のセルは、角度Ａｎｇと距離Ｄｓとがおおよそ同じである小さい範囲内に集まっている。プロセッサ１１０は、１本の直線を表す複数の輪郭画素が分散し得る程度の所定のサイズの範囲（線分布範囲と呼ぶ）内の複数のセルに複数の輪郭画素が分散している場合には、その範囲内におけるピークを示す１つのセルに対応付けられた１本の直線を、候補直線として採用する。また、プロセッサ１１０は、そのような線分布範囲内の複数のセルの輪郭画素数の合計値が、輪郭画素数の閾値以上である場合に、その線分布範囲内のピークに対応する１本の直線を、候補直線として採用してもよい。
【００４１】
Ｓ２４０では、プロセッサ１１０は、特定された１以上の候補直線を、端直線と内直線とに分類する。端直線は、読取画像の端を形成する候補直線であり、内直線は、読取画像の端よりも内側を通る候補直線である。図３（Ｃ）に示すグラフにおいて、読取画像の端（すなわち、４辺）を表す直線の角度Ａｎｇと距離Ｄｓとの組み合わせは、予め決められている。プロセッサ１１０は、角度Ａｎｇと距離Ｄｓとの組み合わせのうち、読取画像の端を表す組み合わせによって表される候補直線を、端直線に分類し、他の候補直線を、内直線に分類する。以下、内直線の符号として「ＬＡ」から始まる符号を用い、端直線の符号として「ＬＢ」から始まる符号を用いる。
【００４２】
図４のＳ３１３では、プロセッサ１１０は、複数の候補直線から、所定の平行条件、または、所定の垂直条件を満たす２本の内直線で構成される直線ペアを検索し、見つかった直線ペアを、原稿の縁を表す縁直線を特定するための基準直線として選択する（内基準ペアとも呼ぶ）。平行条件は、２本の直線が予め決められた平行状態にあることを示す条件であり、垂直条件は、２本の直線が予め決められた垂直状態にあることを示す条件である。
【００４３】
予め決められた平行状態は、２本の直線のなす角度（例えば、小さい方の角度）が、第１許容幅以下である状態である。第１許容幅がゼロである場合、平行状態の２本の直線は互いに厳密に平行である。第１許容幅がゼロよりも大きい場合であっても、第１許容幅が小さい場合には、平行状態の２本の直線は、略平行である。第１許容幅は、５度以下が好ましく、３度以下が特に好ましく、１度以下であることが最も好ましい。
【００４４】
予め決められた垂直状態は、２本の直線のなす角度（例えば、小さい方の角度）と９０度との間の差分の絶対値が、第２許容幅以下である状態である。第２許容幅がゼロである場合、垂直状態の２本の直線は互いに厳密に垂直である。第２許容幅がゼロよりも大きい場合であっても、第２許容幅が小さい場合には、垂直状態の２本の直線は、略垂直である。第２許容幅は、５度以下が好ましく、３度以下が特に好ましく、１度以下であることが最も好ましい。
【００４５】
図３（Ｂ）の例では、平行条件を満たす内基準ペアの候補として、直線ペアＬＡ１、ＬＡ２と、直線ペアＬＡ３、ＬＡ４と、の２個のペアが検出される。また、垂直条件を満たす内基準ペアの候補として、直線ペアＬＡ１、ＬＡ３と、直線ペアＬＡ３、ＬＡ２と、直線ペアＬＡ２、ＬＡ４と、直線ペアＬＡ４、ＬＡ１と、の４個のペアが検出される。複数のペアの候補が検出される場合、プロセッサ１１０は、複数のペアの候補のうちの１つのペアを選択する。複数のペアの候補から１つのペアを選択する方法としては、種々の方法を採用可能である。本実施例では、プロセッサ１１０は、２本の候補直線の輪郭画素数の合計値が最も多いペア、すなわち、最も長い合計長を有するペアを、選択する。図３（Ｄ）は、図３（Ｂ）の複数の候補直線から最終的に選択される内基準ペアの２本の候補直線（すなわち、２本の内直線）の例を、太線で示している。この例では、他の候補直線と比べて長い２本の候補直線ＬＡ１、ＬＡ２が、平行条件を満たす内基準ペアとして選択される。
【００４６】
図４のＳ３１６では、プロセッサ１１０は、Ｓ３１３で条件を満たす２本の内直線（すなわち、内基準ペア）が検出されたか否かを判断する。内基準ペアが検出された場合（Ｓ３１６：Ｙｅｓ）、Ｓ３５０で、プロセッサ１１０は、検出された基準ペアを構成する２本の候補直線を、原稿の縁を表す直線として、特定する。以下、特定される２本の候補直線のうちの、１本の候補直線を、第１候補直線と呼び、別の１本の候補直線を、第２候補直線とも呼ぶ。図３（Ｄ）の例では、太線で示される候補直線ＬＡ１、ＬＡ２が、Ｓ３５０で特定される２本の候補直線の例である。
【００４７】
Ｓ３７０では、プロセッサ１１０は、第１候補直線と第２候補直線と組み合わせることによって矩形を形成する追加の２本の候補直線を、原稿の縁を表す直線として特定する。図３（Ｅ）は、図３（Ｄ）の第１および第２の候補直線ＬＡ１、ＬＡ２に基づいて特定される追加の２本の候補直線の例を、太線で示している。この例では、候補直線ＬＡ３、ＬＡ４が、矩形を形成する追加の２本の候補直線として、特定される。以下、特定される追加の２本の候補直線のうちの、１本の候補直線を、第３候補直線と呼び、別の１本の候補直線を、第４候補直線とも呼ぶ。以下、Ｓ３５０、Ｓ３７０によって特定される４本の候補直線（すなわち、原稿の縁を表すと判断された４本の候補直線）のそれぞれを、縁直線とも呼ぶ。
【００４８】
Ｓ３７０では、プロセッサ１１０は、第１候補直線と第２候補直線とが矩形の４個の辺のうちの２個の辺を表すと仮定し、残りの２個の辺にそれぞれ対応する位置関係の２個の候補直線を、複数の候補直線の中から検索する。このような追加の２個の候補直線は、第１候補直線と第２候補直線との間の位置関係に応じて、特定される。第１候補直線と第２候補直線とが平行条件を満たす場合、第３候補直線と第４候補直線とのそれぞれとして、例えば、第１候補直線との垂直条件を満たす候補直線が、特定される。第１候補直線と第２候補直線とが垂直条件を満たす場合、第３候補直線として、第１候補直線との垂直条件を満たす候補直線が、特定され、第４候補直線として、第１候補直線との平行条件を満たす候補直線が、特定される。なお、第３候補直線と第４候補直線との少なくとも一方は、第２候補直線との位置関係（すなわち、垂直条件、または、平行条件）に基づいて、特定されてよい。本実施例では、プロセッサ１１０は、第１候補直線または第２候補直線に基づく適切な位置関係の候補直線のうちの輪郭画素数の多い候補直線を優先して選択することによって、第３および第４候補直線を特定する。
【００４９】
なお、第３および第４候補直線は、Ｓ２３０（図４）で特定された全ての候補直線の中から、検索されてよい。
【００５０】
以上、Ｓ３５０、Ｓ３７０によって、４個の縁直線が特定される。図３（Ｅ）の例では、４本の候補直線ＬＡ１〜ＬＡ４が、縁直線として特定される。Ｓ３８０では、プロセッサ１１０は、４個の縁直線によって形成される矩形の内部領域を、原稿を表す原稿領域として特定する。図３（Ｅ）の例では、４本の候補直線ＬＡ１〜ＬＡ４をそれぞれ延長することによって形成される矩形Ｒａの内側の領域Ａｉａが、原稿領域として特定される。原稿領域Ａｉａは、原稿Ｄａ（図３（Ａ））を表す領域である。また、図３（Ａ）で説明したように、原稿Ｄａ（図３（Ａ））の一部は読取画像Ｉ１ａの外にはみ出ている。従って、原稿領域Ａｉａ（図３（Ｅ））の一部も、読取画像Ｉ１ａの外にはみ出ている。
【００５１】
４個の縁直線と原稿領域とが特定されたことに応じて、プロセッサ１１０は、図４の処理（すなわち、図２のＳ１４０）を終了する。なお、Ｓ３１６では、プロセッサ１１０は、縁直線の基準となる内基準ペアを選択可能か否かを判断している、といえる。
【００５２】
図２のＳ１５０では、プロセッサ１１０は、Ｓ１４０で特定された４個の縁直線と原稿領域とを用いて、原稿を表す出力画像データを生成する。上述したように、本実施例では、読取画像から原稿領域が抽出され、そして、縁直線に基づいて原稿領域の傾きが補正される。図３（Ｅ）の実施例では、読取画像Ｉ１ｄから原稿領域Ａｉａが抽出される。そして、４本の縁直線が、矩形状の出力画像の４本の縁を形成するように、原稿領域Ａｉａが回転される。以上の処理によって得られる画像が、出力画像である。このように生成される出力画像の矩形状の縁は、４本の縁直線で形成される矩形に対応している。例えば、図３（Ｆ）に示す出力画像Ｉ２ａの矩形状の縁は、図３（Ｅ）の矩形Ｒａに対応している。
【００５３】
また、図３（Ｅ）で説明したように、４本の縁直線で形成される矩形Ｒａの一部は、読取画像Ｉ１ａの外にはみ出得る。図３（Ｆ）に示すように、出力画像Ｉ２ａのうちの一部の領域Ａｘ１、Ａｘ２は、読取画像Ｉ１ａの前景領域Ａｄ（図３（Ｅ））には含まれていない。このように出力画像のうちの一部の領域は、前景領域から欠落し得る（欠落領域と呼ぶ）。本実施例では、原稿領域が欠落領域を含む場合、プロセッサ１１０は、欠落領域の画像を、原稿の余白との差異が小さくなるように、修正する。このような修正の方法としては、種々の方法を採用可能である。本実施例では、プロセッサ１１０は、原稿の余白の色のベタ画像を表すように、欠落領域の画像を修正する。余白の色としては、予め決められた色（例えば、白色）が用いられる。これに代えて、プロセッサ１１０は、前景領域を解析することによって、原稿の余白の色を算出してもよい。
【００５４】
次に、図４のＳ３１６で複数の候補直線から内基準ペアを選択可能と判断されない場合（Ｓ３１６：Ｎｏ）の処理について、説明する。図５は、読取画像の別の例を示す説明図である。図５（Ａ）の読取画像Ｉ１ｂは、一部が折り曲げられた状態の矩形の原稿Ｄｂを読み取ることによって生成される読取画像の例である。読取画像Ｉ１ｂは、原稿Ｄｂを表す前景領域Ａｄと、背景領域Ａｂと、を表している。図５（Ａ）の例では、原稿Ｄｂは、読取画像Ｉ１ｂに対して傾いていない。原稿Ｄｂの左上の角Ｄｂｃは、読取画像Ｉ１ｂの左上の角Ｉ１ｂｃに、重なっている。読取画像Ｉ１ｂ内において、原稿Ｄｂの第１方向Ｄ１方向の長さは、読取画像Ｉ１ｂの第１方向Ｄ１方向の長さと同じである。そして、矩形の原稿Ｄｂの左下の角が折り曲げられた状態で、スキャン処理が行われている。この結果、読取画像Ｉ１ｂのうち、原稿Ｄｂよりも右側の部分に加えて、原稿Ｄｂの左下の一部分に対応する略三角形の部分が、背景領域Ａｂである。
【００５５】
図５（Ｂ）は、読取画像Ｉ１ｂ（図５（Ａ））から特定される候補直線の例を示している。図５（Ｂ）の例では、３本の端直線ＬＢ１〜ＬＢ３と、２本の内直線ＬＡ１、ＬＡ２とが、特定される。図５（Ｂ）中において、候補直線ＬＢ１は、読取画像Ｉ１ｂの下側の端（ここでは、辺Ｓｉ１）の一部を形成する直線であり、候補直線ＬＢ２は、読取画像Ｉ１ｂの上側の端（ここでは、辺Ｓｉ２）の一部を形成する直線であり、候補直線ＬＢ３は、読取画像Ｉ１ｂの左側の端（ここでは、辺Ｓｉ４）の一部を形成する直線である。また、候補直線ＬＡ１は、原稿Ｄｂの左下の折り目を表す直線である。候補直線ＬＡ２は、原稿Ｄｂの右側の縁を表す直線である。
【００５６】
このような読取画像Ｉ１ｂが処理される場合、図４のＳ３１３では、条件を満たす内基準ペアが検出されない（Ｓ３１６：Ｎｏ）。この場合、Ｓ３２３で、プロセッサ１１０は、複数の候補直線から、平行条件、または、垂直条件を満たす１本の内直線と１本の端直線とで構成される直線ペアを検索し、見つかった直線ペアを、縁直線を特定するための基準の直線として選択する（混合基準ペアとも呼ぶ）。例えば、図５（Ｂ）の例では、平行条件を満たす混合基準ペアの候補として、１個の直線ペアＬＡ２、ＬＢ３が検出される。また、垂直条件を満たす混合基準ペアの候補として、直線ペアＬＢ２、ＬＡ２と、直線ペアＬＡ２、ＬＢ１と、の２個のペアが検出される。このように複数のペアの候補が検出された場合に１つのペアを選択する方法としては、Ｓ３１３で説明した方法と同じ方法を採用してよい。図５（Ｃ）は、図５（Ｂ）の複数の候補直線から最終的に選択される混合基準ペアの２本の候補直線（すなわち、１本の内直線と１本の端直線）の例を、太線で示している。本実施例では、他の候補直線と比べて長い２本の候補直線ＬＡ２、ＬＢ２が、垂直条件を満たす混合基準ペアとして選択される。
【００５７】
図４のＳ３２６では、プロセッサ１１０は、Ｓ３２３で条件を満たす１本の内直線と１本の端直線（すなわち、混合基準ペア）が検出されたか否かを判断する。混合基準ペアが検出された場合（Ｓ３２６：Ｙｅｓ）、プロセッサ１１０は、Ｓ３５０へ移行する。Ｓ３５０、Ｓ３７０、Ｓ３８０の処理は、Ｓ３１６の判断結果がＹｅｓである場合のＳ３５０、Ｓ３７０、Ｓ３８０の処理と、それぞれ同じである。図５（Ｃ）の太線の候補直線ＬＡ２、ＬＢ２は、Ｓ３５０で図５（Ｂ）の複数の候補直線の中から特定される縁直線である第１候補直線および第２候補直線の例を示している（ここでは、混合基準ペアと同じ）。図５（Ｄ）の太線の候補直線ＬＢ１、ＬＢ３は、Ｓ３７０において、図５（Ｃ）の第１および第２の候補直線ＬＡ２、ＬＢ２に基づいて特定される、追加の縁直線である第３および第４候補直線の例を示している。候補直線ＬＢ１は、候補直線ＬＡ２との垂直条件を満たす候補直線であり、候補直線ＬＢ３は、候補直線ＬＡ２との平行条件を満たす候補直線である。図５（Ｄ）の矩形Ｒｂは、４個の縁直線ＬＢ２、ＬＡ２、ＬＢ１、ＬＢ３によって形成される矩形を示し、矩形Ｒｂの内部の領域Ａｉｂは、Ｓ３８０で特定される原稿領域を示している。なお、Ｓ３２６では、プロセッサ１１０は、縁直線の基準となる混合基準ペアを選択可能か否かを判断している、といえる。
【００５８】
図５（Ｅ）の画像Ｉ２ｂは、Ｓ１５０（図２）で生成される出力画像である。この出力画像Ｉ２ｂは、図５（Ｄ）において太線で示される４本の縁直線ＬＢ２、ＬＡ２、ＬＢ１、ＬＢ３に基づいて傾きが補正された前景領域Ａｄ（図５（Ａ））を表している。この出力画像Ｉ２ｂは、図５（Ｄ）の矩形Ｒｂの内部の原稿領域Ａｉｂを表している。なお、図５（Ｅ）中において、出力画像Ｉ２ｂのうちの左下の一部の領域Ａｘｂは、前景領域Ａｄ（図５（Ａ））に含まれていない欠落領域である。プロセッサ１１０は、欠落領域Ａｘｂの画像を、原稿の余白の色を表すベタ画像に修正する。なお、この欠落領域Ａｘｂは、読取画像Ｉ１ｂ内の背景領域Ａｂに対応する。このように、欠落領域が読取画像の外に対応するのではなく読取画像内の背景領域に対応する場合には、欠落領域の画像の修正が省略されてもよい。すなわち、背景領域の画像がそのまま出力画像の欠落領域の画像として用いられてもよい。
【００５９】
次に、図４のＳ３２６で複数の候補直線から混合基準ペアを選択可能と判断されない場合（Ｓ３２６：Ｎｏ）の処理について、説明する。図６は、読取画像の別の例を示す説明図である。図６（Ａ）の読取画像Ｉ１ｃは、原稿台４４０（図１（Ｂ））よりも大きな原稿Ｄｃを読み取ることによって生成される画像の例である。読取画像Ｉ１ｃは、背景領域を表さずに、原稿Ｄｃの内部の一部分を表している。すなわち、読取画像Ｉ１ｃの全体が、前景領域Ａｄを表している。読取画像Ｉ１ｃ内において、原稿Ｄｃは、読取画像Ｉ１ｃよりも大きい。
【００６０】
図６（Ｂ）は、読取画像Ｉ１ｃ（図６（Ａ））から特定される候補直線の例を示している。図６（Ｂ）の例では、４本の端直線ＬＢ１〜ＬＢ４が、特定される。図６（Ｂ）中において、候補直線ＬＢ１は、読取画像Ｉ１ｃの下側の端（ここでは、辺Ｓｉ１）を形成する直線であり、候補直線ＬＢ２は、読取画像Ｉ１ｃの上側の端（ここでは、辺Ｓｉ２）を形成する直線であり、候補直線ＬＢ３は、読取画像Ｉ１ｃの右側の端（ここでは、辺Ｓｉ３）を形成する直線であり、候補直線ＬＢ４は、読取画像Ｉ１ｃの左側の端（ここでは、辺Ｓｉ４）を形成する直線である。
【００６１】
このような読取画像Ｉ１ｃが処理される場合、図４のＳ３１３では、条件を満たす内基準ペアが検出されない（Ｓ３１６：Ｎｏ）。そして、Ｓ３２３では、条件を満たす混合基準ペアが検出されない（Ｓ３２６：Ｎｏ）。この場合、Ｓ３３３で、プロセッサ１１０は、複数の候補直線から、平行条件、または、垂直条件を満たす２本の端直線で構成される直線ペアを検索し、見つかった直線ペアを、縁直線を特定するための基準の直線として選択する（端基準ペアとも呼ぶ）。例えば、図６（Ｂ）の例では、平行条件を満たす端基準ペアの候補として、直線ペアＬＢ１、ＬＢ２と、直線ペアＬＢ３、ＬＢ４と、の２個のペアが検出される。また、垂直条件を満たす端基準ペアの候補として、直線ペアＬＢ２、ＬＢ３と、直線ペアＬＢ３、ＬＢ１と、直線ペアＬＢ１、ＬＢ４と、直線ペアＬＢ４、ＬＢ２と、の４個のペアが検出される。このように複数のペアの候補が検出された場合に１つのペアを選択する方法としては、Ｓ３１３で説明した方法と同じ方法を採用してよい。図６（Ｃ）は、図６（Ｂ）の複数の候補直線から最終的に検出される２本の候補直線（すなわち、２本の端直線）の例を、太線で示している。本実施例では、他の候補直線と比べて長い２本の候補直線ＬＢ３、ＬＢ４が、平行条件を満たす端基準ペアとして選択される。
【００６２】
図４のＳ３３６では、プロセッサ１１０は、Ｓ３３３で条件を満たす２本の候補直線（すなわち、端基準ペア）が検出されたか否かを判断する。端基準ペアが検出された場合（Ｓ３３６：Ｙｅｓ）、プロセッサ１１０は、Ｓ３５０へ移行する。Ｓ３５０、Ｓ３７０、Ｓ３８０の処理は、上述した通りである。図６（Ｃ）の太線の候補直線ＬＢ３、ＬＢ４は、Ｓ３５０で図６（Ｂ）の複数の候補直線の中から特定される縁直線である第１候補直線および第２候補直線の例を示している（ここでは、端基準ペアと同じ）。図６（Ｄ）の太線の候補直線ＬＢ１、ＬＢ２は、Ｓ３７０において、図６（Ｃ）の第１および第２の候補直線ＬＢ３、ＬＢ４に基づいて特定される、追加の縁直線である第３および第４候補直線の例を示している。候補直線ＬＢ１は、候補直線ＬＢ３との垂直条件を満たす候補直線であり、候補直線ＬＢ２は、候補直線ＬＢ３との垂直条件を満たす候補直線である。図６（Ｄ）の矩形Ｒｃは、４個の縁直線ＬＢ１〜ＬＢ４によって形成される矩形を示し、矩形Ｒｃの内部の領域Ａｉｃは、Ｓ３８０で特定される原稿領域を示している。なお、Ｓ３３６では、プロセッサ１１０は、縁直線の基準となる端基準ペアを選択可能か否かを判断している、といえる。
【００６３】
図６（Ｅ）の画像Ｉ２ｃは、Ｓ１５０（図２）で生成される出力画像である。この出力画像Ｉ２ｃは、図６（Ｄ）において太線で示される４本の縁直線ＬＢ１〜ＬＢ４に基づいて傾きが補正された前景領域Ａｄ（図６（Ａ））を表している。この出力画像Ｉ２ｃは、図６（Ｄ）の矩形Ｒｃの内部の原稿領域Ａｉｃを表している。なお、図６（Ｄ）の実施例では、４本の縁直線ＬＢ１〜ＬＢ４は読取画像Ｉ１ｃに対して傾斜しておらず、また、原稿領域Ａｉｃは、読取画像Ｉ１ｃの全体と同じである。従って、出力画像Ｉ２ｃは、読取画像Ｉ１ｃと同じである。
【００６４】
次に、図４のＳ３３６で複数の候補直線から端基準ペアを選択可能と判断されない場合（Ｓ３３６：Ｎｏ）の処理について、説明する。図７は、読取画像の別の例を示す説明図である。図７（Ａ）の読取画像Ｉ１ｄは、コンパクトディスクなどの非矩形状（ここでは、円形状）の原稿Ｄｄを読み取ることによって生成された画像の例である。読取画像Ｉ１ｄは、原稿Ｄｄを表す前景領域Ａｄと、背景領域Ａｂと、を表している。図７（Ａ）の例では、原稿Ｄｄの一部が、読取画像Ｉ１ｄの外にはみ出ている。
【００６５】
図７（Ｂ）は、読取画像Ｉ１ｄ（図７（Ａ））から特定される候補直線の例を示している。図７（Ｂ）の例では、１本の候補直線ＬＢ１が特定される。この候補直線ＬＢ１は、読取画像Ｉ１ｄの端のうち原稿Ｄｄと重なる部分を示す端直線である。内直線は、特定されない。
【００６６】
このような読取画像Ｉ１ｄが処理される場合、図４のＳ３１３では、条件を満たす内基準ペアが検出されない（Ｓ３１６：Ｎｏ）。Ｓ３２３では、条件を満たす混合基準ペアが検出されない（Ｓ３２６：Ｎｏ）。そして、Ｓ３３３では、条件を満たす端基準ペアが検出されない（Ｓ３３６：Ｎｏ）。この場合、プロセッサ１１０は、Ｓ３９０で、原稿の縁を示す縁直線と原稿を表す原稿領域とを特定しない、と決定し、そして、図４の処理を終了する。
【００６７】
縁直線が特定されない場合、図２のＳ１５０では、プロセッサ１１０は、読取画像を、そのまま、出力画像として用いる。図７（Ｃ）は、図７（Ａ）の読取画像Ｉ１ｄを用いて生成される出力画像Ｉ２ｄを示している。この出力画像Ｉ２ｄは、読取画像Ｉ１ｄと同じである。
【００６８】
以上のように、本実施例では、プロセッサ１１０は、図４のＳ３１３、Ｓ３１６で、内基準ペアを選択可能か否かを判断する。そして、内基準ペアを選択可能と判断された場合（Ｓ３１６：Ｙｅｓ）、プロセッサ１１０は、Ｓ３５０、Ｓ３７０で、内基準ペアを用いて縁直線を特定する。
【００６９】
内基準ペアを選択可能と判断されない場合（Ｓ３１６：Ｎｏ）、プロセッサ１１０は、Ｓ３２３、Ｓ３２６で、混合基準ペアを選択可能か否かを判断する。そして、混合基準ペアを選択可能と判断された場合（Ｓ３２６：Ｙｅｓ）、プロセッサ１１０は、Ｓ３５０、Ｓ３７０で、混合基準ペアを用いて縁直線を特定する。
【００７０】
混合基準ペアを選択可能と判断されない場合（Ｓ３２６：Ｎｏ）、プロセッサ１１０は、Ｓ３３３、Ｓ３３６で、端基準ペアを選択可能か否かを判断する。そして、端基準ペアを選択可能と判断された場合（Ｓ３３６：Ｙｅｓ）、プロセッサ１１０は、Ｓ３５０、Ｓ３７０で、端基準ペアを用いて縁直線を特定する。
【００７１】
このように、プロセッサ１１０は、内基準ペア、混合基準ペア、端基準ペアの順に、基準直線（ここでは、２本の候補直線で構成される基準ペア）を選択可能か否かを判断する。ここで、基準ペアに含まれる候補直線の総数に対する端直線の総数の割合を、端直線割合と呼び、基準ペアに含まれる候補直線の総数に対する内直線の総数の割合を、内直線割合と呼ぶ。各基準ペアの端直線割合は、内基準ペア（ゼロ％）、混合基準ペア（５０％）、端基準ペア（１００％）である。また、各基準ペアの内直線割合は、内基準ペア（１００％）、混合基準ペア（５０％）、端基準ペア（ゼロ％）である。比較的先に利用される基準ペアの端直線割合は、比較的後に利用される基準ペアの端直線割合よりも、低い。そして、比較的先に利用される基準ペアの内直線割合は、比較的後に利用される基準ペアの内直線割合よりも、高い。このように、縁直線の特定のための基準直線としては、内直線が端直線よりも優先して利用される。従って、図３（Ａ）の画像例のように読取画像の端から原稿の一部がはみ出る場合であっても、適切に、縁直線を特定できる。
【００７２】
また、図４のＳ３１３では、プロセッサ１１０は、複数の候補直線が内直線と端直線とを含む場合に、端直線を含まずに内直線のみで構成される直線群である内基準ペアを検索する。そして、内基準ペアを選択可能と判断された場合（Ｓ３１６：Ｙｅｓ）、プロセッサ１１０は、Ｓ３５０、Ｓ３７０で、内基準ペアを用いて縁直線を特定する。従って、図３（Ａ）の画像例のように読取画像の端から原稿の一部がはみ出る場合であっても、読取画像の端のうちの原稿と重なる部分を誤って縁直線として特定することを抑制でき、複数の候補直線から原稿の縁を表す縁直線を適切に特定できる。
【００７３】
また、図４のＳ３２３では、プロセッサ１１０は、複数の候補直線が内直線と端直線とを含む場合に、端直線と内直線との両方を含む直線群である混合基準ペアを検索する。そして、混合基準ペアを選択可能と判断された場合（Ｓ３２６：Ｙｅｓ）、プロセッサ１１０は、Ｓ３５０、Ｓ３７０で、混合基準ペアを用いて縁直線を特定する。従って、図５（Ａ）の内直線ＬＡ１のように、原稿Ｄｂの折り目のように原稿の縁とは異なる境界線を表す内直線ＬＡ１が特定された場合であっても、内直線と端直線との両方を用いることによって、適切な縁直線を特定できる。また、原稿が折り曲げられている場合の折り目に限らず、原稿の一部が切り取られている場合の切れ目ように、読取画像が、原稿の本来の縁とは異なる境界線を表す場合に、適切な縁直線を特定できる。
【００７４】
また、図４のＳ３１６、Ｓ３２６、Ｓ３３６で説明したように、内基準ペアを選択可能と判断されず（Ｓ３１６：Ｎｏ）、混合基準ペアを選択可能と判断されない場合（Ｓ３２６：Ｎｏ）、プロセッサ１１０は、端直線のみで構成されている端基準ペアを選択可能と判断される場合に（Ｓ３３６：Ｙｅｓ）、端基準ペアを用いる縁直線の特定を行う（Ｓ３５０）。従って。混合基準ペアを選択可能と判断されない場合であっても、プロセッサ１１０は、端基準ペアを用いて、適切に、縁直線を特定できる。
【００７５】
また、図４のＳ３１３、Ｓ３１６で説明したように、プロセッサ１１０は、複数の候補直線から、１以上の内直線を含む２本の候補直線であって、予め決められた平行状態または予め決められた垂直状態の第１候補直線と第２候補直線とを選択できる場合に、第１候補直線と第２候補直線とで構成される基準ペア（ここでは、内基準ペア）を選択できると判断する。プロセッサ１１０は、このような第１候補直線と第２候補直線とを用いることによって、縁直線を適切に特定できる。
【００７６】
なお、図４のＳ３２３、Ｓ３２６で説明したように、プロセッサ１１０は、複数の候補直線から、１本の内直線と１本の端直線とで構成される２本の候補直線であって、平行条件または垂直条件を満たす２本の候補直線を選択できる場合に、その２本の候補直線で構成される基準ペア（ここでは、混合基準ペア）を選択できると判断する。また、図４のＳ３３３、３３６で説明したように、プロセッサ１１０は、複数の候補直線から、１以上の端直線を含む２本の候補直線であって、平行条件または垂直条件を満たす２本の候補直線を選択できる場合に、その２本の候補直線で構成される基準ペア（ここでは、端基準ペア）を選択できると判断する。いずれの場合も、プロセッサ１１０は、平行条件または垂直条件を満たす２本の候補直線を用いることによって、縁直線を適切に特定できる。
【００７７】
また、図４のＳ３５０で説明したように、プロセッサ１１０は、基準ペアを構成する２本の候補直線（すなわち、平行状態または垂直状態の２本の候補直線）を、原稿の縁を表す候補直線として特定する。そして、Ｓ３７０で説明したように、プロセッサ１１０は、特定された２本の候補直線と組み合わせることによって矩形を形成する別の２本の候補直線を特定する。そして、Ｓ３８０で説明したように、プロセッサ１１０は、読取画像のうち、特定された４本の候補直線で形成される矩形の内部領域を、原稿を表す原稿領域として特定する。これにより、プロセッサ１１０は、原稿を表す適切な矩形領域を、特定できる。
【００７８】
Ｂ．第２実施例：
図８は、縁直線と原稿領域を特定する処理（図２：Ｓ１４０）の別の実施例を示すフローチャートである。図示されたフローチャートは、処理の一部を示している。本実施例では、読取モードに応じて、処理が切り替えられる。
【００７９】
第２実施例では、上記の第１実施例と同様に、図４のＳ２１０からＳ２４０の処理が実行される。そして、処理は、Ｓ２４０から、図８のＳ４００へ移行する。Ｓ４００では、プロセッサ１１０は、読取画像データの生成に用いられたスキャナ４００の読取モードが、搬送装置４５０を用いる搬送モードであるか否かを判断する。読取モードが搬送モードである場合（Ｓ４００：Ｙｅｓ）、プロセッサ１１０は、図４のＳ３１３へ移行する。Ｓ３１３以降の処理は、上記の第１実施例の処理と同じである。
【００８０】
読取モードが搬送モードではなく台モードである場合（Ｓ４００：Ｎｏ）、Ｓ４１０で、プロセッサ１１０は、Ｓ２３０（図４）で特定された複数の候補直線が、１以上の端直線を含むか否かを判断する。読取モードが台モードである場合、ユーザは、原稿台４４０（図１（Ｂ））から原稿がはみ出ないように注意しつつ、原稿台４４０上に原稿を載せ置く。従って、候補直線が端直線を含む場合、端直線は、図３（Ａ）の端直線ＬＢ１、ＬＢ２のように原稿のうちの読取画像からはみ出た部分ではなく、原稿の縁を表していると推定される。本実施例では、複数の候補直線が１以上の端直線を含む場合、端直線を優先して用いることによって、縁直線を特定する。まず、複数の候補直線が１以上の端直線を含む場合（Ｓ４１０：Ｙｅｓ）の処理について説明する。
【００８１】
図９は、読取画像の別の例を示す説明図である。図９（Ａ）の読取画像Ｉ１ｅは、一部が折り曲げられた状態の矩形の原稿Ｄｅを読み取ることによって生成された画像の例である。読取画像Ｉ１ｅは、原稿Ｄｅを表す前景領域Ａｄと、背景領域Ａｂと、を表している。図９（Ａ）の例では、原稿Ｄｅは、読取画像Ｉ１ｅに対して傾いていない。原稿Ｄｅの左上の角Ｄｅｃは、読取画像Ｉ１ｅの左上の角Ｉ１ｅｃに、重なっている（すなわち、原稿Ｄｅの読み取り時には、原稿Ｄｅの左上の角Ｄｅｃは、原稿台４４０（図１（Ｂ）の角に配置されている）。原稿Ｄｅの上側の縁は、読取画像Ｉ１ｅの上側の辺Ｓｉ２に重なり、原稿Ｄｅの左側の縁は、読取画像Ｉ１ｅの左側の辺Ｓｉ４に重なっている。読取画像Ｉ１ｅ内において、原稿Ｄｅの第１方向Ｄ１方向の長さは、読取画像Ｉ１ｅの第１方向Ｄ１方向の長さよりも短い。そして、矩形の原稿Ｄｅの左下の角が折り曲げられた状態で、原稿Ｄｅがスキャナ４００に読み取られている。
【００８２】
図９（Ｂ）は、読取画像Ｉ１ｅ（図９（Ａ））から特定される候補直線の例を示している。図９（Ｂ）の例では、２本の端直線ＬＢ１、ＬＢ２と、３本の内直線ＬＡ１〜ＬＡ３とが、特定される。図９（Ｂ）中において、候補直線ＬＢ１は、読取画像Ｉ１ｅの左側の端（ここでは、辺Ｓｉ４）の一部を形成する直線であり、候補直線ＬＢ２は、読取画像Ｉ１ｅの上側の端（ここでは、辺Ｓｉ２）の一部を形成する直線である。また、候補直線ＬＡ１は、原稿Ｄｅの左下の折り目を表す直線であり、候補直線ＬＡ２は、原稿Ｄｅの右側の縁を表す直線であり、候補直線ＬＡ３は、原稿Ｄｅの下側の縁の折れていない部分を表す直線である。
【００８３】
このような読取画像Ｉ１ｅが処理される場合、図８のＳ４１０では、複数の候補直線が１以上の端直線を含むと判断される。この場合、Ｓ４２０で、プロセッサ１１０は、複数の候補直線に含まれる端直線の全てを、縁直線として特定する。図９（Ｃ）は、図９（Ｂ）の複数の候補直線から、Ｓ４２０で縁直線として特定される直線の例を、太線で示している。本実施例では、２本の端直線ＬＢ１、ＬＢ２が、それぞれ、縁直線として特定される。
【００８４】
図９のＳ４３０では、プロセッサ１１０は、Ｓ４２０で特定された縁直線と組み合わせて矩形を形成する候補直線を、追加の縁直線として特定する。Ｓ４３０の処理は、図４のＳ３７０の処理と同様に、行われる。すなわち、Ｓ４２０で特定された１以上の縁直線との位置関係（すなわち、垂直条件、または、平行条件）に基づいて、矩形の残りの辺に対応する追加の縁直線が特定される。図９（Ｄ）は、図９（Ｃ）の縁直線ＬＢ１、ＬＢ２に基づいて特定される追加の縁直線の例を、太線で示している。この例では、候補直線ＬＡ２、ＬＡ３が、矩形を形成する追加の縁直線として、特定される。候補直線ＬＡ２は、候補直線ＬＢ１との平行条件を満たす直線である。候補直線ＬＡ３は、候補直線ＬＢ１との垂直条件を見たす直線である。なお、Ｓ４３０で特定される追加の縁直線の総数は、矩形の辺の総数である「４」からＳ４２０で特定される縁直線の総数を引いた差と同じである。例えば、Ｓ４２０で特定される縁直線の総数が「１」である場合、Ｓ４３０で、３本の追加の縁直線が特定され得る。
【００８５】
Ｓ５８０は、図４のＳ３８０と同じである。プロセッサ１１０は、４個の縁直線によって形成される矩形の内部領域を、原稿を表す原稿領域として特定する。図９（Ｄ）の例では、４本の縁直線ＬＡ２、ＬＡ３、ＬＢ１、ＬＢ２をそれぞれ延長することによって形成される矩形Ｒｅの内側の領域Ａｉｅが、原稿領域として特定される。４個の縁直線と原稿領域とが特定されたことに応じて、プロセッサ１１０は、図８の処理（すなわち、図２のＳ１４０）を終了する。
【００８６】
図２のＳ１５０では、プロセッサ１１０は、Ｓ４２０、Ｓ４３０で特定された４個の縁直線と、Ｓ５８０で特定された原稿領域と、を用いて、出力画像データを生成する。図９（Ｅ）の画像Ｉ２ｅは、図９（Ａ）の読取画像Ｉ１ｅから生成される出力画像の例である。この出力画像Ｉ２ｅは、図９（Ｄ）の矩形Ｒｅの内部の原稿領域Ａｉｅを表している。なお、図９（Ｅ）中において、出力画像Ｉ２ｅのうちの左下の一部の領域Ａｘｘは、前景領域Ａｄ（図９（Ａ））に含まれていない欠落領域である。プロセッサ１１０は、欠落領域Ａｘｘの画像を、原稿の余白の色を表すベタ画像に修正する。
【００８７】
次に、複数の候補直線が端直線を含まない場合（Ｓ４１０：Ｎｏ）の処理について説明する。図１０は、読取画像の別の例を示す説明図である。図１０（Ａ）の読取画像Ｉ１ｆは、原稿Ｄｅの全体が原稿台４４０の縁よりも内側に配置された状態で、原稿Ｄｅがスキャナ４００に読み取られる場合の、読取画像の例である。読取画像Ｉ１ｆは、原稿Ｄｅを表す前景領域Ａｄと、背景領域Ａｂと、を表している。この例では、原稿Ｄｅは、図９（Ｃ）の原稿Ｄｅと同様に、左下の角が折り曲げられた状態で、読み取られている。また、前景領域Ａｄは、背景領域Ａｂに囲まれている。
【００８８】
図１０（Ｂ）は、読取画像Ｉ１ｆから特定される候補直線の例を示している。図１０（Ｂ）の例では、５本の内直線ＬＡ１〜ＬＡ５が、特定される。図１０（Ｂ）中において、候補直線ＬＡ１は、原稿Ｄｅの左下の折り目を表す直線であり、候補直線ＬＡ２は、原稿Ｄｅの右側の縁を表す直線であり、候補直線ＬＡ３は、原稿Ｄｅの下側の縁の折れていない部分を表す直線であり、候補直線ＬＡ４は、原稿Ｄｅの左側の縁を表す直線であり、候補直線ＬＡ５は、原稿Ｄｅの上側の縁を表す直線である。
【００８９】
このような読取画像Ｉ１ｆが処理される場合、図８のＳ４１０では、複数の候補直線が１以上の端直線を含まないと判断される（Ｓ４１０：Ｎｏ）。この場合、プロセッサ１１０は、Ｓ５１３、Ｓ５１６を実行する。Ｓ５１３、Ｓ５１６は、図４のＳ３１３、Ｓ３１６と、それぞれ、同じである。Ｓ５１３では、プロセッサ１１０は、複数の候補直線から、平行条件または垂直条件を満たす２本の内直線を検索し、見つかった２本の内直線を、内基準ペアとして選択する。図１０（Ｃ）は、図１０（Ｂ）の複数の候補直線から最終的に選択される内基準ペアの２本の候補直線（すなわち、２本の内直線）の例を、太線で示している。この例では、他の候補直線と比べて長い２本の候補直線ＬＡ２、ＬＡ５が、垂直条件を満たす内基準ペアとして選択される。
【００９０】
図８のＳ５１６では、プロセッサ１１０は、Ｓ５１３で条件を満たす２本の内直線（すなわち、内基準ペア）が検出されたか否かを判断する。内基準ペアが検出された場合（Ｓ５１６：Ｙｅｓ）、プロセッサ１１０は、Ｓ５５０、Ｓ５７０を実行して、Ｓ５８０へ移行する。Ｓ５５０、Ｓ５７０は、図４のＳ３５０、Ｓ３７０と、それぞれ、同じである。Ｓ５５０では、プロセッサ１１０は、Ｓ５１３で検出された内基準ペアを構成する２本の候補直線を、原稿の縁を表す縁直線として、特定する。図１０（Ｃ）の例では、候補直線ＬＡ２、ＬＡ５が、縁直線として特定される。Ｓ５７０では、プロセッサ１１０は、特定された２本の縁直線と組み合わせて矩形を形成する追加の２本の候補直線を、原稿の縁を表す直線として特定する。図１０（Ｄ）は、図１０（Ｃ）に示す２本の縁直線ＬＡ２、ＬＡ５に基づいて特定される追加の２本の候補直線の例を、太線で示している。この例では、候補直線ＬＡ３、ＬＡ４が、矩形を形成する追加の２本の候補直線として、特定される。Ｓ５８０では、プロセッサ１１０は、４個の縁直線によって形成される矩形の内部領域を、原稿を表す原稿領域として特定する。図１０（Ｄ）の例では、４本の縁直線ＬＡ２〜ＬＡ５をそれぞれ延長することによって形成される矩形Ｒｆの内側の領域Ａｉｆが、原稿領域として特定される。４個の縁直線と原稿領域とが特定されたことに応じて、プロセッサ１１０は、図８の処理（すなわち、図２のＳ１４０）を終了する。
【００９１】
図２のＳ１５０では、プロセッサ１１０は、図８のＳ５５０、Ｓ５７０で特定された４個の縁直線と、Ｓ５８０で特定された原稿領域と、を用いて、出力画像データを生成する。図１０（Ｅ）の画像Ｉ２ｆは、図１０（Ａ）の読取画像Ｉ１ｆから生成される出力画像の例である。この出力画像Ｉ２ｆは、図１０（Ｄ）の矩形Ｒｆの内部の原稿領域Ａｉｆを表している。なお、図１０（Ｅ）中において、出力画像Ｉ２ｆのうちの左下の一部の領域Ａｘｙは、前景領域Ａｄ（図１０（Ａ））に含まれていない欠落領域である。プロセッサ１１０は、欠落領域Ａｘｙの画像を、原稿の余白の色を表すベタ画像に修正する。
【００９２】
図８のＳ５１６の判断結果がＮｏである場合（すなわち、条件を満たす２本の候補直線が検出されない場合）、プロセッサ１１０は、Ｓ５９０で、原稿の縁を示す縁直線と原稿を表す原稿領域とを特定しない、と決定し、そして、図８の処理を終了する。
【００９３】
搬送モードでは、原稿の読み取り中に原稿が搬送されるので、読取部４２０に対する原稿の位置ズレが生じ易い。読取部４２０に対する原稿の位置がずれた場合、端直線は、図３（Ｂ）の縁直線ＬＢ１、ＬＢ２のように、原稿の縁ではなく、原稿のうちの読取画像からはみ出た部分を示し得る。本実施例では、読取モードが搬送モードである場合（図８：Ｓ４００：Ｙｅｓ）、プロセッサ１１０は、第１実施例と同様に、内直線を優先的に用いることによって、縁直線と原稿領域とを特定する。従って、適切な縁直線と原稿領域とを特定できる。
【００９４】
また、台モードでは、原稿の読み取り中に原稿が移動されないので、読取部４２０に対する原稿の位置ズレは生じ難い。従って、端直線は、原稿の縁を表している、と推定できる。本実施例では、読取モードが台モードである場合（図８：Ｓ４００：Ｎｏ）、プロセッサ１１０は、複数の候補直線が１以上の単直線を含むか否かを判断する（Ｓ４１０）。そして、プロセッサ１１０は、複数の候補直線が１本以上の端直線を含む場合（Ｓ４１０：Ｙｅｓ）、その１本以上の端直線を含む直線群（ここでは、１本以上の端直線で構成される直線群）を用いて縁直線を特定する（Ｓ４２０）。また、複数の候補直線が１本以上の端直線を含まない場合（Ｓ４１０：Ｎｏ）、プロセッサ１１０は、内直線のみからなる直線群を用いて縁直線を特定し得る（Ｓ５５０）。このように、縁直線と原稿領域との特定には、端直線が優先的に用いられるので、適切な縁直線と原稿領域とを特定できる。
【００９５】
Ｃ．変形例：
（１）読取画像から候補直線を特定する処理（図４：Ｓ２３０）は、図３（Ｃ）で説明したハフ変換を用いる処理に代えて、原稿の縁を表し得る直線を特定する他の種々の処理であってよい。例えば、プロセッサ１１０は、最小二乗法を用いて、複数の輪郭画素の配置を近似する候補直線を特定してもよい。
【００９６】
（２）縁直線の特定のために選択され得る１以上の基準直線（以下、基準直線群、または、基準直線セットとも呼ぶ）は、内基準ペアと混合基準ペアと端基準ペアとの３つの種類の直線ペアに限らず、種々の候補直線であってよい。例えば、内基準ペアと混合基準ペアと端基準ペアから予め任意に選択された２種類の直線ペアのみが利用可能であってよい。
【００９７】
また、複数の候補直線から基準直線のセットを選択可能と判断するための条件（例えば、図４のＳ３１６、Ｓ３２６、Ｓ３３６の条件）は、垂直条件または平行条件を満たす２本の候補直線が検出されることに代えて、他の種々の条件であってよい。例えば、垂直条件を満たす２本の候補直線が検出されることと、平行条件を満たす２本の候補直線が検出されることと、のいずれか一方のみを採用してもよい。
【００９８】
また、縁直線の特定のために選択される基準直線のセットに含まれる候補直線の総数は、２本に限らず、１本でもよく、３本以上であってもよい。上記の各実施例の基準ペアは、矩形を形成する４辺のうちの２辺に対応する２本の候補直線を示している。これに代えて、矩形を形成する４辺のうちの３辺に対応する３本の候補直線が、基準直線のセットとして選択されてもよい。このような３本の基準直線は、例えば、垂直条件と平行条件とを用いることによって、特定可能である。具体的には、平行条件を満たす２本の候補直線と、それら２本の候補直線の一方との垂直条件を満たす１本の候補直線と、の３本の候補直線が特定されてよい。３本の基準直線が選択される場合、基準直線セットの種類（すなわち、３本の基準直線の組み合わせの種類）としては、種々の種類を採用可能である。例えば、「３本の内直線」と「２本の内直線と１本の端直線」と「１本の内直線と２本の端直線」と「３本の端直線」との４種類の組み合わせから予め任意に選択された２種以上の組み合わせが利用可能であってよい。
【００９９】
いずれの場合も、矩形の複数の辺を形成可能な複数の候補直線は、矩形の原稿の縁を表している可能性が高い。従って、矩形を形成する４辺のうちの２以上の辺にそれぞれ対応することを示す条件を満たす２以上の候補直線は、縁直線を特定するための基準直線として利用可能である。そして、そのような基準直線は、縁直線として採用可能である。
【０１００】
また、複数の候補直線から基準直線のセットを選択可能と判断するための条件としては、平行条件と垂直条件とは異なる条件を採用してもよい。例えば、読取画像内での長さが予め決められた基準長より長い所定の基準数（例えば、１本、２本、３本、４本など）以上の候補直線が検出されることを、条件として採用してもよい。長い候補直線は、短い候補直線と比べて、原稿の縁を表している可能性が高い。従って、長い候補直線は、縁直線を特定するための基準直線として利用可能である。そのような基準直線は、縁直線として採用可能である。基準長としては、候補直線を特定するための長さの閾値（例えば、輪郭画素数の閾値）よりも、大きい値が用いられる。なお、基準数の候補直線、すなわち、基準直線のセットとしては、内直線の総数が互いに異なる（すなわち、端直線の総数が互いに異なる）複数種類の基準直線のセットを利用可能である。例えば、基準数が「１」である場合、１本の内直線のセットと、１本の端直線のセットと、の２種類のセットが利用可能である。また、基準数が「２」である場合には、図４の実施例と同様に３種類の直線ペアが利用可能である。いずれの場合も、基準直線のセットを構成する内直線を、最も長い内直線から順番に選択し、基準直線のセットを構成する端直線を、最も長い端直線から順番に選択することが好ましい。
【０１０１】
なお、プロセッサ１１０は、複数の候補直線から、予め決められた特定の条件を満たす候補直線を、基準直線として選択してよい。そのような条件は、２本の候補直線が平行状態または垂直状態にあることや、読取画像内での長さが所定の基準長より長いことに限らず、注目している候補直線が他の候補直線と比べて原稿の縁を表す可能性が高いことを示す種々の条件であってよい。このような条件下で選択された基準直線を用いることによって、原稿の縁の少なくとも一部を表す直線と原稿の傾きとの少なくとも一方を含む原稿情報を、適切に特定できる。なお、このような基準直線は、縁直線として特定可能である。
【０１０２】
いずれの場合も、複数種類の基準直線セットのそれぞれの選択可能性の判断を、内直線を優先する順番（例えば、内直線割合の高い順番、端直線割合の低い順番、内直線の総数が多い順番、端直線の総数が少ない順番、など）に行うことが好ましい。これにより、図３（Ａ）の読取画像Ｉ１ａように原稿の一部が読取画像の外にはみ出る場合であっても、適切な縁直線を特定できる。
【０１０３】
また、複数種類の基準直線セットの間で、基準直線のセットを選択可能と判断するための条件が異なっていてもよい。例えば、内基準ペアのための条件と、端基準ペアのための条件とが、平行状態または垂直状態の２本の候補直線（すなわち、内基準ペア、または、端基準ペア）を選択できることであり、混合基準ペアのための条件が、垂直状態ではなく平行状態２本の候補直線（すなわち、混合基準ペア）を選択できることであってもよい。一般的には、Ｑ種類（Ｑは２以上の整数）の基準直線セットを利用可能な場合、第Ｒ種の基準直線のセット（１≦Ｒ≦Ｑ）を選択可能と判断するための条件が、第Ｒ条件を満たす候補直線（すなわち、第Ｒ種の基準直線のセット）を選択できることであってよい。ここで、Ｑ個の条件の全てが同じであってよく、Ｑ個の条件の全てが互いに異なっていてもよい。また、Ｑ個の条件のうちの一部のＳ個（２≦Ｓ≦Ｑ−１）の条件が同じであり、残りのＱ−Ｓ個の条件は、それぞれ、他の条件と異なっていてもよい。
【０１０４】
（３）３本以下の縁直線を用いて、複数の候補直線から矩形を形成する追加の縁直線を特定する処理（図４：Ｓ３７０）は、垂直条件、または、平行条件を用いる処理に代えて、他の種々の処理であってよい。例えば、以下の処理を採用してもよい。予め決められた複数種類の定型サイズ（例えば、「Ａ４サイズ」と「レターサイズ」と「Ｂ５サイズ」）から、前景領域の形状と大きさとに最も近い定型サイズを特定する（対象サイズと呼ぶ）。例えば、前景領域に定型サイズを重ねる場合の互いに重ならない部分の合計面積が最小となる定型サイズが、対象サイズとして選択される。特定した対象サイズの縁を特定済の縁直線に重ねる。重ねられた対象サイズの縁のうちの縁直線が対応付けられていない縁の近傍の候補直線を、追加の縁直線として特定する。候補直線が縁の近傍にあると判断するための条件は、候補直線が縁に沿って延びることを示す種々の条件であってよい（近傍条件と呼ぶ）。近傍条件は、例えば、縁と候補直線とが平行条件を満たし、かつ、読取画像上での縁と候補直線との間の最短距離が、所定の距離閾値以下であることであってよい。距離閾値は、ゼロ以上であり、対象サイズの短辺の長さと比べて十分に小さい値（例えば、短辺の長さの１／１０以下の値）に設定される。
【０１０５】
このように、矩形を形成する追加の候補直線を特定するための条件（矩形条件とも呼ぶ）は、候補直線が特定済の縁直線に組み合わされることによって矩形を形成することを示す種々の条件であってよい。このような矩形条件を満たす候補直線を、追加の候補直線として特定してよい。また、追加の候補直線を特定するための矩形（すなわち、複数の候補直線によって形成される矩形）は、厳密な矩形と、厳密な矩形から許容範囲内で変形した矩形と、を含み得る。変形の許容範囲は、垂直条件と平行条件と近傍条件などの矩形条件によって許容される範囲である。
【０１０６】
（４）図４のＳ３１３等で説明したように、垂直条件は、略垂直を示してよく、平行条件は、略平行を示してよい。そして、上述したように、縁直線を用いて特定される矩形の原稿領域（例えば、図４のＳ３８０で特定される原稿領域）の形状は、厳密な矩形に限らず、略矩形であり得る。ここで、プロセッサ１１０は、原稿領域の全体を包含する出力画像を表す出力画像データを生成してよい。例えば、出力画像は、原稿領域の全体を包含する最小矩形の画像であってよい。また、プロセッサ１１０は、原稿領域の一部のみを含む出力画像を表す出力画像データを生成してよい。例えば、出力画像は、原稿領域に含まれる最大矩形の画像であってよい。
【０１０７】
（５）読取画像データを用いる画像処理は、図２、図４、図８で説明した処理に代えて、読取画像データによって表される読取画像を解析して縁直線と原稿の傾きとの少なくとも一方を含む原稿情報を特定する種々の処理を採用可能である。例えば、図４のＳ３７０、Ｓ３８０が省略されてよい。また、図８のＳ５７０、Ｓ５８０が省略されてよい。これらの場合、プロセッサ１１０は、例えば、Ｓ３５０、Ｓ５５０で特定される縁直線を用いて読取画像における原稿の傾きを特定し、読取画像に対して傾き補正を行うことによって得られる画像を出力画像として用いてよい。この場合、出力画像は、前景領域に加えて、背景領域を含み得る。
【０１０８】
また、プロセッサ１１０は、出力画像データを生成せずに、読取画像内の縁直線を示す情報と、読取画像に対する原稿の傾きを示す情報と、の少なくとも一方を、出力する出力部として動作してもよい。出力先としては、例えば、記憶装置（例えば、不揮発性記憶装置１３０（図１））と表示部（例えば、表示部１４０）との少なくとも一方を採用してよい。出力先が記憶装置である場合、プロセッサ１１０は、例えば、読取画像内の縁直線を示す情報と、読取画像に対する原稿の傾きを示す情報と、の少なくとも一方を含むデータを、記憶装置に格納してもよい。出力先が表示部である場合、プロセッサ１１０は、例えば、表示部１４０に読取画像を表示し、表示された読取画像上に縁直線を重ねて表示してもよい。ユーザは、表示された縁直線を観察することによって、原稿の傾きと原稿の縁と原稿領域とを容易に確認できる。
【０１０９】
（６）原稿を光学的に読み取る装置は、図１（Ａ）、図１（Ｂ）で説明したスキャナ４００に代えて、原稿を光学的に読み取ることが可能な他の種々の装置であってよい。例えば、スキャナ４００から搬送装置４５０が省略されてもよい。また、スキャナ４００から原稿台４４０が省略されてもよい。また、デジタルカメラを用いて原稿を撮影することによって生成された画像データが、読取画像データとして用いられてもよい。いずれの場合も、画像処理装置１００のプロセッサ１１０は、画像処理装置１００にネットワークＮＴや図示しないケーブル（例えば、ＵＳＢケーブル）を介して接続された読取装置（例えば、スキャナ４００やデジタルカメラ）から、読取画像データを取得してよい。また、プロセッサ１１０は、画像処理装置１００に接続された図示しない外部記憶装置（例えば、ＵＳＢメモリ）から、読取画像データを取得してもよい。
【０１１０】
（７）図１の画像処理装置は、パーソナルコンピュータとは異なる種類の装置であってもよい。例えば、画像処理装置は、スキャナ（例えば、スキャナ４００）やデジタルカメラなどの原稿を光学的に読み取る読取装置に組み込まれていてもよい。画像処理装置は、ネットワークに接続されたサーバ装置であってもよい。また、ネットワークを介して互いに通信可能な複数の装置（例えば、コンピュータ）が、画像処理装置による画像処理の機能を一部ずつ分担して、全体として、画像処理の機能を提供してもよい（これらの装置を備えるシステムが画像処理装置に対応する）。
【０１１１】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図２のＳ１４０の処理の機能を、専用のハードウェア回路によって実現してもよい。
【０１１２】
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体（例えば、一時的ではない記録媒体）に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体（コンピュータ読み取り可能な記録媒体）に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種ＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【０１１３】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【０１１４】
１００…画像処理装置、１１０…プロセッサ、１２０…揮発性記憶装置、１３０…不揮発性記憶装置、１３２…プログラム、１４０…表示部、１５０…操作部、１９０…インタフェース、４００…スキャナ、４１０…制御部、４２０…読取部、４３０…移動装置、４４０…原稿台、４５０…搬送装置、４５２…搬送ローラ、４５４…経路、４５６…給紙トレー、４５８…排紙トレー、４９０…本体部、Ｄ１…第１方向、Ｄ２…第２方向、ＮＴ…ネットワーク
【図１】
2018121270.tif 000003
【図２】
2018121270.tif 000004
【図３】
2018121270.tif 000005
【図４】
2018121270.tif 000006
【図５】
2018121270.tif 000007
【図６】
2018121270.tif 000008
【図７】
2018121270.tif 000009
【図８】
2018121270.tif 000010
【図９】
2018121270.tif 000011
【図１０】
2018121270.tif 000012