(57)【特許請求の範囲】
【請求項１】
文書画像データを入力する入力手段と、
前記入力手段によって入力された文書画像データから２値画像データを生成する２値画像生成手段と、
前記２値画像生成手段によって生成された２値画像データから、前記入力手段によって入力された画像データのスキュー角を算出するスキュー角検知手段とを具備し、
前記２値画像生成手段は、
前記入力手段によって入力された文書画像データに対して２値化処理を行う２値化手段と、
前記２値化手段によって生成された２値画像データを膨張処理しかつ収縮処理してＯＮ画素が連続する画素塊を抽出する画素塊抽出手段と、
前記画素塊抽出手段によって抽出された画素塊から輪郭画素を抽出する輪郭抽出手段とを有し、
前記画素塊抽出手段は、
前記２値画像データ中のＯＮ画素の領域を膨張処理する膨張手段と、
前記膨張手段によって膨張処理されたＯＮ画素の領域を収縮処理して前記画素塊とする収縮手段とを有し、
前記スキュー角検知手段は、
前記輪郭抽出手段で抽出された輪郭画素の２値画像データに対してハフ変換を行ってハフ空間データを生成するハフ変換手段と、
前記ハフ変換手段によって生成されたハフ空間データからデータ中の各頻度に対して所定の演算を行い、得られた演算結果を角度ごとに加算して第１の頻度演算データを生成する頻度演算手段と、
前記頻度演算手段によって生成された第１の頻度演算データから角度を算出し、この算出した角度を前記スキュー角とする角度検知手段とを有する
ことを特徴とする画像処理装置。
【請求項２】
前記スキュー角検知手段として、各々検知条件が異なる複数のスキュー角検知手段を有する
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記複数のスキュー角検知手段の各検知条件が段階的に異なる
ことを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記ハフ変換手段は、生成したハフ空間データの頻度を、周囲の頻度を用いて平滑化し、
前記頻度演算手段は、前記ハフ変換手段によって平滑化されたハフ空間データの頻度から第１の頻度演算データを生成する
ことを特徴とする請求項１、請求項２または請求項３記載の画像処理装置。
【請求項５】
前記頻度演算手段は、生成した第１の頻度演算データの頻度演算値を、周囲の頻度演算値を用いて平滑化し、
前記角度検知手段は、前記頻度演算手段によって平滑化された第１の頻度演算データの頻度演算値から角度を算出する
ことを特徴とする請求項１、請求項２または請求項３記載の画像処理装置。
【請求項６】
前記スキュー角検知手段は、前記２値画像生成手段によって生成された２値画像データの縮小処理を行う縮小手段を有し、
前記ハフ変換手段は、前記縮小手段によって縮小処理された２値画像データに対してハフ変換を行ってハフ空間データを生成する
ことを特徴とする請求項１記載の画像処理装置。
【請求項７】
前記所定の演算は、頻度のｎ乗（ｎ＞１）の項を含む頻度の関数である
ことを特徴とする請求項１記載の画像処理装置。
【請求項８】
前記ｎは、ｎ＝２である
ことを特徴とする請求項７記載の画像処理装置。
【請求項９】
前記角度検知手段は、前記頻度演算手段によって生成された第１の頻度演算データから最大の頻度演算値を検出し、前記最大の頻度演算値をとる角度を検知する
ことを特徴とする請求項１記載の画像処理装置。
【請求項１０】
前記角度検知手段は、前記頻度演算手段によって生成された第１の頻度演算データを、位相をπ／２（ｒａｄ）ずらして加算して第２の頻度演算データを生成し、前記第２の頻度演算データから最大の頻度演算値を検出し、前記最大の頻度演算値をとる角度を検知する
ことを特徴とする請求項１記載の画像処理装置。
【請求項１１】
前記角度検知手段は、前記頻度演算手段によって生成された第１の頻度演算データから極大値を検出し、前記極大値をとる角度を検知する
ことを特徴とする請求項１記載の画像処理装置。
【請求項１２】
前記角度検知手段は、前記頻度演算手段によって生成された第１の頻度演算データから少なくとも２つの最大値または極大値を検出し、前記最大値または極大値をとる角度の差から角度を検知する
ことを特徴とする請求項１記載の画像処理装置。
【請求項１３】
前記角度の差は、ほぼπ／２（ｒａｄ）である
ことを特徴とする請求項１２記載の画像処理装置。
【請求項１４】
前記ハフ変換手段は、前記輪郭抽出手段によって抽出された輪郭画素に対してハフ変換処理を行う
ことを特徴とする請求項１記載の画像処理装置。
【請求項１５】
前記２値画像生成手段は、前記画素塊抽出手段によって画素塊の抽出されている２値画像データを縮小処理して第１の画素塊を抽出する縮小手段を有し、
前記輪郭抽出手段は、前記縮小手段によって抽出された第１の画素塊から輪郭画素を抽出する
ことを特徴とする請求項１記載の画像処理装置。
【請求項１６】
前記２値化手段は、前記入力手段によって入力された画像データに対して動的閾値２値化処理を行う浮動２値化手段である
ことを特徴とする請求項１記載の画像処理装置。
【請求項１７】
前記２値画像生成手段は、前記入力手段によって入力された画像データから網点領域を抽出する網点抽出手段を有し、
前記輪郭抽出手段は、前記浮動２値化手段および前記網点抽出手段から出力される各画像データの合成データから画素塊代表点を抽出する
ことを特徴とする請求項１６記載の画像処理装置。
【請求項１８】
前記２値画像生成手段はさらに、画像の一部を抽出する画像部分抽出手段を有し、
前記スキュー角検知手段は、前記画像部分抽出部手段によって抽出された画像の一部に対してスキュー角の検知を行う
ことを特徴とする請求項１記載の画像処理装置。
【請求項１９】
前記２値画像生成手段はさらに、画像を複数の領域に分割する画像領域分割手段を有し、
前記スキュー角検知手段は、前記画像領域分割手段によって分割された各領域に対して角度の検知を行い、検知された複数の角度からスキュー角を検知する
ことを特徴とする請求項１記載の画像処理装置。
【請求項２０】
入力された文書画像データに対して２値化処理を行う２値化ステップと、
前記２値化ステップで生成した２値画像データ中のＯＮ画素の領域を膨張処理し、当該膨張処理したＯＮ画素の領域を収縮処理して前記２値画像データ中からＯＮ画素が連続する画素塊を抽出する画素塊抽出ステップと、
前記画素塊抽出ステップで抽出した画素塊から輪郭画素を抽出する輪郭抽出ステップと、
前記輪郭抽出ステップで抽出した輪郭画素の２値画像データに対してハフ変換を行ってハフ空間データを生成するハフ変換ステップと、
前記ハフ変換ステップで生成したハフ空間データからデータ中の各頻度に対して所定の演算を行うことによって得られた演算結果を角度ごとに加算して第１の頻度演算データを生成する頻度演算ステップと、
前記頻度演算ステップで生成した第１の頻度演算データから角度を算出する角度検知ステップと
の各処理を実行し、
前記角度検知ステップで算出した角度を前記入力された文書画像データのスキュー角とする
ことを特徴とする画像処理方法。
【請求項２１】
請求項２０記載の画像処理方法の処理手順をコンピュータに実行させるための画像処理プログラムが格納されている
ことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文字認識などに利用される画像処理装置、画像処理方法および画像処理プログラムが格納された記録媒体に関し、特に、例えばイメージスキャナで読み取った文書や、ファクシミリ装置で受信した文書などの文書画像の傾きを検出してその傾きを補正する、いわゆるスキュー補正処理機能を備えた画像処理装置およびその処理方法、ならびに当該処理方法の処理動作を実行させるためのプログラムがソフトウェアとして格納された記録媒体に関する。
【０００２】
【従来の技術】
イメージスキャナで読み取った文書画像や、ファクシミリ装置で受信した文書などの文書画像から領域の切り出しを行い、文書中に含まれる画像の種類や属性を自動的に判別し、そのうち文字と判別された領域に対しては文字認識処理を行う、ＯＣＲ装置（光学式文字認識装置）などの画像処理装置が知られている。
【０００３】
この種の画像処理装置では、領域の切り出しや文字認識などが正しく行われるための前提として、画像が傾きの無い、すなわちスキューの無い状態である必要があり、スキューのある状態で画像が読み取られたり、あるいは受信された場合には、スキュー補正処理を行う必要がある。
【０００４】
従来、スキューの検出・補正を行うためにいくつかの技術が提案されてきた。その代表的なものとして、例えば、特開平２−１７０２８０号公報に記載されているように、角度θを順次変更しながら文書画像を角度θだけ回転させ、回転画像中に含まれる全黒画素を含む外接矩形を作成し、該外接矩形の面積が最小となる角度θをスキュー角度として検出する技術が知られている。以下、これを第1の従来技術と称す。
【０００５】
また、特開平６−２０３２０２号公報に記載されているように、画像中に含まれる黒画素の連結性を調べながらその外接矩形を作成し、所定範囲のサイズを持つ外接矩形のみを抽出し、抽出された外接矩形の1つの頂点を種々の方位に投影したヒストグラムを求め、このヒストグラムが最大となる角度をスキュー角度として検出する技術が知られている。以下、これを第２の従来技術と称す。
【０００６】
さらに、特開平１１−３２８４０８号公報に記載されているようなハフ変換を用いた技術（以下、これを第３の従来技術と称す）が知られている。この第３の従来技術では、入力画像にフィルタリング処理を行って濃淡差を強調し、その強調された画像に対して２値化処理を行って２値画像を作成する。次いで、作成された２値画像の各画素に対してハフ変換を行ってハフ空間上にヒストグラムを作成する。次いで、ハフ空間上で頻度が所定閾値以上となる座標を抽出し、抽出された座標をグループ化する。そして、グループごとに代表点座標を抽出し、抽出された座標から画像データの傾斜を推定する。
【０００７】
同公報にはさらに、やはりハフ変換を用いた技術（以下、これを第４の従来技術と称す）も開示されている。この第４の従来技術では、入力画像にフィルタリング処理を行って濃淡差を強調し、その強調された画像に対して２値化処理を行って２値画像を作成する。次いで、作成された２値画像の各画素に対してハフ変換を行ってハフ空間上にヒストグラムを作成する。次いで、ハフ空間上で頻度が閾値以上となる座標を抽出する。そして、抽出された座標の個数を角度ごとに積算してヒストグラムを作成し、頻度が最大となる角度を画像データの傾斜角度とする。
【０００８】
【発明が解決しようとする課題】
しかしながら、上記第1の従来技術では、画像を複数角度だけ回転させる必要があるため、大きな処理時間を要するという問題点がある。また、画像中に含まれる全黒画素を含む外接矩形からスキュー角度を検出するため、上・下・左・右部に存在する画素が部分的に飛び出している場合は、最適な外接矩形が作成されず、正確にスキュー角を検知できない問題がある。
【０００９】
また、上記第２の従来技術では、外接矩形頂点の投影ヒストグラムからスキュー角度を検出するため、文書画像が多段組の文章領域で構成され、また段組間の行の位置がずれているときなど、正確にスキュー角を検知できない問題がある。また、第2の従来技術は、基本的に文字領域を対象とした手法であるため、文書画像中に含まれる文字が少ない場合なども、正確にスキュー角を検知できない問題がある。
【００１０】
また、上記第３および第４の従来技術では、入力画像にフィルタリング処理を行って濃淡差を強調し、その濃淡差が強調された画像に対して２値化処理を行って２値画像を作成し、その２値画像に対してハフ変換を行うことから、入力画像が文字・表・線図形などの画像要素のみから構成されている場合には、２値画像のＯＮ（黒）画素はそのほとんどが画像要素の輪郭から構成されるため、比較的良い性能を示す。
【００１１】
しかしながら、入力画像中に、写真画像や網点画像のような画像要素が含まれていた場合には、２値化した際に写真画像や網点画像中にもＯＮ画素が存在したり、あるいは網点画像の各網点ドットをＯＮ画素としてしまう。このような２値画像に対してハフ変換を実施した場合、処理時間が増大したり、ハフ空間からスキュー角を検知する際に、その検知精度が低下するなどの問題がある。
【００１２】
本発明は、上述した従来技術の問題点を解消すべくなされたものであり、その目的とするところは、入力画像の種別に関係しない、高精度なスキュー角の検出・補正処理を行うことが可能な画像処理装置およびその処理方法、ならびにその処理方法の処理動作を実行させるための画像処理プログラムが格納された記録媒体を提供することにある。
【００１３】
【課題を解決するための手段】
本発明に係る画像処理装置は、
文書画像データを入力する入力手段と、この入力手段によって入力された文書画像データから２値画像データを生成する２値画像生成手段と、この２値画像生成手段によって生成された２値画像データから、入力手段によって入力された画像データのスキュー角を算出するスキュー角検知手段とを具備し、前記２値画像生成手段は、前記入力手段によって入力された文書画像データに対して２値化処理を行う２値化手段と、前記２値化手段によって生成された２値画像データを膨張処理しかつ収縮処理してＯＮ画素が連続する画素塊を抽出する画素塊抽出手段と、前記画素塊抽出手段によって抽出された画素塊から輪郭画素を抽出する輪郭抽出手段とを有し、
前記画素塊抽出手段は、
前記２値画像データ中のＯＮ画素の領域を膨張処理する膨張手段と、
前記膨張手段によって膨張処理されたＯＮ画素の領域を収縮処理して前記画素塊とする収縮手段とを有し、
前記スキュー角検知手段は、前記輪郭抽出手段で抽出された輪郭画素の２値画像データに対してハフ変換を行ってハフ空間データを生成するハフ変換手段と、このハフ変換手段によって生成されたハフ空間データからデータ中の各頻度に対して所定の演算を行い、得られた演算結果を角度ごとに加算して頻度演算データを生成する頻度演算手段と、この頻度演算手段によって生成された頻度演算データから角度を算出し、この算出した角度を前記スキュー角とする角度検知手段とを有する構成となっている。
【００１４】
また、本発明に係る画像処理方法では、入力された文書画像データに対して２値化処理を行う２値化ステップと、この２値化ステップで生成した２値画像データ中のＯＮ画素の領域を膨張処理し、当該膨張処理したＯＮ画素の領域を収縮処理して前記２値画像データ中からＯＮ画素が連続する画素塊を抽出する画素塊抽出ステップと、この画素塊抽出ステップで抽出した画素塊から輪郭画素を抽出する輪郭抽出ステップと、この輪郭抽出ステップで抽出した輪郭画素の２値画像データに対してハフ変換を行ってハフ空間データを生成するハフ変換ステップと、このハフ変換ステップで生成したハフ空間データからデータ中の各頻度に対して所定の演算を行うことによって得られた演算結果を角度ごとに加算して第１の頻度演算データを生成する頻度演算ステップと、この頻度演算ステップで生成した頻度演算データから角度を算出する角度検知ステップとの各処理を実行し、前記角度検知ステップで算出した角度を前記入力された文書画像データのスキュー角とする。
【００１５】
上記構成の画像処理装置およびその処理方法において、入力手段による入力画像データから２値画像生成手段で２値画像データを生成し、この２値画像データから、スキュー角検知手段によって入力画像データのスキュー角を検出する。このとき、スキュー角検知手段では、２値画像生成手段によって生成された２値画像データに対してハフ変換手段によって、ハフ変換を行ってハフ空間データを生成する。次に、頻度演算手段によって、ハフ変換手段によって生成されたハフ空間データから、データ中の各頻度に対して所定の演算を行い、得られた演算結果を角度ごとに加算して頻度演算データを生成する。そして、角度検知手段によって、頻度演算手段によって生成された頻度演算データから角度を算出する。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１７】
＜第１実施形態＞
図1は、本発明の第1実施形態に係る画像処理装置の構成例を示すブロック図である。図１において、画像入力部１は、原稿のカラー画像情報を色別に読み取り、電気的なディジタル画像信号に変換して出力するものであり、ＣＣＤCharge Coupled Device)型固体撮像素子などの光電変換素子を用いたイメージスキャナなどによって構成される。なお、画像入力部１によって読み取られ、電気信号に変換されたディジタル画像信号は、解像度４００ｄｐｉ、各色８ｂｉｔのＲＧＢカラー画像信号であるとして以下の説明を行うものとする。
【００１８】
データ記憶部２は、画像入力部１によって入力された画像データ、各処理部によって画像処理の行われた画像データなどを記憶する。演算制御部３は、マイクロプロセッサやメモリなどによって構成され、マイクロプロセッサがメモリに格納されている画像処理プログラムを実行することにより各処理部の制御を行う。なお、マイクロプロセッサが実行する画像処理プログラムとしては、あらかじめメモリに格納されたものであっても良く、またＣＤ−ＲＯＭなどの記録媒体からインストールされたものであっても良い。
【００１９】
画像入力部１から出力されるＲＧＢ画像データ（ＲＧＢ各色８ビット）は、データ記憶部２に記憶される。画像入力部１から出力され、データ記憶部２に記憶されたＲＧＢ画像データは、演算制御部３の指示によって階調補正部４に読み出され、ここで画像の階調が補正される。階調補正部４によって階調補正の行われたＲＧＢ画像データは、データ記憶部２に記憶される。
【００２０】
階調補正部４から出力され、データ記憶部２に記憶されたＲＧＢ画像データは、演算制御部３の指示によってスキュー補正部５に読み出され、ここで画像データのスキューが補正される。スキュー補正部５によってスキュー補正の行われたＲＧＢ画像データは、データ記憶部２に記憶される。スキュー補正部５の詳細については後述する。スキュー補正部５から出力され、データ記憶部２に記憶されたＲＧＢ画像データは、演算制御部３の指示によって、例えばＣＲＴや液晶などで構成された画像表示部７に読み出され、ここで表示される。
【００２１】
また、スキュー補正部５から出力され、データ記憶部２に記憶されたＲＧＢ画像データは、演算制御部３の指示によって色信号変換部６に読み出され、ここでＲＧＢ画像信号から出力色信号（例えば、ＹＭＣＫ画像信号）に変換される。色信号変換部６によって色信号変換の行われたＹＭＣＫ画像データは、データ記憶部２に記憶される。色信号変換部６から出力され、データ記憶部２に記憶されたＹＭＣＫ画像データは、演算制御部３の指示によって画像出力部８に読み出され、ここで紙などに画像出力される。
【００２２】
次に、図２を用いてスキュー補正部５について説明する。図２において、スキュー補正部５に入力された画像データ（解像度４００ｄｐｉ、各画素８ｂｉｔのＲＧＢ画像信号）は、２値化部１１および画像回転部１４に入力される。２値化部１１では、入力されたＲＧＢ画像データから、画像中に含まれる例えば文字や線、絵柄や写真などの前景に属する画素はＨＩＧＨ，背景領域に属する画素はＬＯＷとした各画素１ｂｉｔ、即ち２値化された２値画像データを作成して出力する。２値化部１１は、２値画像データ中からＨＩＧＨ画素（ＯＮ画素）の画素塊を抽出する画素塊抽出手段としての機能も合わせ持っている。２値化部１１の詳細については後述する。
【００２３】
２値化部１１から出力された２値画像データは輪郭抽出部１２に入力される。輪郭抽出部（即ち、代表点抽出手段）１２では、入力された２値画像データ中からＨＩＧＨ画素領域の輪郭（画素塊の代表点）を抽出し、抽出した輪郭画素による輪郭２値画像データを作成して出力する。輪郭抽出部１２の詳細については後述する。輪郭抽出部１２から出力された輪郭２値画像データはスキュー角検知部１３に入力される。スキュー角検知部１３では、入力された輪郭２値画像データを用いて画像データのスキュー角度を算出して出力する。スキュー角検知部１３の詳細については後述する。
【００２４】
スキュー角検知部１３において検知されたスキュー角度は画像回転部１４に入力される。また、画像回転部１４にはＲＧＢ画像データが入力され、スキュー角検知部１３において検知されたスキュー角度に基づき、ＲＧＢ画像データのスキューが補正される。画像回転の方法としては、例えばＡｆｆｉｎｅ変換などを用いた周知の方法を用い得る。スキュー補正の行われたＲＧＢ画像データ（スキュー補正後ＲＧＢ画像データ）は、スキュー補正部５でのスキュー補正結果として出力される。
【００２５】
次に、図３を用いて２値化部１１の詳細について説明する。２値化部１１に入力されたＲＧＢ画像データは、色成分選択部２１に入力される。色成分選択部２１では、入力されたＲＧＢ画像データからＧ信号だけを取り出し、Ｇ画像データ（解像度４００ｄｐｉ、各画素８ｂｉｔ）を作成して出力する。Ｇ信号だけ取り出す理由は、Ｒ・Ｇ・Ｂ信号のうちＧ信号が、画像の持つ情報に対する寄与度がもっとも大きいからである。
【００２６】
色成分選択部２１から出力されたＧ画像データは、浮動２値化部２２に入力される。浮動２値化部２２では、注目画素周辺の画素を用いて注目画素の浮動２値化処理、即ち動的閾値２値化処理を行い、画素を順次走査して画像全体の２値化を行って出力する。浮動２値化部２２の詳細については後述するが、浮動２値化部２２からは、濃い領域に属する画素はＨＩＧＨとし、淡い領域に属する画素はＬＯＷとした２値画像データが出力される。
【００２７】
浮動２値化部２２から出力された２値画像データは膨張部２３に入力される。膨張部２３では画素を順次走査しながら、ＨＩＧＨ画素の膨張処理が行われて出力される。なお、ここでは、２値画像データを直接膨張部２３に入力する構成を採っているが、縮小部（図示せず）にて２値画像データに対して縮小処理を行った後、この縮小処理で抽出された２値画像データ（第１の画素塊）を膨張部２３に入力する構成を採ることも可能である。こうすることで、ノイズ成分を除去できることになる。
【００２８】
膨張部２３での膨張処理について図４を用いて説明する。図４（ａ）に示すように、注目画素を“Ｘ”、その周囲８近傍の画素を“Ａ”〜“Ｈ”とすると、画素“Ｘ”および画素“Ａ”〜“Ｈ”、即ち注目画素を中心とする３×３画素のうち１つでもＨＩＧＨ画素があれば、注目画素“Ｘ”に対する膨張処理結果としてＨＩＧＨを、画素“Ｘ”および画素“Ａ”〜“Ｈ”、即ち注目画素を中心とする３×３画素がすべてＬＯＷ画素であれば、注目画素“Ｘ”に対する膨張処理結果としてＬＯＷを出力する。
【００２９】
この処理を、各画素を順次走査しながら画像全体に対して行う。例えば、図４（ｂ）に示すような２値画像データが膨張部２３に入力されたとすると、膨張処理結果として、図４（ｃ）に示すような２値画像データが膨張部２３から出力される。なお、上記の例では、膨張処理に用いる画素を、注目画素とその周囲８近傍画素、即ち注目画素を中心とする３×３画素としたが、図５に示すように、画素“Ｘ”および画素“Ａ”〜“Ｙ”、即ち注目画素を中心とする５×５画素、あるいはさらに大きい領域を用いたり、主走査・副走査方向で異なる画素数の領域を用いることも可能である。
【００３０】
上述したように、浮動２値化部２２で生成された２値画像データを、膨張部２３においてＨＩＧＨ画素の膨張処理を行うことにより、例えば入力画像中に含まれていた写真・網点領域などが、浮動２値化部２２での２値化処理では部分的にＬＯＷとなっても、膨張部２３でのＨＩＧＨ画素の膨張処理により、前記領域内でＬＯＷとなっていた画素をＨＩＧＨとすることができ、各領域全体をＨＩＧＨ画素（第２の画素塊）で連続化することが可能となる。
【００３１】
膨張部２３から出力された２値画像データは、収縮部２４に入力される。収縮部２４では画素を順次走査しながら、ＨＩＧＨ画素の収縮処理が行われて出力される。この収縮処理について図４を用いて説明する。
【００３２】
図４（ａ）に示すように、注目画素を“Ｘ”、その周囲８近傍の画素を“Ａ”〜“Ｈ”とすると、画素“Ｘ”および画素“Ａ”〜“Ｈ”、即ち注目画素を中心とする３×３画素のうち１つでもＬＯＷ画素があれば、注目画素“Ｘ”に対する収縮処理結果としてＬＯＷを、画素“Ｘ”および画素“Ａ”〜“Ｈ”、即ち注目画素を中心とする３×３画素がすべてＨＩＧＨ画素であれば、注目画素“Ｘ”に対する収縮処理結果としてＨＩＧＨを出力する。
【００３３】
この処理を、各画素を順次走査しながら画像全体に対して行う。例えば、図４（ｃ）に示すような２値画像データが収縮部２４に入力されたとすると、収縮処理結果として、図４（ｄ）に示すような２値画像データが収縮部２４から出力される。なお、上記の例では、収縮処理に用いる画素を、注目画素とその周囲８近傍画素、即ち注目画素を中心とする３×３画素としたが、膨張部２３の場合と同様に、図５に示すように、画素“Ｘ”および画素“Ａ”〜“Ｙ”、即ち注目画素を中心とする５×５画素、あるいはさらに大きい領域を用いたり、主走査・副走査方向で異なる画素数の領域を用いることも可能である。
【００３４】
このように、膨張部２３から出力された２値画像データを、収縮部２４において収縮処理することにより、膨張処理によって接続（結合）してしまった領域同士を切り離すことが可能となる。収縮部２４で作成された２値画像データ（第３の画素塊）は、２値化部１１での処理結果として出力される。
【００３５】
なお、本実施形態では、２値化部１１での処理結果として、収縮部２４を経た２値画像データ（第３の画素塊）を輪郭抽出部１２に与えて輪郭画素の抽出を行うようにしたが、先述した縮小部（図示せず）を経た２値画像データ（第１の画素塊）または膨張部２３を経た２値画像データ（第２の画素塊）に基づいて輪郭画素の抽出を行うようにすることも可能である。
【００３６】
続いて、図６を用いて浮動２値化部２２の詳細について説明する。浮動２値化部２２に入力された画像データ、本実施形態では解像度４００ｄｐｉ・各画素８ｂｉｔのＧ画像データは、３×３画素平均値演算部３１と５×５画素平均値演算部３２に入力される。３×３画素平均値演算部３１では、入力される画像データに対して、注目画素を順次走査させながら、注目画素を中心とする３×３画素の画素平均値を算出する。３×３画素平均値演算部３１で算出された３×３画素平均値画像データは、後述する比較部３５に入力される。
【００３７】
また、５×５画素平均値演算部３２では、入力される画像データに対して、注目画素を順次走査させながら、注目画素を中心とする５×５画素の画素平均値を算出する。５×５画素平均値演算部３２で算出された５×５画素平均値画像データは、加算部３３に入力される。加算部３３では、５×５画素平均値演算部３２から入力された画像データと、あらかじめ設定された値“Ｖａｌｕｅ１”との加算演算が行われ、その演算結果はリミッタ部３４に入力される。
【００３８】
なお、上記の例では、“Ｖａｌｕｅ１”をあらかじめ設定された値として説明したが、３×３画素平均値演算部３１あるいは５×５画素平均値演算部３２の出力から、所定の演算によって算出した値や、ＬＵＴ(Look Up Table)を用いて算出した値を用いても構わない。
【００３９】
リミッタ部３４では、加算部３３から入力された画像データを、あらかじめ設定された上限値“ＬｉｍｉｔＨ”と、下限値“ＬｉｍｉｔＬ”の間に画素値を制限する。すなわち、
注目画素値＞ＬｉｍｉｔＨ→注目画素に対する出力値＝ＬｉｍｉｔＨ
注目画素値＜ＬｉｍｉｔＬ→注目画素に対する出力値＝ＬｉｍｉｔＬ
上記以外→注目画素に対する出力値＝注目画素の入力値
とする。
【００４０】
リミッタ部３４の出力結果は、比較部３５に供給される。比較部３５には、３×３画素平均値演算部３１から出力された画像データと、リミッタ部３４から出力された画像データが入力される。そして、比較部３５では、２つの画像データの対応する画素同士の比較が行われる。
【００４１】
今、明るい（淡い）領域に属する画素の画素値が大きく、暗い（濃い）領域に属する画素の画素値が小さいとすると、３×３画素平均値演算部３１から入力された画像データの注目画素の画素値が、リミッタ部３４から入力された画像データの対応する注目画素の画素値よりも小さいときまたは等しいときは、注目画素に対する比較結果としてＨＩＧＨを出力する。逆に、前者が後者よりも大きいときは、注目画素に対する比較結果としてＬＯＷを出力する。
【００４２】
上記のような２値化処理を行うことにより、濃い領域に属する画素をＨＩＧＨ画素として抽出することが可能となる。すなわち、白い原稿に描かれた、濃い文字や、写真・絵柄領域などをＨＩＧＨ画素として抽出することが可能となる。比較部３５から出力された比較結果、即ち２値画像データは、浮動２値化部２２の演算結果として出力される。
【００４３】
次に、図７を用いて２値化部１１の他の例について説明する。２値化部１１に入力されたＲＧＢ画像データは、明度信号生成部２５に入力される。明度信号生成部２５では、入力されたＲＧＢ画像データから明度画像データ（Ｌ＊画像データ）（解像度４００ｄｐｉ・各画素８ｂｉｔ）を生成する。その生成の方法としては、ＸＹＺ色空間を用いて演算で求める方法や、ＬＵＴを用いるなど複数の方法があるが、演算処理を簡略化するために、式（１）などの簡易演算式を用いても構わない。
Ｌ＊＝（３Ｒ＋６Ｇ＋Ｂ）／１０    ……（１）
【００４４】
明度信号生成部２５で生成されたＬ＊画像データは、浮動２値化部２２と網点抽出部２６に入力される。浮動２値化部２２では、明度信号生成部２５から入力されたＬ＊画像データから、濃い領域に属した画素はＨＩＧＨとし、淡い領域に属した画素はＬＯＷとした２値画像データを生成して出力する。なお、浮動２値化部２２の詳細については前述しているので、ここでの説明は省略する。
【００４５】
浮動２値化部２２から出力された２値画像データは、画像合成部２７に入力される。網点抽出部２６では、明度信号生成部２５から入力されたＬ＊画像データから網点領域を抽出し、網点領域に属する画素はＨＩＧＨとし、属さない画素はＬＯＷとする２値化を行う。網点領域の抽出方法としては、過去にいくつか提案されているが、例えば本願出願人に係る特開平１１−７３５０３号公報に記載された抽出方法などを用い得る。その抽出方法の詳細についてはここでは記載しないが、その概要は次の通りである。
【００４６】
すなわち、入力画像データの２値化を行い、２値画像データのＨＩＧＨとなっている画素（または、ＬＯＷとなっている画素）が、注目画素を中心としたＮ１×Ｎ１（例えばＮ１＝１３）の広範囲領域の中で周期構造を成しているか否かを判定した後、その判定結果に対してＮ２×Ｎ２（例えばＮ２＝２５）の広範囲領域を用いて網点領域を判定・抽出するものである。網点抽出部２６から出力された２値画像データは、画像合成部２７に入力される。
【００４７】
画像合成部２７では、浮動２値化部２２および網点抽出部２６から入力された２値画像データの対応する画素同士の論理和演算を行い、その演算結果を出力する。すなわち、浮動２値化部２２および網点抽出部２６から入力された２値画像データの対応するそれぞれの画素のいずれか一方がＨＩＧＨであれば、それらの画素に対する出力をＨＩＧＨとし、２つの画素が共にＬＯＷであれば、それらの画素に対する出力をＬＯＷとする２値画像データを作成する。
【００４８】
画像合成部２７から出力された２値画像データは、膨張部２３に入力される。膨張部２３では、画像合成部２７から入力された２値画像データのＨＩＧＨ画素の膨張処理を行い、その結果を収縮部２４に出力する。収縮部２４では、膨張部２３から入力された２値画像データのＨＩＧＨ画素の収縮処理を行い、その結果を出力する。なお、膨張部２３および収縮部２４の詳細については前述しているので、ここではその説明については省略する。収縮部２４の出力は、２値化部１１の処理結果として出力される。
【００４９】
次に、輪郭抽出部１２での輪郭抽出処理の詳細について、図８および図９を用いて説明する。輪郭抽出部１２では、２値化部１１から入力された２値画像データから、ＨＩＧＨ画素領域の輪郭を抽出し、抽出した輪郭のみをＨＩＧＨ画素とした輪郭２値画像データを作成して出力する。
【００５０】
図８（ａ）に示すように、注目画素を“Ｘ”、その周囲８近傍の画素を“Ａ”〜“Ｈ”とすると、図８（ｂ）に示すように、画素“Ｘ”がＬＯＷのときは、注目画素が輪郭画素ではないと判定して、注目画素に対する出力としてＬＯＷを、また図８（ｃ）に示すように、画素“Ｘ”および画素“Ａ”〜“Ｈ”が全てＨＩＧＨのときも、注目画素が輪郭画素ではないと判定して、注目画素に対する出力としてＬＯＷを、また図８（ｄ）に示すように、注目画素がＨＩＧＨでかつ図８（ｃ）以外の場合は、注目画素が輪郭画素であると判定して、注目画素に対する出力としてＨＩＧＨを出力する。
【００５１】
例えば、図９（ａ）に示すような２値画像が輪郭抽出部１２に入力された場合は、図９（ｂ）に示すような輪郭を抽出した輪郭２値画像データを出力する。なお、本実施形態では、注目画素がＨＩＧＨでかつ図８（ｃ）以外の場合に、注目画素を輪郭画素であると判定しているが、注目画素の値に関係なく、注目画素を中心とする３×３画素がすべてＨＩＧＨまたはＬＯＷのとき以外の場合に注目画素を輪郭画素であると判定するようにしても構わない。
【００５２】
ただし、注目画素を中心とする３×３画素がすべてＨＩＧＨまたはＬＯＷのとき以外の場合に注目画素を輪郭画素であると判定する方法を採った場合には、輪郭画素として判定される画素が増え、結果として輪郭が太くなり、以降の処理の対象となる画素数が増えることになるため、処理時間がかかることになる。これに対して、注目画素がＨＩＧＨでかつ図８（ｃ）以外の場合に、注目画素を輪郭画素であると判定する方法を採ると、輪郭画素として判定する画素数が半分以下となるため、処理速度も半分以下で済むという利点がある。
【００５３】
次に、スキュー角検知部１３の詳細について、図１０を用いて説明する。スキュー角検知部１３に入力された輪郭２値画像データは、ハフ変換部４１に入力される。ハフ変換部４１では、入力された輪郭２値画像データ中のＨＩＧＨ画素に対してハフ変換を行い、その演算（変換）結果（ハフ空間データ）をハフ空間データ記憶部４４に入力する。ハフ変換部４１の詳細については後述する。
【００５４】
ハフ空間データ記憶部４４では、ハフ変換部４１から入力されたハフ空間データを順次記憶していく。ハフ空間データ記憶部４４の詳細については後述する。ハフ空間データ演算投影部（頻度演算手段）４２では、ハフ空間データ記憶部４４に記憶されているデータを順次読み出し、所定の演算を行った後その演算結果（第１の頻度演算データ）を順次演算投影データ記憶部４５に入力する。ハフ空間データ演算投影部４２の詳細については後述する。
【００５５】
演算投影データ記憶部４５では、ハフ空間データ演算投影部４２から入力された頻度演算データを順次記憶していく。演算投影データ記憶部４５の詳細については後述する。角度検知部４３では、演算投影データ記憶部４５に記憶されている頻度演算データを順次読み出し、読み出したデータの最大値を求め、その最大値をとる角度を検知し、検知した角度を出力する。角度検知部４３の詳細については後述する。角度検知部４３から出力された角度は、スキュー角検知部１３において検知されたスキュー角度として出力される。
【００５６】
以降、スキュー角検知部１３内の各処理部の詳細について順次説明していく。まず、ハフ変換部４１およびハフ空間データ記憶部４４での各処理の詳細について、図１１および図１２を用いて説明する。
【００５７】
図１１（ａ）に示す画像は、画像入力部１によって読み取られる原稿画像である。そして、この図１１（ａ）に示す原稿画像を画像入力部１によって読み取った際に、図１１（ｂ）に示すようなスキューの発生した画像が得られたとする。なお、図１１（ｂ），（ｃ），（ｄ）において、画像の周囲に描かれている破線の矩形は画像の縁を示しており、画像中には現れない。図１１（ｂ）に示す画像に対して、２値化部１１で２値化処理が行われ、さらに輪郭抽出部１２で輪郭抽出処理が行われることにより、図１１（ｃ）に示すような画像が得られる。この図１１（ｃ）に示すような画像がハフ変換部４１に入力される。
【００５８】
ハフ変換は、周知の技術であるのでその詳細についてはここでは省略するが、簡単に述べると、ｘ−ｙ座標空間上に存在する点を、原点からの距離と角度で表す極座標（ρ−θ）空間に変換する処理であり、図１２（ａ）に示す１点５１に対してハフ変換を行うことにより、図１２（ｂ）に示す曲線５２に変換することができる。図１２（ｂ）において、θは角度を、ρは距離をそれぞれ示し、曲線５２については式（２）で表すことができる。式（２）におけるｘ、ｙは、ｘ−ｙ座標空間上での点の座標である。
ρ＝ｘ・ｃｏｓθ＋ｙ・ｓｉｎθ    ……（２）
【００５９】
図１１（ｃ）に示すような画像に対してハフ変換を実施すると、図１２（ｃ）に示すような極座標（ρ−θ）空間上でのヒストグラムが、ハフ空間データ記憶部４４に作成される。なお、実際に作成されるヒストグラムデータは数値で表されるが、図１２（ｃ）では、白いところは頻度が０または小さいところを示し、色が濃くなるにつれて頻度が大きくなっていることを示している。
【００６０】
図１２（ｃ）に示すような極座標（ρ−θ）空間上でのヒストグラムの作成の処理手順について、図１３のフローチャートを用いて説明する。図１３のフローチャートにおいて、まず、ハフ空間データ記憶部４１内にあらかじめ確保されたハフ空間メモリの初期化、即ち頻度としてすべて“０”を代入する（ステップＳ１０１）。
【００６１】
次に、輪郭抽出されたすべての画素に対してハフ変換を行うため、ハフ変換の行われていないＨＩＧＨ画素が有るか否かを判断し（ステップＳ１０２）、未処理ＨＩＧＨ画素が無ければ、ハフ変換部４１での処理を終了する。また、未処理ＨＩＧＨ画素が有れば、ハフ変換の対象となる未処理ＨＩＧＨ画素のｘ、ｙ座標を変数ｘ、ｙに代入し（ステップＳ１０３）、次いで式（２）の演算を角度θを順次変更しながら行うため、初期値として角度θに０（ｒａｄ）を代入する（ステップＳ１０４）。
【００６２】
続いて、角度θとπ（ｒａｄ）とを比較し（ステップＳ１０５）、θ≧πならば、現在対象となっているＨＩＧＨ画素に対するハフ変換は終了し、θ＜πならば、ハフ変換処理を続ける。ここで、角度θをπ（ｒａｄ）と比較する理由は、そもそもハフ変換は直線を検出するための処理であり、直線の方向は０≦θ＜πの範囲で表すことができるため、即ちπ≦θ＜２πの範囲は直線を半回転させたのと同じであるため、演算処理を省略することができる。なお、本実施形態では演算範囲を０≦θ＜πとしたが、−π／２≦θ＜π／２などでも構わない。
【００６３】
ステップＳ１０５での比較結果がθ＜πならば、ｘ、ｙ、θを用いて式（２）右辺の演算を行い、その演算結果を距離ρに代入する（ステップＳ１０６）。次に、角度θおよびステップＳ１０６で求めた距離ρの値を用いて、ハフ空間データ記憶部４１内のハフ空間メモリ（θ、ρ）座標の頻度を１増分する（ステップＳ１０７）。
【００６４】
なお、ステップＳ１０６で求めた距離ρの値は通常小数で表されるため、ステップＳ１０７の処理を実際に行う際には、距離ρの値を四捨五入、切り上げ、切り捨てなどによって、整数に変換する必要がある。また、ハフ空間メモリの容量を削減するために、距離ρをさらに量子化することも可能である。
【００６５】
次に、角度θを用いて式（２）右辺の演算を行うため、角度θをあらかじめ定めた値ｓｔｅｐ＿ａだけ増分する（ステップＳ１０８）。この値は、求めるスキュー角の分解能によって決まり、１度単位でスキュー角を求めたければ、ｓｔｅｐ＿ａ＝１（度）＝π／１８０（ｒａｄ）に、０．１度単位でスキュー角を求めたければ、ｓｔｅｐ＿ａ＝０．１（度）＝π／１８００（ｒａｄ）に設定する。ステップＳ１０８の処理が終了したら、ステップＳ１０５に戻る。
【００６６】
ステップＳ１０３〜ステップＳ１０８において、１つのＨＩＧＨ画素に対するハフ変換処理、即ち０≦θ＜πでの式（２）右辺の演算が終了したら、次の未処理ＨＩＧＨ画素に処理対象を移す（ステップＳ１０９）。
【００６７】
上述したように、ハフ変換部４１では、入力された輪郭２値画像データに対しハフ変換処理を行い、ハフ空間データ記憶部４４内のハフ空間メモリにハフ空間データ（ヒストグラム）が作成される。なお、ハフ変換部４１において、生成したハフ空間データについて、注目画素の頻度とその周囲の頻度を用いて平滑化することも可能である。こうすることで、ある領域において全体的に頻度が低いのに、１箇所だけ頻度が高い、というような異常な状態があった場合に、これを平均化することができることになる。
【００６８】
次に、ハフ空間データ演算投影部４２および演算投影データ記憶部４５での各処理の詳細について、図１４を用いて説明する。図１４（ａ）は、ハフ空間データ記憶部４４内のハフ空間メモリに作成されたハフ空間データ（ヒストグラム）であり、図１２（ｃ）と同じものである。
【００６９】
ハフ空間データ演算投影部４２では、図１４（ａ）に示すハフ空間データ記憶部４４内のハフ空間メモリに作成されたハフ空間データ（ヒストグラム）から、頻度を順次読み出し、後述する所定の演算を施した後、求められた値を演算投影データ記憶部４５内の演算投影メモリに格納していく。その結果、図１４（ｂ）に示すような、演算投影ヒストグラムデータが作成される。
【００７０】
上述した演算投影ヒストグラムデータの作成の処理手順について、図１５のフローチャートを用いて説明する。図１５のフローチャートにおいて、まず、演算投影データ記憶部４５内の演算投影メモリの初期化、即ち頻度としてすべて“０”を代入する（ステップＳ２０１）。ここで、この演算投影メモリをｈｉｓｔ［θ］で表すものとすると、ｈｉｓｔ［θ］←０（θ：ｓｔｅｐ＿ａ×ｉ、０≦θ＜π）の処理を行う。
【００７１】
次に、輪郭２値画像データの幅をｗｉｄｔｈ，高さをｈｅｉｇｈｔとしたときに、ｍａｘ＿ｄ＝ｓｑｒｔ（ｗｉｄｔｈ2＋ｈｅｉｇｈｔ2）を求める（ステップＳ２０２）。ここで、ｓｑｒｔ（  ）は平方根を表す。ｍａｘ＿ｄは、輪郭２値画像データの対角線の長さであるため、ハフ空間データのρの最大≦ｍａｘ＿ｄ、ρの最小≧−ｍａｘ＿ｄとなる。
【００７２】
また、演算投影処理を角度θを順次変更しながら行うため、初期値として角度θに０（ｒａｄ）を代入する（ステップＳ２０３）。続いて、角度θとπ（ｒａｄ）とを比較し（ステップＳ２０４）、θ≧πならば、演算投影処理は終了し、θ＜πならば、演算投影処理の初期値として、ρに−ｍａｘ＿ｄを、ｗに０を設定する（ステップＳ２０５）。
【００７３】
次に、距離ρをｍａｘ＿ｄと比較し（ステップ２０６）、ρ≦ｍａｘ＿ｄならば、現在の角度θに対する演算投影処理を継続するため、まず、ハフ空間データ（ヒストグラム）から座標（θ、ρ）の頻度を読み出し、頻度ｖに代入する（ステップＳ２０７）。次に、読み出された頻度ｖに対して所定の演算ｆ（ｖ）を行い、その演算結果をｗに加算する（ステップＳ２０８）。そして、距離ρを１増分させ（ステップ２０９）、しかる後ステップＳ２０６に戻る。
【００７４】
ここで、演算ｆ（ｖ）は、ハフ空間データ（ヒストグラム）から各θごとの頻度の密集度を算出できるものであればどのようなものでも構わないが、式（３）に示すような演算処理が比較的簡易で、かつハフ空間データ（ヒストグラム）から各θごとの頻度の密集度、即ちスキュー角を検知するのに適している。すなわち、各θごとに頻度のｎ乗和、例えば２乗和（ｎ＝２）を計算することにより、計算結果が大きいほど密集度が高いと判定することができる。
ｆ（ｖ）＝ｖ2    ……（３）
【００７５】
一方、ステップＳ２０６の比較処理で、ρ＞ｍａｘ＿ｄならば、現在の角度θに対する演算投影処理をすべて終了し、即ち現在の角度θに対してとり得るすべての距離ρに対する演算投影処理を終了し、求まったｗを現在の角度θに対する演算投影ヒストグラムデータとして、ｈｉｓｔ［θ］に代入する（ステップＳ２１０）。そして、次の角度θを用いて演算投影処理を行うため、角度θをあらかじめ定めた値ｓｔｅｐ＿ａだけ増分する（ステップＳ２１１）。このｓｔｅｐ＿ａは、図１３の説明の中で用いた値と同じである。ステップＳ２１１の処理の終了後は、ステップＳ２０４に戻る。
【００７６】
上述したように、ハフ空間データ演算投影部４２では、ハフ空間データ記憶部４４内のハフ空間メモリに記憶されているハフ空間データ（ヒストグラム）を順次読み出し、所定の演算処理を施した後、演算投影データ記憶部４５に格納し、演算投影データ記憶部４５内の演算投影メモリに演算投影ヒストグラムデータを作成する。なお、ハフ空間データ演算投影部４２において、生成した生成した頻度演算データの頻度演算値を、周囲の頻度演算値を用いて平滑化することも可能である。
【００７７】
最後に、角度検知部４３での処理について、図１４を用いて説明する。図１４（ｂ）は、演算投影データ記憶部４５内の演算投影メモリに作成された演算投影ヒストグラムデータである。角度検知部４３では、図１４（ｂ）に示すような演算投影ヒストグラムデータから、演算投影頻度が最大となる角度θを検出し、検出した角度θを出力する。
【００７８】
すなわち、図１４（ｃ）に示すように、演算投影頻度最大値ｍａｘを見つけ、この演算投影頻度最大値ｍａｘをとるときの角度δを、演算投影頻度が最大となる角度θとして検出し、この角度δを出力する。角度検知部４３から出力された角度δは、スキュー角検知部１３において検知されたスキュー角度として出力される。
【００７９】
なお、上記の説明では、輪郭２値画像データに対してハフ変換を行って（２次元）ハフ空間データ（ヒストグラム）を作成し、次にハフ空間データ（ヒストグラム）に対して所定の演算を行って演算投影ヒストグラムデータを作成しているが、この作成法に限られるものではない。
【００８０】
すなわち、輪郭２値画像データの全ＨＩＧＨ画素に対してある角度でのハフ変換を行って（１次元）ハフ空間データ（ヒストグラム）を作成し、次に、生成した（１次元）ハフ空間データ（ヒストグラム）に対し所定の演算を行って演算投影ヒストグラムデータを作成する処理を、前記角度を順次変更しながら行うようにすることも可能である。この作成法を用いることで、ハフ空間データ（ヒストグラム）を２次元から１次元にすることができ、処理に必要なメモリ容量を削減することができる。
【００８１】
以上説明したように、本発明の第１実施形態に係る画像処理装置およびその処理方法では、文字・線画・写真・網点等の混在した画像に対しても、スキュー角度を検知するのにノイズとなる写真・網点中の画素は抽出しないで適切に輪郭画像を抽出してハフ変換を実施し、またハフ空間データからその密集度を検知できる所定の演算を施して投影ヒストグラムに投影し、この投影されたヒストグラムからスキュー角を検知することにより、入力画像の種別に関係しない、高精度なスキュー角の検出・補正処理を行うことが可能となる。
【００８２】
＜第２実施形態＞
次に、本発明の第２実施形態に係る画像処理装置について説明する。なお、以下の説明の中で、第1実施形態と処理内容が同様の処理部に関しては同一番号を付し、その説明については重複するので省略するものとする。すなわち、第２実施形態に係る画像処理装置では、図１に示す画像処理装置の構成例、図２に示すスキュー補正部５の構成例については、第1実施形態と同じなのでここでの説明は省略し、第1実施形態と構成が異なり、その具体的な構成を特徴とするスキュー角検知部について説明を行うものとする。
【００８３】
図１６は、本発明の第２実施形態に係る画像処理装置におけるスキュー角検知部の構成例を示すブロック図である。図１６において、輪郭抽出部１２から入力された輪郭２値画像データは、縮小部４６−１〜４６−２およびハフ変換部４１−３に入力される。縮小部４６−１では、後段のハフ変換部４１−１・ハフ空間データ記憶部４４・ハフ空間データ演算投影部４２−１・演算投影データ記憶部４５・角度検知部４３−１において、第１のスキュー角の概算値を求める際の演算量やメモリ量を削減するために、入力された輪郭２値画像データの縮小が行われる。
【００８４】
縮小の方法としては、例えば図１７（ａ）に示すように、画像を複数の４×４画素マトリクスに分割し、同図（ｂ）に示すように、１つの４×４画素マトリクスを縮小後の１画素に割り当てる。その際、例えば縮小前４×４画素＝１６画素のうち所定閾値以上がＨＩＧＨ画素ならば、縮小後の画素もＨＩＧＨに、所定閾値未満のときは縮小後の画素をＬＯＷとする。所定閾値としては、例えば１６画素／２＝８画素などが適当である。この場合、図１７（ｃ）に示すような画像が入力されると、同図（ｄ）に示すような画像が縮小部４６−１から出力される。
【００８５】
縮小部４６−１から出力された輪郭２値画像データはハフ変換部４１−１に入力される。図１６に示すように、ハフ変換部４１−１には、輪郭２値画像データと、ハフ変換を行う角度の範囲の中心角度を示す“ｃｅｎｔｅｒ１”と、ハフ変換を行う角度の範囲を示す“ｒａｎｇｅ１”と、ハフ変換を行う角度のステップ（刻み幅）を示す“ｓｔｅｐ１”が入力される。
【００８６】
ハフ変換部４１−１では、入力された輪郭２値画像データのＨＩＧＨ画素に対して、ｃｅｎｔｅｒ１−ｒａｎｇｅ１≦θ＜ｃｅｎｔｅｒ１＋ｒａｎｇｅ１の範囲で、ｓｔｅｐ１ごとにハフ変換を行い、ハフ空間データ記憶部４４内のハフ空間メモリに、図１８（ａ）に示すようなハフ空間データ（ヒストグラム）が作成される。なお、前記各値として例えば、ｃｅｎｔｅｒ１＝π／２、ｒａｎｇｅ１＝π／２、ｓｔｅｐ１＝５π／１８０などを用いる。ハフ変換部４１−１の処理は、ハフ変換部４１と同様なので、ここでの説明は省略する。
【００８７】
ハフ空間データ演算投影部４２−１では、ハフ空間データ記憶部４４内のハフ空間メモリに記憶されているハフ空間データ（ヒストグラム）を順次読み出し、所定の演算処理を施した後、演算投影データ記憶部４５に格納し、演算投影データ記憶部４５内の演算投影メモリに、図１８（ｂ）に示すような演算投影ヒストグラムデータを作成する。ハフ空間データ演算投影部４２−１の処理は、ハフ空間データ演算投影部４２と同様なので、ここでの説明は省略する。
【００８８】
角度検知部４３−１では、図１８（ｂ）に示すような演算投影ヒストグラムデータから、演算投影頻度が最大となる角度δ１を検出し、検出した角度δ１をハフ変換部４１−２に対して出力する。角度検知部４３−１の処理は、角度検知部４３と同様なので、ここでの説明は省略する。このようにして、縮小した輪郭２値画像データに対して、粗い角度ステップでハフ変換を行うことにより、第１のスキュー角の概算値（δ１）を求める。
【００８９】
スキュー角検知部１３に入力された輪郭２値画像データは縮小部４６−２にも入力される。縮小部４６−２では、後段のハフ変換部４１−２・ハフ空間データ記憶部４４・ハフ空間データ演算投影部４２−２・演算投影データ記憶部４５・角度検知部４３−２において、第２のスキュー角の概算値を求める際の演算量やメモリ量を削減するために、入力された輪郭２値画像データの縮小が行われる。
【００９０】
縮小の方法としては、例えば図１９（ａ）に示すように、画像を複数の２×２画素マトリクスに分割し、図１９（ｂ）に示すように、１つの２×２画素マトリクスを縮小後の１画素に割り当てる。その際、例えば縮小前２×２画素＝４画素のうち所定閾値以上がＨＩＧＨ画素ならば、縮小後の画素もＨＩＧＨに、所定閾値未満のときは縮小後の画素をＬＯＷとする。所定閾値としては、例えば４画素／２＝２画素などが適当である。この場合、図１９（ｃ）に示すような画像が入力されると、図１９（ｄ）に示すような画像が縮小部４６−２から出力される。
【００９１】
縮小部４６−２から出力された縮小２値画像データはハフ変換部４１−２に入力される。ハフ変換部４１−２には、縮小２値画像データと、角度検知部４３−１から出力された第１のスキュー角の概算値（δ１）と、ハフ変換を行う角度の範囲を示す“ｒａｎｇｅ２”と、ハフ変換を行う角度のステップ（刻み幅）を示す“ｓｔｅｐ２”が入力される。
【００９２】
ハフ変換部４１−２では、入力された輪郭２値画像データのＨＩＧＨ画素に対して、δ１−ｒａｎｇｅ２≦θ＜δ１＋ｒａｎｇｅ２の範囲でｓｔｅｐ２ごとにハフ変換を行い、ハフ空間データ記憶部４４内のハフ空間メモリに図２０（ａ）に示すようなハフ空間データ（ヒストグラム）が作成される。なお、前記各値としては、０＜ｒａｎｇｅ２＜ｒａｎｇｅ１、０＜ｓｔｅｐ２＜ｓｔｅｐ１でないと意味は無く、例えば、ｒａｎｇｅ２＝ｓｔｅｐ１＝５π／１８０、ｓｔｅｐ２＝π／１８０などを用いる。ハフ変換部４１−２の処理は、ハフ変換部４１と同様なので、ここでの説明は省略する。
【００９３】
ハフ空間データ演算投影部４２−２では、ハフ空間データ記憶部４４内のハフ空間メモリに記憶されているハフ空間データ（ヒストグラム）を順次読み出し、所定の演算処理を施した後、演算投影データ記憶部４５に格納し、演算投影データ記憶部４５内の演算投影メモリに、図２０（ｂ）に示すような演算投影ヒストグラムデータを作成する。ハフ空間データ演算投影部４２−２の処理は、ハフ空間データ演算投影部４２と同様なので、ここでの説明は省略する。
【００９４】
角度検知部４３−２では、図２０（ｂ）に示すような演算投影ヒストグラムデータから、演算投影頻度が最大となるδ２を検出し、検出した角度δ２をハフ変換部４１−３に対して出力する。角度検知部４３−２の処理は、角度検知部４３と同様なので、ここでの説明は省略する。このようにして、縮小した輪郭２値画像データに対して、粗い角度ステップでハフ変換を行うことにより、第２のスキュー角の概算値（δ２）を求める。
【００９５】
スキュー角検知部１２入力された輪郭２値画像データはハフ変換部４１−３にも入力される。ハフ変換部４１−３には、輪郭２値画像データと、角度検知部４３−２から出力された第２のスキュー角の概算値（δ２）と、ハフ変換を行う角度の範囲を示す“ｒａｎｇｅ３”と、ハフ変換を行う角度のステップ（刻み幅）を示す“ｓｔｅｐ３”が入力される。
【００９６】
ハフ変換部４１−３では、入力された輪郭２値画像データのＨＩＧＨ画素に対して、δ２−ｒａｎｇｅ３≦θ＜δ２＋ｒａｎｇｅ３の範囲でｓｔｅｐ３ごとにハフ変換を行い、ハフ空間データ記憶部４４内のハフ空間メモリに図２０（ｃ）に示すようなハフ空間データ（ヒストグラム）が作成される。なお、前記各値としては、０＜ｒａｎｇｅ３＜ｒａｎｇｅ２、０＜ｓｔｅｐ３＜ｓｔｅｐ２でないと意味は無く、例えば、ｒａｎｇｅ３＝ｓｔｅｐ２＝π／１８０、ｓｔｅｐ３＝π／１８００などを用いる。ハフ変換部４１−３の処理は、ハフ変換部４１と同様なので、ここでの説明は省略する。
【００９７】
ハフ空間データ演算投影部４２−３では、ハフ空間データ記憶部４４内のハフ空間メモリに記憶されているハフ空間データ（ヒストグラム）を順次読み出し、所定の演算処理を施した後、演算投影データ記憶部４５に格納し、演算投影データ記憶部４５内の演算投影メモリに、図２０（ｄ）に示すような演算投影ヒストグラムデータを作成する。ハフ空間データ演算投影部４２−３の処理は、ハフ空間データ演算投影部４２と同様なので、ここでの説明は省略する。
【００９８】
角度検知部４３−３では、図２０（ｄ）に示すような演算投影ヒストグラムデータから、演算投影頻度が最大となる角度δ３を検出し、検出したδ３をスキュー角検知部１３の検知結果として出力する。角度検知部４３−３の処理は、角度検知部４３と同様なので、ここでの説明は省略する。
【００９９】
以上のように、大きい倍率で縮小した輪郭２値画像データに対して、広い角度範囲・粗い角度ステップでハフ変換を行って第１のスキュー角の概算値を求め、次に小さい倍率で縮小した輪郭２値画像データに対して、前よりは狭い角度範囲・前よりは細かい角度ステップでハフ変換を行って第２のスキュー角の概算値を求め、そして、輪郭２値画像データに対して、さらに狭い角度範囲・さらに細かい角度ステップでハフ変換を行うことにより、少ない処理量・少ないメモリ容量で、高速かつ高精度なスキュー角検知を行うことができる。
【０１００】
なお、本実施形態では、概算値から詳細値まで３段階の構成でスキュー角の検知を行っているが、２段階でもあるいは４段階以上でも構わない。
【０１０１】
また、本実施形態では、スキュー角検知部１３を縮小部が２つ、ハフ変換部・ハフ空間データ演算投影部・角度検知部がそれぞれ３つで構成しているが、それぞれ１つにし、パラメータを変更しながら処理を行うような構成にしても構わない。
【０１０２】
以上説明したように、本発明の第２実施形態に係る画像処理装置およびその処理方法では、文字・線画・写真・網点等の混在した画像に対しても、スキュー角度を検知するのにノイズとなる写真・網点領域中の画素は抽出しないで適切に輪郭画像を抽出してハフ変換を実施し、またハフ空間データからその密集度を検知できる所定の演算を施して投影ヒストグラムに投影し、この投影されたヒストグラムからスキュー角を検知する処理を多段階化することにより、入力画像の種別に関係しない、高速・高精度なスキュー角の検出・補正処理を行うことが可能となる。
【０１０３】
＜第３実施形態＞
次に、本発明の第３実施形態に係る画像処理装置について説明する。なお、以下の説明の中で、第1，第２実施形態と処理内容が同様の処理部に関しては同一番号を付し、その説明については重複するので省略するものとする。すなわち、第３実施形態に係る画像処理装置では、図１に示す画像処理装置の構成例については、第1，第２実施形態と同じなのでここでの説明は省略し、第1，第２実施形態と構成が異なり、その具体的な構成を特徴とするスキュー補正部について説明を行うものとする。
【０１０４】
図２１は、本発明の第３実施形態に係る画像処理装置におけるスキュー補正部の構成例を示すブロック図である。図２１において、スキュー補正部に入力されたＲＧＢ画像データは、２値化部１１および画像回転部１４に入力される。
【０１０５】
２値化部１１では、入力されたＲＧＢ画像データから、例えば画像中に含まれる文字や線、絵柄や写真などの領域に属する画素はＨＩＧＨとし，背景領域に属する画素はＬＯＷとした各画素１ｂｉｔ、即ち２値化された２値画像データを作成して出力する。２値化部１１の詳細については前述しているので、ここでの説明は省略する。２値化部１１から出力された２値画像データは、スキュー角検知部１５に入力される。スキュー角検知部１５では、入力された２値画像データを用いて画像データのスキュー角度を算出して出力する。スキュー角検知部１５の詳細については後述する。
【０１０６】
スキュー角検知部１５において検知されたスキュー角度は画像回転部１４に入力される。また、画像回転部１４にはＲＧＢ画像データが入力され、スキュー角検知部１５において検知されたスキュー角度に基づき、ＲＧＢ画像データのスキューが補正される。画像回転の方法としては、例えばＡｆｆｉｎｅ変換などを用いた周知の方法を用い得る。スキュー補正の行われたＲＧＢ画像データ（スキュー補正後ＲＧＢ画像データ）は、スキュー補正部でのスキュー補正結果として出力される。
【０１０７】
続いて、スキュー角検知部１５の詳細について図２２を用いて説明する。スキュー角検知部１５に入力された２値画像データは、縮小部４６−１〜４６−２および輪郭抽出部１２−３に入力される。縮小部４６−１では、入力された２値画像データの縮小処理を行い、縮小２値画像データを輪郭抽出部１２−１に出力する。縮小部４６−１については前述しているので、ここでの説明は省略する。
【０１０８】
輪郭抽出部１２−１では、縮小部４６−１から入力された縮小２値画像データのＨＩＧＨ画素群の輪郭を抽出・輪郭２値画像を生成し、ハフ変換部４１−１に出力する。輪郭抽出部１２−１での処理は、輪郭抽出部１２と同様であり、その詳細については前述しているので、ここでの説明は省略する。
【０１０９】
このように、第２実施形態とは異なり、２値画像データに対し先に縮小処理を行い、その後縮小処理の行われた画像に対して輪郭抽出処理を行うことにより、２値化部１１で画像データの２値化を行った際に、連続したＨＩＧＨ画素として２値化できなかった写真・網点領域なども、先に縮小処理を行うことにより連続したＨＩＧＨ画素の領域とすることができ、その領域に対して輪郭抽出を行うことにより、スキュー角度を検知するのに不要な輪郭の抽出を防止することができる。すなわち、高速・少メモリ容量・高精度なスキュー角検知が可能となる。
【０１１０】
なお、上記で説明した以外の、縮小部４６−２、輪郭抽出部１２−２〜１２−３、ハフ変換部４１−１〜４１−３、ハフ空間データ記憶部４４、ハフ空間データ演算投影部４２−１〜４２−３、演算投影データ記憶部４５、角度検知部４３−１〜４３−３の処理内容および処理構成は、第２実施形態の場合と同様なので、ここでの説明は省略する。
【０１１１】
以上説明したように、本発明の第３実施形態に係る画像処理装置およびその処理方法では、文字・線画・写真・網点等の混在した画像に対しても、スキュー角度を検知するのにノイズとなる写真・網点領域中の画素は抽出しないで適切に輪郭画像を抽出してハフ変換を実施し、またハフ空間データからその密集度を検知できる所定の演算を施して投影ヒストグラムに投影し、この投影されたヒストグラムからスキュー角を検知する処理を行うことにより、入力画像の種別に関係しない、高速・高精度なスキュー角の検出・補正処理を行うことが可能となる。
【０１１２】
＜第４実施形態＞
次に、本発明の第４実施形態に係る画像処理装置について説明する。なお、以下の説明の中で、第1，第２実施形態と処理内容が同様の処理部に関しては同一番号を付し、その説明については重複するので省略するものとする。すなわち、第４実施形態に係る画像処理装置では、図１に示す画像処理装置の構成例、図２に示すスキュー補正部５の構成例については、第1，第２実施形態と同じなのでここでの説明は省略し、第２実施形態と構成が異なり、その具体的な構成を特徴とするスキュー角検知部について説明を行うものとする。
【０１１３】
図２３は、本発明の第４実施形態に係る画像処理装置におけるスキュー角検知部の構成例を示すブロック図である。図２３において、スキュー角検知部の各処理部および処理構成は、第２実施形態を説明するのに用いた図１６と比較して、角度検知部４７が異なるだけなので、ここでは角度検知部４７の詳細について説明し、それ以外に関しては説明を省略する。
【０１１４】
角度検知部４７での処理の詳細について、図２４および図２５を用いて説明する。角度検知部４７は、演算投影データ記憶部４５から演算投影ヒストグラムデータを読み出し、所定の処理を施した後、ヒストグラムが最大頻度をとる角度を検出し、検出した角度をハフ変換部４１−２に出力する。
【０１１５】
図２４（ａ）は、演算投影データ記憶部４５内の演算投影メモリに記憶された演算投影ヒストグラムデータの例である。図２４（ａ）に示す通り、０≦θ＜πの範囲の演算投影ヒストグラムデータ（ｈｉｓｔ［θ］）が作成され、記憶されているものとする。
【０１１６】
図２５のフローチャートに示すように、角度検知部４７ではまず、後述する演算投影ヒストグラムデータに対する演算結果を格納する演算投影メモリ（ｈｉｓｔ２［θ］）の初期化を行う（ステップＳ３０１）。次に、０≦θ＜πの範囲の演算投影ヒストグラムデータを、０≦θ＜π／２とπ／２≦θ＜πの範囲の２つの演算投影ヒストグラムデータに分割し、それぞれの対応する頻度を加算するために、θに“０”を代入する（ステップＳ３０２）。
【０１１７】
図２４（ｂ）には、分割した２つの演算投影ヒストグラムデータを図示しており、曲線６１が０≦θ＜π／２の範囲の演算投影ヒストグラムデータを、曲線６２がπ／２≦θ＜πの範囲の演算投影ヒストグラムデータを示している。なお、同図（ｂ）では、曲線６２の位相をπ／２ずらして記載してある。
【０１１８】
次に、角度θとπ／２とを比較し（ステップＳ３０３）、θ＜π／２の場合には、θおよびθ＋π／２における演算投影ヒストグラムデータの頻度を加算し、ｈｉｓｔ２［θ］に代入する（ステップＳ３０４）。そして、角度θをｓｔｅｐ１だけ増分する（ステップＳ３０５）。ここで、ｓｔｅｐ１は、第２実施形態を説明したのと同じで、ハフ変換部４１−１がハフ変換を行う際の角度ステップと同じ値である。
【０１１９】
すなわち、ステップＳ３０２〜ステップＳ３０５では、０≦θ＜πの範囲の演算投影ヒストグラムデータ（第１の頻度演算データ）を、０≦θ＜π／２とπ／２≦θ＜πの範囲の２つの演算投影ヒストグラムデータに分割し、この分割した２つの演算投影ヒストグラムデータを、曲線６２の方をπ／２位相をずらして頻度を加算し、新たな演算投影ヒストグラム（ｈｉｓｔ２［θ］）を作成する。図２４（ｂ）の曲線６３が、加算された演算投影ヒストグラムデータ（第２の頻度演算データ）である。
【０１２０】
一方、ステップ３０３の比較結果がθ≧π／２の場合には、ｈｉｓｔ２［θ］において、最大頻度をとる角度θをみつけ、それをδ４に代入する（ステップ３０６）。続いて、元の演算投影ヒストグラムデータ（ｈｉｓｔ［θ］）におけるδ４およびδ４＋π／２の頻度を算出し、それぞれｍａｘ４とｍａｘ５に代入する（ステップＳ３０７）。すなわち、図２４（ｂ）において、角度がδ４における曲線６１と曲線６２の頻度、ｍａｘ４とｍａｘ５を算出する。
【０１２１】
次に、ｍａｘ４とｍａｘ５を比較し（ステップＳ３０８）、ｍａｘ５の方がｍａｘ４よりも大きければ、δ４をπ／２だけ増分する（ステップＳ３０９）。一方、ｍａｘの方がｍａｘ５よりも大きいか、もしくは等しければ、ステップＳ３１０に進み、ステップＳ３０９の処理が終了した場合と同様に、最終的に、角度検知部４７はδ４を検出角度として出力する。
【０１２２】
このようにして、角度検知部４７では、上述した一連の処理を実行して、縮小した輪郭２値画像データに対して、粗い角度ステップでハフ変換を行うことにより、第４のスキュー角の概算値（δ４）を求める。
【０１２３】
次に、角度検知部４７での処理の他の例について、図２６を用いて説明する。図２６は、演算投影データ記憶部４５内の演算投影メモリに記憶された演算投影ヒストグラムデータの例である。角度検知部４７では、演算投影ヒストグラムデータから最大頻度（大きい方の極大頻度）となる点、即ち図２６における極大値６４と、２番目の大きさの極大頻度となる点、即ち図２６における極大値６５とを見つける。
【０１２４】
次に、それぞれの極大頻度をとる角度、即ち図２６における角度δ５と角度δ６を算出する。そして、角度δ５と角度δ６の差がπ／２に近ければ、角度検知部４７は角度δ５を検出角度として出力する。近くなければ、図２３中に破線で示した信号線を用いて、ハフ変換部４１に入力する“ｓｔｅｐ１”などの値を変更して、再度ハフ変換部４１−１からのハフ変換処理を実施したり、あるいはスキュー角度検知不能を示す信号を出力しても構わない。
【０１２５】
すなわち、このような構成にすることにより、概算で求めたスキュー角度の正確性を判定し、不正確と判定した場合には、パラメータを変更して正確な概算スキュー角度を検知することが可能である。
【０１２６】
なお、上記の説明では、０≦θ＜πの範囲で演算投影ヒストグラムデータを作成しているため、一般にθ＝０およびｓｔｅｐ１×ｉ（ｓｔｅｐ１×ｉは、π未満の最大値、ｉは整数）では極大値をとらないが、本発明では、ｈｉｓｔ［０］＝ｈｉｓｔ［π］と考え、例えばｈｉｓｔ［０］＞ｈｉｓｔ［ｓｔｅｐ１］かつｈｉｓｔ［０］＞ｈｉｓｔ［ｓｔｅｐ１×ｉ］のとき、ｈｉｓｔ［０］は極大値であるとする。
【０１２７】
また、上記の説明では、２つの極大頻度をとる角度を算出し、その差分から検知した概算スキュー角度の正確さを判定したが、逆に最大頻度（大きい方の極大頻度）をとる角度を算出し、その角度にπ／２を加算（あるいは減算）した角度付近に極大点が存在しているかを判定して、検知した概算スキュー角度の正確さを判定しても構わない。
【０１２８】
以上説明したように、本発明の第４実施形態に係る画像処理装置およびその処理方法では、文字・線画・写真・網点等の混在した画像に対しても、スキュー角度を検知するのにノイズとなる写真・網点領域中の画素は抽出しないで適切に輪郭画像を抽出してハフ変換を実施し、またハフ空間データからその密集度を検知できる所定の演算を施して投影ヒストグラムに投影し、この投影されたヒストグラムからスキュー角を検知する処理の多段階化を行い、さらに最も粗い概算スキュー角度検知処理の中で検知正確性の判定処理を行うことにより、入力画像の種別に関係しない、高速・高精度なスキュー角の検出・補正処理を行うことが可能となる。
【０１２９】
＜第５実施形態＞
最後に、本発明の第５実施形態に係る画像処理装置について説明する。なお、以下の説明の中で、第1実施形態と処理内容が同様の処理部に関しては同一番号を付して、その説明については重複するので省略するものとする。すなわち、第５実施形態に係る画像処理装置では、図１に示す画像処理装置の構成例については、第1実施形態と同じなのでここでの説明は省略し、第１実施形態と構成が異なり、その具体的な構成を特徴とするスキュー補正部について説明を行うものとする。
【０１３０】
図２７は、本発明の第５実施形態に係る画像処理装置におけるスキュー補正部の構成例を示すブロック図である。図２７において、スキュー補正部に入力された画像データ（解像度４００ｄｐｉ、各画素８ｂｉｔのＲＧＢ画像信号）は、２値化部１１および画像回転部１４に入力される。２値化部１１では、入力されたＲＧＢ画像データから、例えば文字や線、絵柄や写真などの領域に属する画素はＨＩＧＨとし，背景領域に属する画素はＬＯＷとした各画素１ｂｉｔ、即ち２値化された２値画像データを作成して出力する。２値化部１１の詳細についてはすでに述べているので、ここでの説明は省略する。
【０１３１】
２値化部１１から出力された２値画像データは輪郭抽出部１２に入力される。輪郭抽出部１２では、入力された２値画像データ中のＨＩＧＨ画素領域の輪郭を抽出し、抽出した輪郭画素による輪郭２値画像データを作成して出力する。輪郭抽出部１２の詳細についてもすでに述べているので、ここでの説明は省略する。輪郭抽出部１２から出力された輪郭２値画像データは画像部分抽出部１６に入力される。画像部分抽出部１６では、入力された輪郭２値画像データから所定の領域を抽出し（切り出し）、抽出した部分抽出輪郭２値画像データを作成して出力する。画像部分抽出部１６の詳細については後述する。
【０１３２】
画像部分抽出部１６から出力された部分抽出輪郭２値画像データは、スキュー角検知部１３に入力される。スキュー角検知部１３では、入力された部分抽出輪郭２値画像データを用いて画像データのスキュー角度を算出して出力する。スキュー角検知部１３の詳細についてもすでに述べているので、ここでの説明は省略する。
【０１３３】
スキュー角検知部１３において検知されたスキュー角度は画像回転部１４に入力される。また、画像回転部１４にはＲＧＢ画像データが入力され、スキュー角検知部１３において検知されたスキュー角度に基づき、ＲＧＢ画像データのスキューが補正される。画像回転の方法としては、例えばＡｆｆｉｎｅ変換などを用いた周知の方法を用い得る。スキュー補正の行われたＲＧＢ画像データ（スキュー補正後ＲＧＢ画像データ）は、スキュー補正部５でのスキュー補正結果として出力される。
【０１３４】
続いて、図２８および図２９を用いて、画像部分抽出部１６での処理の詳細について説明する。例えば、図２８（ａ）に示すような原稿をスキャナなどから読み込む際に、この原稿が本や雑誌などの場合に、綴じ代部分がスキャナのコンタクトガラスに密着せず浮いてしまうことにより、同図（ｂ）に示すように、一部分（図２８（ｂ）の領域７０）が黒っぽくなった画像データが入力されることがある。
【０１３５】
また、図２９（ａ）に示すような背景部が濃色の原稿をスキャナなどから読み込むときに、この原稿が本や雑誌などの1ページで、このページを曲がって裁断してしまった場合に、同図（ｂ）のように一部分（図２９（ｂ）の領域７２）が白くなった画像データが入力される。そして、図２８（ｂ）や図２９（ｂ）に示すような画像データに対して、２値化部１１での２値化処理および、輪郭抽出部１２での輪郭抽出処理を行うと、図２８（ｃ）や図２９（ｃ）のような輪郭２値画像データが生成される。
【０１３６】
しかしながら、図２８（ｃ）や図２９（ｃ）に示すような輪郭２値画像データに対してスキュー角検知処理を行った場合に、実際の原稿に対して垂直あるいは水平とは異なる長い線分（図２８（ｃ）の線分７１や図２９（ｃ）の線分７３）が存在するため、正確なスキュー角検知ができなくなることがある。
【０１３７】
そこで、画像部分抽出部１６では、入力された輪郭２値画像データから、正確なスキュー角検知を行える領域を抽出し、抽出した部分抽出輪郭２値画像データをスキュー角検知部１３に出力する。すなわち、図２８（ｄ）や図２９（ｄ）に示すように、通常は誤検知を発生させる成分の少ない、画像の中央部領域の抽出を行う。
【０１３８】
また、図示はしていないが、入力された輪郭２値画像データを複数の領域に分割し、それぞれの領域あるいはその内のいくつかの領域を順次画像部分抽出部１６から出力し、複数の領域に対してスキュー角検知部１３で角度検知を行い、各領域ごとに検知された角度に基づいて最終的なスキュー角度を得るようにすることにより、そのスキュー角度の正確性を上げることも可能である。
【０１３９】
なお、上述した第５実施形態の説明の中では、輪郭抽出部１２の後段（スキュー角検知部１３の前段）に画像部分抽出部１６を配置した例を用いたが、本発明はこの構成に限定されるものではなく、例えば、２値化部１１の前段や、２値化部１１の後段（輪郭抽出部１２の前段）に画像部分抽出部１６を配置しても構わない。
【０１４０】
以上説明したように、本発明の第５実施形態に係る画像処理装置およびその処理方法では、原稿を曲がって裁断したり、あるいは本・雑誌などをスキャナーで読み込ませるときにコンタクトガラスから原稿が浮くことなどによる、周辺部が歪んだ文字・線画・写真・網点等の混在した画像に対しても、スキュー角度を検知するのに不適当な画像周辺部や、ノイズとなる写真・網点中の画素は抽出しないで適切に輪郭画像を抽出してハフ変換を実施し、またハフ空間データからその密集度を検知できる所定の演算を施して投影ヒストグラムに投影し、この投影されたヒストグラムからスキュー角を検知することにより、入力画像の種別に関係しない、高精度なスキュー角の検出・補正処理を行うことが可能となる。
【０１４１】
以上説明した上記第１〜第５実施形態に係る画像処理方法の処理動作をコンピュータに実行させるための画像処理プログラムは、フロッピーディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録（記憶）媒体にソフトウェアとして格納される。この記録媒体に格納された画像処理プログラムは、必要に応じてコンピュータによって読み取りが行われ、コンピュータ内のメモリにインストールされて用いられる。そして、インストールされた画像処理プログラムに基づいて、上記第１〜第５実施形態に係る画像処理方法の処理動作、特に文書画像のスキュー検出（傾き検出）が実行されることになる。
【０１４２】
なお、上記各実施形態では、スキュー角検知部１３で検知されたスキュー角の検知結果に基づいて画像のスキュー補正を行う画像回転部１４を備えた画像処理装置に適用した場合を例に採って説明したが、必ずしも画像回転部１４を備えている必要はなく、要は、スキュー角検知部１３を備えた画像処理装置全般に適用可能である。
【０１４３】
【発明の効果】
以上説明したように、本発明によれば、文字・線画・写真・網点等の混在した画像について、画像を入力する際に発生するスキューに対して、スキュー角を検出するのに最適な画素を抽出し、抽出した画素に基づいて大局的に角度検出を行うことができるため、画像種別に関係なく高精度にスキューを補正することができることになる。
【図面の簡単な説明】
【図１】  本発明に係る画像処理装置の構成例を示すブロック図である。
【図２】  本発明の第１実施形態に係るスキュー補正部の構成例を示すブロック図である。
【図３】  ２値化部の構成例を示すブロック図である。
【図４】  膨張部および収縮部での各処理内容を説明するためのである。
【図５】  膨張部および収縮部に用いる画素構成の他の例を示す図である。
【図６】  浮動２値化部の構成例を示すブロック図である。
【図７】  ２値化部の他の構成例を示すブロック図である。
【図８】  輪郭抽出部での処理内容を説明するための図（その１）である。
【図９】  輪郭抽出部での処理内容を説明するための図（その２）である。
【図１０】  スキュー角検知部の構成例を示すブロック図である。
【図１１】  ハフ変換部およびハフ空間データ記憶部での各処理内容を説明するための図である。
【図１２】  ハフ変換の概念を説明するための図である。
【図１３】  ハフ変換部での処理の流れを示すフローチャートである。
【図１４】  ハフ空間データ演算投影部および演算投影データ記憶部での各処理内容を説明するための図である。
【図１５】  ハフ空間データ演算投影部の処理の流れを示すフローチャートである。
【図１６】  本発明の第２実施形態に係るスキュー角検知部の構成例を示すブロック図である。
【図１７】  第２実施形態に係るスキュー角検知部における一方の縮小部での処理内容を説明するための図である。
【図１８】  ハフ空間データ記憶部に記憶されるデータの一例を示す図である。
【図１９】  第２実施形態に係るスキュー角検知部における他方の縮小部での処理内容を説明するための図である。
【図２０】  演算投影データ記憶部に記憶されるデータの一例を示す図である。
【図２１】  本発明の第３実施形態に係るスキュー補正部の構成例を示すブロック図である。
【図２２】  第３実施形態に係るスキュー補正部におけるスキュー角検知部の構成例を示すブロック図である。
【図２３】  本発明の第４実施形態に係るスキュー角検知部の構成例を示すブロック図である。
【図２４】  角度検知部での処理内容を説明するための図である。
【図２５】  角度検知部の処理の流れを示すフローチャートである。
【図２６】  角度検知部での他の処理内容を説明するための図である。
【図２７】  本発明の第５実施形態に係るスキュー補正部の構成例を示すブロック図である。
【図２８】  第５実施形態に係るスキュー補正部における画像部分抽出部の処理内容を示す図（その１）である。
【図２９】  第５実施形態に係るスキュー補正部における画像部分抽出部の処理内容を示す図（その２）である。
【符号の説明】
１…画像入力部、２…データ記憶部、３…演算制御部、５…スキュー補正部、８…画像出力部、１１…２値化部、１２…輪郭抽出部、１３，１５…スキュー角検知部、１４…画像回転部、１６…画像部分抽出部、２１…色成分選択部、２２…浮動２値化部、２３…膨張部、２４…収縮部、２５…明度信号生成部、２６…網点抽出部、４１，４１−１，４１−２，４１−３…ハフ変換部、４２，４２−１，４２−２，４２−３…ハフ空間データ演算投影部、４３，４３−１，４３−２，４３−３，４７…角度検知部
【図１】
0004219542.tif 000002
【図２】
0004219542.tif 000003
【図３】
0004219542.tif 000004
【図４】
0004219542.tif 000005
【図５】
0004219542.tif 000006
【図６】
0004219542.tif 000007
【図７】
0004219542.tif 000008
【図８】
0004219542.tif 000009
【図９】
0004219542.tif 000010
【図１０】
0004219542.tif 000011
【図１１】
0004219542.tif 000012
【図１２】
0004219542.tif 000013
【図１３】
0004219542.tif 000014
【図１４】
0004219542.tif 000015
【図１５】
0004219542.tif 000016
【図１６】
0004219542.tif 000017
【図１７】
0004219542.tif 000018
【図１８】
0004219542.tif 000019
【図１９】
0004219542.tif 000020
【図２０】
0004219542.tif 000021
【図２１】
0004219542.tif 000022
【図２２】
0004219542.tif 000023
【図２３】
0004219542.tif 000024
【図２４】
0004219542.tif 000025
【図２５】
0004219542.tif 000026
【図２６】
0004219542.tif 000027
【図２７】
0004219542.tif 000028
【図２８】
0004219542.tif 000029
【図２９】
0004219542.tif 000030