(57)【特許請求の範囲】
【請求項１】
原稿を読取って前記原稿の画像データを生成する画像読取部と、
前記画像データの画素の色を判定する色判定部と、
前記色判定部で判定された画素の色に基づいて前記画像データの空白列を検出する空白列判定部と、
前記空白列に基づいて前記原稿に記載された文字列の行間の延伸方向を検出する平行方向判定部と、
前記文字列の開始位置および終了位置を検出する文字列領域判定部と、
前記開始位置および終了位置に基づいて原稿の向きを検出する垂直方向判定部と、
を有し、
前記平行方向判定部は、前記空白列判定部が検出した空白列と、前記空白列が連続する画素列数の最頻値とに基づいて文字列の行間の延伸方向を検出することを特徴とする画像形成装置。
【請求項２】
請求項１に記載の画像形成装置において、
前記画像読取部で読み取る原稿が横書き原稿または縦書き原稿のいずれかを指定する操作を受付ける操作部を有し、
前記平行方向判定部は、前記文字列の行間の延伸方向と、前記指定とに基づいて前記画像データの回転の要否を判定することを特徴とする画像形成装置。
【請求項３】
請求項１または請求項２に記載の画像形成装置において、
前記平行方向判定部が検出した文字列の行間の延伸方向および前記垂直方向判定部が検出した原稿の向きに基づいて前記画像データを回転させる画像回転部を有することを特徴とする画像形成装置。
【請求項４】
請求項１から請求項３のいずれかに記載の画像形成装置において、
前記空白列判定部は、前記色判定部が白色と判定した画素のみが並ぶ画素列と、前記色判定部が白色でないと判定された色の画素であって当該色の画素が所定数を超えて連続して並んでいない画素列とを空白列と判定することを特徴とする画像形成装置。
【請求項５】
請求項１から請求項４のいずれかに記載の画像形成装置において、
前記平行方向判定部は、前記空白列が連続する画素列数のばらつき度に基づいて文字列の行間の延伸方向を検出することを特徴とする画像形成装置。
【請求項６】
請求項１から請求項５のいずれかに記載の画像形成装置において、
前記文字列領域判定部は、前記色判定部が白色でないと判定された色の画素であって当該色の画素が所定数を超えて連続して並んでいる画素列の先頭画素を文字列の開始位置と判定することを特徴とする画像形成装置。
【請求項７】
請求項６に記載の画像形成装置において、
前記文字列領域判定部は、前記文字列の開始位置を検出した後、前記文字列の画素の色と異なる色の画素を検出したとき、前記文字列の最終画素を文字列の終了位置と判定することを特徴とする画像形成装置。
【請求項８】
請求項１から請求項７のいずれかに記載の画像形成装置において、
前記垂直方向判定部は、前記開始位置および終了位置のばらつき度に基づいて原稿の向きを検出することを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読取った原稿の画像データに基づいて原稿の向きを判定する画像形成装置に関する。
【背景技術】
【０００２】
従来の画像形成装置は、読取った原稿の画像データに基づいて原稿の向きを判定するため、光学文字認識技術を用いて読取った原稿の画像データに対して文字認識処理（パターンマッチング）を行い、文字の方向毎の割合に基づいて原稿の向きを判定するようにしている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１００３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術においては、光学文字認識技術を用いた文字認識処理では、マッチングするために重ね合わせる文字パターン情報を格納するパターン辞書が必要であり、そのパターン辞書を有していない場合など簡易な構成では原稿の向きを判定することができないという問題がある。
本発明は、このような問題を解決することを課題とし、簡易な構成で原稿の向きを判定できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
そのため、本発明は、原稿を読取って前記原稿の画像データを生成する画像読取部と、前記画像データの画素の色を判定する色判定部と、前記色判定部で判定された画素の色に基づいて前記画像データの空白列を検出する空白列判定部と、前記空白列に基づいて前記原稿に記載された文字列の行間の延伸方向を検出する平行方向判定部と、前記文字列の開始位置および終了位置を検出する文字列領域判定部と、前記開始位置および終了位置に基づいて原稿の向きを検出する垂直方向判定部と、を有し、前記平行方向判定部は、前記空白列判定部が検出した空白列と、前記空白列が連続する画素列数の最頻値とに基づいて文字列の行間の延伸方向を検出することを特徴とする。
【発明の効果】
【０００６】
このようにした本発明は、簡易な構成で原稿の向きを判定することができるという効果が得られる。
【図面の簡単な説明】
【０００７】
【図１】第１の実施例における画像形成装置の制御構成を示すブロック図
【図２】第１の実施例における画像形成装置の構成を示す説明図
【図３】第１の実施例における原稿向き判定処理の流れを示すフローチャート
【図４】第１の実施例における空白ライン検出処理の流れを示すフローチャート
【図５】第１の実施例における文字列領域検出処理の流れを示すフローチャート
【図６】第１の実施例における空白ライン検出結果の説明図
【図７】第１の実施例における空白ラインのばらつき度の説明図
【図８】第１の実施例における開始座標と終了座標のばらつき度の説明図
【図９】第１の実施例における原稿の説明図
【図１０】第１の実施例における原稿向き判定処理の説明図
【図１１】第２の実施例における原稿向き判定処理の流れを示すフローチャート
【図１２】第２の実施例における空白ライン検出結果の説明図
【発明を実施するための形態】
【０００８】
以下、図面を参照して本発明による画像形成装置の実施例を説明する。
【実施例１】
【０００９】
図２は第１の実施例における画像形成装置の構成を示す説明図である。
図２において、画像形成装置１０は、プリンタ部１００と、操作部１０１と、スキャナ部１０２とを有する。この画像形成装置１０は、スキャナ部１０２で読み取った原稿の画像をプリンタ部１００で用紙に印刷するコピージョブや外部の装置から通信回線を介して受信した印刷データに従って用紙に印刷する印刷ジョブ等を行う。
プリンタ部１００は、画像形成ユニット１１１（１１１Ｋ、１１１Ｙ、１１１Ｍ、１１１Ｃ）と、定着部１１３と、給紙トレイ１１５、１１６とを有している。
【００１０】
画像形成ユニット１１１（１１１Ｋ、１１１Ｙ、１１１Ｍ、１１１Ｃ）は、各色（Ｋ：ブラック、Ｙ：イエロー、Ｍ：マゼンタ、Ｃ：シアン）の現像剤としてのトナーにより像担持体としての感光体ドラムにトナー画像を形成するものである。感光体ドラムに形成されたトナー画像は転写ローラ１１２（１１２Ｋ、１１２Ｙ、１１２Ｍ、１１２Ｃ）により、給紙トレイ１１５、１１６から搬送された用紙に転写される。
なお、本実施例では、画像形成ユニット１１１はＣＭＹＫの各色のトナー画像を形成するものとして説明するが、ＣＭＹＫ以外の画像形成ユニット１１１を追加しても良く、また一部を透明トナー等の特色の画像形成ユニット１１１に置き換えても良い。
【００１１】
定着部１１３は、ヒータ１１４の熱により用紙に転写されたトナーを用紙に定着させるものである。トナーが定着された用紙は搬送部により搬送され、装置外に排出される。
給紙トレイ１１５、１１６は、印刷するための用紙を収容するためのトレイであり、それぞれの給紙トレイにサイズが異なる用紙を入れたり、用紙の向きが異なるように入れたりすることが可能になっている。
このようにプリンタ部１００は、画像形成ユニット１１１、定着部１１３、および給紙トレイ１１５、１１６等を備え、用紙に画像を形成して印刷を行う。
【００１２】
操作部１０１は、各種情報を表示する表示手段およびユーザの操作を受付ける入力手段からなるオペレーションパネル１０１０を有するものである。オペレーションパネル１０１０は、ハードキーやタッチパネル等を備えたものである。
スキャナ部１０２は、原稿の画像を読取り、画像データを生成する画像読取部１０２０と、原稿載置台１０２８と、ＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ）１０２９とを有している。
【００１３】
画像読取部１０２０は、原稿に光を照射し、原稿の画像の反射光を発生させるための光源１０２０ａと、反射光を読取り、画像データを生成するＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）部１０２０ｂとから構成されている。画像読取部１０２０は、主走査方向の１ライン毎の画像データを副走査方向に複数ライン生成して原稿の画像データを生成する。
【００１４】
原稿載置台１０２８は、原稿を載置するものである。原稿台１０２８に載置された原稿は、副走査方向に移動する画像読取部１０２０により画像が読み取られる。
ＡＤＦ１０２９は、原稿自動給紙装置であり、載置された原稿を１枚ずつ給紙し、画像読取部１０２０へ送るものである。給紙された原稿は画像読取部１０２０により画像が読み取られる。
【００１５】
図１は第１の実施例における画像形成装置の制御構成を示すブロック図である。
図１において、画像形成装置１０は、プリンタ部１００と、操作部１０１と、スキャナ部１０２とを有している。
印刷部としてのプリンタ部１００は、画像を媒体に形成するものであり、印刷制御部１０００を有するものである。
印刷制御部１０００は、上述した図２に示す画像形成ユニット１１１、定着部１１３、および給紙トレイ１１５、１１６等を制御し、用紙に画像を形成して印刷を行うものである。
【００１６】
操作部１０１は、情報を表示する表示手段および入力操作を受付ける入力手段を有するものである。操作部１０１は、上述したオペレーションパネル１０１０と、プレビュー画像生成部１０１１とを有している。操作部１０１は、ユーザが操作するためのものであり、画像形成装置１０に対する指示の入力操作を受付ける入力部および入力操作を誘導する表示、ジョブの実行状態の表示、スキャン画像のプレビュー表示等を行う表示部としてのオペレーションパネル１０１０を有している。
プレビュー画像生成部１０１１は、画像読取部１０２０が読み取った原稿の画像を縮小してプレビュー画像を生成し、生成したプレビュー画像をオペレーションパネル１０１０にプレビュー表示するものである。
【００１７】
読取部としてのスキャナ部１０２は、原稿の画像を読取るものであり、図２に示す画像読取部１０２０と、色判定部１０２１と、空白ライン判定部１０２２と、文字列領域判定部１０２３と、水平方向判定部１０２４と、垂直方向判定部１０２５と、画像回転部１０２６とを有している。
画像読取部１０２０は、原稿を読取り、その原稿の画像データを生成するものである。
色判定部１０２１は、画像読取部１０２０で読み取った原稿の画像データの画素の色（ＲＧＢ色）を判定するものである。
【００１８】
空白列判定部としての空白ライン判定部１０２２は、色判定部１０２１が判定した画素の色に基づいて画像データのＸ方向（例えば、副走査方向）およびＹ方向（例えば、主走査方向）の画素のライン（列）が空白のライン（空白列）か否かを判定し、空白のラインを検出するものである。空白ライン判定部１０２２は、色判定部１０２１が白色と判定した画素のみが並ぶラインを空白のラインと判定し、また白色以外の画素であっても異なる複数の色の画素が連続して検出される領域を白色とみなして空白のラインと判定することにより、読取った画像データのＸ方向およびＹ方向の画素のラインが空白のラインか否かを判定する。なお、本実施例では、Ｘ方向を横方向、Ｙ方向を縦方向という。
【００１９】
平行方向判定部としての水平方向判定部１０２４は、空白ライン判定部１０２２が検出した空白のライン（空白列）に基づいて原稿に記載された文字列と平行となる行間の延伸方向を検出するものである。水平方向判定部１０２４は、空白ライン判定部１０２２が空白ラインとして判定したラインが横方向または縦方向のいずれで連続しているかを調べ、連続している方向を文字列の行間が延伸する方向として判定する。なお、本実施例では、文字列の行間が延伸する方向を水平方向という。
【００２０】
文字列領域判定部１０２３は、文字列の開始位置および終了位置を検出するものである。この文字列領域判定部１０２３は、水平方向判定部１０２４が判定した文字列の行間が延伸する方向において、色判定部１０２１により単色の画素および白色の画素のみが検出されるラインを文字列のラインと判定し、その文字列のラインにおける文字領域の開始座標を開始位置とし、終了座標を終了位置として検出する。なお、本実施例では、座標を画像データの端部（例えば、左端部）から画素の位置とする。
【００２１】
垂直方向判定部１０２５は、文字列領域判定部１０２３が検出した文字列の開始位置および終了位置に基づいて原稿の向きを検出するものである。この垂直方向判定部１０２５は、文字列領域判定部１０２３が検出した開始座標および終了座標のばらつき度を算出し、ばらつき度が小さく、一定した位置になっている方を文字列の始端として判定する。なお、本実施例では、文字列の行間が延伸する方向と直交する方向を垂直方向という。
【００２２】
画像回転部１０２６は、水平方向判定部１０２４が検出した文字列の行間の延伸方向および垂直方向判定部１０２５が検出した原稿の向きに基づいて画像読取部１０２０が生成した原稿の画像データを回転させるものである。この画像回転部１０２６は、水平方向判定部１０２４および垂直方向判定部１０２５が判定した方向および角度に従って画像データを回転させる。
このように構成された画像形成装置は、スキャナ部１０２で読取った原稿の画像データに基づいて原稿の向きを判定する原稿向き判定処理を行う。
【００２３】
上述した構成の作用について説明する。
画像形成装置が行う原稿向き判定処理を図３の第１の実施例における原稿向き判定処理の流れを示すフローチャートの図中Ｓで表されるステップに従って図１および図２を参照しながら説明する。
まず、利用者は、画像形成装置１０のスキャナ部１０２の原稿載置台１０２８またはＡＤＦ１０２９に文字が記載された原稿を載置し、操作部１０１で原稿の読取りを開始する操作を行うものとし、画像形成装置１０が原稿の読取り動作を開始する。
【００２４】
なお、本実施例において、読取る原稿は文字列が横方向に延伸するように配置されている横書き原稿であるものとして説明する。これは、一般的に原稿は横書きのものが多いためである。
Ｓ１０１：スキャナ部１０２の画像読取部１０２０は、原稿を読取り、原稿の画像データを生成する。
【００２５】
Ｓ１０２：色判定部１０２１は、画像読取部１０２０で読み取った原稿の画像データの画素の色を判定する。空白ライン判定部１０２２は、色判定部１０２１が判定した色に基づいて空白のラインか否かを判定し、画像データの縦方向および横方向のそれぞれで空白ラインを検出する空白ライン検出処理を行う。
例えば、色判定部１０２１は、図６に示すように、空白ラインの検出を行う。図６（ａ）は横ラインの１、２、５ライン目が空白であり、３、４ライン目が空白でないと判定した結果を表している。
なお、空白ライン検出処理の詳細は後述する。
【００２６】
Ｓ１０３：水平方向判定部１０２４は、空白ラインが連続して現れるライン数（空白ラインのまとまりのライン数）のばらつきを縦方向および横方向のそれぞれで求め、横方向のばらつきと縦方向のばらつきとを比較し、横方向のばらつきが縦方向のばらつきより小さいと判定すると画像データの回転は必要ないため処理をＳ１０４へ移行し、縦方向のばらつきが横方向のばらつき以下と判定すると画像データを回転させるため処理をＳ１０５へ移行する。
【００２７】
例えば、水平方向判定部１０２４は、図７に示すように、横ラインに空白ラインのまとまりが５つあり、その空白ライン数が、２、３、４、３、および６である場合、母分散は１．３５６４６６となり、一方縦ラインに空白ラインのまとまりが２つあり、その空白ライン数が、１、および１０である場合、母分散は４．５となる。この場合、水平方向判定部１０２４は、横ラインの母分散が縦ラインの母分散より小さい、すなわち横方向のばらつきが縦方向のばらつきより小さいと判定し、文字列の行間の延伸方向（文字列方向）が横方向であることを検出する。
このように、水平方向判定部１０２４は、空白ラインが連続するライン数（空白ラインのまとまりのライン数）のばらつき度に基づいて文字列の行間の延伸方向を検出する。
【００２８】
Ｓ１０４：横方向のばらつきが小さいと判定した水平方向判定部１０２４は、文字列方向が水平方向であるため、画像データの回転はなしとし、処理をＳ１０６へ移行する。
Ｓ１０５：縦方向のばらつきが小さいと判定した水平方向判定部１０２４は、文字列方向が垂直方向であるため、画像データは９０度の回転（例えば、時計回りの方向に９０度）が必要とし、処理をＳ１０６へ移行する。なお、本実施例では、後述する文字列領域検出処理を行うため、画像回転部１０２６により一時的に画像データを９０度の回転させるものとする。
【００２９】
本実施例では、Ｓ１０３におけるばらつきの判定で、ばらつき度を求めるために、母分散を使用している。なお、ばらつきを判定することができる手段であれば母分散でなくても良い。また、図９に示すように、空白ラインのまとまりの最初と最後は単純な余白領域であることが多いため、余白領域を除外するため、空白ラインのまとまりの平均値よりも極端に大きい（例えば、平均値から所定数大きい）領域は、ばらつきを調べる対象から外すものとする。さらに、ばらつきを判定する母数が横方向または縦方向のいずれか一方において極端に少ない場合は、誤検出としてばらつきが大きいものとして扱うものとする。
【００３０】
Ｓ１０６：文字列領域判定部１０２３は、Ｓ１０２において空白ライン判定部１０２２が求めた文字列の延伸方向における文字列の開始座標と終了座標を検出する文字列領域検出処理を行う。
Ｓ１０７：垂直方向判定部１０２５は、文字列領域判定部１０２３が検出した開始座標と終了座標のばらつきをそれぞれ求め、開始座標のばらつきが終了座標のばらつきより小さいと判定すると処理をＳ１０８へ移行し、開始座標のばらつきが終了座標のばらつき以上であると判定すると処理をＳ１０９へ移行する。
【００３１】
例えば、垂直方向判定部１０２５は、図８に示すように、文字列領域判定部１０２３が検出した開始座標と終了座標の母分散をそれぞれ求め、開始座標の母分散が２．５８４２９３、終了座標の母分散が１６４．７８５４である場合、開始座標のばらつきが終了座標のばらつきより小さいと判定する。
なお、本実施例では、Ｓ１０３におけるばらつきの判定と同様に、ばらつき度を求めるために、母分散を使用しているが、ばらつきを判定することができる手段であれば母分散でなくても良い。
【００３２】
Ｓ１０８：開始座標のばらつきが終了座標のばらつきより小さいと判定した垂直方向判定部１０２５は、開始座標が実際の文字列の開始側（例えば、左側）であるため、画像データの回転はなしとし、処理をＳ１１０へ移行する。
Ｓ１０９：開始座標のばらつきが終了座標のばらつき以上であると判定した垂直方向判定部１０２５は、終了座標が実際の文字列の開始側（例えば、左側）であるため、画像データは１８０度の回転が必要とし、処理をＳ１１０へ移行する。
このように、垂直方向判定部１０２５は、文字列領域判定部１０２３が検出した開始位置および終了位置のばらつき度に基づいて原稿の向きを検出する。
【００３３】
Ｓ１１０：画像回転部１０２６は、Ｓ１０４、Ｓ１０５、Ｓ１０８、Ｓ１０９において水平方向判定部１０２４および垂直方向判定部１０２５が判定した角度の合計角度に従って画像読取部１０２０が読み取った画像データを回転（例えば、時計回りの方向に回転）させる。
Ｓ１１１：操作部１０１のプレビュー画像生成部１０１１は、画像回転部１０２６により回転された画像データをプレビュー画面としてオペレーションパネル１０１０に表示し、画像の向きが正しいことを利用者に確認して本処理を終了する。
【００３４】
次に、空白ライン判定部が行う空白ライン検出処理を図４の第１の実施例における空白ライン検出処理の流れを示すフローチャートの図中Ｓで表されるステップに従って図１および図２を参照しながら説明する。なお、この空白ライン検出処理は図３のＳ１０２において行われる処理である。
【００３５】
Ｓ２０１：空白ライン判定部１０２２は、画像読取部１０２０が読み取った原稿の画像データに空白ラインが有るか否かを調べるため、画像データを調べる方向を横方向（例えば、画像データの左端の画素から右端の画素に向かう方向）とする。
Ｓ２０２：空白ライン判定部１０２２は、画像データのラインの先頭画素が白色か否かを判定し、白色であると判定すると処理をＳ２０３へ移行し、白色でないと判定すると処理をＳ２０６へ移行する。
【００３６】
Ｓ２０３：空白ライン判定部１０２２は、次の画素が白色か否かを判定し、白色であると判定すると処理をＳ２０４へ移行し、白色でないと判定すると処理をＳ２０６へ移行する。
Ｓ２０４：空白ライン判定部１０２２は、当該ラインの最後の画素まで確認したか否かを判定し、最後の画素まで確認したと判定すると処理をＳ２０５へ移行し、最後の画素まで確認していないと判定すると次の画素を調べるために処理をＳ２０３へ移行する。
【００３７】
Ｓ２０５：最後の画素まで確認したと判定した空白ライン判定部１０２２は、当該ラインは空白ラインであると判定して記憶部に記憶し、処理をＳ２１４へ移行する。
このように、空白ライン判定部１０２２は、色判定部１０２１が白色と判定した画素のみが並ぶ画素列と、色判定部１０２１が白色でないと判定された色の画素であって当該色の画素が所定数を超えて連続して並んでいない画素列とを空白ライン（空白列）と判定する。
【００３８】
Ｓ２０６：一方、Ｓ２０２またはＳ２０３において、画素が白色でないと判定した空白ライン判定部１０２２は、当該画素の色を一時的に記憶部に記憶する。
Ｓ２０７：空白ライン判定部１０２２は、変数Ｃｏｕｎｔを「１」に初期化する。
Ｓ２０８：空白ライン判定部１０２２は、変数Ｃｏｕｎｔが５以上になったか否かを判定し、５以上になったと判定すると文字列領域を検出したとして処理をＳ２１３へ移行し、５未満であると判定すると処理をＳ２０９へ移行する。
【００３９】
Ｓ２０９：変数Ｃｏｕｎｔが５未満であると判定した空白ライン判定部１０２２は、当該ラインの最後の画素まで確認したか否かを判定し、最後の画素まで確認したと判定すると当該ラインは空白ラインであると判定するため処理をＳ２０５へ移行し、最後の画素まで確認していないと判定すると次の画素を調べるために処理をＳ２１０へ移行する。
Ｓ２１０：空白ライン判定部１０２２は、次の画素の色を調べ、記憶部に一時的に記憶した前の画素の色と一致するか否かを判定し、一致すると判定すると処理をＳ２１１へ移行し、一致しないと判定すると処理を２１２へ移行する。
【００４０】
Ｓ２１１：調べた画素の色と前の画素の色とが一致すると判定した空白ライン判定部１０２２は、変数Ｃｏｕｎｔに「１」を加算してＳ２０８へ処理を移行する。
Ｓ２１２：調べた画素の色と前の画素の色とが一致しないと判定した空白ライン判定部１０２２は、白色の画素が現れるまで画像データの画素を読み飛ばし、処理をＳ２０４へ戻す。
【００４１】
Ｓ２１３：Ｓ２０８において、変数Ｃｏｕｎｔが５以上になったと判定した空白ライン判定部１０２２は、文字列領域を検出したと判断し、空白ラインでないと判定して記憶部に記憶する。
Ｓ２１４：１ラインの判定を完了した空白ライン判定部１０２２は、次のラインが有るか否かを判定し、有ると判定すると処理をＳ２１５へ移行し、無いと判定すると処理をＳ２１６へ移行する。
【００４２】
Ｓ２１５：次のラインが有ると判定した空白ライン判定部１０２２は、調べるラインを次のラインとして処理をＳ２０２へ戻す。
Ｓ２１６：次のラインが無いと判定した空白ライン判定部１０２２は、調べていたラインは横方向か否かを判定し、横方向であると判定すると縦方向のラインを調べるため処理をＳ２１７へ移行し、横方向でない、即ち縦方向であると判定すると本処理を終了する。
Ｓ２１７：調べていたラインは横方向であると判定した空白ライン判定部１０２２は、調べる画像データのラインの方向を縦方向に変更して処理をＳ２０２へ戻す。
【００４３】
このようにして空白ライン判定部１０２２は、原稿の画像データの横方向および縦方向において空白ラインの存否を検出する。
例えば、図１０に示す原稿の画像データの場合、空白ライン判定部１０２２は、横方向に延伸するラインのうち、１〜４ライン、１０〜１５ラインを空白ラインと判定し、５〜９ラインを空白でないラインと判定し、また縦方向に延伸するラインのうち、１〜４ライン、１１〜１４ラインを空白ラインと判定し、５〜１０ラインを空白でないラインと判定する。
【００４４】
なお、Ｓ２０８において、変数Ｃｏｕｎｔが閾値としての５以上になったか否かを判定するようにしているが、閾値は「５」に限られることなく、文字サイズが小さければ連続で単色が並ぶ数が少なくなったり、文字サイズが大きければ連続で単色が並ぶ数が多くなったりするため、文字を使用する環境に応じて最適な閾値に替えることにより空白ラインの検出精度を向上させることができる。また、画像読取部１０２０で原稿を読み取る解像度が大きい場合に閾値を大きく、解像度が小さい場合に閾値を小さくし、原稿を読み取る解像度に応じて最適な閾値に替えることにより空白ラインの検出精度を向上させることができる。
【００４５】
また、Ｓ２１２において、白色の画素が現れるまで画像データの画素を読み飛ばすようにしているため、イメージ画像等の複数の色を使用した原稿の領域を無視して空白ラインの判定を行うことができる。
次に、文字列領域判定部が行う文字列領域検出処理を図５の第１の実施例における文字列領域検出処理の流れを示すフローチャートの図中Ｓで表されるステップに従って図１および図２を参照しながら説明する。なお、この文字列領域検出処理は図３のＳ１０６において行われる処理である。なお、本処理においても画像データを調べる方向を横方向（例えば、画像データの左端の画素から右端の画素に向かう方向）とする。
【００４６】
Ｓ３０１：文字列領域判定部１０２３は、画像読取部１０２０が読み取った原稿の画像データのラインの先頭画素が白色か否かを判定し、白色であると判定すると処理をＳ３０２へ移行し、白色でないと判定すると処理をＳ３０４へ移行する。
Ｓ３０２：文字列領域判定部１０２３は、次の画素が白色か否かを判定し、白色であると判定すると処理をＳ３０３へ移行し、白色でないと判定すると処理をＳ３０４へ移行する。
【００４７】
Ｓ３０３：文字列領域判定部１０２３は、当該ラインの最後の画素まで確認したか否かを判定し、最後の画素まで確認したと判定すると処理をＳ３１７へ移行し、最後の画素まで確認していないと判定すると次の画素を調べるために処理をＳ３０２へ移行する。
Ｓ３０４：一方、Ｓ３０１またはＳ３０２において画素が白色でないと判定した文字列領域判定部１０２３は、当該画素の色を記憶部に一時的に記憶する。
Ｓ３０５：文字列領域判定部１０２３は、変数Ｃｏｕｎｔを「１」に初期化する。
【００４８】
Ｓ３０６：文字列領域判定部１０２３は、変数Ｃｏｕｎｔが５以上になったか否かを判定し、５以上になったと判定すると文字列領域を検出したとして処理をＳ３０７へ移行し、５未満であると判定すると処理をＳ３０９へ移行する。
Ｓ３０７：変数Ｃｏｕｎｔが５以上になったと判定した文字列領域判定部１０２３は、文字列の開始と判断できるため、文字列の開始座標が既に記憶部に記憶されているか否かを判定し、記憶されていると判定すると処理をＳ３０９へ移行し、記憶されていないと判定すると処理をＳ３０８へ移行する。
【００４９】
Ｓ３０８：文字列の開始座標が記憶部に記憶されていないと判定した文字列領域判定部１０２３は、当該画素から「変数Ｃｏｕｎｔ−１」の値だけ前の画素の位置を文字列の開始座標として記憶部に記憶する。
このように、文字列領域判定部１０２３は、色判定部１０２１が白色でないと判定された色の画素であって当該色の画素が所定数を超えて連続して並んでいる画素列の先頭画素を文字列の開始位置と判定する。
【００５０】
Ｓ３０９：文字列領域判定部１０２３は、当該ラインの最後の画素まで確認したか否かを判定し、最後の画素まで確認したと判定すると処理をＳ３１７へ移行し、最後の画素まで確認していないと判定すると次の画素を調べるために処理をＳ３１０へ移行する。
Ｓ３１０：文字列領域判定部１０２３は、次の画素の色を調べ、記憶部に一時的に記憶した前の画素の色と一致するか否かを判定し、一致すると判定すると処理をＳ３１１へ移行し、一致しないと判定すると処理を３１２へ移行する。
【００５１】
Ｓ３１１：調べた画素の色と前の画素の色とが一致すると判定した文字列領域判定部１０２３は、変数Ｃｏｕｎｔに「１」を加算してＳ３０６へ処理を移行する。
Ｓ３１２：文字列領域判定部１０２３は、文字列の開始座標が既に記憶部に記憶されているか否かを判定し、記憶されていると判定すると処理をＳ３１３へ移行し、記憶されていないと判定すると処理をＳ３１６へ移行する。
【００５２】
Ｓ３１３：文字列の開始座標が既に記憶部に記憶されていると判定した文字列領域判定部１０２３は、文字列の終了座標が既に記憶部に記憶されているか否かを判定し、記憶されていると判定すると処理をＳ３１５へ移行し、記憶されていないと判定すると処理をＳ３１４へ移行する。
Ｓ３１４：文字列の終了座標が記憶部に記憶されていないと判定した文字列領域判定部１０２３は、当該画素の位置を文字列の終了座標として記憶部に記憶し、処理をＳ３１６へ移行する。
【００５３】
Ｓ３１５：文字列の終了座標が記憶部に記憶されていると判定した文字列領域判定部１０２３は、記憶部に記憶されている文字列の終了座標を当該画素の位置に更新し、処理をＳ３１６へ移行する。
このように、文字列領域判定部１０２３は、文字列の開始位置を検出した後、文字列の画素の色と異なる色の画素を検出したとき、文字列の最終画素を文字列の終了位置と判定する。
【００５４】
Ｓ３１６：Ｓ３１２において文字列の開始座標が記憶部に記憶されていないと判定、またはＳ３１４もしくはＳ３１５において文字列の終了座標を記憶または更新した文字列領域判定部１０２３は、白色の画素が現れるまで画像データの画素を読み飛ばし、処理をＳ３０３へ戻す。
Ｓ３１７：Ｓ３０３またはＳ３０９において当該ラインの最後の画素まで確認したと判定した文字列領域判定部１０２３は、空白でないラインが未だ存在するか否かを判定し、存在すると判定すると処理をＳ３１８へ移行し、存在しないと判定すると本処理を終了する。
【００５５】
Ｓ３１８：文字列領域判定部１０２３は、次の空白でないラインを調べるため、調べるラインを次の空白でないラインに更新し、処理をＳ３０１へ戻す。
このようにして文字列領域判定部１０２３は、原稿の画像データの文字列の方向における開始座標と終了座標を検出する。
例えば、図１０に示す原稿の画像データの場合、文字列領域判定部１０２３は、縦方向における５ライン目の開始座標を「６」、終了座標を「１２」とし、６ライン目の開始座標を「５」、終了座標を「１３」として検出する。
なお、本実施例では、開始座標および終了座標を画像データの左端の画素を基準として検出するようにしたが、終了座標は画像データの右端の画素を基準として検出するようにしても良い。
【００５６】
このように、本実施例では、画像読取部１０２０が読み取った原稿の画像データの色情報のみを使用し、空白ライン判定部１０２２が原稿の画像データの空白ラインの延伸方向を検出して原稿の横（水平）方向を決定し、文字列領域判定部１０２３が空白ラインの延伸方向における文字列の開始位置および終了位置を検出して原稿の縦（垂直）方向を決定するようにしたことにより、画像読取部１０２０で読み取った原稿の向きを自動で判定することができる。
したがって、画像形成装置１０は、パターン辞書を有していない場合であっても、画像読取部で読み取った原稿の向きを自動で判定することができる。
【００５７】
また、画像読取部１０２０で読み取った原稿の画像データを正しい向きに回転させることができる。
以上説明したように、第１の実施例では、原稿の画像データの空白ラインの延伸方向を検出して原稿の横（水平）方向を決定するとともに、空白ラインの延伸方向における文字列の開始位置および終了位置を検出して原稿の縦（垂直）方向を決定するようにしたことにより、パターン辞書を有していない場合であっても、画像読取部で読み取った原稿の向きを自動で判定することができるという効果が得られる。
【実施例２】
【００５８】
第２の実施例は、画像形成装置が行う原稿向き判定処理において、原稿を読取る前に、原稿に記載された文字列が横書きまたは縦書きであるかの入力操作を受付けるようにしていることが第１の実施例と異なっている。
なお、第２の実施例の構成は、上述した第１の実施例と同様なので同一の符号を付してその説明を省略する。
本実施例の画像形成装置が行う原稿向き判定処理を図１１の第２の実施例における原稿向き判定処理の流れを示すフローチャートの図中Ｓで表されるステップに従って図１および図２を参照しながら説明する。
【００５９】
Ｓ４０１：まず、利用者は、画像形成装置１０で読み取る原稿の文字が横書き（横書き原稿）または縦書き（縦書き原稿）のいずれかであることを操作部１０１で指定する入力操作を行うものとし、操作部１０１は利用者の当該入力操作を受付ける。ここで、横書き原稿とは、文字列が横方向に延伸するように配置されている原稿であり、縦書き原稿とは、文字列が縦方向に延伸するように配置されている原稿である。
続いて、利用者は、画像形成装置１０のスキャナ部１０２の原稿載置台１０２８またはＡＤＦ１０２９に文字が記載された原稿を載置し、操作部１０１で原稿の読取りを開始する操作を行うものとし、画像形成装置１０が原稿の読取り動作を開始する。
【００６０】
Ｓ４０２：スキャナ部１０２の画像読取部１０２０は、原稿を読取り、原稿の画像データを生成する。
Ｓ４０３：色判定部１０２１は、画像読取部１０２０で読み取った原稿の画像データの画素の色を判定する。空白ライン判定部１０２２は、色判定部１０２１が判定した色に基づいて空白のラインか否かを判定し、画像データの縦方向および横方向のそれぞれで空白ラインを検出する空白ライン検出処理を行う。なお、この空白ライン検出処理は、図４に示す処理である。
Ｓ４０４：水平方向判定部１０２４は、Ｓ４０１において横書きまたは縦書きのいずれが入力されているかを判定し、横書きが入力されていると判定すると処理をＳ４０５へ移行し、縦書きが入力されていると判定すると処理をＳ４０８へ移行する。
【００６１】
Ｓ４０５：横書きが入力されていると判定した水平方向判定部１０２４は、空白ラインが連続して現れるライン数（空白ラインのまとまりのライン数）の発生頻度を縦方向および横方向のそれぞれで求め、横方向の最頻値と縦方向の最頻値とを比較し、横方向の最頻値が縦方向の最頻値以上であると判定すると文字列が横方向に延伸していると判断し、画像データの回転は必要ないため処理をＳ４０６へ移行し、縦方向の最頻値が横方向の最頻値より大きいと判定すると文字列が縦方向に延伸していると判断し、画像データを回転させるため処理をＳ４０７へ移行する。
【００６２】
例えば、水平方向判定部１０２４は、図１２に示すように、横ライン（横方向）に空白ラインのまとまりが６つあり、空白ライン数が４本のまとまりが「２回（度数）」、５本のまとまりが「４回（度数）」、６本のまとまりが「６回（度数）」、７本のまとまりが「１０回（度数）」、８本のまとまりが「５回（度数）」、９本のまとまりが「３回（度数）」出現したとすると、横方向の空白ライン数の最頻値は「７」となる。
【００６３】
また、縦ライン（縦方向）に空白ラインのまとまりが６つあり、空白ライン数が１本のまとまりが「２回（度数）」、２本のまとまりが「３回（度数）」、３本のまとまりが「８回（度数）」、４本のまとまりが「７回（度数）」、５本のまとまりが「４回（度数）」、６本のまとまりが「２回（度数）」出現したとすると、縦方向の空白ライン数の最頻値は「３」となる。
この場合、水平方向判定部１０２４は、横方向の最頻値が縦方向の最頻値以上であると判定し、文字列の行間の延伸方向が横方向であることを検出する。
このように、水平方向判定部１０２４は、空白ラインが連続する空白ラインのまとまりの最頻値に基づいて文字列の行間の延伸方向を検出する。
【００６４】
Ｓ４０６：水平方向判定部１０２４は、検出した文字列方向がＳ４０１において入力された文字列の方向と同じであるため、画像データの回転はなしとし、処理をＳ４０９へ移行する。
Ｓ４０７：水平方向判定部１０２４は、検出した文字列方向がＳ４０１において入力された文字列の方向と異なるため、画像データは９０度の回転（例えば、時計回りの方向に９０度）が必要とし、処理をＳ４０９へ移行する。
このように、水平方向判定部１０２４は、文字列の行間の延伸方向と、Ｓ４０１において入力された文字列の方向とに基づいて画像データの回転の要否を判定する。
【００６５】
Ｓ４０８：Ｓ４０４において、縦書きが入力されていると判定した水平方向判定部１０２４は、空白ラインが連続して現れるライン数（空白ラインのまとまりのライン数）の発生頻度を縦方向および横方向のそれぞれで求め、横方向の最頻値と縦方向の最頻値とを比較し、横方向の最頻値が縦方向の最頻値以上であると判定すると文字列が横方向に延伸していると判断し、画像データを回転させるため処理をＳ４０７へ移行し、縦方向の最頻値が横方向の最頻値より大きいと判定すると文字列が縦方向に延伸していると判断し、画像データの回転は必要ないため処理をＳ４０６へ移行する。
【００６６】
なお、図９に示すように、空白ラインのまとまりの最初と最後は単純な余白領域であることが多いため、余白領域を除外するため、空白ラインのまとまりの平均値よりも極端に大きい（例えば、平均値から所定数大きい）領域は、最頻値を調べる対象から外すものとする。
Ｓ４０９〜Ｓ４１４：図３に示すＳ１０６〜Ｓ１１１と同様の処理なのでその説明を省略する。
【００６７】
また、空白ライン検出処理および文字列領域検出処理は、第１の実施例と同様なので、その説明を省略する。
このように、本実施例では、原稿の文字が横書き（横書き原稿）または縦書き（縦書き原稿）であるかの入力操作を操作部１０１で受付けるようにしたことにより、横書き原稿または縦書き原稿のいずれについても画像読取部１０２０で読み取った原稿の向きを自動で判定することができる。
【００６８】
また、水平方向判定部１０２４が、空白ラインが連続して現れるライン数（空白ラインのまとまりのライン数）の横方向の最頻値と縦方向の最頻値とを比較し、最頻値が大きい方向（空白ラインのまとまりのライン数が多い方向）を文字列の延伸方向と判定するようにしたことにより、空白ラインが連続して現れるライン数のばらつき度に顕著な差が無い場合であっても文字列の延伸方向を確実に判定することができる。
【００６９】
すなわち、文字と文字との間の空白ライン数が略一定して現れる原稿（同じ大きさの文字が同じ間隔を保持して配置された原稿等）であっても文字列と文字列との間の空白ラインを検出することができ、文字列の延伸方向を確実に判定することができる。
以上説明したように、第２の実施例では、第１の実施例の効果に加え、横書き原稿または縦書き原稿のいずれについても画像読取部で読み取った原稿の向きを自動で判定することができるという効果が得られる。
【００７０】
また、文字と文字との間の空白ライン数が略一定して現れる原稿であっても文字列と文字列との間の空白ライン数を検出することができ、文字列の延伸方向を確実に判定することができるという効果が得られる。
なお、第１の実施例および第２の実施例では、画像形成装置をスキャナ部およびプリンタ部を有するものとして説明したが、それに限られることなく、プリンタ部を有しないスキャナ装置、ファクシミリ装置、複合機（ＭＦＰ）等としても良い。
【符号の説明】
【００７１】
１０  画像形成装置
１００  プリンタ部
１０１  操作部
１０２  スキャナ部
１１１  画像形成ユニット
１１２  転写ローラ
１１３  定着部
１１５、１１６  給紙トレイ
１０００  印刷制御部
１０１０  オペレーションパネル
１０１１  プレビュー画像生成部
１０２０  画像読取部
１０２１  色判定部
１０２２  空白ライン判定部
１０２３  文字列領域判定部
１０２４  水平方向判定部
１０２５  垂直方向判定部
１０２６  画像回転部
１０２８  原稿載置台
１０２９  ＡＤＦ
【図１】
0006452577.tif 000002
【図２】
0006452577.tif 000003
【図３】
0006452577.tif 000004
【図４】
0006452577.tif 000005
【図５】
0006452577.tif 000006
【図６】
0006452577.tif 000007
【図７】
0006452577.tif 000008
【図８】
0006452577.tif 000009
【図９】
0006452577.tif 000010
【図１０】
0006452577.tif 000011
【図１１】
0006452577.tif 000012
【図１２】
0006452577.tif 000013