(57)【要約】【課題】  原稿が矩形であろうと非矩形であろうと、該原稿を読み取った原稿画像内における該原稿の傾き補正を可能にする技術を提供すること。【解決手段】  原稿を読み取ることで該原稿の画像を取得し、該画像内における原稿の領域を原稿領域として検出し、該原稿領域が矩形であるか非矩形であるかを判断する。画像内における原稿領域の傾きを、上記の判断の結果に応じた処理によって検出し、該検出した傾きを用いて画像内における原稿領域の傾きを補正する。【選択図】  図１
2017063379.tif 000002
【特許請求の範囲】
【請求項１】
原稿を読み取ることで該原稿の画像を取得する取得手段と、
前記画像内における前記原稿の領域を原稿領域として検出する検出手段と、
前記原稿領域が矩形であるか非矩形であるかを判断する判断手段と、
前記画像内における前記原稿領域の傾きを、前記判断手段による判断の結果に応じた処理によって検出し、該検出した傾きを用いて前記画像内における前記原稿領域の傾きを補正する補正手段と
を備えることを特徴とする原稿読み取り装置。
【請求項２】
前記判断手段は、
前記原稿領域の四隅の角度を求め、該求めた四隅の角度が９０度若しくは９０度から規定の範囲内の角度である場合には、前記原稿領域は矩形であると判断し、
前記四隅のうち２以上が９０度若しくは９０度から規定の範囲内の角度ではない場合には、前記原稿領域は非矩形であると判断する
ことを特徴とする請求項１に記載の原稿読み取り装置。
【請求項３】
前記補正手段は、
前記原稿領域が矩形であると判断された場合には、前記画像内における前記原稿領域の傾きを、該画像内における該原稿領域の枠部に係る情報を用いて検出し、
前記原稿領域が非矩形であると判断された場合には、前記画像内における前記原稿領域の傾きを、該原稿領域内の文字列の並び方向を用いて検出する
ことを特徴とする請求項１又は２に記載の原稿読み取り装置。
【請求項４】
前記補正手段は、
前記原稿領域が矩形であると判断された場合には、前記画像内における前記原稿領域の傾きを、該画像内における該原稿領域の枠部に係る情報を用いて検出し、
前記原稿領域が非矩形であると判断された場合には、前記画像を規定角度毎に回転させた回転画像を生成し、該生成した回転画像のうち、隣接するライン間における画素値の変化が最も大きい回転画像を特定し、該特定した回転画像の回転角度を、前記画像内における前記原稿領域の傾きとする
ことを特徴とする請求項１又は２に記載の原稿読み取り装置。
【請求項５】
前記取得手段は、前記原稿の両面を読み取ることで該原稿の表面の画像と裏面の画像とを取得し、
前記検出手段は、前記表面の画像及び前記裏面の画像から前記原稿領域を検出する処理を行い、
前記判断手段は、前記表面の画像及び前記裏面の画像のうち前記原稿領域を検出した画像について前記判断を行い、
前記補正手段は、前記原稿領域が非矩形であると判断された場合には、前記表面の画像及び前記裏面の画像のうち文字列が記されている画像を特定し、該特定した画像内における前記原稿領域の傾きを、該原稿領域内の文字列の並び方向を用いて検出する
ことを特徴とする請求項１乃至３の何れか１項に記載の原稿読み取り装置。
【請求項６】
前記補正手段は更に、前記原稿領域が非矩形であると判断された場合には、前記補正の後、前記裏面の画像を削除することを特徴とする請求項５に記載の原稿読み取り装置。
【請求項７】
原稿読み取り装置の制御方法であって、
前記原稿読み取り装置の取得手段が、原稿を読み取ることで該原稿の画像を取得する取得工程と、
前記原稿読み取り装置の検出手段が、前記画像内における前記原稿の領域を原稿領域として検出する検出工程と、
前記原稿読み取り装置の判断手段が、前記原稿領域が矩形であるか非矩形であるかを判断する判断工程と、
前記原稿読み取り装置の補正手段が、前記画像内における前記原稿領域の傾きを、前記判断工程による判断の結果に応じた処理によって検出し、該検出した傾きを用いて前記画像内における前記原稿領域の傾きを補正する補正工程と
を備えることを特徴とする原稿読み取り装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿読み取り技術に関するものである。
【背景技術】
【０００２】
従来、原稿の画像データに基づく印刷を行ったり、コンピュータ上で画像データを管理、補正したりする場合、この画像データは、原稿をイメージスキャナやドラムスキャナと呼ばれる走査式の画像読取装置によって入力される。
【０００３】
この画像読取装置にて原稿の入力を行う際、原稿が読取装置に対して斜めに置かれていた場合、画像読取装置は傾いたまま原稿を読み取ってしまうことになり、後に、読み取った画像データを編集、利用する時に非常に使いづらくなる。
【０００４】
従来から、原稿を読み取る画像読取装置において、読み取った原稿の画像が傾いていた場合、画像の傾きを補正する技術がある。画像の傾き補正の方法としては、読み取った画像の濃度と画像処理装置の裏当て部の濃度差により原稿領域を検出し、傾きを求め、補正するという方法がある。
【０００５】
特許文献１では、裏面の画像から原稿の傾きなどの画像情報を検知できなかった場合に、表面の画像から原稿の傾きを検知し、表面の画像から検知した傾きデータを利用して、裏面の画像の傾きを補正するという技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特願２００７−１７８９５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、ユーザがスクラップ（新聞の切り抜き）など、異形（非矩形）の原稿を画像読取装置で読み取った場合、上記の特許文献１では、原稿領域を検出しても、原稿が異形であるため、画像の傾きを特定することが出来ないことがある。
【０００８】
本発明はこのような問題に鑑みてなされたものであり、原稿が矩形であろうと非矩形であろうと、該原稿を読み取った原稿画像内における該原稿の傾き補正を可能にする技術を提供する。
【課題を解決するための手段】
【０００９】
本発明の一様態は、原稿を読み取ることで該原稿の画像を取得する取得手段と、前記画像内における前記原稿の領域を原稿領域として検出する検出手段と、前記原稿領域が矩形であるか非矩形であるかを判断する判断手段と、前記画像内における前記原稿領域の傾きを、前記判断手段による判断の結果に応じた処理によって検出し、該検出した傾きを用いて前記画像内における前記原稿領域の傾きを補正する補正手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明の構成により、原稿が矩形であろうと非矩形であろうと、該原稿を読み取った原稿画像内における該原稿の傾き補正を可能にする。
【図面の簡単な説明】
【００１１】
【図１】原稿読み取り装置１０の外観例を示す図。
【図２】原稿読み取り装置１０の主要なハードウェア構成例を示す図。
【図３】原稿読み取り装置１０が行う処理のフローチャート。
【図４Ａ】ステップＳ３０２における処理を説明する図。
【図４Ｂ】ステップＳ３０２における処理のフローチャート。
【図５】ステップＳ３０４における処理を説明する図。
【図６】原稿読み取り装置１０が行う処理のフローチャート。
【図７】ステップＳ３０５における処理を説明する図。
【図８】原稿の傾き検出用の情報の一例を示す図。
【図９】ステップＳ３０５、Ｓ６０６、Ｓ６０８に適用可能な処理のフローチャート。
【図１０】ステップＳ９０２の処理を説明する図。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１３】
［第１の実施形態］
先ず、本実施形態に係る原稿読み取り装置１０の外観例を図１に示す。本実施形態に係る原稿読み取り装置１０は、ＬＡＮなどのネットワークを介してＰＣ（パーソナルコンピュータ）等の外部機器に接続され、該外部機器からの様々な指示を受け付けたり、読み取った画像を該外部機器に対して送出したりする。
【００１４】
ＡＤＦ（Auto Document Feeder）ユニット１１は、１枚以上の原稿を順次給紙し、該給紙された原稿の両面を読み取って該原稿の一方面の読み取り画像、他方面の読み取り画像を生成するユニットである。
【００１５】
フラットベッドユニット１２は、ＡＤＦユニット１１により給紙された原稿の一方面を読み取って該原稿の一方面の読み取り画像を生成するものであり、不図示の移動型の読み取りセンサを備えている。
【００１６】
なお、図１に示した外観はあくまでも一例であり、原稿読み取り装置が行うものとして後述する各処理を実現可能であれば、如何なる外観を有していても良い。
【００１７】
次に、原稿読み取り装置１０の主要なハードウェア構成例について、図２のブロック図を用いて説明する。
【００１８】
ＣＰＵ２２は、ＲＯＭ２３やＲＡＭ２４に格納されているコンピュータプログラムやデータを用いて処理を実行することで、原稿読み取り装置１０全体の動作制御を行うと共に、原稿読み取り装置１０が行うものとして後述する各処理を実行若しくは制御する。
【００１９】
ＲＯＭ２３には、原稿読み取り装置１０の基本動作プログラムや基本設定データなどが格納されている。この基本動作プログラムや基本設定データには、原稿読み取り装置１０が行うものとして後述する各処理をＣＰＵ２２に実行若しくは制御させるためのコンピュータプログラムやデータが含まれている。ＲＯＭ２３に格納されているコンピュータプログラムやデータは、ＣＰＵ２２による制御に従って適宜ＲＡＭ２４にロードされ、ＣＰＵ２２による処理対象となる。
【００２０】
ＲＡＭ２４は、表面読み取りセンサ２５、裏面読み取りセンサ２６、フラットベット読み取りセンサ２７などのセンサが読み取った読み取り画像を格納するためのエリアや、ＣＰＵ２２が各種の処理を実行する際に用いるワークエリアを有する。このようにＲＡＭ２４は各種のエリアを適宜提供することができる。
【００２１】
表面読み取りセンサ２５及び裏面読み取りセンサ２６のそれぞれは、ＡＤＦユニット１１に備わっている画像読み取りセンサであり、それぞれ、ＡＤＦユニット１１により給紙された原稿の表面及び裏面を読み取って、表面原稿画像、裏面原稿画像を生成する。
【００２２】
フラットベット読み取りセンサ２７は、フラットベッドユニット１２に備わっているセンサであり、モータ２８によって移動制御されることで原稿の一方面を読み取る。
【００２３】
モータ２８は、ＡＤＦユニット１１における給紙のためや、フラットベット読み取りセンサ２７の移動のために使用されるモータである。
【００２４】
ＣＰＵ２２、ＲＯＭ２３、ＲＡＭ２４、モータ２８、表面読み取りセンサ２５、裏面読み取りセンサ２６、フラットベット読み取りセンサ２７の何れも、システムバス２１に接続されている。
【００２５】
次に、１枚の原稿を読み取り、該読み取りにより得られる原稿画像に対して原稿の傾き補正を行うために原稿読み取り装置１０が行う処理について、図３のフローチャートを用いて説明する。
【００２６】
＜ステップＳ３０１＞
ＣＰＵ２２は、外部機器から送信されたスキャン指示、若しくは原稿読み取り装置１０に備わっている不図示の操作部をユーザが操作することで入力されるスキャン指示を検知すると、ＡＤＦユニット１１を制御して、原稿の読み取り動作を行わせる。これにより、表面読み取りセンサ２５、裏面読み取りセンサ２６、フラットベット読み取りセンサ２７はそれぞれ、ＡＤＦユニット１１によって給紙された原稿に対する読み取り動作を行う。ＣＰＵ２２は、これらのセンサが読み取った画像（原稿画像）をＲＡＭ２４に格納する。
【００２７】
＜ステップＳ３０２＞
ＣＰＵ２２は、表面読み取りセンサ２５、裏面読み取りセンサ２６、フラットベット読み取りセンサ２７の何れかによる原稿画像から、原稿の領域を原稿領域として検出し、該検出した原稿領域が矩形（定型）であるのか、それとも非矩形（異形）であるのかを判断する。ステップＳ３０２における処理の詳細については後述する。また、以下では、原稿領域を検出した原稿画像を処理の対象とする。
【００２８】
＜ステップＳ３０３＞
ステップＳ３０２において原稿領域が矩形と判断した場合には、処理はステップＳ３０３を介してステップＳ３０４に進み、非矩形と判断した場合には、処理はステップＳ３０３を介してステップＳ３０５に進む。
【００２９】
＜ステップＳ３０４＞
ＣＰＵ２２は、原稿画像内における原稿領域の傾きを、該原稿画像内における該原稿領域の枠部に係る情報を用いて検出する。ステップＳ３０４における処理の詳細については後述する。
【００３０】
＜ステップＳ３０５＞
ＣＰＵ２２は、原稿画像内における原稿領域の傾きを、該原稿領域内の文字列の並び方向を用いて検出する。ステップＳ３０５における処理の詳細については後述する。
【００３１】
＜ステップＳ３０６＞
ＣＰＵ２２は、ステップＳ３０４若しくはステップＳ３０５で検出した原稿領域の傾きを用いて、原稿画像内の原稿領域の傾きを補正する。
【００３２】
＜ステップＳ３０７＞
ＣＰＵ２２は、ステップＳ３０６において傾き補正を行った原稿画像を出力する。傾き補正を行った原稿画像の出力先については特定の出力先に限るものではない。例えば、原稿読み取り装置１０の内部若しくは外部に設けられているハードディスクドライブ装置などの大容量情報記憶装置に対して出力しても良いし、ネットワークを介して上記の外部機器に対して送信しても良い。
【００３３】
次に、上記のステップＳ３０２における処理、すなわち、原稿領域が矩形であるのか、それとも非矩形であるのかを判断する処理、の詳細について、図４Ａ，４Ｂを用いて説明する。図４Ａは、原稿画像内における原稿領域の一例を示しており、図４Ｂは、ステップＳ３０２における処理の詳細を示すフローチャートである。
【００３４】
＜ステップＳ４０１＞
原稿画像から、原稿の搬送路など、「非原稿領域の画素値として予め定められた画素値（若しくは画素値の範囲）」以外の画素値を有する画素から成る領域を原稿領域として検出する。なお、原稿領域の検出方法はこの方法に限るものではなく、他の方法を採用しても構わない。
【００３５】
＜ステップＳ４０３＞
先ず、ステップＳ４０１で検出した原稿領域を構成する各画素の画素位置（ｘ、ｙ）（０≦ｘ≦Ｗ−１、０≦ｙ≦Ｈ−１、Ｗ，Ｈはそれぞれ原稿画像の水平（ｘ軸方向）方向の画素数、垂直（ｙ軸方向）方向の画素数）をＲＡＭ２４に格納する。
【００３６】
次に、ＲＡＭ２４に格納した各画素の画素位置のうち、ｘ座標値が最大（＝Ｘｍａｘ）の画素位置、ｘ座標値が最小（＝Ｘｍｉｎ）の画素位置、ｙ座標値が最大（＝Ｙｍａｘ）の画素位置、ｙ座標値が最小（＝Ｙｍｉｎ）の画素位置を特定する。
【００３７】
例えば、図４Ａ（ａ）に示す如く、原稿画像中に矩形の原稿領域（「定型」と付した矩形領域）が時計回りに傾いて位置しており、該原稿領域の左上隅の画素位置が（ｘ１，ｙ１）、左下隅の画素位置が（ｘ３，ｙ３）、右上隅の画素位置が（ｘ２，ｙ２）、右下隅の画素位置が（ｘ４，ｙ４）、であるとする。このとき、ｘ座標値が最大の画素位置は（ｘ２，ｙ２）、ｘ座標値が最小の画素位置は（ｘ３，ｙ３）、ｙ座標値が最大の画素位置は（ｘ４，ｙ４）、ｙ座標値が最小の画素位置は（ｘ１，ｙ１）となる。
【００３８】
また例えば、図４Ａ（ｂ）に示す如く、原稿画像中に矩形の原稿領域（「定型」と付した矩形領域）が傾くことなく位置しており、該原稿領域の左上隅の画素位置が（ｘ１，ｙ１）、左下隅の画素位置が（ｘ３，ｙ３）、右上隅の画素位置が（ｘ２，ｙ２）、右下隅の画素位置が（ｘ４，ｙ４）、であるとする。このとき、ｘ座標値が最大の画素位置は（ｘ２，ｙ２）及び（ｘ４，ｙ４）の２つ、ｘ座標値が最小の画素位置は（ｘ１，ｙ１）及び（ｘ３，ｙ３）の２つ、ｙ座標値が最大の画素位置は（ｘ３，ｙ３）及び（ｘ４，ｙ４）の２つ、ｙ座標値が最小の画素位置は（ｘ１，ｙ１）及び（ｘ２，ｙ２）の２つとなる。
【００３９】
＜ステップＳ４０４＞
ｘ座標値が最大の画素位置、ｘ座標値が最小の画素位置、ｙ座標値が最大の画素位置、ｙ座標値が最小の画素位置、のそれぞれに該当するものが１つであるか複数であるかを判断する。
【００４０】
図４Ａ（ａ）の場合、上記の如く、ｘ座標値が最大の画素位置は（ｘ２，ｙ２）のみ（１つ）、ｘ座標値が最小の画素位置は（ｘ３，ｙ３）のみ（１つ）、ｙ座標値が最大の画素位置は（ｘ４，ｙ４）のみ（１つ）、ｙ座標値が最小の画素位置は（ｘ１，ｙ１）のみ（１つ）、である。このように、ｘ座標値が最大の画素位置、ｘ座標値が最小の画素位置、ｙ座標値が最大の画素位置、ｙ座標値が最小の画素位置、のそれぞれに該当するものが１つである場合には、原稿画像から傾いている原稿領域が検出されたものと判断し、処理はステップＳ４０６に進む。
【００４１】
図４Ａ（ｂ）の場合、上記の如く、ｘ座標値が最大の画素位置は（ｘ２，ｙ２）及び（ｘ４，ｙ４）の２つ、ｘ座標値が最小の画素位置は（ｘ１，ｙ１）及び（ｘ３，ｙ３）の２つ、ｙ座標値が最大の画素位置は（ｘ３，ｙ３）及び（ｘ４，ｙ４）の２つ、ｙ座標値が最小の画素位置は（ｘ１，ｙ１）及び（ｘ２，ｙ２）の２つとなる。このように、ｘ座標値が最大の画素位置、ｘ座標値が最小の画素位置、ｙ座標値が最大の画素位置、ｙ座標値が最小の画素位置、のうち１つでも（図４Ａ（ｂ）の場合は４つ）該当するものが複数である場合には、原稿画像から傾いていない原稿領域が検出されたものと判断し、処理はステップＳ４０５に進む。
【００４２】
＜ステップＳ４０５＞
本ステップでは、図４Ａ（ｂ）に示すように、原稿画像から傾きのない原稿領域が検出された場合に、該検出された原稿領域の四隅の画素位置を特定する。
【００４３】
ｘ座標値が最小の画素位置（ｘ１，ｙ１）及び（ｘ３，ｙ３）のうち、ｙ座標値がＹｍｉｎである画素位置（図４Ａ（ｂ）の場合は（ｘ１，ｙ１））を原稿領域の左上隅の画素位置として特定する。
【００４４】
ｘ座標値が最大の画素位置（ｘ２，ｙ２）及び（ｘ４，ｙ４）のうち、ｙ座標値がＹｍａｘである画素位置（図４Ａ（ｂ）の場合は（ｘ４，ｙ４））を原稿領域の右下隅の画素位置として特定する。
【００４５】
ｙ座標値が最小の画素位置（ｘ１，ｙ１）及び（ｘ２，ｙ２）のうち、ｘ座標値がｘｍａｘである画素位置（図４Ａ（ｂ）の場合は（ｘ２，ｙ２））を原稿領域の右上隅の画素位置として特定する。
【００４６】
ｙ座標値が最大の画素位置（ｘ３，ｙ３）及び（ｘ４，ｙ４）のうち、ｘ座標値がＸｍｉｎである画素位置（図４Ａ（ｂ）の場合は（ｘ３，ｙ３））を原稿領域の左下隅の画素位置として特定する。
【００４７】
＜ステップＳ４０６＞
原稿領域における四隅のそれぞれにおける角度を求める。ｘ座標値が最大の画素位置、ｘ座標値が最小の画素位置、ｙ座標値が最大の画素位置、ｙ座標値が最小の画素位置、のそれぞれに該当するものが１つである場合、このそれぞれの画素位置が原稿領域の四隅の画素位置となる。一方、ｘ座標値が最大の画素位置、ｘ座標値が最小の画素位置、ｙ座標値が最大の画素位置、ｙ座標値が最小の画素位置、のうち１つでも該当するものが複数である場合、ステップＳ４０５で特定したそれぞれの画素位置が原稿領域の四隅の画素位置となる。
【００４８】
原稿領域における四隅のそれぞれにおける角度を求めるためには様々な方法が考えられ、如何なる方法を適用しても構わない。例えば、ステップＳ４０６に処理が進んだ時点で、原稿領域の左上隅の画素位置Ｐ１、右上隅の画素位置Ｐ２、右下隅の画素位置Ｐ３、左下隅の画素位置Ｐ４、は既知であることから、画素位置Ｐ１と画素位置Ｐ２とを結ぶ線分Ｌ１、画素位置Ｐ２と画素位置Ｐ３とを結ぶ線分Ｌ２、画素位置Ｐ３と画素位置Ｐ４とを結ぶ線分Ｌ３、画素位置Ｐ１と画素位置Ｐ４とを結ぶ線分Ｌ４、を求めることができる。然るに、Ｌ１とＬ４とがなす角度（＜１８０度）を画素位置Ｐ１における角度として求めることができ、Ｌ１とＬ２とがなす角度（＜１８０度）を画素位置Ｐ２における角度として求めることができ、Ｌ２とＬ３とがなす角度（＜１８０度）を画素位置Ｐ３における角度として求めることができ、Ｌ３とＬ４とがなす角度（＜１８０度）を画素位置Ｐ４における角度として求めることができる。
【００４９】
＜ステップＳ４０７＞
四隅の画素位置におけるそれぞれの角度が９０度若しくは９０度から規定の範囲内の角度であれば、処理はステップＳ４０８に進み、四隅の画素位置のうち２以上が９０度若しくは９０度から規定の範囲内の角度ではない場合には、処理はステップＳ４０９に進む。
【００５０】
＜ステップＳ４０８＞
原稿領域は矩形であると判断する。
【００５１】
＜ステップＳ４０９＞
原稿領域は非矩形であると判断する。
【００５２】
次に、上記のステップＳ３０４における処理、すなわち、原稿画像内における原稿領域の傾きを、該原稿画像内における該原稿領域の枠部に係る情報を用いて検出する処理の一例について、図５を用いて説明する。
【００５３】
図５（ａ）に示す如く、原稿画像内に写っている原稿の枠部（原稿領域５０２の枠部）に発生している影を検出する。原稿画像内に写っている原稿の枠部に発生している影を検出する技術は周知であるため、これに係る説明は省略する。図５（ａ）では部分５０１が、原稿画像内に写っている原稿の枠部に発生している影として検出されている。この場合、部分５０１の両端（左端及び右端）のｙ座標値の差分ｈと、ｘ座標値の差分ｄと、を求め、Ａｒｃｔａｎ（ｈ／ｄ）＝θを計算することで、原稿画像内における原稿領域５０２の傾きθを求めることができる。
【００５４】
例えば、図５（ｂ）の場合、グレーで塗りつぶしている矩形は影を構成する画素、白で塗りつぶしている矩形は非影を構成する画素であるから、差分ｈは影を構成する画素群の両端の画素位置のｙ座標値の差分（６−４）＝２となり、差分ｄは影を構成する画素群の両端の画素位置のｘ座標値の差分（４−１）＝３となる。従ってこの場合は、Ａｒｃｔａｎ（２／３）＝３３．６９となり、原稿画像内における原稿領域の傾きθは約３４°と求めることができる。
【００５５】
なお、原稿画像内における原稿領域の傾きを検出する為にステップＳ３０４に適用可能な処理は、以上説明した処理に限るものではない。
【００５６】
次に、上記のステップＳ３０５における処理、すなわち、原稿画像内における原稿領域の傾きを、該原稿領域内の文字列の並び方向を用いて検出する処理の一例について説明する。
【００５７】
原稿領域内の文字列の並び方向を用いて該原稿画像内における原稿領域の傾きを検出する為には、例えば、特開平１０−１５３９２５号公報に記載の技術を提供することができる。この文献には、原稿を読み取った画像に対して基準とする一辺を定め、該定めた一辺に対して、指定した複数方向から、画像に対して文字領域中の文字の認識処理を施し、文字認識の精度の最も高い方向を原稿の文字向き方向として算出する技術が開示されている。例えば、図７に示すように、原稿台の一辺を基準として、０度、４５度、９０度、１３５度、１８０度、２２５度、２７０度の８方向から、原稿画像内の文字の判別を行う。各角度に対して、ＯＣＲ等で文字認識処理を施した際の、文字認識率が最も高い方向を原稿の文字向き方向とし、この方向を原稿の傾きとする。図７では、４５度の方向が文字認識の精度が最も良い方向であり、原稿の傾きは４５度と算出することができる。
【００５８】
なお、原稿画像内における原稿領域の傾きを検出する為にステップＳ３０５に適用可能な処理は、以上説明した処理に限るものではない。
【００５９】
そして上記のステップＳ３０６では、このようにしてステップＳ３０４若しくはステップＳ３０５において求めた傾きが０となるように、原稿画像に対して周知の傾き補正を行う。
【００６０】
なお、本実施形態では、フラットベッドタイプのスキャナを使っているが、シートフィードタイプのスキャナを用いても構わない。また、本実施形態では、原稿読み取り装置１０が原稿読み取り処理、原稿画像に対する傾き補正、の両方の処理を行う場合について説明した。しかし、原稿読み取り装置１０が原稿を読み取って原稿画像を外部装置に対して送信し、該外部装置が原稿読み取り装置１０から受け取った原稿画像に対して図３のステップＳ３０２以降の処理を行うことで、該原稿画像に対して傾き補正を行うようにしても構わない。このように、図３のフローチャートに従った処理を原稿読み取り装置１０のみで実施しても良いが、２台以上の装置を用いて実施しても良い。
【００６１】
また、本実施形態では、表面読み取りセンサ２５及び裏面読み取りセンサ２６を駆動させることで両面読み取りを行っているが、表面読み取りセンサ２５及び裏面読み取りセンサ２６の何れか一方のみを駆動させることで片面読み取りを行っても構わない。
【００６２】
［第２の実施形態］
本実施形態では、表面読み取りセンサ２５及び裏面読み取りセンサ２６を駆動させることで両面読み取りを行う。以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとして説明する。
【００６３】
１枚の原稿を読み取り、該読み取りにより得られる原稿画像に対して原稿の傾き補正を行うために原稿読み取り装置１０が行う処理について、図６のフローチャートを用いて説明する。
【００６４】
＜ステップＳ６０１＞
ＣＰＵ２２は、外部機器から送信されたスキャン指示、若しくは原稿読み取り装置１０に備わっている不図示の操作部をユーザが操作することで入力されるスキャン指示を検知すると、ＡＤＦユニット１１を制御して、原稿の読み取り動作を行わせる。これにより、表面読み取りセンサ２５、裏面読み取りセンサ２６、フラットベット読み取りセンサ２７はそれぞれ、ＡＤＦユニット１１によって給紙された原稿に対する読み取り動作を行う。ＣＰＵ２２は、これらのセンサが読み取った画像（原稿画像）をＲＡＭ２４に格納する。
【００６５】
＜ステップＳ６０２＞
ＣＰＵ２２は、表面読み取りセンサ２５、裏面読み取りセンサ２６、フラットベット読み取りセンサ２７から原稿画像を取得し、該取得した原稿画像から、原稿の領域を原稿領域として検出する処理を実行する。そしてＣＰＵ２２は、原稿画像から原稿領域を検出した場合には、該検出した原稿領域が矩形（定型）であるのか、それとも非矩形（異形）であるのかを判断する。ステップＳ６０２における処理の詳細については、上記のステップＳ３０２と同様である。
【００６６】
＜ステップＳ６０３＞
ステップＳ６０２において原稿領域が矩形と判断した場合には、処理はステップＳ６０３を介してステップＳ６０４に進み、非矩形と判断した場合には、処理はステップＳ６０３を介してステップＳ６０５に進む。
【００６７】
＜ステップＳ６０４＞
ＣＰＵ２２は、表面読み取りセンサ２５、裏面読み取りセンサ２６、フラットベット読み取りセンサ２７から取得した原稿画像のうち原稿領域を検出した原稿画像を対象とし、該対象とする原稿画像内における、該原稿画像から検出した原稿領域の傾きを、該原稿画像内における該原稿領域の枠部に係る情報を用いて検出する。ステップＳ６０４における処理の詳細については、上記のステップＳ３０４と同様である。
【００６８】
＜ステップＳ６０５＞
ＣＰＵ２２は、表面読み取りセンサ２５による原稿画像から検出した原稿領域内に文字列が記されているか否かを判断する。画像内に文字列が記されているか否かを判断するための技術は、ＯＣＲ技術など周知であるため、これに係る説明は省略する。そして、この判断の結果、記されている場合には、処理はステップＳ６０６に進み、記されていない場合には、処理はステップＳ６０７に進む。
【００６９】
＜ステップＳ６０６＞
ＣＰＵ２２は、表面読み取りセンサ２５による原稿画像内における原稿領域の傾きを、該原稿領域内の文字列の並び方向を用いて検出する。ステップＳ６０６における処理の詳細については、上記のステップＳ３０５と同様である。
【００７０】
＜ステップＳ６０７＞
ＣＰＵ２２は、裏面読み取りセンサ２６による原稿画像から検出した原稿領域内に文字列が記されているか否かを判断する。そして、この判断の結果、記されている場合には、処理はステップＳ６０８に進み、記されていない場合には、処理はステップＳ６１２に進む。
【００７１】
＜ステップＳ６０８＞
ＣＰＵ２２は、裏面読み取りセンサ２６による原稿画像内における原稿領域の傾きを、該原稿領域内の文字列の並び方向を用いて検出する。ステップＳ６０８における処理の詳細については、上記のステップＳ３０５と同様である。
【００７２】
＜ステップＳ６０９＞
ＣＰＵ２２は、ステップＳ６０４、ステップＳ６０６、ステップＳ６０８の何れかで検出した原稿領域の傾きを用いて、表面読み取りセンサ２５による原稿画像内の原稿領域の傾きを補正する。
【００７３】
＜ステップＳ６１０＞
ＣＰＵ２２は、上記のステップＳ６０２において原稿領域が矩形であると判断した場合には、処理はステップＳ６１２に進み、非矩形であると判断した場合には、処理はステップＳ６１１に進む。
【００７４】
＜ステップＳ６１１＞
ＣＰＵ２２は、ＲＡＭ２４に格納してある、裏面読み取りセンサ２６による原稿画像を削除（破棄）する。なお、ステップＳ６１１では、裏面読み取りセンサ２６による原稿画像を削除しても良いか否かをユーザに問い合わせるためのダイアログを不図示の画面に表示し、ユーザが削除しても良い旨の指示を入力した場合には、裏面読み取りセンサ２６による原稿画像を削除し、ユーザが削除しない良い旨の指示を入力した場合には、裏面読み取りセンサ２６による原稿画像を削除することなく処理をステップＳ６１２に進めるようにしても構わない。
【００７５】
本ステップにおいて裏面読み取りセンサ２６による原稿画像を削除するのは、スクラップ（新聞の切り抜き）など、非矩形の原稿を読み取る場合は、原稿の表面の画像のみを必要とすることが多いためである。例えば、矩形の原稿、非矩形の原稿を連続して読み取る場合、ユーザの必要とする画像のみを出力するための構成である。然るに、状況によっては、ステップＳ６１１における処理は必須ではない。
【００７６】
＜ステップＳ６１２＞
ステップＳ６１０若しくはステップＳ６１１からステップＳ６１２に処理が進んだ場合、ＣＰＵ２２は、ステップＳ６０９において傾き補正を行った原稿画像を出力する。一方、ステップＳ６０７からステップＳ６１２に処理が進んだ場合、ＣＰＵ２２は、表面読み取りセンサ２５、裏面読み取りセンサ２６、フラットベット読み取りセンサ２７による原稿画像（若しくはそのうち１以上）を出力する。原稿画像の出力先については第１の実施形態と同様、特定の出力先に限るものではない。
【００７７】
なお、原稿の表面にも裏面にも該原稿の傾きを検出するための情報がないようにするために、あらかじめ原稿に傾きを検知するための情報を付加しておき、それを基に原稿の傾きを算出するようにしても構わない。例えば、図８（ａ）に示す如く、原稿の表面にも裏面にも文字などの傾きを検知できる情報がない非矩形原稿を読み取る場合は、図８（ｂ）に例示するように、ユーザがあらかじめ原稿裏面に原稿向きを特定できるような情報として矢印マークを付加しておき、それを基に原稿の傾きを求めるようにしても構わない。図８（ｂ）の場合は、矢印の向きを検出すれば、該検出した向きと原稿画像における水平方向との間の角度を原稿領域の傾きとして検出することができる。
【００７８】
なお、第１，２の実施形態の何れでも、原稿領域の四隅の画素位置における角度を用いて、該原稿領域が矩形であるか非矩形であるかを判断していたが、他の方法を用いて同様の目的を達成しても構わない。また例えば、原稿読み取り開始前に、ユーザが読み取り設定の一部として、読み取り対象の原稿が矩形か非矩形かを選択しても構わない。
【００７９】
［第３の実施形態］
上記のステップＳ３０５、ステップＳ６０６、ステップＳ６０８において、図９のフローチャートに従った処理を行うようにしても、第１，２の実施形態と同様の目的を達成することができる。
【００８０】
＜ステップＳ９０１＞
原稿画像に対して二値化処理を施すことで、二値化原稿画像を生成する。ここで、原稿画像の回転角を示す変数θを０に初期化する。
【００８１】
＜ステップＳ９０２＞
二値化原稿画像における原稿領域内で、ｎ（ｎ＝１〜（Ｎ−１）：Ｎは二値化原稿画像における水平ラインの数）番目の水平ラインから（ｎ＋１）番目の水平ラインへと画素値（例えば濃度値）が変化した画素数をカウントし、その値をＣｎとする。
【００８２】
例えば、図１０（ａ）に示す如く、太線で囲っている原稿領域内において、４番目のライン（ｙ＝４）から５番目のライン（ｙ＝５）へは、ｘ＝３の位置における画素の画素値が変化している。この場合、４番目のライン及び５番目のラインの間で画素値が変化している画素数は１（Ｃ４＝１）となる。このようにして、原稿領域内の隣接する水平ライン間で画素値が変化している画素の数をカウントする。
【００８３】
＜ステップＳ９０３＞
Ｃ１〜Ｃ（Ｎ−１）のうち最大のカウント値を変数θの値と関連づけてＲＡＭ２４に格納する。例えば、図１０（ａ）の場合、ｎ＝４の場合は上記の如くＣ４＝１、ｎ＝５の場合は、Ｃ５＝３となり、この場合、カウント値「３」を変数θの値と関連づけてＲＡＭ２４に格納する。
【００８４】
＜ステップＳ９０４＞
変数θの値を規定の値だけ変化させてから、二値化原稿画像を変数θの値を回転角度とする回転変換によって回転させることで回転二値化原稿画像を生成する。そして処理はステップＳ９０２に進む。
【００８５】
例えば、終了条件として「変数θの値を−３度〜＋３度の範囲で変化させる」が予め設定されている場合、変数θの値の初期値を−３に設定してステップＳ９０１以降の処理を開始する。そして、ステップＳ９０４では変数θの値に０．１を加える。ここで、変数θの値が３．１となった場合には、終了条件は満たされたと判断して、処理はステップＳ９０５に進む。一方、変数θの値が３．０以下である場合には、未だ終了条件は満たされていないと判断し、二値化原稿画像を変数θの値を回転角度とする回転変換によって回転させることで回転二値化原稿画像を生成してから、処理はステップＳ９０２に進む。
【００８６】
＜ステップＳ９０５＞
最大のカウント値と関連づけてＲＡＭ２４に格納されている変数θの値を特定する。カウント値が最大となるのは、図１０（ｂ）の中央に示す如く、二値化原稿画像（若しくは回転二値化原稿画像）中の原稿領域内の文字列の並び方向が該二値化原稿画像（若しくは回転二値化原稿画像）の水平方向と略一致する状態となったときである。
【００８７】
＜ステップＳ９０６＞
ステップＳ９０５において特定した変数θの値を、原稿画像中における原稿領域の傾きとする。すなわち、図９のフローチャートに従った処理では、原稿領域が非矩形であると判断された場合には、原稿画像を規定角度毎に回転させた回転画像を生成し、該生成した回転画像のうち、隣接するライン間における画素値の変化が最も大きい回転画像を特定し、該特定した回転画像の回転角度を、原稿画像内における原稿領域の傾きとしている。
【００８８】
なお、第１〜３の実施形態の一部若しくは全部は適宜組み合わせて実施しても構わないし、それぞれの実施形態の一部若しくは全部をユーザ指示により若しくはＣＰＵ２２が判断して切り替えて実施するようにしても構わない。
【符号の説明】
【００８９】
２２：ＣＰＵ  ２３：ＲＯＭ  ２４：ＲＡＭ  ２５：表面読み取りセンサ  ２６：裏面読み取りセンサ  ２７：フラットベット読み取りセンサ
【図１】
2017063379.tif 000003
【図２】
2017063379.tif 000004
【図３】
2017063379.tif 000005
【図４Ａ】
2017063379.tif 000006
【図４Ｂ】
2017063379.tif 000007
【図５】
2017063379.tif 000008
【図６】
2017063379.tif 000009
【図７】
2017063379.tif 000010
【図８】
2017063379.tif 000011
【図９】
2017063379.tif 000012
【図１０】
2017063379.tif 000013