(57)【要約】【課題】  原稿読取装置の構造を変更することなく、原稿から凹凸形状の部分を検出する。【解決手段】  原稿読取装置は、主走査方向に配列され、原稿に光を照射する複数の光源と、複数の光電変換素子と、複数の光源それぞれの点灯および消灯を制御する光源制御部７１と、それぞれが複数の光源のうちから選ばれた複数の光源を含む複数のグループごとに、グループに含まれる複数の光源が点灯する状態で複数の光電変換素子が出力する画素値を主走査方向に配列したラインデータを取得するラインデータ取得部５９と、複数のグループごとに、グループに対応する補正係数でラインデータを補正するシェーディング補正部５７と、複数のグループそれぞれに対応する複数のラインデータに基づいて、原稿に形成された凹凸部分を検出する凹凸検出部６９と、を備える。【選択図】        図１２
2018050229.tif 000002
【特許請求の範囲】
【請求項１】
主走査方向に配列され、原稿に光を照射する複数の光源と、
前記主走査方向に配列され、原稿からの反射光を受光する複数の光電変換素子と、
前記複数の光源それぞれの点灯および消灯を制御する光源制御手段と、
それぞれが前記複数の光源のうちから選ばれた複数の光源を含む複数のグループごとに、前記グループに含まれる複数の光源が点灯し、前記グループに含まれない複数の光源を消灯する状態で前記複数の光電変換素子それぞれが出力する画素値を前記主走査方向に配列したラインデータを取得するラインデータ取得手段と、
前記複数のグループごとに、前記グループに対応する補正係数で、前記グループに対して取得された前記ラインデータを補正する補正手段と、
前記複数のグループそれぞれに対応する補正後の前記複数のラインデータに基づいて、前記原稿に形成された凹凸部分を検出する凹凸検出手段と、を備えた原稿読取装置。
【請求項２】
前記凹凸検出手段は、前記複数のグループにそれぞれ対応する複数のラインデータ間で、前記主走査方向に同じ位置に配列された画素値を比較し、複数のラインデータのいずれか１つにおいて、他の１以上のラインデータの画素値のすべてと所定の値以上の差がある画素値が配列された部分を候補部分として検出する候補部分検出手段を含む、請求項１に記載の原稿読取装置。
【請求項３】
前記凹凸検出手段は、１のラインデータから検出された第１候補部分が、他の１以上のラインデータのいずれかから検出された１以上の候補部分のうち前記第１候補部分から所定の距離に配置された第２候補部分が存在する場合に、前記第１候補部分と前記第２候補部分とを含む凹凸部分を抽出する、請求項２に記載の原稿読取装置。
【請求項４】
前記複数のグループは、前記複数の光源のうち（２Ｎ−１）（Ｎは正の整数）個の間隔を隔てて配列された複数の光源からなる第１グループと、前記第１グループに属する複数の光源それぞれに対して配列順がＮだけ異なる第２グループとを含む、、請求項１〜３のいずれかに記載の原稿読取装置。
【請求項５】
前記複数のグループは、前記第１グループおよび前記第２グループにそれぞれ含まれる複数の光源が配列される間隔の異なる複数の組を含み、
前記凹凸検出手段は、前記複数の組のうち第１の組に含まれる前記第１グループに対応する前記ラインデータおよび前記第２グループに対応する前記ラインデータに基づいて、前記原稿に形成された凹凸部分を検出し、
前記検出された凹凸部分のサイズに基づいて、前記複数の組のうちから第２の組を選択し、前記第２の組に含まれる前記第１グループに対応する前記ラインデータおよび前記第２グループに対応する前記ラインデータに基づいて、前記原稿に形成された凹凸部分を検出する、請求項４に記載の原稿読取装置。
【請求項６】
前記主走査方向と交わる副走査方向に原稿に光を照射する位置を移動させる副走査手段と、
前記複数のグループの数に応じて、原稿に光を照射する位置を移動させる移動速度を変更する副走査制御手段と、をさらに備えた請求項１〜５のいずれかに記載の原稿読取装置。
【請求項７】
前記複数のグループは、前記複数の光源のすべてからなる全灯グループを含み、
前記副走査手段が原稿に照射される光の位置を所定距離だけ移動させるごとに取得される前記全灯グループに対応する複数のラインデータを合成した画像データを生成する画像データ生成手段と、
前記画像データを文字認識する文字認識手段と、
前記検出された凹凸部分で文字が認識されない割合が所定の値以上の場合、エラーを通知するエラー通知手段と、をさらに備えた、請求項６に記載の原稿読取装置。
【請求項８】
前記複数のグループは、前記複数の光源のすべてからなる全灯グループを含み、
前記全灯グループに対応するラインデータの前記検出された凹凸部分を補正する画像補正手段を、さらに備えた、請求項１〜６のいずれかに記載の原稿読取装置。
【請求項９】
前記画像補正手段は、前記全灯グループに対応するラインデータについて、検出された前記凹凸部分を他の部分と区別可能な状態に補正する、請求項８に記載の原稿読取装置。
【請求項１０】
前記画像補正手段は、前記全灯グループに対応するラインデータについて、前記検出された凹凸部分の画素値を前記検出された凹凸部分の近傍の部分の画素値に変更する、請求項７に記載の原稿読取装置。
【請求項１１】
前記複数の光電変換素子は、複数の色ごとに複数の画素値を出力し、
前記凹凸検出手段は、前記複数の色のうち所定の１つの色に対応して、前記複数の光電変換素子がそれぞれ出力する画素値を前記主走査方向に配列したラインデータに基づいて、凹凸部分を検出する、請求項１〜１０のいずれかに記載の原稿読取装置。
【請求項１２】
原稿読取装置で実行される原稿読取方法であって、
前記原稿読取装置は、
主走査方向に配列され、原稿に光を照射する複数の光源と、
前記主走査方向に配列され、原稿からの反射光を受光する複数の光電変換素子と、を備え、
前記複数の光源それぞれの点灯および消灯を制御する光源制御ステップと、
それぞれが前記複数の光源のうちから選ばれた複数の光源を含む複数のグループごとに、前記グループに含まれる複数の光源が点灯し、前記グループに含まれない複数の光源を消灯する状態で前記複数の光電変換素子それぞれが出力する画素値を前記主走査方向に配列したラインデータを取得するラインデータ取得ステップと、
前記複数のグループごとに、前記グループに対応する補正係数で、前記グループに対して取得された前記ラインデータを補正する補正ステップと、
前記複数のグループそれぞれに対応する補正後の前記複数のラインデータに基づいて、前記原稿に形成された凹凸部分を検出する凹凸検出ステップと、を含む原稿読取方法。
【請求項１３】
原稿読取装置を制御するコンピューターで実行される原稿読取プログラムであって、
前記原稿読取装置は、
主走査方向に配列され、原稿に光を照射する複数の光源と、
前記主走査方向に配列され、原稿からの反射光を受光する複数の光電変換素子と、を備え、
前記複数の光源それぞれの点灯および消灯を制御する光源制御ステップと、
それぞれが前記複数の光源のうちから選ばれた複数の光源を含む複数のグループごとに、前記グループに含まれる複数の光源が点灯し、前記グループに含まれない複数の光源を消灯する状態で前記複数の光電変換素子それぞれが出力する画素値を前記主走査方向に配列したラインデータを取得するラインデータ取得ステップと、
前記複数のグループごとに、前記グループに対応する補正係数で、前記グループに対して取得された前記ラインデータを補正する補正ステップと、
前記複数のグループそれぞれに対応する補正後の前記複数のラインデータに基づいて、前記原稿に形成された凹凸部分を検出する凹凸検出ステップと、を前記コンピューターに実行させる原稿読取プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿読取装置、原稿読取方法および原稿読取プログラムに関し、特に、手書きで描かれた画像を含む原稿を読み取るための原稿読取装置、原稿読取方法および原稿読取プログラム関する。
【背景技術】
【０００２】
原稿に形成された皺を検出する技術が知られている。例えば、特開２００５−２１４７３４号公報には、用紙に対し光を照射する照明手段と、対応する反射光を読み取って前記用紙を撮像する撮像手段と、前記照明手段及び前記撮像手段を用いて、前記用紙に対して互いに異なる照射角度または反射角度で撮像された複数の検査画像データを生成する検査画像データ生成手段と、前記複数の検査画像データの比較を行って、前記用紙に形成された紙皺の検出を行う検出手段と、を備える、ことを特徴とする紙皺検査装置が記載されている。
【０００３】
しかしながら、用紙に対して互いに異なる照射角度または反射角度で撮像された複数の検査画像データを生成するために、複数の照射手段と複数の撮像手段とを設けなければならず、構造が複雑になるといった問題がある。
【特許文献１】特開２００５−２１４７３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の１つは、構造を変更することなく、原稿から凹凸形状の部分を検出することが可能な原稿読取装置を提供することである。
【０００５】
この発明の他の目的は、原稿読取装置の構造を変更することなく、原稿から凹凸形状の部分を検出することが可能な原稿読取方法を提供することである。
【０００６】
この発明のさらに他の目的は、構造を変更することなく、原稿から凹凸形状の部分を検出することが可能な原稿読取プログラムを提供することである。
【課題を解決するための手段】
【０００７】
上述した目的を達成するためにこの発明のある局面に従えば、原稿読取装置は、主走査方向に配列され、原稿に光を照射する複数の光源と、主走査方向に配列され、原稿からの反射光を受光する複数の光電変換素子と、複数の光源それぞれの点灯および消灯を制御する光源制御手段と、それぞれが複数の光源のうちから選ばれた複数の光源を含む複数のグループごとに、グループに含まれる複数の光源が点灯し、グループに含まれない複数の光源を消灯する状態で複数の光電変換素子それぞれが出力する画素値を主走査方向に配列したラインデータを取得するラインデータ取得手段と、複数のグループごとに、グループに対応する補正係数で、グループに対して取得されたラインデータを補正する補正手段と、複数のグループそれぞれに対応する補正後の複数のラインデータに基づいて、原稿に形成された凹凸部分を検出する凹凸検出手段と、を備える。
【０００８】
この局面に従えば、複数のグループそれぞれが、主走査方向に配列された複数の光源のうちから選ばれた複数の光源を含み、複数の光源を複数のグループごとに点灯した状態で複数の光電変換素子それぞれが出力する画素値を主走査方向に配列したラインデータを取得し、補正する。原稿に存在する凹凸部分は、光源から照射される光を遮る場合があり、複数のグループそれぞれに対応する補正後の複数のラインデータ間で、凹凸部分に対応する画素値が異なる場合がある。複数のグループそれぞれに対応する補正後の複数のラインデータに基づいて、原稿に形成された凹凸部分を検出するので、構造を変更することなく、原稿から凹凸形状の部分を検出することが可能な原稿読取装置を提供することができる。
【０００９】
好ましくは、凹凸検出手段は、複数のグループにそれぞれ対応する複数のラインデータ間で、主走査方向に同じ位置に配列された画素値を比較し、複数のラインデータのいずれか１つにおいて、他の１以上のラインデータの画素値のすべてと所定の値以上の差がある画素値が配列された部分を候補部分として検出する候補部分検出手段を含む。
【００１０】
この局面に従えば、複数のグループにそれぞれ対応する複数のラインデータ間で、複数のラインデータのいずれか１つにおいて、他の１以上のラインデータの画素値のすべてと所定の値以上の差がある画素値が配列された部分を候補部分として検出する。複数のグループにそれぞれ対応する複数のラインデータ間で画素値が異なる部分を候補部分として検出するので、凹凸部分の一部を検出することができる。
【００１１】
好ましくは、凹凸検出手段は、１のラインデータから検出された第１候補部分が、他の１以上のラインデータのいずれかから検出された１以上の候補部分のうち第１候補部分から所定の距離に配置された第２候補部分が存在する場合に、第１候補部分と第２候補部分とを含む凹凸部分を抽出する。
【００１２】
この局面に従えば、１のラインデータから検出された第１候補部分と、別のラインデータから検出された第２候補部分とを含む凹凸部分を抽出する。１のラインデータと別のラインデータそれぞれで検出される第１候補部分と第２候補部分とは、同じ凹凸部分の異なる部分に対応する。このため、凹凸部分を正確に検出することができる。
【００１３】
好ましくは、複数のグループは、複数の光源のうち（２Ｎ−１）（Ｎは正の整数）個の間隔を隔てて配列された複数の光源からなる第１グループと、第１グループに属する複数の光源それぞれに対して配列順がＮだけ異なる第２グループとを含む。
【００１４】
この局面に従えば、第１のグルーブに属する複数の光源が原稿に照射する光の方向と、第２グループに属する複数の光源が原稿に照射する光の方向とを異ならせることができる。
【００１５】
好ましくは、複数のグループは、第１グループおよび第２グループにそれぞれ含まれる複数の光源が配列される間隔の異なる複数の組を含み、凹凸検出手段は、複数の組のうち第１の組に含まれる第１グループに対応するラインデータおよび第２グループに対応するラインデータに基づいて、原稿に形成された凹凸部分を検出し、検出された凹凸部分のサイズに基づいて、複数の組のうちから第２の組を選択し、第２の組に含まれる第１グループに対応するラインデータおよび第２グループに対応するラインデータに基づいて、原稿に形成された凹凸部分を検出する。
【００１６】
この局面に従えば、第１の組に含まれる第１グループに対応するラインデータおよび第２グループに対応するラインデータに基づいて、原稿に形成された凹凸部分を検出し、凹凸部分のサイズに基づいて、第１の組と複数の光源が配列される間隔を異なる第２の組を選択し、第２の組に含まれる第１グループに対応するラインデータおよび第２グループに対応するラインデータに基づいて、原稿に形成された凹凸部分を検出する。このため、複数の光源が配列される間隔を凹凸部分のサイズに適した間隔とするので、凹凸部分を正確に検出することができる。
【００１７】
好ましくは、主走査方向と交わる副走査方向に複数の光源が原稿に光を照射する位置を移動させる副走査手段と、複数のグループの数に応じて、原稿に光を照射する位置を移動させる移動速度を変更する副走査制御手段と、をさらに備える。
【００１８】
この局面に従えば、複数のグループの数に応じて、移動速度を変更するので、副走査方向の解像度を変更することなく、原稿を読み取るとともに、凹凸部分を検出することができる。
【００１９】
好ましくは、複数のグループは、複数の光源のすべてからなる全灯グループを含み、副走査手段が原稿に照射される光の位置を所定距離だけ移動させるごとに取得される全灯グループに対応する複数のラインデータを合成した画像データを生成する画像データ生成手段と、画像データを文字認識する文字認識手段と、検出された凹凸部分で文字が認識されない割合が所定の値以上の場合、エラーを通知するエラー通知手段と、をさらに備える。
【００２０】
この局面に従えば、全灯グループに対応する複数のラインデータを合成した画像データが文字認識され、検出された凹凸部分で文字が認識されない割合が所定の値以上の場合にエラーが通知される。このため、原稿に手書きされた文字が検出されない場合にエラーを通知することができる。
【００２１】
好ましくは、複数のグループは、複数の光源のすべてからなる全灯グループを含み、全灯グループに対応するラインデータの検出された凹凸部分を補正する画像補正手段を、さらに備える。
【００２２】
この局面に従えば、全灯グループに対応するラインデータの凹凸部分を補正するので、凹凸部分を強調または消去することができる。
【００２３】
好ましくは、画像補正手段は、全灯グループに対応するラインデータについて、検出された凹凸部分を他の部分と区別可能な状態に補正する。
【００２４】
この局面に従えば、凹凸部分を強調することができる。
【００２５】
好ましくは、画像補正手段は、全灯グループに対応するラインデータについて、検出された凹凸部分の画素値を検出された凹凸部分の近傍の部分の画素値に変更する。
【００２６】
この局面に従えば、凹凸部分を消去することができる。
【００２７】
好ましくは、複数の光電変換素子は、複数の色ごとに複数の画素値を出力し、凹凸検出手段は、複数の色のうち所定の１つの色に対応して、複数の光電変換素子がそれぞれ出力する画素値を主走査方向に配列したラインデータに基づいて、凹凸部分を検出する。
【００２８】
この局面に従えば、複数の色にそれぞれ対応する複数のラインデータが存在する場合であっても１つの色に対応するラインデータに基づいて凹凸部分が検出される。このため、処理量を低減することができる。
【００２９】
この発明の他の局面によれば、原稿読取方法は、原稿読取装置で実行される原稿読取方法であって、原稿読取装置は、主走査方向に配列され、原稿に光を照射する複数の光源と、主走査方向に配列され、原稿からの反射光を受光する複数の光電変換素子と、を備え、複数の光源それぞれの点灯および消灯を制御する光源制御ステップと、それぞれが複数の光源のうちから選ばれた複数の光源を含む複数のグループごとに、グループに含まれる複数の光源が点灯し、グループに含まれない複数の光源を消灯する状態で複数の光電変換素子それぞれが出力する画素値を主走査方向に配列したラインデータを取得するラインデータ取得ステップと、複数のグループごとに、グループに対応する補正係数で、グループに対して取得されたラインデータを補正する補正ステップと、複数のグループそれぞれに対応する補正後の複数のラインデータに基づいて、原稿に形成された凹凸部分を検出する凹凸検出ステップと、を含む。
【００３０】
この局面に従えば、原稿読取装置の構造を変更することなく、原稿から凹凸形状の部分を検出することが可能な原稿読取方法を提供することができる。
【００３１】
この発明のさらに他の局面によれば、原稿読取プログラムは、原稿読取装置を制御するコンピューターで実行される原稿読取プログラムであって、原稿読取装置は、主走査方向に配列され、原稿に光を照射する複数の光源と、主走査方向に配列され、原稿からの反射光を受光する複数の光電変換素子と、を備え、複数の光源それぞれの点灯および消灯を制御する光源制御ステップと、それぞれが複数の光源のうちから選ばれた複数の光源を含む複数のグループごとに、グループに含まれる複数の光源が点灯し、グループに含まれない複数の光源を消灯する状態で複数の光電変換素子それぞれが出力する画素値を主走査方向に配列したラインデータを取得するラインデータ取得ステップと、複数のグループごとに、グループに対応する補正係数で、グループに対して取得されたラインデータを補正する補正ステップと、複数のグループそれぞれに対応する補正後の複数のラインデータに基づいて、原稿に形成された凹凸部分を検出する凹凸検出ステップと、をコンピューターに実行させる。
【００３２】
この局面に従えば、原稿読取装置の構造を変更することなく、原稿から凹凸形状の部分を検出することが可能な原稿読取プログラムを提供することができる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施の形態の１つにおけるＭＦＰの外観を示す斜視図である。
【図２】ＡＤＦおよび原稿読取部の内部構成の概略を示す図である。
【図３】ＭＦＰのハードウェア構成の一例を示すブロック図である。
【図４】原稿の一部を示す第１の図である。
【図５】第１ラインデータの一部の一例を示す第１の図である。
【図６】第２ラインデータの一部の一例を示す第１の図である。
【図７】合成ラインデータの一部の一例を示す第１の図である。
【図８】原稿の一部を示す第２の図である。
【図９】第１ラインデータの一部の一例を示す第２の図である。
【図１０】第２ラインデータの一部の一例を示す第２の図である。
【図１１】合成ラインデータの一部の一例を示す第２の図である。
【図１２】ＭＦＰが備えるＣＰＵの機能の一例を示すブロック図である。
【図１３】原稿読取制御処理の流れの一例を示す第１のフローチャートである。
【図１４】原稿読取制御処理の流れの一例を示す第２のフローチャートである。
【図１５】パラメータ決定処理の流れの一例を示すフローチャートである。
【図１６】サイクル読取処理の流れの一例を示すフローチャートである。
【図１７】シェーディング補正処理の流れの一例を示すフローチャートである。
【図１８】折れ目排除処理の流れの一例を示すフローチャートである。
【図１９】凹凸部分検出処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００３４】
以下、図面を参照しつつ本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００３５】
図１は、本発明の実施の形態の１つにおけるＭＦＰの外観を示す斜視図である。図１を参照して、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００は、原稿読取装置の一例であり、原稿を読み取るための原稿読取部１３０と、原稿を原稿読取部１３０に搬送するための自動原稿搬送装置（ＡＤＦ）１２０と、原稿読取部１３０が原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部１４０と、画像形成部１４０に用紙を供給するための給紙部１５０と、ユーザーインターフェースとしての操作パネル１６０とを含む。
【００３６】
図２は、ＡＤＦおよび原稿読取部の内部構成の概略を示す図である。ＡＤＦ１２０は、原稿１０１を読取位置Ｌに搬送するためのタイミングローラ対１２１と、読取位置Ｌ付近において原稿の搬送をガイドするための上部規制板１２３と、読取位置Ｌを通過した原稿１０１を排出するために原稿１０１を搬送するためのローラ対１２２とを備える。
【００３７】
ＡＤＦ１２０は、原稿トレイ１２０Ａ上に積載された複数の原稿１０１の最上段から１枚の原稿をさばき、タイミングローラ対１２１に供給する。タイミングローラ対１２１は、原稿１０１を読取位置Ｌに搬送する。読取位置Ｌを通過した原稿は、ローラ対１２２によって原稿排紙トレイ１２０Ｂ上に排出される。上部規制板１２３は、原稿の通路側の読取位置Ｌ付近に背景板１２４を有する。背景板１２４は、原稿を透過した光を反射するため、反射率が高く、かつ、反射率が均一であることが望ましい。反射する光にムラがあると、ノイズとなるからである。
【００３８】
原稿読取部１３０は、透明な部材から構成された原稿台１２５と、原稿の搬送経路の一部を形成する通紙ガイド１２７と、原稿台１２５と通紙ガイド１２７との間に設置されたシェーディング板１２６と、光を照射するためのライン光源１２９と、ライン光源１２９からの光を反射させる反射部材１３１と、反射ミラー１３２，１３３と、スライダ１２８と、レンズ１３４と、３つのラインセンサを備えた読取部１３５とを含む。
【００３９】
原稿１０１は、タイミングローラ対１２１により、原稿台１２５と上部規制板１２３との間を矢印Ｄ１の方向に搬送される。そして、搬送されながら読取位置Ｌにおいて、読取部１３５によりその画像が逐次読取られる。ＡＤＦ１２０が原稿を搬送する方向は、読取位置Ｌにおいて副走査方向である。
【００４０】
スライダ１２８は、ライン光源１２９、反射部材１３１および反射ミラー１３２を保持する。スライダ１２８は、図中Ｄ２方向に往復して移動することが可能であり、原稿を読取る間は読取位置Ｌの下方位置で停止し、原稿を読取る前の段階でシェーディング板１２６の下方位置で停止する。スライダ１２８の移動に伴って、反射ミラー１３３が移動することにより、反射光の光路長が実質的に一定に保たれる。
【００４１】
スライダ１２８がシェーディング板１２６の下方に位置するとき、ライン光源１２９が照射する光は、シェーディング板１２６に照射される。ライン光源１２９が照射した光の一部がシェーディング板１２６で反射して、さらに、反射ミラー１３２，１３３で反射してレンズ１３４に導かれる。レンズ１３４は、それに入射する光を集光して読取部１３５の３つのラインセンサそれぞれに結像する。
【００４２】
スライダ１２８が読取位置Ｌの下方に位置するとき、ライン光源１２９が照射する光は、読取位置Ｌに照射される。読取位置Ｌに原稿１０１が存在すれば、ライン光源１２９が照射した光の一部が原稿で反射して、さらに、反射ミラー１３２，１３３で反射してレンズ１３４に導かれる。レンズ１３４は、それに入射する光を集光して読取部１３５の３つのラインセンサ上に結像する。また、読取位置Ｌに原稿１０１が存在しなければ、ライン光源１２９が照射した光の一部が背景板１２４で反射して、さらに、反射ミラー１３２，１３３で反射してレンズ１３４に導かれる。レンズ１３４は、それに入射する光を集光して読取部１３５の３つのラインセンサ上に結像する。
【００４３】
原稿読取部１３０は、ＡＤＦ１２０が複数の原稿を順に搬送する場合に、ＡＤＦ１２０が原稿の搬送を開始する前の段階で、スライダ１２８をシェーディング板１２６の下方に移動させる。この段階で、後述するシェーディング補正用データが生成される。原稿読取部１３０は、シェーディング補正用データが生成された後、スライダ１２８を読取位置Ｌの下方に移動させ、ＡＤＦ１２０に複数枚の原稿を順に搬送させる。
【００４４】
ライン光源１２９は、副走査方向と実質的に垂直な主走査方向に配列された複数の光源を含む。したがって、ライン光源１２９は、一度に、原稿の一部に光を照射し、原稿の光が照射される部分は、長辺が主走査方向に平行な矩形の領域である。ライン光源１２９に含まれる複数の光源それぞれは、複数のグループのいずれかに属する。複数のグループは、ライン光源１２９に含まれる複数の光源のすべてを含む全灯グループを含む。さらに、複数のグループは、ライン光源１２９に含まれる複数の光源のうち（２Ｎ−１）（Ｎは正の整数）個の間隔を隔てて配列された複数の光源からなる第１グループと、第１グループに属する複数の光源それぞれに対して配列順がＮだけ異なる第２グループとを含む。この場合、第１グループに属する複数の光源の間隔と、第２グループに属する複数の光源の間隔とは同じである。したがって、第１グループと第２グループとの組は、複数の光源が配列される間隔が異なるＮ種類が存在する。ここでは、第１グループと第２グループとの組を光源組といい、第Ｎ組と表す。例えば、Ｎが「１」の場合における第１組は、ライン光源１２９に含まれる複数の光源のうち１個の間隔を隔てて配列された複数の光源からなる第１グループと、第１グループに属する複数の光源それぞれに対して配列順が１だけ異なる複数の光源を含む第２グループとを含む。Ｎが「２」の場合における第２組は、ライン光源１２９に含まれる複数の光源のうち３個の間隔を隔てて配列された複数の光源からなる第１グループと、第１グループに属する複数の光源それぞれに対して配列順が２だけ異な複数の光源を含む第２グループとを含む。
【００４５】
読取部１３５は、３つのラインセンサを備える。３つのラインセンサそれぞれは、主走査方向に複数の光電変換素子が配列されている。したがって、３つのラインセンサそれぞれは、複数の光電変換素子がそれぞれ出力する複数の画素値を主走査方向に配列したラインデータを出力する。ここでは、３つのラインセンサそれぞれが光を受光してからラインデータをするまでの時間を、読取時間という。３つのラインセンサそれぞれは、互いに分光感度が異なるフィルタを有し、複数の光電変換素子はフィルタを透過した光を受光する。具体的には、読取部１３５は、赤（Ｒ）の波長の光を透過するフィルタを有するラインセンサと、緑（Ｇ）の波長の光を透過するフィルタを有するラインセンサと、青（Ｂ）の波長の光を透過するフィルタを有するラインセンサと、を含む。以下、赤（Ｒ）の波長の光を透過するフィルタを有するラインセンサをラインセンサＲといい、緑（Ｇ）の波長の光を透過するフィルタを有するラインセンサをラインセンサＧといい、青（Ｂ）の波長の光を透過するフィルタを有するラインセンサをラインセンサＢという。このため、ラインセンサＲは、赤色の光の強度を示すラインデータＲを出力し、ラインセンサＧは、緑色の光の強度を示すラインデータＧを出力し、ラインセンサＢは、青色の光の強度を示すラインデータＢを出力する。
【００４６】
３つのラインセンサは、副走査方向に所定の距離を隔てて予め定められた順番で配置される。ここでは、原稿の読取ラインに換算して３ライン分の距離を隔てて原稿の搬送方向で赤、緑、青の順に配置されている。なお、３つのラインセンサを配置する間隔および順番は、これに限定されるものではない。３つのラインセンサは、３ライン分の距離を隔てて赤、緑、青の順に配置されるので、３つのラインセンサは、同時に原稿の異なる位置で反射した光を受光する。具体的には、原稿のある位置で反射した光は、まず、赤の光を受光するラインセンサで受光され、原稿が３ライン分搬送された後に緑の光を受光するラインセンサで受光され、さらに原稿が３ライン分搬送された後に青の光を受光するラインセンサで受光される。読取部１３５は、３つのラインセンサがそれぞれ出力する３つのラインデータを原稿の同じ位置に対応させるために、３つのラインセンサがそれぞれ出力する３つのラインデータを選択するタイミングを調整して出力する。
【００４７】
なお、本実施の形態においては、読取部１３５に３つのラインセンサを設けるようにしたが、４つ以上のラインセンサを設けるようにしてもよい。
【００４８】
図３は、ＭＦＰのハードウェア構成の一例を示すブロック図である。図３を参照して、ＭＦＰ１００は、ＡＤＦ１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０および操作パネル１６０と接続されたメイン回路１１０を含む。メイン回路１１０は、ＭＦＰ１００の全体を制御するＣＰＵ（中央演算処理装置）１１１と、通信インターフェース（Ｉ／Ｆ）部１１２と、ＲＯＭ１１３と、ＲＡＭ１１４と、大容量記憶装置としてのハードディスクドライブ（ＨＤＤ）１１６と、ファクシミリ部１１７と、外部記憶装置１１９と、を含む。ＣＰＵ１１１は、ＡＤＦ１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０および操作パネル１６０と接続され、ＭＦＰ１００の全体を制御する。
【００４９】
ファクシミリ部１１７は、公衆交換電話網（ＰＳＴＮ）に接続され、ＰＳＴＮにファクシミリデータを送信する、またはＰＳＴＮからファクシミリデータを受信する。ファクシミリ部１１７は、受信したファクシミリデータを、ＨＤＤ１１６に記憶するとともに、画像形成部１４０でプリント可能なプリントデータに変換して、画像形成部１４０に出力する。これにより、画像形成部１４０は、ファクシミリ部１１７により受信されたファクシミリデータの画像を用紙に形成する。また、ファクシミリ部１１７は、ＨＤＤ１１６に記憶されたデータをファクシミリデータに変換して、ＰＳＴＮに接続されたファクシミリ装置に送信する。
【００５０】
通信Ｉ／Ｆ部１１２は、ネットワークにＭＦＰ１００を接続するためのインターフェースである。通信Ｉ／Ｆ部１１２は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）またはＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）等の通信プロトコルで、ネットワークに接続された他のコンピューターまたはデータ処理装置と通信する。なお、通信Ｉ／Ｆ部１１２が接続されるネットワークは、ローカルエリアネットワーク（ＬＡＮ）であり、接続形態は有線または無線を問わない。またネットワークは、ＬＡＮに限らず、ワイドエリアネットワーク（ＷＡＮ）、公衆交換電話網（ＰＳＴＮ）、インターネット等であってもよい。
【００５１】
ＲＯＭ１１３は、ＣＰＵ１１１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＲＡＭ１１４は、ＣＰＵ１１１がプログラムを実行する際の作業領域として用いられる。また、ＲＡＭ１１４は、原稿読取部１３０から連続的に送られてくる読取画像を一時的に記憶する。
【００５２】
操作パネル１６０は、ＭＦＰ１００の上面に設けられる。操作パネル１６０は、表示部１６０Ａと操作部１６０Ｂとを含む。表示部１６０Ａは、例えば、液晶表示装置（ＬＣＤ）であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。なお、ＬＣＤに代えて、画像を表示する装置であれば、例えば、有機ＥＬ（ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイを用いることができる。
【００５３】
操作部１６０Ｂは、タッチパネルと、複数のハードキーとを含む。タッチパネルは、静電容量方式である。なお、タッチパネルは、静電容量方式に限らず、例えば、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式等の他の方式を用いることができる。ハードキーは、例えば接点スイッチである。タッチパネルは、表示部１６０Ａの表示面中でユーザーにより指示された位置を検出する。ユーザーがＭＦＰ１００を操作する場合は直立した姿勢となる場合が多いので、表示部１６０Ａの表示面、タッチパネルの操作面およびハードキーは、上方を向いて配置される。ユーザーが表示部１６０Ａの表示面を容易に視認することができ、ユーザーが指で操作部１６０Ｂを容易に指示することができるようにするためである。
【００５４】
外部記憶装置１１９は、ＣＰＵ１１１により制御され、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１９Ａ、または半導体メモリが装着される。本実施の形態においては、ＣＰＵ１１１は、ＲＯＭ１１３に記憶されたプログラムを実行する例を説明するが、ＣＰＵ１１１は、外部記憶装置１１９を制御して、ＣＤ−ＲＯＭ１１９ＡからＣＰＵ１１１が実行するためのプログラムを読出し、読み出したプログラムをＲＡＭ１１４にロードして、実行するようにしてもよい。
【００５５】
なお、ＣＰＵ１１１が実行するためのプログラムを記憶する記録媒体としては、ＣＤ−ＲＯＭ１１９Ａに限られず、フレキシブルディスク、カセットテープ、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  ＥＰＲＯＭ）などの半導体メモリ等の媒体でもよい。さらに、ＣＰＵ１１１がネットワークに接続されたコンピューターからプログラムをダウンロードしてＨＤＤ１１６に記憶する、または、ネットワークに接続されたコンピューターがプログラムをＨＤＤ１１６に書込みするようにして、ＨＤＤ１１６に記憶されたプログラムをＲＡＭ１１４にロードしてＣＰＵ１１１で実行するようにしてもよい。ここでいうプログラムは、ＣＰＵ１１１により直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００５６】
本実施の形態におけるＭＦＰ１００は、読取対象となる原稿に形成された凹凸部分を検出する。原稿に形成される凹凸部は、例えば、原稿に鉛筆やボールペン等で手書きで記述された部分である。特に、画像が顔料で印刷された原稿に、ボールペンで手書きする場合、インクが原稿に付着しないことがあるが、ポールペンで加圧された部分が凹形状に変化する。本実施の形態におけるＭＦＰ１００は、原稿に形成された凹凸部分を検出することにより、原稿に鉛筆やボールペン等で手書きで記述された部分を検出する。
【００５７】
ここで、ライン光源１２９の光源組として、第１組を用いる場合を例に凹凸部分を検出する原理を説明する。第１組は、ライン光源１２９に含まれる複数の光源のうち１個の間隔を隔てて配列された複数の光源からなる第１グループと、第１グループに属する複数の光源それぞれに対して配列順が１だけ異なる複数の光源を含む第２グループとを含む。
【００５８】
ＭＦＰ１００は、第１グループに属する複数の光源を点灯し、第２グループに属する複数の光源を消灯した状態でラインセンサＧが出力する第１ラインデータと、第２グループに属する複数の光源を点灯し、第１グループに属する複数の光源を消灯した状態でラインセンサＧが出力する第２ラインデータと、を用いて原稿に形成された凹凸部分を検出する。
【００５９】
図４は、原稿の一部を示す第１の図である。図４においては、ユーザーがボールペンで原稿１０１に文字「Ａ」を描いた原稿の一部の部分３００を示している。図４を参照して、原稿１０１の一部の部分３００は、凹形状の部分３０３を含む。図では、部分３０３をハッチングを付して示す。凹形状の部分３０３は、「Ａ」の文字の形状である。領域３０１は、ラインセンサＧで読み取る領域を示す。領域３０１Ａは、領域３０１の一部である。
【００６０】
図５は、第１ラインデータの一部の一例を示す第１の図である。図では、画素値が低くなる部分をハッチングで示している。図５は、第１ラインデータのうち図４に示した領域３０１Ａに対応する部分を示している。なお、図５においては、原稿１０１の凹形状の部分３０３に対応する部分３０３Ａ，３０３Ｂを示すために点線を付しているが、点線は実際には存在しない。原稿１０１の一部の部分３００に含まれる凹形状の部分３０３には、ライン光源１２９に含まれる複数の光源のうち第１グループに属する複数の光源から照射される光が斜めに照射される。このため、原稿１０１の一部の部分３００に含まれる凹形状の部分３０３に対応する、第１ラインデータの部分３０３Ａ，３０３Ｂにおいては、光源側の画素の画素値が、光源と反対側の画素の画素値よりも低くなる。凹部分において、光が照射されない部分が発生するからである。
【００６１】
図６は、第２ラインデータの一部の一例を示す第１の図である。図では、画素値が低くなる部分をハッチングで示している。図６は、第２ラインデータのうち図４に示した領域３０１Ａに対応する部分を示している。なお、図６においては、原稿１０１の凹形状の部分３０３に対応する部分３０３Ａ，３０３Ｂを示すために点線を付しているが、点線は実際には存在しない。原稿１０１の一部の部分３００に含まれる凹形状の部分３０３には、ライン光源１２９に含まれる複数の光源のうち第２グループに属する複数の光源から照射される光が斜めに照射される。このため、原稿１０１の一部の部分３００に含まれる凹形状の部分３０３に対応する、第２ラインデータの部分３０３Ａ，３０３Ｂにおいて、光源側の画素の画素値が、光源と反対側の画素の画素値よりも低くなる。凹部分において、光が照射されない部分が発生するからである。
【００６２】
図７は、合成ラインデータの一部の一例を示す第１の図である。図では、画素値が低くなる部分をハッチングで示している。なお、図７においては、原稿１０１の凹形状の部分３０３に対応する部分３０３Ａ，３０３Ｂを示すために点線を付しているが、点線は実際には存在しない。図７に示す合成ラインデータは、図５に示した第１ラインデータと、図６に示した第２ラインデータとを合成したラインデータである。合成ラインデータは、第１ラインデータと第２ラインデータとの間で対応する２つの画素の画素値のうち小さい値を、対応する画素の画素値としたラインデータである。図７を参照して、合成ラインデータは、原稿１０１の一部の部分３００に含まれる凹形状の部分３０３に対応する部分３０３Ａに、第１ラインデータの部分３０３Ａにおいて画素値が低くなる部分と、第２ラインデータの部分３０３Ａにおいて画素値が低くなる部分と、を含む。また、合成ラインデータは、原稿１０１の一部の部分３００に含まれる凹形状の部分３０３に対応する部分３０３Ｂに、第１ラインデータの部分３０３Ｂにおいて画素値が低くなる部分と、第２ラインデータの部分３０３Ｂにおいて画素値が低くなる部分と、を含む。合成ラインデータにおいて、第１ラインデータの部分３０３Ａにおいて画素値が低くなる部分と第２ラインデータの部分３０３Ａにおいて画素値が低くなる部分とを含む連続する部分３０３Ａを特定することができる。また、合成ラインデータにおいて、第１ラインデータの部分３０３Ｂにおいて画素値が低くなる部分と第２ラインデータの部分３０３Ｂにおいて画素値が低くなる部分とを含む連続する部分３０３Ｂを特定することができる。
【００６３】
図８は、原稿の一部を示す第２の図である。図８においては、硬化により隆起するインクで原稿１０１に文字「Ａ」を描いた原稿の一部の部分３１０を示している。図８を参照して、原稿１０１の一部の部分３１０は、凸形状の部分３１３を含む。図では、部分３１３をハッチングを付して示す。凸形状の部分３１３は、「Ａ」の文字の形状である。領域３１１は、ラインセンサＧで読み取る領域を示す。領域３１１Ａは、領域３１１の一部である。
【００６４】
図９は、第１ラインデータの一部の一例を示す第２の図である。図では、画素値が低くなる部分をハッチングで示している。図９は、第１ラインデータのうち図８に示した領域３１１Ａに対応する部分を示している。なお、図９においては、原稿１０１の凸形状の部分３１３に対応する部分３１３Ａ，３１３Ｂを示すために点線を付しているが、点線は実際には存在しない。原稿１０１の一部の部分３１０に含まれる凸形状の部分３１３には、ライン光源１２９に含まれる複数の光源のうち第１グループに属する複数の光源から照射される光が斜めに照射される。このため、原稿１０１の一部の部分３１０に含まれる凸形状の部分３１３に対応する、第１ラインデータの部分３１３Ａ，３１３Ｂにおいては、光源と反対側の画素の画素値が、光源側の画素の画素値よりも低くなる。凸部分において、光が照射されない部分が発生するからである。
【００６５】
図１０は、第２ラインデータの一部の一例を示す第２の図である。図では、画素値が低くなる部分をハッチングで示している。図１０は、第２ラインデータのうち図８に示した領域３１１Ａに対応する部分を示している。なお、図１０においては、原稿１０１の凸形状の部分に対応する部分３１３Ａ，３１３Ｂを示すために点線を付しているが、点線は実際には存在しない。原稿１０１の一部の部分３１０に含まれる凸形状の部分３１３には、ライン光源１２９に含まれる複数の光源のうち第２グループに属する複数の光源から照射される光が斜めに照射される。このため、原稿１０１の一部の部分３１０に含まれる凸形状の部分３１３に対応する、第２ラインデータの部分３１３Ａ，３１３Ｂにおいて、光源と反対側の画素の画素値が、光源側の画素の画素値よりも低くなる。凸部分において、光が照射されない部分が発生するからである。
【００６６】
図１１は、合成ラインデータの一部の一例を示す第２の図である。図では、画素値が低くなる部分をハッチングで示している。図１１に示す合成ラインデータは、図９に示した第１ラインデータと、図１０に示した第２ラインデータとを合成したラインデータである。合成ラインデータは、第１ラインデータと第２ラインデータとの間で対応する２つの画素の画素値のうち小さい値を、対応する画素の画素値としたラインデータである。図１１を参照して、合成ラインデータは、原稿１０１の一部の部分３１０に含まれる凸形状の部分３１３に対応する部分３１３Ａに、第１ラインデータの部分３１３Ａにおいて画素値が低くなる部分と、第２ラインデータの部分３１３Ａにおいて画素値が低くなる部分と、を含む。また、合成ラインデータは、原稿１０１の一部の部分３１０に含まれる凸形状の部分３１３に対応する部分３１３に対応する部分３１３Ｂに、第１ラインデータの部分３１３Ｂにおいて画素値が低くなる部分と、第２ラインデータの部分３１３Ｂにおいて画素値が低くなる部分と、を含む。合成ラインデータにおいて、第１ラインデータの部分３１３Ａにおいて画素値が低くなる部分と第２ラインデータの部分３１３Ａにおいて画素値が低くなる部分とを含む連続する部分３１３Ａを特定することができる。また、合成ラインデータにおいて、第１ラインデータの部分３１３Ｂにおいて画素値が低くなる部分と第２ラインデータの部分３１３Ｂにおいて画素値が低くなる部分とを含む連続する部分３０３Ｂを特定することができる。
【００６７】
図１２は、ＭＦＰが備えるＣＰＵの機能の一例を示すブロック図である。図１２に示す機能は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１３、ＨＤＤ１１６またはＣＤ−ＲＯＭ１１９Ａに記憶された画像読取プログラムを実行することにより、ＣＰＵ１１１に形成される機能である。図１２を参照して、ＭＦＰ１００が備えるＣＰＵ１１１は、第１組決定部５１と、第２組決定部５３と、読取制御部５５と、シェーディング補正部５７と、ラインデータ取得部５９と、画像データ生成部６１と、文字認識部６３と、通知部６５と、画像補正部６７と、凹凸検出部６９と、を含む。
【００６８】
ＭＦＰ１００は、読取モードを、原稿の凹凸を検出しない通常モードと、原稿の凹凸を検出する凹凸検出モードとのいずれかに切り換える。ＭＦＰ１００は、ユーザーが操作パネル１６０を操作することにより、ユーザーによる操作に従って、読取モードを切り換える。
【００６９】
第１組決定部５１は、読取モードが凹凸検出モードに切り換えられることに応じて、複数の光源組のうちから予め定められた１つを決定し、決定した光源組を読取制御部５５に出力する。ここでは、第１組の光源組が予め定められている場合を例に説明する。
【００７０】
読取制御部５５は、光源制御部７１と、副走査制御部７３と、を含む。光源制御部７１は、ライン光源１２９を制御し、ライン光源１２９に含まれる複数の光源の少なくとも１つから光を照射させる。
【００７１】
光源制御部７１は、読取モードが通常モードに切り換えられている場合、全灯グループを決定する。また、光源制御部７１は、読取モードが凹凸検出モードに切り換えられている場合、全灯グループに加えて、第１組決定部５１から入力される光源組で特定される第１グループおよび第２グループを決定する。光源制御部７１は、第１組決定部５１から入力される光源組が第１組の場合、第１グループを、ライン光源１２９に含まれる複数の光源のうち配列順が奇数番目の複数の光源の集合に決定し、第２グループを、ライン光源１２９に含まれる複数の光源のうち配列順が偶数番目の複数の光源の集合に決定する。光源制御部７１は、全灯グループを選択する場合、全灯グループに属する複数の光源のすべてを予め定められた読取期間だけ点灯するとともに、全灯グループを選択していることを示す全灯信号をラインデータ取得部５９に出力する。読取制御部５５は、第１グループを選択する場合、第１グループに属する複数の光源のすべてを読取期間だけ点灯し、第１グループに属しない複数の光源のすべてを読取期間だけ消灯するとともに、第１グループを選択していることを示す第１信号をラインデータ取得部５９に出力する。読取制御部５５は、第２グループを選択する場合、第２グループに属する複数の光源のすべてを読取期間だけ点灯し、第２グループに属しない複数の光源のすべてを読取期間だけ消灯するとともに、第２グループを選択していることを示す第２信号をラインデータ取得部５９に出力する。
【００７２】
光源制御部７１は、読取モードが凹凸検出モードに切り換えられている場合、全灯グループ、第１グループおよび第２グループを順に選択し、この選択のサイクルを繰り返す。１つのサイクルは読取期間の３倍の期間である。具体的には、光源制御部７１は、１サイクルにおいて、最初の読取期間に全灯グループを選択し、次の読取期間に第１グループを選択し、次の読取期間に第２グループを選択する。光源制御部７１は、全灯グループを選択する場合、全灯グループに属する複数の光源のすべてを読取期間だけ点灯するとともに、全灯グループを選択していることを示す全灯信号をラインデータ取得部５９に出力する。換言すれば、光源制御部７１は、全灯グループを選択する場合、ライン光源１２９に含まれる複数の光源の全てを読取期間だけ点灯する。光源制御部７１は、第１グループを選択する場合、第１グループに属する複数の光源のすべてを読取期間だけ点灯し、第１グループに属しない複数の光源のすべてを読取期間だけ消灯するとともに、第１グループを選択していることを示す第１信号をラインデータ取得部５９に出力する。光源制御部７１は、第２グループを選択する場合、第２グループに属する複数の光源のすべてを読取期間だけ点灯し、第２グループに属しない複数の光源のすべてを読取期間だけ消灯するとともに、第２グループを選択していることを示す第２信号をラインデータ取得部５９に出力する。
【００７３】
副走査制御部７３は、タイミングローラ対１２１を制御し、ライン光源１２９が原稿に光を照射する位置を移動させる。タイミングローラ対１２１は、原稿を副走査方向に搬送するので、副走査制御部７３は、タイミングローラ対１２１を回転させることにより、ライン光源１２９が原稿に光を照射する位置を移動させる。読取モードが通常モードに切り換えられている場合における原稿の搬送速度がデフォルト値として予め定められている。デフォルト値の原稿の搬送速度は、読取部１３５に含まれる３つのラインセンサの読取時間と、ユーザーにより設定された解像度と、によって定まる。読取時間は固定値なので、解像度が高ければ、解像度が低い場合よりも搬送速度は遅くなる。ここでは、ユーザーにより指定される解像度がある解像度に固定されている場合を例に説明する。この場合、副走査制御部７３は、読取モードが通常モードに切り換えられている間は、原稿を解像度に対して予め定められた搬送速度で原稿を搬送する。原稿を解像度に対して予め定められた搬送速度をデフォルト速度という。副走査制御部７３は、読取モードが凹凸検出モードに切り換えられている間は、通常モードに切り換えられている間の原稿の搬送速度と異なる搬送速度で原稿を搬送する。具体的には、副走査制御部７３は、読取部１３５に含まれる３つのラインセンサそれぞれの読取時間が、全灯グループ、奇数グループおよび偶数グループそれぞれに対して必要となるので、デフォルト速度の１／３の搬送速度で原稿を搬送する。
【００７４】
ラインデータ取得部５９は、読取部１３５に含まれる３つのラインセンサそれぞれが出力するラインデータを取得する。具体的には、ラインデータ取得部５９は、ラインセンサＲが出力するラインデータＲと、ラインセンサＧが出力するラインデータＧと、ラインセンサＢが出力するラインデータＢとを取得する。ラインデータ取得部５９は、光源制御部７１から全灯信号が入力されている間に取得される３つのラインデータを、全灯信号とともにシェーディング補正部５７に出力する。ラインデータ取得部５９は、光源制御部７１から第１信号が入力されている間は、ラインセンサＧが出力するラインデータＧを取得し、ラインデータＧを第１信号とともにシェーディング補正部５７に出力する。ラインデータ取得部５９は、光源制御部７１から第２信号が入力されている間は、ラインセンサＧが出力するラインデータＧを取得し、ラインデータＧを第２信号とともにシェーディング補正部５７に出力する。
【００７５】
通常モードにおいては、ライン光源１２９に含まれる複数の光源のすべてが点灯するので、読取部１３５に含まれる３つのラインセンサそれぞれは、原稿がデフォルト速度で副走査方向に搬送されている間に、ライン光源１２９に含まれる複数の光源のすべてが点灯して原稿から反射した光をそれぞれ受光する。この場合、３つのラインセンサそれぞれは、読取時間が経過するごとにラインデータを出力する。通常モードにおいては、光源制御部７１は全灯信号のみを出力するので、ラインデータ取得部５９は、読取時間が経過するごとに、ラインセンサＲが出力するラインデータＲと、ラインセンサＧが出力するラインデータＧと、ラインセンサＢが出力するラインデータＢとを取得し、それらを全灯信号とともにシェーディング補正部５７に出力する。シェーディング補正部５７に同時に出力されるラインデータＲ、ラインデータＧおよびラインデータＢは、原稿の同じ位置を読み取ったデータである。
【００７６】
凹凸検出モードにおいは、全灯グループに含まれる複数の光源が点灯した後、第１グループに属する複数の光源が点灯し、その後、第２グループに属する複数の光源が点灯する。ラインデータ取得部５９は、光源制御部７１から全灯信号が入力されている場合には、ラインセンサＲが出力するラインデータＲと、ラインセンサＧが出力するラインデータＧと、ラインセンサＢが出力するラインデータＢとを取得し、それらを全灯信号とともにシェーディング補正部５７に出力する。シェーディング補正部５７に同時に出力されるラインデータＲ、ラインデータＧおよびラインデータＢは、原稿の同じ位置を読み取ったデータである。
【００７７】
ラインデータ取得部５９は、光源制御部７１から第１信号が入力されている場合には、ラインセンサＧが出力するラインデータＧを取得し、ラインデータＧを第１信号とともにシェーディング補正部５７に出力する。ラインデータ取得部５９は、光源制御部７１から第２信号が入力されている場合には、ラインセンサＧが出力するラインデータＧを取得し、ラインデータＧを第２信号とともにシェーディング補正部５７に出力する。第１信号と組になるラインデータＧと、第２信号と組になるラインデータＧと、全灯信号と組になるラインデータＧとは、厳密には原稿の異なる位置を読み取ったデータであるが、凹凸検出モードにおいては原稿がデフォルト速度の１／３の搬送速度で搬送されるので、位置の差は原稿に形成された画像のサイズに比較して小さい。このため、ここでは、第１信号と組になるラインデータＧと、第２信号と組になるラインデータＧと、全灯信号と組になるラインデータＧとは、原稿中の同一の位置を読み取ったデータとして取り扱う。
【００７８】
シェーディング補正部５７は、読取部１３５に含まれる３つのラインセンサそれぞれが出力するラインデータを、シェーディング補正用のパラメータで補正する。シェーディング補正部５７は、副走査制御部７３が原稿を搬送する前の段階で、シェーディング補正用のパラメータを、グループごとに生成する。パラメータは、ライン光源１２９に含まれる複数の光源が照射する光の強度のムラを排除するために用いられる値である。例えば、シェーディング板１２６は反射率が一定となるように設計されており、３つのラインセンサそれぞれに含まれる光電変換素子が受光する光の量が一定となることを前提として、ラインデータに含まれる複数の画素値が同じ値となるように、パラメータを決定する。
【００７９】
まず、シェーディング補正部５７は、スライダ１２８をシェーディング板１２６の下方に移動させる。そして、シェーディング補正部５７は、全灯グループに対応し、かつ、３つのラインセンサそれぞれに対応するパラメータを生成する。具体的には、シェーディング補正部５７は、ライン光源１２９に含まれる複数の光源のうち全灯グループに属する複数の光源を点灯させ、３つのラインセンサそれぞれが出力するラインデータに基づいて、ラインセンサＲに対応するパラメータと、ラインセンサＧに対応するパラメータと、ラインセンサＢに対応するパラメータと、を生成する。
【００８０】
次に、シェーディング補正部５７は、第１グループに対応するパラメータを生成する。シェーディング補正部５７は、ライン光源１２９に含まれる複数の光源のうち第１グループに属する複数の光源を点灯させ、第１グループに属しない複数の光源を消灯した状態で、ラインセンサＧが出力するラインデータに基づいて、第１グループおよびラインセンサＧに対応するシェーディング補正用のパラメータを生成する。次に、シェーディング補正部５７は、第２グループに対応するパラメータを生成する。具体的には、シェーディング補正部５７は、ライン光源１２９に含まれる複数の光源のうち第２グループに属する複数の光源を点灯させ、第２グループに属しない複数の光源を消灯した状態で、ラインセンサＧが出力するラインデータに基づいて、第２グループおよびラインセンサＧに対応するシェーディング補正用のパラメータを生成する。その後、シェーディング補正部５７は、スライダ１２８を読取位置Ｌの下方に移動させる。
【００８１】
シェーディング補正部５７は、ラインデータ取得部５９から全灯信号とともにラインデータＲ、ラインデータＧおよびラインデータＢが入力される。シェーディング補正部５７は、全灯信号とともに入力されるラインデータＲを、全灯グループおよびラインセンサＲに対応するパラメータで補正し、全灯信号とともに入力されるラインデータＧを、全灯グループおよびラインセンサＧに対応するパラメータで補正し、全灯信号とともに入力されるラインデータＢを、全灯グループおよびラインセンサＢに対応するパラメータで補正する。シェーディング補正部５７は、補正後のラインデータＲ、ラインデータＧおよびラインデータＢの組を画像データ生成部６１に出力する。
【００８２】
シェーディング補正部５７は、読取モードが通常モードに切り換えられている場合、読取時間が経過するごとに、補正後のラインデータＲ、ラインデータＢおよびラインデータＢの組を画像データ生成部６１に出力する。シェーディング補正部５７は、読取モードが凹凸検出モードに切り換えられている場合、読取時間の３倍の期間が経過するごとに、補正後のラインデータＲ、ラインデータＢおよびラインデータＢの組を画像データ生成部６１に出力する。
【００８３】
シェーディング補正部５７は、ラインデータ取得部５９から第１信号とともにラインデータＧが入力される場合、その後、ラインデータ取得部５９から第２信号とともにラインデータＧが入力される。シェーディング補正部５７は、ラインデータ取得部５９から第１信号とともに入力されるラインデータＧを、第１グループおよびラインセンサＧに対応するパラメータで補正した第１ラインデータを生成し、ラインデータ取得部５９から第２信号とともに入力されるラインデータＧを、第２グループおよびラインセンサＧに対応するパラメータで補正した第２ラインデータを生成する。シェーディング補正部５７は、第１ラインデータと第２ラインデータとの組を、凹凸検出部６９に出力する。シェーディング補正部５７は、読取モードが凹凸検出モードに切り換えられている場合、読取時間の３倍の期間が経過するごとに、第１ラインデータと第２ラインデータとの組を、凹凸検出部６９に出力する。
【００８４】
凹凸検出部６９は、シェーディング補正部５７から入力される第１ラインデータと第２ラインデータとを、それらが入力される順に処理する。シェーディング補正部５７から第１ラインデータと第２ラインデータとが入力される順番は、第１ラインデータと第２ラインデータとが副走査方向に配列される順を示す。以下、シェーディング補正部５７から第１ラインデータと第２ラインデータとが入力される順番を、副走査方向の配列順という。
【００８５】
凹凸検出部６９は、差分算出部８１と、候補部分検出部８３と、候補部分排除部８５と、対象組検出部８７と、を含む。差分算出部８１は、シェーディング補正部５７から入力される第１ラインデータと第２ラインデータとの差分である差分ラインデータを生成する。具体的には、第１ラインデータと第２ラインデータ間で、主走査方向に同じ位置に配列された画素値の差分を算出することにより、差分ラインデータを生成する。差分算出部８１は差分ラインデータを候補部分検出部８３に出力する。
【００８６】
候補部分検出部８３は、差分ラインデータに含まれる複数の画素値のうち絶対値が所定の値以上の画素値が配列される部分を候補部分として検出する。換言すれば、候補部分検出部８３は、第１のラインデータと第２のラインデータ間で、主走査方向に同じ位置に配列された画素値を比較し、第１のラインデータと第２のラインデータのいずれか１つにおいて、他のラインデータの画素値と所定の値以上の差がある画素値が配列された部分を候補部分として検出する。候補部分検出部８３は、検出された候補部分と副走査方向の配列順との組を候補部分排除部８５に出力する。
【００８７】
なお、差分ラインデータを生成するのに変えて、第１ラインデータと第２ラインデータ間で、主走査方向に同じ位置に配列された２つの画素値のうち小さな値の画素値を配列した合成ラインデータを生成するようにしてもよい。この場合、候補部分検出部８３は、合成ラインデータに含まれる複数の画素値のうち所定の値以下の画素値が配列される部分を候補部分として検出する。
【００８８】
候補部分排除部８５は、シェーディング補正部５７から入力される第１ラインデータと第２ラインデータといおいて、候補部分の画素値を比較する。候補部分排除部８５は、第１ラインデータと第２ラインデータのうちから候補部分の画素値が低いラインデータを特定し、特定されたラインデータの候補部分の画素値の変化が所定の値以上の場合、候補部分と副走査方向の配列順との組を対象組検出部８７に出力するが、特定されたラインデータの候補部分の画素値の変化が所定の値より小さい場合、候補部分から排除する。候補部分の画素値の変化が所定の値より小さい場合、原稿の折り目である可能性が高いからである。
【００８９】
対象組検出部８７は、候補部分排除部８５から候補部分と副走査方向の配列順との組の１以上が入力される。対象組検出部８７は、副走査方向の配列順が同じ第１ラインデータおよび第２ラインデータのうち、１以上の候補部分それぞれに対してその候補部分の画素値が低い一方をその候補部分が検出されたラインデータに特定する。対象組検出部８７は、１のラインデータから検出された第１候補部分が、他のラインデータから検出された１以上の候補部分のうち第１候補部分から所定の間隔を置いて配置された第２候補部分が存在する場合に、第１候補部分と第２候補部分とを含む凹凸部分を抽出する。例えば、対象組検出部８７は、第１のラインデータから検出された第１候補部分が、第２のラインデータから検出された１以上の候補部分のうち第１候補部分から所定の間隔を置いて配置された第２候補部分が存在する場合に、第１候補部分と第２候補部分とを含む凹凸部分を抽出する。所定の間隔は、ユーザーが原稿にポールペンなどで描画した線画の太さによって定まる。対象組検出部８７は、抽出された凹凸部分と副走査方向の配列順との組を第２組決定部５３および画像補正部６７に出力する。
【００９０】
第２組決定部５３は、凹凸検出部６９から入力される凹凸部分のサイズに基づいて、複数の光源組のうちから１つを決定する。例えば、凹凸部分のサイズが大きいほど、Ｎの値が大きな光源組を選択する。ユーザーが原稿にポールペンなどで描画した線画の太さが太いほど、光源の間隔を広くすることにより、凹凸部分を検出する精度が向上する。例えば、凹凸部分のサイズと光源組とを関連付けたテーブルを予め準備しておき、凹凸部分のサイズに適した光源組を選択するようにしてもよい。第２組決定部５３は、決定した光源組を読取制御部５５に出力する。読取制御部５５は、第２組決定部５３から入力される光源組で定まる第１グループおよび第２グループを決定し、上述したのと同様にして、ライン光源１２９を制御する。
【００９１】
画像データ生成部６１は、読取モードが通常モードに切り換えられている場合、読取時間が経過するごとに、シェーディング補正部５７から、ラインデータＲ、ラインデータＧおよびラインデータＢの組が入力される。また、画像データ生成部６１は、読取モードが凹凸検出モードに切り換えられている場合、読取時間の３倍の期間が経過するごとに、シェーディング補正部５７から、ラインデータＲ、ラインデータＧおよびラインデータＢの組が入力される。画像データ生成部６１は、複数のラインデータＲを、それらが入力される順に副走査方向に配列することにより赤（Ｒ）に対応する画像データＲを生成し、複数のラインデータＧを、それらが入力される順に副走査方向に配列することにより緑（Ｇ）に対応する画像データＧを生成し、複数のラインデータＢを、それらが入力される順に副走査方向に配列することにより青（Ｂ）に対応する画像データＢを生成する。画像データ生成部６１は、生成された画像データを画像補正部６７および文字認識部６３に出力する。
【００９２】
画像補正部６７は、画像データ生成部６１から画像データＲ、画像データＧおよび画像データＢが入力され、凹凸検出部６９から凹凸部分と副走査方向の配列順との組の１以上が入力される。画像補正部６７は、凹凸部分と副走査方向の配列順との組の１以上に基づいて、凹凸部分を副走査方向に配列することにより凹凸部分データを生成する。凹凸部分データは、画像データＲ、画像データＧおよび画像データＢそれぞれにおける凹凸部分を示す。
【００９３】
画像補正部６７は、画像データＲ、画像データＧおよび画像データＢを合成した合成画像を、凹凸部分を強調した画像、または凹凸部分を消去した画像に補正する。画像補正部６７は、補色変更部７５と、濃度変更部７７と、拡大部７８と、消去部７９と、を含む。補色変更部７５は、凹凸部分を、凹凸部分の周辺の領域の色の補色に変更する。画像データＲ、画像データＧおよび画像データＢそれぞれの凹凸部分の周辺の領域の画素値から周辺領域の色を決定し、画像データＲ、画像データＧおよび画像データＢの凹凸部分の画素値を、決定された色の補色を示す画素値に変更する。これにより、画像データＲ、画像データＧおよび画像データＢを合成した合成画像において、凹凸部分が周辺の領域の色の補色となるので、凹凸部分を強調することができる。
【００９４】
濃度変更部７７は、凹凸部分の濃度を低い値に変更する。画像データＲ、画像データＧおよび画像データＢそれぞれの凹凸部分の画素値を小さな値に変更する。これにより、画像データＲ、画像データＧおよび画像データＢを合成した合成画像において、凹凸部分の濃度が低くなるので、凹凸部分を強調することができる。
【００９５】
拡大部７８は、画像データＲ、画像データＧおよび画像データＢの凹凸部分を拡大する。画像データＲ、画像データＧおよび画像データＢそれぞれにおいて、凹凸部分および凹凸部分を周辺の画素の値を、凹凸部分の画素値の平均の値にする。これにより、画像データＲ、画像データＧおよび画像データＢを合成した合成画像において、凹凸部分が拡大されるので、文字などの線が太くなり、凹凸部分を強調することができる。
【００９６】
消去部７９は、画像データＲ、画像データＧおよび画像データＢの凹凸部分を消去する。画像データＲ、画像データＧおよび画像データＢそれぞれにおいて、凹凸部分の画素値を、凹凸部分を周辺の画素の値の平均の値にする。これにより、画像データＲ、画像データＧおよび画像データＢを合成した合成画像において、凹凸部分を消去することができる。
【００９７】
文字認識部６３は、画像データＲ、画像データＧおよび画像データＢを合成した合成画像中の凹凸部分を文字認識する。具体的には、合成画像から凹凸部分を抽出した凹凸画像を生成する。凹凸画像は２値画像であってもよい。文字認識部６３は、凹凸画像を文字認識し、凹凸画像に含まれる文字部分に対して、文字認識に成功した部分の割合を、認識率として算出する。文字認識部６３は、認識率を、通知部６５に出力する。
【００９８】
通知部６５は、認識率が所定のしきい値以下の場合に、ユーザーに通知する。通知内容は、凹凸部分の検出に失敗したことを示す。例えば、通知部６５は、凹凸部分の検出に失敗したことを示すメッセージを表示部１６０Ａに表示する。
【００９９】
図１３および図１４は、原稿読取制御処理の流れの一例を示すフローチャートである。原稿読取制御処理は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１３、ＨＤＤ１１６またはＣＤ−ＲＯＭ１１９Ａに記憶された画像読取プログラムを実行することにより、ＣＰＵ１１１により実行される処理である。図１３は、読取モードが凹凸検出モードに設定されている状態で、ＣＰＵ１１１が実行する処理の流れを示す。
【０１００】
図１３および図１４を参照して、ＣＰＵ１１１は、読取指示を受け付けたか否かを判断する（ステップＳ０１）。ユーザーが操作部１６０Ｂが備えるスタートキーが押下されると、読取指示を受け付ける。読取指示を受け付けるまで待機状態となり（ステップＳ０１でＮＯ）、読取指示を受け付けたならば（ステップＳ０１でＹＥＳ）、処理をステップＳ０２に進める。ステップＳ０２においては、光源組に第１組を決定する。ここでは、第１組をデフォルトで定めておくようにしたが、第１組とは別に、第１組〜第Ｎ組のうちから任意に選択するようにしてもよい。また、光源組をユーザーが選択するようにしてもよい。次のステップＳ０３においては、パラメータ決定処理を実行する。
【０１０１】
図１５は、パラメータ決定処理の流れの一例を示すフローチャートである。図１５を参照して、ＣＰＵ１１１は、スライダ１２８をシェーディング板１２６の下方に移動させる（ステップＳ３１）。そして、サイクル読取処理を実行する。
【０１０２】
図１６は、サイクル読取処理の流れの一例を示すフローチャートである。ＣＰＵ１１１は、全灯グループの光源を点灯する（ステップＳ４１）。ライン光源１２９に含まれる複数の光源のすべてを点灯させる。そして、ラインデータＲを取得する（ステップＳ４２）。ラインセンサＲが出力するラインデータをラインデータＲとして取得する。次のステップＳ４３においては、ラインデータＧを取得する。ラインセンサＧが出力するラインデータをラインデータＧとして取得する。次のステップＳ４４においては、ラインデータＢを取得する。ラインセンサＢが出力するラインデータをラインデータＢとして取得する。
【０１０３】
次のステップＳ４５においては、第１グループの光源を点灯する。ライン光源１２９に含まれる複数の光源のうち第１グループに属する複数の光源のすべてを点灯し、第１グループに属しない複数の光源のすべてを消灯する。そして、第１ラインデータを取得する（ステップＳ４６）。ここでは、ラインセンサＧが出力するラインデータを第１ラインデータとして取得する。
【０１０４】
次のステップＳ４７においては、第２グループの光源を点灯する。ライン光源１２９に含まれる複数の光源のうち第２グループに属する複数の光源のすべてを点灯し、第２グループに属しない複数の光源のすべてを消灯する。そして、第２ラインデータを取得し（ステップＳ４８）、サイクル読取処理を終了する。ここでは、ラインセンサＧが出力するラインデータを第２ラインデータとして取得する。
【０１０５】
図１５に戻って、ステップＳ３２でサイクル読取処理が実行されると、ライン光源１２９に含まれる複数の光源のすべてを点灯した状態で、ラインセンサＲ，ラインセンサＧ，およびラインセンサＢがそれぞれ出力するラインデータＲ，ラインデータＧ，ラインデータＢと、ライン光源１２９に含まれる第１グループに属する複数の光源のすべてを点灯した状態でラインセンサＧが出力するラインデータＧである第１ラインデータと、ライン光源１２９に含まれる第２グループに属する複数の光源のすべてを点灯した状態でラインセンサＧが出力するラインデータＧである第２ラインデータと、が取得される。
【０１０６】
ステップＳ３３においては、ラインデータＲからラインセンサＲ用パラメータを生成し、処理をステップＳ３４に進める。ステップＳ３４においては、ラインデータＧからラインセンサＧ用パラメータを生成し、処理をステップＳ３５に進める。ステップＳ３５においては、ラインデータＢからラインセンサＢ用パラメータを生成し、処理をステップＳ３６に進める。
【０１０７】
ステップＳ３６においては、第１ラインデータから第１グループ用パラメータを生成し、処理をステップＳ３７に進める。ステップＳ３７においては、第２ラインデータから第２グループ用パラメータを生成し、処理をステップＳ３８に進める。ステップＳ３８においては、スライダ１２８を読取位置Ｌの下方に移動させ、パラメータ設定処理を終了する。
【０１０８】
図１３に戻って、ステップＳ０３においてパラメータ決定処理が実行された後に、搬送速度を決定する（ステップＳ０４）。読取モードが凹凸検出モードの場合は、全灯グループに含まれる複数の光源を点灯してラインデータを取得し、第１グループに含まれる複数の光源を点灯してラインデータを取得し、第２グループに含まれる複数の光源を点灯してラインデータを取得する１サイクルで１ラインの読取を完了する。これに対して、読取モードが通常モードの場合は、全灯グループに含まれる複数の光源を継続して点灯し、ラインデータを取得するごとに１ラインの読取を完了する。このため、読取モードが凹凸検出モードの場合は、読取モードが通常モードの場合における搬送速度の１／３の搬送速度に決定する。
【０１０９】
ステップＳ０５においては、ＡＤＦ１２０を制御して、読取対象となる原稿の搬送を開始する。次のステップＳ０６においては、変数Ｍを「１」に設定する。変数Ｍは、ラインデータが副走査方向に配列される順番を示し、ライン番号ともいう。
【０１１０】
次のステップＳ０７においては、図１６に示したサイクル読取処理を実行し、処理をステップＳ０８に進める。ステップＳ０７でサイクル読取処理が実行されると、ライン番号が第Ｎ番目のラインデータＲ、ラインデータＧ、ラインデータＢ、第１ラインデータおよび第２ラインデータが取得される。ステップＳ０８においては、シェーディング補正処理を実行し、処理をステップＳ０９に進める。
【０１１１】
図１７は、シェーディング補正処理の流れの一例を示すフローチャートである。図１７を参照して、ＣＰＵ１１１は、ラインデータＲをラインセンサＲ用パラメータを用いて補正し（ステップＳ５１）、処理をステップＳ５２に進める。ラインセンサＲ用パラメータは、図１５に示したステップＳ３３において、生成されたパラメータである。ステップＳ５２においては、ラインデータＧをラインセンサＧ用パラメータを用いて補正し、処理をステップＳ５３に進める。ラインセンサＧ用パラメータは、図１５に示したステップＳ３４において、生成されたパラメータである。ステップＳ５３においては、ラインデータＢをラインセンサＢ用パラメータを用いて補正し、処理をステップＳ５４に進める。ラインセンサＢ用パラメータは、図１５に示したステップＳ３５において、生成されたパラメータである。
【０１１２】
ステップＳ５４においては、第１ラインデータを第１グループ用パラメータを用いて補正し、処理をステップＳ５５に進める。第１グループ用パラメータは、図１５に示したステップＳ３６において、生成されたパラメータである。ステップＳ５５においては、第２ラインデータを第２グループ用パラメータを用いて補正し、処理を原稿読取処理に戻す。第２グループ用パラメータは、図１５に示したステップＳ３７において、生成されたパラメータである。
【０１１３】
図１３に戻って、ステップＳ０８においてシェーディング補正処理が実行されると、ライン番号が第Ｎ番目のラインデータＲ、ラインデータＧ、ラインデータＢ、第１ラインデータおよび第２ラインデータの補正が完了する。ステップＳ０９においては、第１ラインデータと第２ラインデータとの差分である差分ラインデータを生成する。具体的には、第１ラインデータと第２ラインデータ間で、主走査方向に同じ位置に配列された画素値の差を算出することにより、差分ラインデータを生成する。
【０１１４】
次のステップＳ１０においては、差分ラインデータから候補部分を抽出し、処理をステップＳ１１に進める。差分ラインデータに含まれる複数の画素値のうち絶対値が所定の値以上の画素値が配列される部分を候補部分として抽出する。ステップＳ１１においては、折れ目排除処理を実行し、処理をステップＳ１２に進める。ステップＳ１２においては、凹凸部分検出処理を実行し、処理をステップＳ１３に進める。
【０１１５】
図１８は、折れ目排除処理の流れの一例を示すフローチャートである。折れ目排除処理が実行される前の段階で、副走査方向の順番が第Ｎ番目の第１ラインデータと第２ラインデータおよび１以上の候補部分が決定されている。図１８を参照して、ＣＰＵ１１１は、処理対象となる１つの候補部分を選択する（ステップＳ６１）。そして、第１ラインデータの候補部分の画素値と、第２ラインデータの候補部分の画素値とを比較する（ステップＳ６２）。第１ラインデータの候補部分の画素値が、第２ラインデータの候補部分の画素値より小さいならば処理をステップＳ６３に進めるが、そうでなければ処理をステップＳ６６に進める。第１ラインデータの候補部分の画素値が、第２ラインデータの候補部分の画素値より小さい場合は、候補部分が第１ラインデータから抽出される場合である。また、第２ラインデータの候補部分の画素値が、第１ラインデータの候補部分の画素値より小さい場合は、候補部分が第２ラインデータから抽出される場合である。
【０１１６】
ステップＳ６３においては、第１ラインデータを処理対象に選択し、処理をステップＳ６４に進める。ステップＳ６４においては、第１ラインデータの候補部分の画素値の変化がしきい値Ｔ１以下か否かを判断する。第１ラインデータの候補部分の画素値の変化がしきい値Ｔ１以下ならば処理をステップＳ６５に進めるが、そうでなければステップＳ６５をスキップして処理をステップＳ６９に進める。第１ラインデータの候補部分の画素値の変化がしきい値Ｔ１以下の場合には、候補部分に対応する原稿の部分は、原稿の折り目である可能性が高い。このため、ステップＳ６５においては、ステップＳ６１において選択された候補部分を候補部分から削除し、処理をステップＳ６９に進める。
【０１１７】
一方、ステップＳ６６においては、第２ラインデータを処理対象に選択し、処理をステップＳ６７に進める。ステップＳ６７においては、第２ラインデータの候補部分の画素値の変化がしきい値Ｔ１以下か否かを判断する。第２ラインデータの候補部分の画素値の変化がしきい値Ｔ１以下ならば処理をステップＳ６８に進めるが、そうでなければステップＳ６８をスキップして処理をステップＳ６９に進める。第２ラインデータの候補部分の画素値の変化がしきい値Ｔ１以下の場合には、候補部分に対応する原稿の部分は、原稿の折り目である可能性が高い。このため、ステップＳ６８においては、ステップＳ６１において選択された候補部分を候補部分から削除し、処理をステップＳ６９に進める。
【０１１８】
ステップＳ６９においては、ステップＳ６１において処理対象に選択されていない候補部分が存在するか否かを判断する。未選択の候補部分が存在するならば処理をステップＳ６１に戻すが、そうでなければ処理を原稿読取制御処理に戻す。
【０１１９】
図１９は、凹凸部分検出処理の流れの一例を示すフローチャートである。凹凸部分検出処理が実行される前の段階で、副走査方向の順番が第Ｎ番目の第１ラインデータと第２ラインデータおよび１以上の候補部分が決定されている。図１９を参照して、ＣＰＵ１１１は、処理対象となる１つの候補部分を選択する（ステップＳ７１）。そして、第１ラインデータの候補部分の画素値と、第２ラインデータの候補部分の画素値とを比較する（ステップＳ７２）。第１ラインデータの候補部分の画素値が、第２ラインデータの候補部分の画素値より小さいならば処理をステップＳ７３に進めるが、そうでなければ処理をステップＳ７４に進める。ステップＳ７３においては、候補部分を第１ライングループに分類し、処理をステップＳ７５に進める。第１ライングループは、第１ラインデータから抽出された候補部分の集合である。一方、ステップＳ７４においては、候補部分を第２ライングループに分類し、処理をステップＳ７５に進める。第２ライングループは、第２ラインデータから抽出された候補部分の集合である。
【０１２０】
ステップＳ７５においては、ステップＳ６１において処理対象に選択されていない候補部分が存在するか否かを判断する。未選択の候補部分が存在するならば処理をステップＳ７１に戻すが、そうでなければ処理をステップＳ７６に進める。
【０１２１】
ステップＳ７６においては、第１ライングループに分類された候補部分のうちから１つを第１候補部分として選択する。次のステップＳ７７においては、第２ライングループに分類された候補部分のうちから１つを第２候補部分として選択する。そして、第１候補部分と第２候補部分との間の距離をしきい値Ｔ２と比較する（ステップＳ７８）。第１候補部分と第２候補部分との間の距離がしきい値Ｔ２以下ならば処理をステップＳ７９に進めるが、そうでなければ処理をステップＳ８０に進める。
【０１２２】
ステップＳ７９においては、第１候補部分と第２候補部分とを含む凹凸部分を決定し、処理をステップＳ８１に進める。ステップＳ８０においては、次に処理対象となる第２候補部分が存在するか否かを判断する。第２ライングループに分類された候補部分のうちに、ステップＳ７７において第２候補部分として選択されていない候補部分が存在するならば、次に処理対象となる第２候補部分が存在すると判断する。次に処理対象となる第２候補部分が存在するならば、処理をステップＳ７７に戻すが、そうでなければ処理をステップＳ８１に進める。ステップＳ８１においては、次に処理対象となる第１候補部分が存在するか否かを判断する。第１ライングループに分類された候補部分のうちに、ステップＳ７６において第１候補部分として選択されていない候補部分が存在するならば、次に処理対象となる第１候補部分が存在すると判断する。次に処理対象となる第１候補部分が存在するならば、処理をステップＳ７６に戻すが、そうでなければ処理を原稿読取制御処理に戻す。
【０１２３】
図１３に戻って、ステップＳ１３においては、ステップＳ０７において、取得された第Ｎ番目のラインデータＲ，ラインデータＧ，ラインデータＢと、ステップＳ１２において検出された第Ｎ番目の凹凸部分とを決定する。次のステップＳ１４においては、変数Ｍをインクリメントし、処理をステップＳ１５に進める。ステップＳ１５においては、原稿の搬送が終了したか否かを判断する。原稿が読取位置Ｌを通過したならば原稿の搬送が終了したと判断する。原稿の搬送が終了したならば処理をステップＳ１６に進めるが、そうでなければ処理をステップＳ０７に戻す。
【０１２４】
ステップＳ１６においては、画像データを生成する。処理がステップＳ１６に進む段階で、第１番目から第Ｍ番目までのラインデータＲ，ラインデータＧ，ラインデータＢ、および凹凸部分が決定されている。第１番目から第Ｍ番目までのラインデータＲを副走査方向に配列することにより画像データＲを生成し、第１番目から第Ｍ番目までのラインデータＧを副走査方向に配列することにより画像データＧを生成し、第１番目から第Ｍ番目までのラインデータＢを副走査方向に配列することにより画像データＢを生成する。
【０１２５】
次のステップＳ１７においては、画像データの凹凸部分を文字認識し、処理をステップＳ１８に進める。画像データＲ、画像データＧおよび画像データＢを合成した合成画像から凹凸部分を抽出した凹凸画像を生成する。凹凸画像は２値画像であってもよい。凹凸画像を文字認識し、凹凸画像に含まれる文字部分に対して、文字認識に成功した部分の割合を、認識率として算出する。
【０１２６】
ステップＳ１８においては、認識率がしきい値Ｔ３以下か否かを判断する。認識率がしきい値Ｔ３以下ならば処理をステップＳ１９に進めるが、そうでなければ処理をステップＳ２０に進める。ステップＳ１９においては、エラー通知し、処理を終了する。例えば、凹凸部分が正しく検出できなかったことをユーザーに通知する。エラーメッセージを表示部１６０Ａに表示するようにしてもよいし、ブザー音で通知するようにしてもよい。
【０１２７】
ステップＳ２０においては、凹凸部分補正処理を実行し、処理をステップＳ２１に進める。例えば、画像データの凹凸部分を、凹凸部分の周辺の領域の色の補色に変更する。具体的には、画像データＲ、画像データＧおよび画像データＢそれぞれの凹凸部分の周辺の領域の画素値から周辺領域の色を決定し、画像データＲ、画像データＧおよび画像データＢの凹凸部分の画素値を、決定された色の補色を示す画素値に変更する。これにより、画像データＲ、画像データＧおよび画像データＢを合成した合成画像において、凹凸部分が周辺の領域の色の補色となるので、凹凸部分を強調することができる。
【０１２８】
また、凹凸部分の濃度を低い値に変更するようにしてもよい。画像データＲ、画像データＧおよび画像データＢそれぞれの凹凸部分の画素値を小さな値に変更する。これにより、画像データＲ、画像データＧおよび画像データＢを合成した合成画像において、凹凸部分の濃度が低くなるので、凹凸部分を強調することができる。
【０１２９】
また、画像データＲ、画像データＧおよび画像データＢの凹凸部分を拡大するようにしてもよい。画像データＲ、画像データＧおよび画像データＢそれぞれにおいて、凹凸部分の周辺の画素の値を、凹凸部分の画素値の平均の値にする。これにより、画像データＲ、画像データＧおよび画像データＢを合成した合成画像において、凹凸部分が拡大されるので、文字などの線が太くなり、凹凸部分を強調することができる。
【０１３０】
また、画像データＲ、画像データＧおよび画像データＢの凹凸部分を消去するようにしてもよい。画像データＲ、画像データＧおよび画像データＢそれぞれにおいて、凹凸部分の画素値を、凹凸部分の周辺の画素の値の平均の値にする。これにより、画像データＲ、画像データＧおよび画像データＢを合成した合成画像において、凹凸部分を消去することができる。
【０１３１】
ステップＳ２１においては、画像データを出力し、処理を終了する。出力先は、ユーザーによる操作により定まる。例えば、ユーザーによる操作により出力先がＨＤＤ１１６に設定されている場合には、画像データをＨＤＤ１１６に記憶する。また、ユーザーによる操作により出力先が画像形成部１４０に設定されている場合には、画像形成部１４０を制御して、画像データの画像を用紙に形成させる。また、ユーザーによる操作により出力先が外部のコンピューターに設定されている場合には、通信Ｉ／Ｆ部１１２を制御して、画像データを外部のコンピューターに送信する。
【０１３２】
上述した原稿読取制御処理は、光源組として第１組を選択して、凹凸部分を検出する場合における処理を説明したが、原稿をプレスキャンして最適な光源組を決定し、再度原稿をスキャンする場合に、決定した光源組でステップＳ０４〜ステップＳ２１までの処理を実行するようにしてもよい。具体的には、原稿をプレスキャンする間に図１３に示したステップＳ０２〜ステップＳ１２までの処理を実行して、凹凸部分を検出する。例えば、凹凸部分のサイズが大きいほど、Ｎの値が大きな光源組を選択する。ユーザーが原稿にポールペンなどで描画した線画の太さが太いほど、光源の間隔を広くすることにより、凹凸部分を検出する精度が向上する。例えば、凹凸部分のサイズと光源組とを関連付けたテーブルを予め準備しておき、凹凸部分のサイズに適した光源組を選択するようにしてもよい。そして、検出された凹凸部分のサイズに基づいて、第１組から第２組のうちから最適な光源組を決定し、原稿を再度スキャンする間に、図１３および図１４に示したステップＳ０２〜ステップＳ２１までの処理を実行する。
【０１３３】
＜第１の変形例＞
上述した実施の形態においては、第１ラインデータと、第２ラインデータとを、ラインセンサＧが出力するラインデータとした。これは、緑色の光の反射率が、他の色の光に比較して高いからである。なお、第１ラインデータと第２ラインデータを、ラインセンサＲまたはラインセンサＢが出力するラインデータとするようにしてもよい。特に、原稿の下地の色が赤系の色が多い場合は、第１ラインデータと第２ラインデータを、ラインセンサＲが出力するラインデータとするのが好ましい。また、原稿の下地の色が青系の色が多い場合は、第１ラインデータと第２ラインデータを、ラインセンサＢが出力するラインデータとするのが好ましい。第１ラインデータと第２ラインデータを、ラインセンサＲ、ラインセンサＧおよびラインセンサＢのいずれが出力するラインデータとするかを、ユーザーが指定するようにしてもよい。また、読み取らせる原稿を、プレスキャンして、スキャンして得られる画像に基づいて、ラインセンサＲ、ラインセンサＧおよびラインセンサＢのいずれか１つを選択するようにしてもよい。
【０１３４】
＜第２の変形例＞
上述した実施の形態においては、光源組を第１組とする場合を例に説明した。原稿に形成される凹凸部分のサイズによって、第１組から第Ｎ組の複数の光源組のうちで最適な光源組が異なる場合がある。サイズは、凹凸部分の主走査方向の距離と、凹凸部分の高さを含む。凹凸部分の高さは、凹凸部分の原稿に垂直な方向の距離である。このため、原稿に形成される凹凸部分の複数のサイズそれぞれに対して、第１組から第Ｎ組の複数の光源組のいずれか最適な光源組を対応付けたテーブルを記憶するようにしてもよい。任意の光源組で原稿をプレスキャンし、凹凸部分を検出して得られる凹凸部分のサイズに対してテーブルで定められた最適な光源組で原稿を読み取るようにすればよい。また、ユーザーが複数の光源組のいずれかを選択するようにしてもよい。
【０１３５】
＜第３の変形例＞
上述した実施の形態においては、読取部１３５が、ラインセンサＲ，ラインセンサＧ，ラインセンサＢの３つを含む場合を例に説明したが、１つのラインセンサを用いるようにしてもよい。この場合は、カラーの原稿を読み取る場合には、赤色の光を照射する光源Ｒと、緑色の光を照射する光源Ｇと、青色の光を照射する光源Ｂを用いるようにすればよい。この場合、光源Ｇに含まれる複数の光源を第１グループと第２グループとに分類する。そして、光源Ｒを点灯している間にラインセンサが出力するラインデータＲを取得し、光源Ｇを点灯している間にラインセンサが出力するラインデータＧを取得し、光源Ｂを点灯している間にラインセンサが出力するラインデータＢを取得する。さらに、光源Ｇに含まれる複数の光源のうち第１グループに含まれる複数の光源を点灯した状態でラインセンサが出力するラインデータを第１ラインデータとして取得し、光源Ｇに含まれる複数の光源のうち第２グループに含まれる複数の光源を点灯した状態でラインセンサが出力するラインデータを第２ラインデータとして取得する。読取モードが通常モードの場合は、光源Ｒを点灯してラインデータＲを取得し、光源Ｇを点灯してラインデータＧを取得し、光源Ｂを点灯してラインデータＢを取得するごとに１ラインの読取を完了する。これに対して、読取モードが凹凸検出モードの場合は、光源Ｒを点灯してラインデータＲを取得し、光源Ｇを点灯してラインデータＧを取得し、光源Ｂを点灯してラインデータＢを取得し、光源Ｇの第１グループに含まれる複数の光源を点灯して第１ラインデータを取得し、光源Ｇの第２グループに含まれる複数の光源を点灯して第２ラインデータを取得する１サイクルで１ラインの読取を完了する。このため、読取モードが凹凸検出モードの場合は、読取モードが通常モードの場合における搬送速度の３／５の搬送速度に決定する。
【０１３６】
また、光源Ｒに含まれる複数の光源と、光源Ｂに含まれる複数の光源と、光源Ｃに含まれる複数の光源とにおいて、それらが配置される主走査方向の位置を異ならせるようにしてもよい。例えば、光源Ｒから光を照射する場合には、光源Ｒに含まれる複数の光源のうち第１グループに含まれる複数の光源を点灯し、光源Ｂから光を照射する場合には光源Ｂに含まれる複数の光源のうち第２グループに含まれる複数の光源を点灯し、光源Ｃから光を照射する場合には光源Ｃに含まれる複数の光源のうち第１グループに含まれる複数の光源を点灯する。この場合には、光源Ｒを点灯している間にラインセンサが出力するラインデータＲを取得し、光源Ｇを点灯している間にラインセンサが出力するラインデータＧを取得し、光源Ｂを点灯している間にラインセンサが出力するラインデータＢを取得する。さらに、凹凸部分を検出する場合には、ラインデータＲ、ラインデータＧおよびラインデータＢを用いる。例えば、ラインデータＲ、ラインデータＧおよびラインデータＢ間で対応する画素値を比較して、少なくとも１つのラインデータの画素値が、他の全てのラインデータの画素値と異なる場合に、その画素値の部分を候補部分として検出するようにすればよい。この場合には、読取モードが凹凸検出モードの場合は、読取モードが通常モードの場合における搬送速度と同じ搬送速度とすることができる。具体的には、第１グループに対応するラインデータは、ラインデータＲおよびラインデータＢであり、第２グループに対応するラインデータは、ラインデータＧである。このため、ラインデータＲとラインデータＧとを用いて凹凸部分を検出してもよいし、ラインデータＢとラインデータＧとを用いて凹凸部分を検出してもよい。
【０１３７】
ただし、光源Ｒ，光源Ｇ，光源Ｂそれぞれの光量が通常モードの場合よりも減少するので、画質が劣化する。このため、ユーザーにより設定される読取解像度が所定の値以下の場合に有効とするようにするのが好ましい。
【０１３８】
＜第４の変形例＞
上述した実施の形態においては、ライン光源１２９に含まれる複数の光源それぞれは、複数のグループのいずれかに属し、複数のグループは、全灯グループと、ライン光源１２９に含まれる複数の光源のうち（２Ｎ−１）（Ｎは正の整数）個の間隔を隔てて配列された複数の光源からなる第１グループと、第１グループに属する複数の光源それぞれに対して配列順がＮだけ異なる第２グループとを含む場合を例に説明した。複数のグループは、ライン光源１２９に含まれる複数の光源のうち１以上を含む第１グループと、ライン光源１２９に含まれる複数の光源のうち１以上を含む第２グループと、するようにしてもよい。この場合、第１グループに属する１以上の光源と、第２グループに属する１以上の光源とが完全に同一でなければよい。
【０１３９】
また、第１グループおよび第２グループのいずれか一方は、全灯グループとしてもよい。例えば、第１グループを全灯グループとする場合には、ラインデータＧと第１ラインデータとが同一となるので、第１ラインデータを取得する必要がない。この場合には、搬送速度を、読取モードが通常モードにおける搬送速度の３／４にすることができる。
【０１４０】
＜第５の変形例＞
上述した実施の形態においては、ライン光源１２９に含まれる複数の光源それぞれは、複数のグループのいずれかに属し、複数のグループは、全灯グループと、第１グループと、第２グループとを含む場合を例に説明した。複数のグループは、全灯グループの他に３以上のグループとするようにしてもよい。例えば、複数のグループが、全灯グループの他にＬ個（Ｌは正の整数）のグループを含む場合、ライン光源１２９に含まれる複数の光源のうち第Ｌグループに含まれる１以上の光源のみが点灯した状態でラインセンサＧが出力する第Ｌラインデータを取得する。Ｌ個のラインデータを用いて候補部分を検出する場合には、Ｌ個のラインデータ間で対応する画素値を比較して、少なくとも１つのラインデータの画素値が、他の全てのラインデータの画素値と異なる場合に、その画素値の部分を候補部分として検出するようにすればよい。
【０１４１】
以上説明したように本実施の形態におけるＭＦＰ１００は、原稿読取装置を含み、主走査方向に配列され、原稿に光を照射する複数の光源を備えたライン光源１２９と、主走査方向に配列され、原稿からの反射光を受光する複数の光電変換素子を備えた３つのラインセンサを備えた読取部１３５と、を備える。ＣＰＵ１１１は、ライン光源１２９に含まれる複数の光源それぞれの点灯および消灯を制御する。具体的には、ＣＰＵ１１１は、それぞれが複数の光源のうちから選ばれた複数の光源を含む第１グループおよび第２グループごとに、そのグループに含まれる複数の光源が点灯し、グループに含まれない複数の光源を消灯する状態で読取部１３５が備えるラインセンサＧが出力するラインデータを取得することにより、第１グループに対応する第１ラインデータおよび第２グループに対応する第２ラインデータを取得する。そして、第１ラインデータを第１グループに対応するシェーディング補正用パラメータで補正し、第２ラインデータを第２グループに対応するシェーディング補正用パラメータで補正する。第１グループに属する複数の光源それぞれが照射する光の強度のバラツキを補正し、第２グループに属する複数の光源それぞれが照射する光の強度のバラツキを補正する。また、第１ラインデータおよび第２ラインデータのレベルを合致させることができる。さらに、ＣＰＵ１１１は、第１グループに対応する補正後の第１ラインデータおよび第２グループに対応する補正後の第２ラインデータに基づいて、原稿に形成された凹凸部分を検出する。原稿に存在する凹凸部分は、光源から照射される光を遮る場合があり、第１ラインデータと第２ラインデータと間で、凹凸部分に対応する画素値が異なる場合がある。第１グループに対応する補正後の第１ラインデータおよび第２グループに対応する補正後の第２ラインデータに基づいて、原稿に形成された凹凸部分を検出するので、ＭＦＰ１００の構造を変更することなく、原稿から凹凸形状の部分を検出することができる。
【０１４２】
また、ＭＦＰ１００は、第１グループに対応する補正後の第１ラインデータおよび第２グループに対応する補正後の第２ラインデータ間で、主走査方向に同じ位置に配列された画素値を比較し、第１ラインデータおよび第２ラインデータのいずれか１つにおいて、他のラインデータの画素値のすべてと所定の値以上の差がある画素値が配列された部分を候補部分として検出する。第１ラインデータおよび第２ラインデータ間で画素値が異なる部分を候補部分として検出するので、凹凸部分の一部を検出することができる。
【０１４３】
また、ＭＦＰ１００は、第１ラインデータおよび第２ラインデータのうち１のラインデータから検出された第１候補部分が、他のラインデータから検出された１以上の候補部分のうち第１候補部分から所定の距離に配置された第２候補部分が存在する場合に、第１候補部分と第２候補部分とを含む凹凸部分を抽出する。第１候補部分と第２候補部分とは、同じ凹凸部分の異なる部分に対応する可能性が高い。このため、凹凸部分を正確に検出することができる。
【０１４４】
また、第１グループは、ライン光源１２９が備える複数の光源のうち（２Ｎ−１）個の間隔を隔てて配列された複数の光源からなり、第２グループは、第１グループに属する複数の光源それぞれに対して配列順がＮだけ異なる。このため、第１グルーブに属する複数の光源が原稿に照射する光の方向と、第２グループに属する複数の光源が原稿に照射する光の方向とを異ならせることができる。
【０１４５】
また、ＭＦＰ１００は、光源組が第１組に含まれる第１グループに対応する第１ラインデータおよび第２グループに対応する第２ラインデータに基づいて、原稿に形成された凹凸部分を検出し、検出された凹凸部分のサイズに基づいて、複数の光源組のうちから第２組を選択し、第２組に含まれる第１グループに対応する第１ラインデータおよび第２グループに対応する第２ラインデータに基づいて、凹凸部分を検出する。このため、凹凸部分のサイズに適した光源組を選択するので、凹凸部分を正確に検出することができる。
【０１４６】
また、ＭＦＰ１００は、複数のグループの数に応じて、原稿を副走査方向に搬送する搬送速度を変更する。第１グループおよび第２グループそれぞれでラインデータを取得する場合には、通常モードにおける搬送速度の１／３にする。これにより、副走査方向の解像度を変更することなく、原稿を読み取るとともに、凹凸部分を検出することができる。
【０１４７】
また、ＭＦＰ１００は、ライン光源１２９が備える複数の光源のすべてからなる全灯グループに対応する複数のラインデータＲ、ラインデータＧおよびラインデータＢを合成した画像データＲ、画像データＧ、画像データＢを生成し、画像データＲ、画像データＧ、画像データＢを文字認識し、凹凸部分で文字が認識されない割合が所定の値以上の場合、エラーを通知する。このため、原稿に手書きされた文字が検出されない場合にエラーを通知することができる。
【０１４８】
また、ＭＦＰ１００は、画像データＲ、画像データＧ、画像データＢの凹凸部分を他の部分と区別可能な状態に補正するので、凹凸部分を強調することができる。
【０１４９】
また、ＭＦＰ１００は、画像データＲ、画像データＧ、画像データＢの凹凸部分の画素値を凹凸部分の近傍の部分の画素値に変更するので、凹凸部分を消去することができる。
【０１５０】
また、ＭＦＰ１００は、ラインセンサＲ、ラインセンサＧ、ラインセンサＢのうちラインセンサＧが出力する第１ラインデータおよび第２ラインデータに基づいて、凹凸部分を検出するので、ラインセンサＲが出力するラインデータＲおよびラインセンサＢが出力するラインデータＢを凹凸部分の検出に使用しないので、処理量を低減することができる。
【０１５１】
なお、上述した実施の形態においては、原稿読取装置の一例としてＭＦＰ１００を例に説明したが、原稿を読み取る機能を備えていれば、スキャナー装置、ファクシミリ装置等であってもよい。また、原稿を副走査方向に搬送するようにしたが、原稿を原稿台１２５に固定して、スライダ１２８を副走査方向に移動させるようにしてもよい。
【０１５２】
また、図１３〜図１９に示した原稿読取制御処理をＭＦＰ１００に実行させる原稿読取方法、その原稿読取方法を、ＭＦＰ１００が備えるＣＰＵ１１１に実行させる原稿読取プログラムとして発明を捉えることができる。
【０１５３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１５４】
＜付記＞
（２−１）
前記凹凸検出手段は、前記複数のラインデータのうち前記候補部分が検出されたラインデータにおいて、前記候補部分の画素値の変化が所定の値以下の場合は前記候補部分を候補部分から除外する、請求項２に記載の原稿読取装置。
この局面に従えば、候補部分の画素値の変化が所定値以下の場合、原稿の候補部分は、原稿の折り目である可能性が高い。このため、原稿の折り目以外の凹凸部分を検出することができる。
（４−１）  前記複数のグループは、前記複数の光源のうち配列順が奇数番目の複数の光源からなる第１グループと、前記複数の光源のうち配列順が偶数番目の複数の光源からなる第２グループとを含む、請求項４に記載の原稿読取装置。
（９−１）前記画像補正手段は、前記全灯グループに対応するラインデータについて、前記検出された凹凸部分を前記検出された凹凸部分の近傍の部分の補色に変換する、請求項９に記載の原稿読取装置。
（９−２）前記画像補正手段は、前記全灯グループに対応するラインデータについて、前記検出された凹凸部分の濃度を低くする、請求項９に記載の原稿読取装置。
（９−３）前記画像補正手段は、前記全灯グループに対応するラインデータについて、前記検出された凹凸部分を拡大する、請求項９に記載の原稿読取装置。
（１１−１）
前記複数の光電変換素子は、複数の色にそれぞれ対応して複数あり、
前記凹凸検出手段は、前記複数の色のうち予め定められた１つの色に対応する前記複数の光電変換素子がそれぞれ出力する画素値を前記主走査方向に配列したラインデータに基づいて、凹凸部分を検出する、請求項１１に記載の原稿読取装置。
（１１−２）
前記複数の光源は、複数の色にそれぞれ対応して複数あり、
前記凹凸検出手段は、前記光源制御手段が前記予め定められた１つの色に対応する前記複数の光源を制御する間に、前記複数の光電変換素子がそれぞれ出力する画素値を前記主走査方向に配列したラインデータに基づいて、凹凸部分を検出する、請求項１１に記載の原稿読取装置。
【符号の説明】
【０１５５】
１００  ＭＦＰ、１１０  メイン回路、１１１  ＣＰＵ、１１２  通信Ｉ／Ｆ部、１１３  ＲＯＭ、１１４  ＲＡＭ、１１６  ＨＤＤ、１１７  ファクシミリ部、１１９  外部記憶装置、１１９Ａ  ＣＤ−ＲＯＭ、１２０  ＡＤＦ、１２０Ａ  原稿トレイ、１２０Ｂ  原稿排紙トレイ、１３０  原稿読取部、１４０  画像形成部、１５０  給紙部、１６０  操作パネル、１６０Ａ  表示部、１６０Ｂ  操作部、１２１  タイミングローラ対、１２２  ローラ対、１２３  上部規制板、１２４  背景板、１２５  原稿台、１２６  シェーディング板、１２７  通紙ガイド、１２８  スライダ、１２９  ライン光源、１３１  反射部材、１３２，１３３  反射ミラー、１３４  レンズ、１３５  読取部、５１  組決定部、５３  組決定部、５５  読取制御部、５７  シェーディング補正部、５９  ラインデータ取得部、６１  画像データ生成部、６３  文字認識部、６５  通知部、６７  画像補正部、６９  凹凸検出部、７１  光源制御部、７３  副走査制御部、７５  補色変更部、７７  濃度変更部、７８  拡大部、７９  消去部、８１  差分算出部、８３  候補部分検出部、８５  候補部分排除部、８７  対象組検出部。
【図１】
2018050229.tif 000003
【図２】
2018050229.tif 000004
【図３】
2018050229.tif 000005
【図４】
2018050229.tif 000006
【図５】
2018050229.tif 000007
【図６】
2018050229.tif 000008
【図７】
2018050229.tif 000009
【図８】
2018050229.tif 000010
【図９】
2018050229.tif 000011
【図１０】
2018050229.tif 000012
【図１１】
2018050229.tif 000013
【図１２】
2018050229.tif 000014
【図１３】
2018050229.tif 000015
【図１４】
2018050229.tif 000016
【図１５】
2018050229.tif 000017
【図１６】
2018050229.tif 000018
【図１７】
2018050229.tif 000019
【図１８】
2018050229.tif 000020
【図１９】
2018050229.tif 000021