(57)【要約】【課題】複雑な演算を必要とせずに、スキュー検知及びスキュー補正を行うことができる画像形成装置を提供する。【解決手段】実施形態に係る画像形成装置は、画像読取部で読み取った画像データを一時的に記憶するページメモリと、画像データを２値化する２値化回路と、２値化した画像データから文字列の存在範囲にある文字画素をカウントして累積値を副走査方向のライン毎に算出し、文字列の存在範囲内で最初のラインと最初のラインの累積値とを表す第１の座標と、文字列の存在範囲内で最大の累積値と最大の累積値を有するラインとを表す第２の座標の位置をもとに画像データのスキュー量を算出するスキュー検出部と、ページメモリに記憶した画像データをスキュー量に応じて回転処理して出力するスキュー補正部と、を具備する。【選択図】図３
2012253776.tif 000002
【特許請求の範囲】
【請求項１】
原稿の画像を読み取る画像読取部と、
前記画像読取部で読み取った画像データを一時的に記憶するページメモリと、
前記画像読取部で読み取った画像データを２値化する２値化回路と、
前記２値化した画像データから文字列の存在範囲にある文字画素をカウントして累積値を副走査方向のライン毎に算出し、前記文字列の存在範囲内で最初のラインと前記最初のラインの前記累積値とを表す第１の座標と、前記文字列の存在範囲内で最大の累積値と前記最大の累積値を有するラインとを表す第２の座標の位置をもとに前記画像データのスキュー量を算出するスキュー検出部と、
前記ページメモリに記憶した画像データを前記算出したスキュー量に応じて回転処理し、スキュー補正して出力するスキュー補正部と、
前記スキュー補正部でスキュー補正した画像データを出力する出力部と、
を具備した画像形成装置。
【請求項２】
前記スキュー検出部は、
前記２値化回路によって２値化した画像データから文字列の存在範囲にある文字画素をカウントして累積値を副走査方向のライン毎に算出する累積算出部と、
前記文字列の存在範囲内で最初のラインと前記最初のラインの前記累積値とを表す第１の座標を算出する第１の座標算出部と、
前記文字列の存在範囲内で最大の累積値と前記最大の累積値を有するラインとを表す第２の座標を算出する第２の座標算出部と、
前記第１の座標と前記第２の座標の位置から前記原稿の傾きを表すスキュー量を算出するスキュー量算出部と、
を含む請求項1記載の画像形成装置。
【請求項３】
前記累積算出部は、予め設定した行の文字列の画像データをもとに前記文字画素の累積値を副走査方向のライン毎に算出する請求項1記載の画像形成装置。
【請求項４】
前記スキュー量算出部は、前記第１の座標の前記累積値をＸ１、そのライン数をＹ１とし、前記第２の座標の前記累積値をＸ２、そのライン数をＹ２として、（Ｙ２−Ｙ１）／（Ｘ２−Ｘ１）から前記スキュー量を算出する請求項２記載の画像形成装置。
【請求項５】
前記スキュー量算出部は、文字列が存在する最初のラインにおいて、主走査方向の始端部分で文字画素が検出された場合と、終端部分で文字画素が検出された場合とで、前記画像データのスキューの向きを判断し、向きを示すデータ算出する請求項２記載の画像形成装置。
【請求項６】
画像読取部で読み取った原稿の画像を処理するための画像処理プログラムであって、コンピュータに、
前記画像読取部で読み取った画像データをページメモリに一時的に記憶する機能と、
前記画像読取部で読み取った画像を２値化する２値化機能と、
前記２値化した画像データから文字列の存在範囲にある文字画素をカウントして累積値を副走査方向のライン毎に算出する累積機能と、
前記文字列の存在範囲内で最初のラインと前記最初のラインの前記累積値とを表す第１の座標と、前記文字列の存在範囲内で最大の累積値と前記最大の累積値を有するラインとを表す第２の座標を算出する座標算出機能と、
前記第１の座標と前記第２の座標の位置から前記原稿の傾きを表すスキュー量を算出するスキュー量算出機能と、
前記ページメモリに記憶した画像データを前記算出したスキュー量に応じて回転処理し、スキュー補正して出力するスキュー補正機能と、
を実現させるための画像処理プログラム。
【請求項７】
前記スキュー量算出機能は、前記第１の座標の前記累積値をＸ１、そのライン数をＹ１とし、前記第２の座標の前記累積値をＸ２、そのライン数をＹ２として、（Ｙ２−Ｙ１）／（Ｘ２−Ｘ１）から前記スキュー量を算出する請求項６記載の画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像読取り時の原稿の傾きに起因して発生するスキューの補正を行う画像形成装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
従来、電子写真方式の画像形成装置にあっては、画像読取部（スキャナ部）で原稿を読み取り、読み取った画像データをもとに用紙等の記録媒体に画像を形成するようにしている。ところで、スキャナ部によって画像の読み取りを行う場合、原稿台の上に置かれた原稿が傾いていると、原稿の画像は傾いたまま読み取られてしまう。このため、読み取った画像の傾きを補正（スキュー補正）するようにした画像処理装置がある（例えば、特許文献１参照）。
【０００３】
しかしながら、従来のスキュー補正では、ハフ変換処理により２値画像を曲座標空間に変換するなど、演算量が多くなるという欠点（問題点）がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１１１３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
発明が解決しようとする課題は、ハフ変換処理のような複雑な演算を必要とせずに、スキュー検知及びスキュー補正を行うことができる画像形成装置及び画像処理プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
実施形態に係る画像形成装置は、原稿の画像を読み取る画像読取部と、前記画像読取部で読み取った画像データを一時的に記憶するページメモリと、前記画像読取部で読み取った画像データを２値化する２値化回路と、前記２値化した画像データから文字列の存在範囲にある文字画素をカウントして累積値を副走査方向のライン毎に算出し、前記文字列の存在範囲内で最初のラインと前記最初のラインの前記累積値とを表す第１の座標と、前記文字列の存在範囲内で最大の累積値と前記最大の累積値を有するラインとを表す第２の座標の位置をもとに前記画像データのスキュー量を算出するスキュー検出部と、前記ページメモリに記憶した画像データを前記算出したスキュー量に応じて回転処理し、スキュー補正して出力するスキュー補正部と、前記スキュー補正部でスキュー補正した画像データを出力する出力部と、を具備する。
【図面の簡単な説明】
【０００７】
【図１】一実施形態に係る画像形成装置の構成図。
【図２】一実施形態に係る画像形成装置の制御系の構成を示すブロック図。
【図３】一実施形態における画像処理部の構成を示すブロック図。
【図４】一実施形態において読み取った原稿の原画像と２値化処理した画像を示す説明図。
【図５】一実施形態における累積算出部の動作を示す説明図。
【図６】一実施形態におけるスキューの有無に対応した２値化画像と累積値のグラフを示す説明図。
【図７】一実施形態において累積算出部で算出した累積値のグラフを拡大して示す説明図。
【図８】一実施形態におけるスキュー補正部でのスキュー補正の動作の一例を示す説明図。
【図９】一実施形態における画像処理部でのスキュー補正の動作を示すフローチャート。
【発明を実施するための形態】
【０００８】
以下、発明を実施するための実施形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付す。
【０００９】
（第１の実施形態）
図１は、一実施形態に係る画像形成装置の構成図である。図１において、画像形成装置１０は例えば複合機であるＭＦＰ（Multi-Function Peripherals）や、プリンタ、複写機等である。以下の説明ではＭＦＰを例に説明する。
【００１０】
画像形成装置（ＭＦＰ）１０の上部には、自動原稿送り装置（ＡＤＦ）１１、透過性の原稿台１２及び操作パネル１３を備えている。またＭＦＰ１０の下部には複数の給紙装置１４を設け、ＭＦＰ１０の側面には、用紙を積載するトレイ１５を設けている。
【００１１】
またＭＦＰ１０は、ＡＤＦ１２の下部に画像読取部であるスキャナ部２０と、出力部であるプリンタ部３０を備えている。スキャナ部２０は、原稿の画像を読み取るものであり、プリンタ部３０は、読み取った画像データをもとに用紙等の記録媒体に画像を形成する。尚、読み取った画像データをＰＣ（personal computer）などの出力装置に取り込むようにしてもよい。また以下の説明では、記録媒体として用紙Ｓを使用する例を述べる。
【００１２】
スキャナ部２０は画像読取部を構成し、第１のキャリッジ２１、第２のキャリッジ２３、集光レンズ２４、ＣＣＤ（Charge Coupled Device）ラインセンサ２５、及びレーザユニット２６を有する。第１のキャリッジ２１は、原稿を露光走査する光源２２と反射ミラーを含み、原稿で反射された光を第２のキャリッジ２３に向けて反射する。第２のキャリッジ２３は反射ミラーを含み、第１のキャリッジ２１からの光を集光レンズ２４に向けて反射する。
【００１３】
スキャナ部２０は、ＡＤＦ１１によって送られてくる原稿、又は原稿台１２に置かれた原稿をスキャンして読み取るため、キャリッジ２１に設けた露光ランプ２２からの光を原稿台１２の下方から原稿に照射する。そして原稿からの反射光を第２のキャリッジ２３の反射ミラー及び集光レンズ２４を介してＣＣＤラインセンサ２５に取り込む。
【００１４】
尚、スキャナ部２０は、ＡＤＦ１１によって搬送される原稿を読み取るときは、第１のキャリッジ２１を読み取り窓２７の位置に固定し、第２のキャリッジ２３も固定した位置にある。また、原稿台１２に置かれた原稿を読み取る場合は、第１のキャリッジ２１、第２のキャリッジ２３を原稿台１２と平行に所定の範囲内で移動する。
【００１５】
ＣＣＤラインセンサ（イメージセンサ）２５は、受光面に青色、緑色、赤色の色フィルタを配置した３つのラインセンサと、各ラインセンサに対応して設けたシフトレジスタを含む。各ラインセンサに入射した光は、光電変換され画像情報を出力する。画像情報はアナログ信号として出力され、アナログ信号はデジタル信号に変換され、さらに画像処理されて画像データ（ＲＧＢ信号）を生成する。画像データは、レーザユニット２６に供給され、レーザユニット２６からは、画像データに従ってレーザビームを生成する。
【００１６】
プリンタ部３０は、回転可能な感光体ドラム３１を有する。感光体ドラム３１は像担持体であり、感光体ドラム３１の周囲には、回転方向に沿って帯電装置３２、現像装置３３、転写装置３４、クリーニング装置３５、除電ランプ３６を有する。レーザユニット２６からのレーザビームは、感光体ドラム３１に照射され、感光体ドラム３１の外周面には、原稿の画像情報に対応した静電潜像が形成される。
【００１７】
画像形成が始まると、帯電装置３２は所定の放電位置で放電し、回転する感光体ドラム３１の外周面に電荷を軸方向に均一に帯電させる。次に、感光体ドラム３１に対してレーザユニット２６からレーザビームが照射され、感光体ドラム３１の外周面に静電潜像が形成され、かつ保持される。
【００１８】
感光体ドラム３１の外周面には、現像装置３３から現像剤（例えばトナー）が提供され、静電潜像はトナー像に変換され現像される。感光体ドラム３１の外周面に形成されたトナー像は、転写装置３４によって用紙Ｓに静電的に転写される。用紙Ｓは給紙装置１４から搬送路３７１を経由して搬送される。感光体ドラム３１上に残った紙カス等の異物は、クリーニング装置３５によって除去する。除電ランプ３６は、感光体ドラム３１の外周面の残留電荷を除去する。
【００１９】
尚、プリンタ部３０の構成は、図示した例に限らず、他の方式、例えば中間転写ベルトを使用した方式などを用いることもできる。また図１では、画像形成部を簡略化して示しているが、カラー画像を形成する場合は、ブラック、マゼンタ、シアン、イエロー等のカラー画像形成部を有する。またＭＦＰ１０は、ＰＣ（Personal computer）等から入力されたプリントデータを処理してプリンタ部３０に出力し印刷することもできる。
【００２０】
プリンタ部３０によってトナー像が転写された用紙Ｓは、搬送路３７２を介して定着装置３８に搬送される。定着装置３８は、定着ローラと加圧ローラを対向して配置し、定着ローラと加圧ローラ間に用紙Ｓを搬送することで、用紙Ｓに転写されたトナー像を用紙Ｓに定着する。トナー像が定着され画像形成が完了した用紙Ｓは、排紙ローラ３９によってトレイ１５に排出する。
【００２１】
図２は、実施形態に係る画像形成装置（ＭＦＰ）１０の制御系の構成を示すブロック図である。図２において、ＭＦＰ１０は、主制御部４０と、操作パネル１３と、スキャナ部２０、及びプリンタ部３０を有している。ＭＦＰ１０の制御系は、主制御部４０内のメインＣＰＵ４００と、操作パネル１３のパネルＣＰＵ１３０と、スキャナ部２０のスキャナＣＰＵ２００、及びプリンタ部３０のプリンタＣＰＵ３００の複数のＣＰＵを含む。
【００２２】
主制御部４０は、メインＣＰＵ４００、ＲＯＭ４０１、ＲＡＭ４０２、ＮＶＲＡＭ４０３、共有ＲＡＭ４０４、ページメモリ制御部４０５、ページメモリ４０６、記憶デバイスとしてのＨＤＤ４０７、ネットワークコントローラ４０８及び画像処理部５０を含む。又、１０１は画像データバスである。
【００２３】
メインＣＰＵ４００は、ＭＦＰ１０の全体の動作を制御するものであり、かつＡＤＦ１１を制御する。ＲＯＭ４０１には、制御プログラムなどが記憶されている。ＲＡＭ４０２は、一時的にデータを記憶するものである。ＮＶＲＡＭ４０３は、不揮発性のメモリであり、電源を遮断しても記憶データを保持する。共有ＲＡＭ４０４は、メインＣＰＵ４００とプリンタＣＰＵ３００との間で、双方向通信を行うために用いる。
【００２４】
画像処理部５０は、ページメモリ制御部４０５を制御してページメモリ４０６への画像データの記憶、及び読出しを制御する。これにより、画像の拡大／縮小といった画像変換処理を行う。ページメモリ４０６は、複数ページ分の画像情報を記憶できる領域を有し、スキャナ部２０からの画像情報を１ページ分ごとに記憶可能である。また画像処理部５０は、スキャナ部２０で読み取った画像が傾いているときにスキュー補正を行う（スキュー補正についての詳細は後述する）。
【００２５】
ネットワークコントローラ４０８は、ネットワークに接続され、ＭＦＰ１０は、ネットワークコントローラ４０８を介して外部機器、例えばサーバや、ＰＣ（Personal Computer）に接続可能である。
【００２６】
又、ＨＤＤ４０７は、スキャナ部２０で読み取った画像データや、ＰＣからの画像データ（文書データや描画イメージデータ等）を圧縮して記憶するものである。ＨＤＤ４０７に記憶された画像データは、画像処理部５０に入力されて各種の画像処理が施され、プリンタ部３０によって用紙に印刷される。
【００２７】
操作パネル１３は、メインＣＰＵ４００に接続されたパネルＣＰＵ１３０と、各種の操作キー１３１と液晶等から成る表示部１３２を有し、操作キー１３１は、印刷部数の指示等を行うテンキー等を含む。表示部１３２はタッチパネル機能を有し、用紙サイズ、印刷倍率等の各種の指示を入力する。
【００２８】
スキャナ部２０は、スキャナＣＰＵ２００と、画像補正部２０１、イメージセンサ２５を駆動するＣＣＤドライバ２０２等によって構成されている。ＣＣＤドライバ２０２は、イメージセンサ２５を駆動して原稿の画像を読み取り、画像データに変換する。画像補正部２０１は、イメージセンサ２５から出力されるＲ、Ｇ、Ｂのアナログ信号をそれぞれデジタル信号に変換するＡ／Ｄ変換回路や、シェーディングスキュー補正部、及びシェーディングスキュー補正部からの補正されたデジタル信号を一旦記憶するラインメモリ等から構成されている。
【００２９】
プリンタ部３０は、プリンタＣＰＵ３００、レーザユニット２６のレーザを駆動するレーザドライバ３０１、用紙Ｓの搬送を制御する搬送制御部３０２、及び帯電器、現像器、転写器等を制御する制御部３０３を有している。
【００３０】
メインＣＰＵ４００は、プリンタＣＰＵ３００と共有ＲＡＭ（ランダム・アクセス・メモリ）４０４を介して双方向通信を行い、メインＣＰＵ４００は動作指示を出し、プリンタＣＰＵ３００は状態ステータスを返す。また、プリンタＣＰＵ３００とスキャナＣＰＵ２００はシリアル通信を行い、プリンタＣＰＵ３００は動作指示を出し、スキャナＣＰＵ２００は状態ステータスを返す。なお、画像処理部５０、ページメモリ４０６、ネットワークコントローラ４０８、画像補正部２０１、レーザドライバ３０１は、画像データバス１０１によって接続されている。
【００３１】
図３は、実施形態の主要部である画像処理部５０の構成を示すブロック図である。画像処理部５０は、スキャナ部２０によって原稿の画像が傾いた状態で読み取られたときに、読み取った画像のスキュー（傾き）を補正する機能を備える。
【００３２】
図３において、スキャナ部２０は、読み取った原稿の画像データ（ＲＧＢ信号）を生成する。ＲＧＢ信号は、ページメモリ４０６に記憶される。ページメモリ４０６は、複数ページ分の画像データを記憶できる領域を有し、スキャナ部２０からの画像データを１ページ単位で記憶することができる。
【００３３】
またＲＧＢ信号は、２値化回路５１に供給される。２値化回路５１の出力はスキュー検出部５２に供給される。スキュー検出部５２は、文字領域の画素（黒画素）を累積する累積算出部５３と、累積値が存在するときの最初のラインとその累積値を抽出する第１の座標抽出部５４と、累積最大値と累積最大値を有するラインを抽出する第２の座標抽出部５５と、第１の座標抽出部５４と第２の座標抽出部５５の抽出結果をもとに原稿のスキュー量（スキューデータ）を算出するスキュー量算出部５６とを含む。スキュー量算出部５６で算出したスキューデータはスキュー補正部５７に出力され、ページメモリ４０６に記憶された画像データの回転処理を行う。
【００３４】
以下、２値化回路５１及びスキュー検出部５２の各ブロックの動作について説明する。２値化回路５１は、入力された画像データ（ＲＧＢ信号）を２値化処理し、例えば、文字と非文字を切り分ける。即ち、画像データに対してしきい値を設定し、しきい値以上の画素値を黒画素（値１）とし、しきい値以下の画素値を白画素（値０）とする。２値化処理により、文字領域（黒画素）と非文字領域を（白画素）とに切り分けることができる。
【００３５】
図４（ａ）は、スキャナ部２０で読み取った原稿の画像（原画像）のうち、１行分の文字列を示す。原画像では文字領域（ＰＱＲ…）と、その背景の非文字領域を有し、非文字領域は白画像からグレースケール画像を含んでいる。図４（ｂ）は、原画像を２値化回路５１によって２値化処理した画像を示す。２値化処理により、中間値をなくし黒又は白の２値の画像に変換される。
【００３６】
図５は、累積算出部５３の動作を示す説明図である。図５では２値化画像を拡大して、主走査方向に１〜ｎ個、副走査方向に１〜ｍラインの複数の画素データとして示している。累積算出部５３では、主走査方向の１〜ｎの画素のうち、黒画素を値１とし、白画素を値０として、値１の画素が幾つあるかをライン毎にカウントする。
【００３７】
例えば図５の例では、１ライン目は８個の黒画素が存在し、２ライン目は５個の黒画素が存在する。以下同様にｍライン目までの黒画素をカウントして累積値を求める。累積結果を見ると明らかなように、文字列の最上ラインと最下ラインで累積値が大きくなっている。尚、図５では文字の例としてアルファベットを示しているが、漢字等においても、最上ラインで最も累積値が大きくなる傾向にある。
【００３８】
図６は、１行の文字列の２値化画像について、累積算出部５３で算出した黒画素（値１）の累積値を示す図である。２値化処理後、副走査方向のライン毎に黒画素の累積値を算出すると、図６の右のグラフのようになる。このグラフを見ると、副走査方向に文字が存在する範囲を抽出することができる。
【００３９】
図６（ａ）は、原稿がスキューなしのときの２値化画像と累積値のグラフを示し、（ｂ）は原稿が右下りにスキューしたときの２値化画像累積値のグラフを示し、（ｃ）は原稿が右上りにスキューしたときの２値化画像と累積値のグラフを示す。
【００４０】
図６（ａ）に示すように、スキューなしのときは、累積算出部５３で算出した累積値は、文字列の最初のラインと最終のラインで累積値が大きく、中間のラインでは累積値が小さくなっている。また図６（ｂ）に示すように、原稿が右下りにスキューしたときの累積値は、文字列の最初のラインで累積値が最も小さく、中間のライン付近で最も累積値が大きくなり、最終ラインに行くにしたがって累積値が小さくなっている。また図６（ｃ）に示すように、原稿が右上りにスキューしたときの累積値は、（ｂ）と同様に、最初のラインでは累積値が最も小さく、中間のライン付近で最も累積値が大きくなり、最終ラインに行くにしたがって累積値が小さくなっている。
【００４１】
つまり、図６（ａ）と図６（ｂ，ｃ）の右グラフを比較すると、スキューの有無により累積結果が異なる。また、文字列が存在する範囲内での累積値の最大値（円で示す）の位置が、スキューの有無によって異なることが分かる。
【００４２】
図７は、累積算出部５３で算出した累積値のグラフを拡大して示す図であり、第１の座標抽出部５４と第２の座標抽出部５５の動作を説明する図である。
【００４３】
図７（ａ）は、スキューなしの累積値のグラフであり、図７（ｂ）は原稿が右下がりにスキューしているときの累積値のグラフであり、図７（ｃ）は原稿が右上りにスキューしているときの累積値のグラフである。例えば、図７（ａ），（ｂ），（ｃ）の太い点線のように、文字列が存在する副走査方向のライン値を４等分に分割したとき、円Ａ１，Ａ２，Ａ３で示すように累積値が存在する最初のラインは同じであるが、その累積値は異なっている。また円Ｂ１，Ｂ２，Ｂ３で示すように累積値の最大値の存在位置が異なる。
【００４４】
第１の座標抽出部５４は、累積値が存在する最初のライン数（Ｙ１）と累積値（Ｘ１）を抽出する。したがって、スキューがないときは、図７（ａ）の円Ａ１の累積値Ｘ１とライン数Ｙ１、つまり第１の座標（Ｘ１，Ｙ１）が抽出される。
【００４５】
また原稿が右下りにスキューしたときは、図７（ｂ）の円Ａ２の累積値Ｘ１とライン数Ｙ１が抽出される。同様に原稿が右上りにスキューしたときは、図７（ｃ）の円Ａ３の累積値Ｘ１とライン数Ｙ１とが抽出される。
【００４６】
第２の座標抽出部５５は、累積最大値の座標を抽出する。原稿がスキューなしのときは、図７（ａ）で示すように、最初のラインが最大の累積値を有するため、図７（ａ）の円Ｂ１の累積値Ｘ２とライン数Ｙ２、つまり第２の座標（Ｘ２，Ｙ２）が抽出される。図７（ａ）では（Ｘ１，Ｙ１）の座標と（Ｘ２，Ｙ２）の座標は同じである。
【００４７】
また右下りにスキューしたときは、図７（ｂ）で示すように、中間部分のラインが最大の累積値を有するため、図７（ｂ）の円Ｂ２の累積値Ｘ２とライン数Ｙ２が抽出される。また右上りにスキューしたときは、図７（ｃ）で示すように、中間部分のラインが最大の累積値を有するため、図７（ｃ）の円Ｂ３の累積値Ｘ２とライン数Ｙ２が抽出される。
【００４８】
またスキュー量算出部５６は、第１の座標抽出部５４と第２の座標抽出部５５の抽出結果をもとに原稿のスキュー量（スキューデータ）を算出する。スキュー量算出部５６は、図７の特性を用いて、累積値の最大値が文字列の存在範囲のどの位置に存在するかでスキューの有無を判断し、スキュー量を算出する。
【００４９】
図７の累積値のグラフを参照するに、横軸の黒画素の累積値をＸ、縦軸の副走査方向のライン数をＹとする。このとき、図中の円Ａ１，Ａ２，Ａ３で示した箇所をそれぞれ(Ｘ１，Ｙ１)とし、円Ｂ１，Ｂ２，Ｂ３で示した箇所をそれぞれ（Ｘ２，Ｙ２）とする。(Ｘ１，Ｙ１)は文字列範囲の最初の累積値とライン数を示し、(Ｘ２，Ｙ２)は最大の累積値とライン数を示す。この値を用いて式（１）を解き、算出された値（ａ）をスキュー量とする。
【００５０】
【数１】
2012253776.tif 000003
（１）式を図７（ａ）の例に当てはめてみると、Ｘ１＝Ｘ２、Ｙ１＝Ｙ２であるため、ａ＝０となり、スキューなしとなる。図７（ｂ），（ｃ）では、Ｘ１＝２２、Ｘ２＝１８０、Ｙ１＝１３、Ｙ２＝２６であり、ａ≒０．０８となる。  
また傾き角θは、（２）式で求めることができる。
【数２】
2012253776.tif 000004
【００５１】
尚、図７（ｂ）と（ｃ）では似たような累積値のグラフが得られるが、図６（ｂ）で示すように、原稿が右下りにスキューしている場合は、主走査方向の始端部で最初の黒画素が検出され、図６（ｃ）で示すように、原稿が右上りにスキューしている場合は、主走査方向の終端部で最初の黒画素が検出される。したがって、スキュー量算出部５６では、文字列が存在する最初のラインにおいて、主走査方向の始端部分で黒画素が検出された場合は、右下りのスキューであると判断し、終端部分で黒画素が検出された場合は、右上りのスキューであると判断し、スキューの向きを示すデータを算出することができる。
【００５２】
図８は、スキュー補正部５７におけるスキュー補正動作の一例を示す説明図である。スキュー補正部５７はスキュー量算出部５６で算出したスキュー量とスキューの向きを示すデータに基づいてスキュー補正データをスキュー補正部５７に供給し、ページメモリ４０６の画像データを回転処理する。即ち、１ページ分の画像データをページメモリ４０６に取り込み、図８（ａ）に示す基準点Ｐを軸として、画像データの回転処理を行う。
【００５３】
図８（ａ）はスキューなしのときの１ページ分の画像データＤ１を示している。これに対して、図８（ｂ）のように、画像データＤ２が右下りにスキューしているときは、基準点Ｐを軸にして、画像データの傾き角θがゼロになるように、矢印Ｃ１方向に座標変換して出力する。また図８（ｃ）のように、画像データＤ３が右上りにスキューしているときは、基準点Ｐを軸にして、画像データの傾き角θがゼロになるように、矢印Ｃ２方向に座標変換して出力する。
【００５４】
図８（ａ），（ｂ），（ｃ）において、点線枠Ｅ１で示す領域は、１行分の文字列の画像を示している。スキュー量を算出する際には、最上行の文字列をもとにスキュー量を算出する。或いは、各行毎にスキュー量を算出するか、予め設定した複数の行についてスキュー量を算出し、算出したスキュー量の中で最も大きい値のもの、或いは平均値を求めて最終的なスキュー量として算出しても良い。
【００５５】
また、図８の点線枠Ｅ２で示すように、文字数が極端に少ない行については、得られる黒画素の累積値が少ないため、正確なスキュー量が検出できない。したがって、累積値の最大値が予め設定した値以下の場合は、スキュー検出の対象外とするようにしてもよい。尚、図８の例では、基準点Ｐを画像データ領域の左上の角部に設定したが、他の角部など任意の点に設定することができ、設定した基準点Ｐを中心に回転するように座標変換すればよい。
【００５６】
尚、原稿のスキュー量が大き過ぎる場合は、スキャナ部２０による読み取り可能範囲を越えるため、検出したスキュー量が予め設定した値を越える場合は、操作パネル１３の表示器１３２に警告メッセージを表示し、原稿のセッティングをし直すように促してもよい。こうしてスキュー補正した画像データは、順次プリンタ部３０によって用紙に印刷される。
【００５７】
図９は、画像処理部５０でのスキュー補正の動作を示すフローチャートである。尚、図９のフローチャートで示す動作は、ＲＯＭ４０１に記憶された制御プログラムに基づいてメインＣＰＵ４００の制御のもとに実行される。
【００５８】
図９において、動作Ａ１はスタートを示し、動作Ａ２ではスキャナ部２０によって原稿の画像を読み取る。動作Ａ３では原稿１ページ分を全て読み取ったか否かを判断し、１ページ分の読み取りが終わると動作Ａ４において、ページメモリ４０６に記憶する。
【００５９】
また動作Ａ５では、読み取った画像データを２値化処理する。次の動作Ａ６では、２値化処理した画像データの文字列が存在する副走査方向の各ラインについて、黒画素をカウントして累積値を算出する。つまり主走査方向に値１（黒画素）の画素をカウントする。動作Ａ７では、副走査方向のライン毎の累積値を算出し、路遺跡値もとにヒストグラム（図７のグラフ）を作成する。動作Ａ８では、最初の累積値Ｘ１とそのライン数Ｙ１を算出する。また動作Ａ９では、累積値の最大値Ｙ２とそのライン数Ｘ２を算出する。
【００６０】
動作Ａ１０では、（１）式によりスキュー量を算出する。尚、動作Ａ１０では、例えば予め設定した本数の行についてスキュー量を算出し、算出したスキュー量の中で最も大きい値のもの、或いは平均値を求めて最終的なスキュー量を算出する。
【００６１】
また動作Ａ１１では、動作Ａ６にて文字列が存在する最初のラインについて、主走査方向の始端部分又は終端部分のいずれにおいて黒画素が検出されたかの判断結果をもとに、スキューの向きを示すデータ算出する。そして動作Ａ１２では、スキュー量とスキューの向きを示すデータに基づくスキュー補正データによって画像データを座標変換して回転処理して出力し、動作Ａ１３で終了する。
【００６２】
以上説明した実施形態によれば、画像データに含まれる文字列の画像データをもとにスキュー補正データを生成してスキュー補正を行うことができる。したがって、ハフ変換のような複雑な演算を必要としないため、演算量を少なくすることができ、スキュー検知からスキュー補正までの処理を簡単な回路で実行することができる。
【００６３】
尚、本発明のいくつかの実施形態を述べたが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００６４】
１０…画像形成装置（ＭＦＰ）
２０…スキャナ部（画像読取部）
３０…プリンタ部（出力部）
４０…主制御部
４００…メインＣＰＵ
４０１…ＲＯＭ
４０６…ページメモリ
５０…画像処理部
５１…２値化回路
５２…スキュー検出部
５３…累積算出部
５４…第１の座標抽出部
５５…第２の座標抽出部
５６…スキュー量算出部
５７…スキュー補正部
【図１】
2012253776.tif 000005
【図２】
2012253776.tif 000006
【図３】
2012253776.tif 000007
【図５】
2012253776.tif 000008
【図６】
2012253776.tif 000009
【図７】
2012253776.tif 000010
【図８】
2012253776.tif 000011
【図９】
2012253776.tif 000012
【図４】
2012253776.tif 000013