(57)【特許請求の範囲】
【請求項１】
傾きの検出対象となる画像に対して多階層のウェーブレット空間変換を行う変換手段と、各階層の低周波ブロックをハフ変換し前記画像の角度を検出する検出手段を有し、前記検出手段は、ハフ変換によって得られたρ−θ平面の２次元ヒストグラムを作成し、該２次元ヒストグラムのピークから前記画像の角度を検出することを特徴とする画像傾き検出装置。
【請求項２】
前記検出手段は、階層の最も深い低周波ブロックをハフ変換して角度を検出した後、所定の精度まで順に階層の深い側から低周波ブロックをハフ変換して角度を修正してゆくことを特徴とする請求項１に記載の画像傾き検出装置。
【請求項３】
前記検出手段は、階層が浅いほど細かい角度でハフ変換を行い、ある階層について、前の階層で得られた角度をもとに候補範囲を設定し、該候補範囲について細かい角度でのハフ変換を行って角度を求めることを特徴とする請求項２に記載の画像傾き検出装置。
【請求項４】
前記検出手段は、前記２次元ヒストグラムから各検知角度の分散値を求め、分散値が所定の閾値以下のときに最大頻度となる検知角度を前記画像の角度として検出することを特徴とする請求項１ないし請求項３のいずれか１項に記載の画像傾き検出装置。
【請求項５】
前記検出手段は、前記２次元ヒストグラムから最大頻度となる検知角度および該検知角度の分散値を求め、分散値が所定の閾値より大きい場合には、前記検知角度が垂直に近ければ水平方向が高周波で垂直方向が低周波のブロック（ＨＬブロック）を選択し、前記検知角度が水平に近ければ垂直方向が高周波で水平方向が低周波のブロック（ＬＨブロック）を選択してハフ変換し、角度を検出することを特徴とする請求項１ないし請求項４のいずれか１項に記載の画像傾き検出装置。
【請求項６】
前記検出手段は、前記２次元ヒストグラムから最大頻度となる検知角度および各検知角度の分散値を求め、分散値が所定の閾値より大きい場合には、低周波ブロック以外のブロックを合成して前記検知角度を含む候補範囲についてハフ変換し、角度を検出することを特徴とする請求項１ないし請求項４のいずれか１項に記載の画像傾き検出装置。
【請求項７】
傾きの検出対象となる画像に対してウェーブレット空間変換を行う変換手段と、ウェーブレット空間の低周波ブロックをハフ変換して概略角度を検出し前記概略角度が垂直に近ければ水平方向が高周波で垂直方向が低周波のブロック（ＨＬブロック）を選択し、前記検知角度が水平に近ければ垂直方向が高周波で水平方向が低周波のブロック（ＬＨブロック）を選択してハフ変換し前記画像の角度を検出する検出手段を有することを特徴とする画像傾き検出装置。
【請求項８】
コンピュータに、入力された画像の傾きを検出する処理を実行させる画像傾き検出処理プログラムであって、請求項１ないし請求項７のいずれか１項に記載の画像傾き検出装置の機能をコンピュータに実行させることを特徴とする画像傾き検出処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の傾きを検出する技術に関するものである。
【背景技術】
【０００２】
旧来より画像の傾きを検出するための技術が多数案出され、実際に利用されてきている。代表的なものとして、以下のような従来技術がある。まず特許文献１に記載されている傾き検出技術は、角度θを順次変更しながら文書画像をθだけ回転させ、回転画像中に含まれる全黒画素を含む外接矩形を作成し、その外接矩形の面積が最小となる角度θを画像の傾き角とするものである。また特許文献２に記載されている技術は、黒画素の連結性から外接矩形を作成し。各外接矩形の一つの頂点について種々の方位に投影したヒストグラムを求め、最大頻度となる角度をスキュー角とするものである。
【０００３】
別の方法として、例えば特許文献３に記載されている方法では、画像データをエッジ処理してから２値化し、２値画像に対してハフ変換を施し、ハフ変換により得られたパラメータ空間（ρ−θ平面）上で頻度が所定値以上となる座標グループを生成し、その座標グループから画像の角度を推定している。
【０００４】
【特許文献１】特開平２−１７０２８０号公報
【特許文献２】特開平６−２０３２０２号公報
【特許文献３】特開平１１−３２８４０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、多大な処理時間を要することなく、簡単な処理によって精度よく画像の傾きを検出することができる画像傾き検出装置と、そのような画像傾き検出装置の機能をコンピュータに実行させる画像傾き検出処理プログラムを提供することを目的とするものである。
【課題を解決するための手段】
【０００６】
本発明は、傾きの検出対象となる画像に対して多階層のウェーブレット空間変換を行い、階層の深い方から順に、低周波ブロック（ＬＬブロック）をハフ変換し、ハフ変換によって得られたρ−θ平面の２次元ヒストグラムを作成し、該２次元ヒストグラムのピークから画像の角度を検出してゆくことを特徴とするものである。
【０００７】
より具体的には、ハフ変換によって得られたρ−θ平面の２次元ヒストグラムから、最大頻度となる検知角度とその検知角度の分散値を求め、分散値が所定の閾値以下のときには、その検知角度をその階層における画像の角度として検出する。また、分散値が所定の閾値より大きい場合には、最大頻度となる検知角度から、検知角度が垂直に近ければ水平方向が高周波で垂直方向が低周波のブロック（ＨＬブロック）を選択し、検知角度が水平に近ければ垂直方向が高周波で水平方向が低周波のブロック（ＬＨブロック）を選択してハフ変換し、その階層における角度を検出することができる。このような処理を、深い階層から浅い階層へと順に行えばよい。
【０００８】
また本発明は、傾きの検出対象となる画像に対してウェーブレット空間変換を行い、ウェーブレット空間の低周波ブロック（ＬＬブロック）をハフ変換して概略角度を検出した後、その概略角度が垂直に近ければ水平方向が高周波で垂直方向が低周波のブロック（ＨＬブロック）を選択し、前記検知角度が水平に近ければ垂直方向が高周波で水平方向が低周波のブロック（ＬＨブロック）を選択してハフ変換し、画像の角度を検出することを特徴とするものである。この場合も、多階層のウェーブレット空間変換を行い、階層の深い方から順に処理を行い、より詳細な角度を検出するように構成することもできる。
【０００９】
さらに本発明は、上述のような画像傾き検出装置の機能をコンピュータに実行させることを特徴とするものである。
【発明の効果】
【００１０】
本発明によれば、多階層にウェーブレット空間変換を行うことにより、深い階層では低周波ブロックのサイズは小さくなるため、高速な角度検出処理が可能である。また、例えば画像中に網点部分が存在していても網点がつぶれ、またノイズもつぶれたり除去されるため、これらの影響を受けずに角度を検出することができる。このとき、低周波ブロックを用いることによっても、さらにノイズの影響を受けずに角度を検出することができる。なお、深い階層ではブロックのサイズが小さいため、深い階層の低周波ブロックのみでは画像の角度としてはそれほどの精度が得られないが、深い階層から順に詳細に角度を求めてゆく階層的な角度検知を行うことによって、画像の傾きを精度よく求めることができるという効果がある。
【００１１】
また、低周波ブロックをハフ変換して角度を検出した後、その角度から縦あるいは横方向のいずれかが高周波で他方が低周波のブロック（ＬＨブロックまたはＨＬブロック）のいずれか一方を選択してハフ変換して角度を検出したり、あるいは、低周波ブロック以外のブロックを合成して、より詳細な角度を検出するように構成しても、高速に精度よく画像の傾きを求めることができるという効果がある。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明の実施の一形態を示すブロック図である。図中、１はウェーブレット変換部、２は角度検出部である。ウェーブレット変換部１は、傾きの検出対象となる画像に対して多階層のウェーブレット空間変換を行う。
【００１３】
角度検出部２は、ウェーブレット変換部１で変換した各階層の少なくとも低周波ブロック（ＬＬブロック）をハフ変換し、変換結果から画像の角度を検出する。より具体的には、ウェーブレット空間変換の結果得られる低周波ブロックについて、２値化してハフ変換を施し、得られたρ−θ平面の２次元ヒストグラムを作成する。この２次元ヒストグラムから各検知角度の分散値を求める。分散値が小さければρ−θ平面に点がまとまっていることを示し、角度がある程度定まっているものと判断できる。従って、分散値が所定の閾値以下のときに、最大頻度となる検知角度を画像の角度として検出する。分散値が所定の閾値より大きい場合には、ある角度に特定できない場合を示しており、その場合には、低周波ブロック以外のブロックを用いることができる。例えば、低周波ブロックをハフ変換して得られた２次元ヒストグラムから最大頻度となる角度を求めておき、低周波ブロック以外の、縦あるいは横方向のいずれかが高周波で他方が低周波のブロック（ＬＨブロックまたはＨＬブロック）のいずれか一方を選択して２値化およびハフ変換して、低周波ブロックから求めた角度から所定範囲内で角度を検出する。ＬＨブロックは水平成分を多く含み、ＨＬブロックは垂直成分を多く含むので、低周波ブロックから得られた最大頻度となる角度が水平に近ければＬＨブロックを用い、垂直に近ければＨＬブロックを用いて、より詳細な角度検出を行えばよい。
【００１４】
そして、このような処理を、最も深い階層から浅い階層へ、階層的に順に角度を決定してゆく。このとき、ある階層で求めた角度をもとに、その角度を含む候補範囲を設定し、次の階層ではその候補範囲について細かい角度でのハフ変換を行って角度を検出してゆく。これにより、検出される角度は正しい角度へ次第に修正されてゆくことになり、最終的に精度よく画像の傾き角度を検出することができる。
【００１５】
上述の本発明の実施の一形態について、さらに説明してゆく。図２は、ウェーブレット変換部１において行うウェーブレット空間変換の説明図である。１１〜１６はフィルタ部である。一般的なウェーブレット空間変換は図２（Ａ）に示すような構成により行われる。ここでは、１階層のみについて示している。フィルタ部１１〜１６は、フィルタ処理およびサブサンプリングを行うものであり、‘Ｈ’はハイパスフィルタ処理を、‘Ｇ’はローパスフィルタ処理を、それぞれ行う。また、‘↓２’は２画素に対して１画素を間引くサブサンプリングを行うことを示している。
【００１６】
まず、入力された画像に対して主走査方向に隣り合う２画素毎に、フィルタ部１１ではハイパスフィルタ処理を行って１画素を間引く。またフィルタ部１２ではローパスフィルタ処理を行って１画素を間引く。
【００１７】
フィルタ部１１で処理された画像は、今度は副走査方向に隣り合う２画素毎に、フィルタ部１３でハイパスフィルタ処理を行い、１画素を間引く。これにより主走査方向および副走査方向ともハイパスフィルタ処理を行って、主走査方向および副走査方向とも半分の解像度となった画像（ＨＨブロック）が生成される。同様にフィルタ部１４でローパスフィルタ処理を行い、１画素を間引く。これにより、主走査方向についてはハイパスフィルタ処理、副走査方向についてはローパスフィルタ処理を施した、主走査方向および副走査方向とも半分の解像度となった画像（ＨＬブロック）が生成される。
【００１８】
また、フィルタ部１２で処理された画像は、今度は副走査方向に隣り合う２画素毎に、フィルタ部１５でハイパスフィルタ処理を行い、１画素を間引く。これにより、主走査方向についてはローパスフィルタ処理、副走査方向についてはハイパスフィルタ処理を施した、主走査方向および副走査方向とも半分の解像度となった画像（ＬＨブロック）が生成される。同様に、フィルタ部１６でローパスフィルタ処理を行い、１画素を間引く。これにより、主走査方向および副走査方向ともローパスフィルタ処理を行って、主走査方向および副走査方向とも半分の解像度となった画像（ＬＬブロック）が生成される。
【００１９】
このようなウェーブレット空間変換によって、図２（Ｂ）に示した画像から図２（Ｃ）に示すようにＬＬブロック、ＨＬブロック、ＬＨブロック、ＨＨブロックの４つのブロックが生成される。上述のような生成過程から分かるように、ＨＨブロックには高周波成分が分離されており、細かに変化する画像成分が分離される。また、例えばノイズなどもこのＨＨブロックに分離される。ＨＬブロックは、主走査方向にハイパスフィルタ処理、副走査方向にはローパスフィルタ処理を施したので、主走査方向については細かに変化するが、副走査方向には変化が緩やかな成分が分離される。例えば、副走査方向に延びる線分などがこのＨＬブロックに分離される。逆にＬＨブロックは、主走査方向にローパスフィルタ処理、副走査方向にはハイパスフィルタ処理を施したので、主走査方向については変化が緩やかであり、副走査方向には細かに変化する成分が分離される。例えば、主走査方向に延びる線分などがこのＬＨブロックに分離される。ＬＬブロックは主走査方向および副走査方向ともにローパスフィルタ処理を行っているので低周波成分が分離されており、画像全体としての傾向がこのＬＬブロックに反映されている。従って、このＬＬブロックを参照することによって、画像全体としてどのような傾向にあるかが分かり、本発明においてはこのＬＬブロックから角度を検知している。
【００２０】
多階層のウェーブレット空間変換を行う場合には、上述のようにして得られた４つのブロックのうちのＬＬブロックを図２（Ａ）に示した構成の入力として、処理を繰り返せばよい。２階層のウェーブレット空間変換を行った結果を図２（Ｄ）に示している。１回目の結果には‘１’を付し、２回目の結果には‘２’を付して示してある。太線で示したＬＬ１ブロックについて再度のウェーブレット空間変換を行い、ＬＬ２、ＨＬ２、ＬＨ２、ＨＨ２ブロックを生成している。もちろん、同様にして３回以上のウェーブレット空間変換を行ってもよい。なお、説明の都合上、以下の例では２階層のウェーブレット空間変換を行うものとする。ウェーブレット変換部１では、入力された傾き検知の対象となる画像に対して、上述のような一般的な多階層のウェーブレット空間変換を行い、その結果を角度検出部２に渡す。
【００２１】
角度検出部２では、ウェーブレット変換部１から渡された、ウェーブレット空間変換された画像を受け取り、最下層の階層から順に角度を検出して行き、より詳細な角度を求めてゆく。各階層での角度の検出は、少なくとも低周波成分が分離されたＬＬブロックをハフ変換し、変換結果から画像の角度を検出する。
【００２２】
図３は、一般的なハフ変換の説明図である。ハフ変換は、ｘ−ｙ座標系における直線をρ−θ座標系（極座標系）における１点に変換するものである。変換式は、
ρ＝Ｘ・ｃｏｓθ＋Ｙ・ｓｉｎθ
である。ρ、θが一意に決まれば（すなわちρ−θ座標系における１点は）、Ｘ、Ｙにおける一次式となり、ｘ−ｙ座標系における直線となる。
【００２３】
ハフ変換では、ｘ−ｙ座標系における１点（Ｘ，Ｙ）は、上述の変換式からＸ、Ｙに依存した三角関数式となり、ρ−θ座標系における曲線となる。このとき、図３（Ａ）に示すようにｘ−ｙ座標系における直線上の複数の点についてのρ−θ座標系における曲線は、図３（Ｂ）に示すように１点で交差する。従って、この交点を見つけてｘ−ｙ座標系における直線を求めれば、画像中に存在する直線成分の角度が得られることになる。
【００２４】
もちろん、画像中には様々な直線成分が存在するため、ρ−θ座標系においては多数の交点が存在することになる。そのため、例えば２値画像のそれぞれの黒画素について変換した曲線の軌跡をρ−θ座標系における座標毎に計数してρ−θ座標系における２次元ヒストグラムを作成し、ヒストグラムのピークや分散値などから、画像中の直線成分を推測し、角度を検出すればよい。
【００２５】
角度検出部２では、ＬＬブロックをハフ変換の処理対象としているため、高周波成分、特にノイズなどの影響を受けにくく、また解像度が低くなっているため細かい部分はつぶれており、従って作成した２次元ヒストグラムにおいてピークができやすく、画像全体の傾向として角度を検出することができる。例えば網点部分などは、高周波成分としてＨＨブロックに分離され、ＬＬブロックについてはローパスフィルタ処理およびサブサンプリングの際につぶされたり消去されてしまうため、個々の網点が角度の検出に影響することはない。
【００２６】
また、ＬＬブロックの大きさは元の画像（あるいは１つ上の階層のＬＬブロック）の１／４であり、変換すべき画素数も少ないため高速に処理を行うことができる。例えば図２（Ｄ）に示したＬＬ２ブロックであれば、元の画像の１／１６の画素しかなく、高速に処理を行うことができる。
【００２７】
例えばウェーブレット変換部１において２階層のウェーブレット空間変換を行った場合、角度検出部２ではＬＬ２ブロックについて上述のようにしてハフ変換を行い、角度を検出することができる。しかし、ＬＬ２ブロックは上述のように元の画像の１／１６しかなく、サブサンプリングによりつぶれも生じているため、得られた角度の精度が低い可能性がある。このとき、上述の２次元ヒストグラムにおいてピークの分散値を求めると、分散値が小さい場合（例えば分散値が所定の閾値以下の場合）には、ピークがはっきりと表れていることを示すため、得られた角度は精度よく求められていると言える。しかし分散値が大きい場合（例えば分散値が所定の閾値より大きい場合）には、ピークがそれほどはっきりと表れておらず、従って得られた角度はそれほど精度よく求められていない可能性がある。このような場合には、さらに精度よく角度を求める処理を行う。
【００２８】
さらに精度よく角度を求める方法として、１つ上の階層のＬＬブロックを用い、既に得られている角度を含む候補範囲でハフ変換を行い、精度を高めてゆくことができる。もちろんそのまま１つ上の階層の処理に移行してもよいが、ここでは、１つ上の階層の処理に移行する前に同じ階層の他のブロックを用いて精度を高める処理を行う。
【００２９】
図２で説明したように、ウェーブレット空間変換を行うとＨＬブロックには垂直成分が、ＬＨブロックには水平成分が含まれている。従って、ρ−θ平面の２次元ヒストグラムから得られた最大頻度の点に対応する画像の角度が垂直に近ければＨＬブロックを用い、水平に近ければＬＨブロックを用いることによって、さらに詳細な角度を検出することができる。例えばＬＬブロックから得られた角度が０°〜４５°または１３５°〜１８０°であれば水平に近いと判断してＬＨブロックを用い、４５°〜１３５°であれば垂直に近いと判断してＨＬブロックを用い、ハフ変換して角度を検出すればよい。このとき、ＬＬブロックから得られた角度を含む候補範囲でハフ変換および角度の検出を行ってもよい。
【００３０】
あるいは、ＬＬブロックを除くＨＬブロック、ＬＨブロック、ＨＨブロックを合成し、ＬＬブロックから得られた角度を含む候補範囲でハフ変換および角度の検出を行うこともできる。例えばローパスフィルタ処理およびサブサンプリングによってつぶれたり白抜けが大きく発生している場合、高周波成分を利用することにより、さらに詳細な角度を検出することが可能である。このとき、候補範囲を設定しておけば、ノイズなどで全く異なる角度が検出されることはない。
【００３１】
このようにＬＬブロック以外のブロックを用いて得られた角度を、当該階層における角度とし、その角度を１つ上の階層において修正してゆくことにより精度よく画像の角度を求めることができる。なお、例えば上述の２次元ヒストグラムから求めたピークの分散値が十分小さい場合には、それより上位の階層についての処理を行うことなく、最終的な画像の角度として出力することができる。また、十分な精度が得られれば、１層のみにおいてＬＬブロックからの角度検出とＬＬブロック以外のブロックからの角度検出の処理のみで、最終的な画像の角度としてもよい。
【００３２】
図４および図５は、本発明の実施の一形態における動作の一例を示すフローチャートである。ここでは図２（Ｄ）に示すように２階層のウェーブレット空間変換をウェーブレット変換部１で行った場合に、角度検出部２で行う処理の一例について示している。図４は最下層（ＬＬ２、ＨＬ２、ＬＨ２、ＨＨ２）に対する角度検出の処理、図５はその上層（ＬＬ１、ＨＬ１、ＬＨ１、ＨＨ１）に対する角度検出の処理を示している。
【００３３】
角度検出部２は、まず、最下層の低周波ブロックであるＬＬ２ブロックを用いて角度検出処理を行う。Ｓ５１において、ＬＬ２ブロックを２値化する。そしてＳ５２において、２値化したＬＬ２ブロックについてハフ変換を行い、ρ−θ平面の２次元ヒストグラムを作成する。このとき作成する２次元ヒストグラムは、０°≦θ≦１８０°の範囲で作成する必要がある。範囲が広いため、処理速度などを考慮して、どの程度の精度で角度を求めるかを決めておけばよい。例えば数度単位のヒストグラムでもよい。ここでは３°単位で２次元ヒストグラムを作成した。
【００３４】
Ｓ５３において、Ｓ５２で作成した２次元ヒストグラムから最大頻度の（ρ，θ）を求める。これをｍａｘ（ρLL2 ，θLL2 ）とする。また、このｍａｘ（ρLL2 ，θLL2 ）についての分散値ＶLL2 を算出する。なお、この分散値ＶLL2 はθLL2 について求めるだけでもよい。
【００３５】
Ｓ５４において、Ｓ５３で求めたｍａｘ（ρLL2 ，θLL2 ）についての分散値ＶLL2 が、所定の閾値ＴＨより大きいか否かを判定し、閾値ＴＨ以下である場合には十分な精度で角度が検出できたものとして、Ｓ５５において、ｍａｘ（ρLL2 ，θLL2 ）のθLL2 を入力された画像の傾き角度として出力し、処理を終える。これにより、以降の処理を行わなくてよいので、処理時間を短縮することができる。なお、さらに詳細に角度を求めるため、ＬＬ１ブロックの処理（Ｓ７１）へ移行してもよい。
【００３６】
分散値ＶLL2 が所定の閾値ＴＨより大きい場合には、θLL2 を画像の角度として採用するには十分な精度ではないとして、この例では同じ階層のＬＬブロック以外のブロック、特にＨＬブロックかＬＨブロックのいずれかを用いて、さらに角度を求める。Ｓ５６において、ｍａｘ（ρLL2 ，θLL2 ）のθLL2 が０°＜θLL2 ＜４５°または１３５°＜θLL2 ＜１８０°か否かを判断する。この角度の場合には傾きが水平に近いので、Ｓ５７において処理対象をＬＨ２ブロックとし、ＬＨ２ブロックを２値化する。Ｓ５８において、２値化したＬＨ２ブロックについてハフ変換を行い、ρ−θ平面の２次元ヒストグラムを作成する。このとき作成する２次元ヒストグラムも、Ｓ５２と同様の精度で作成すればよい。あるいは、Ｓ５６の条件の範囲内で精度を高めて２次元ヒストグラムを作成してもよい。ここではＳ５２と同様、３°単位で２次元ヒストグラムを作成した。
【００３７】
Ｓ５９において、Ｓ５８で作成した２次元ヒストグラムから最大頻度の（ρ，θ）を求める。これをｍａｘ（ρLH2 ，θLH2 ）とする。また、このｍａｘ（ρLH2 ，θLH2 ）についての分散値ＶLH2 を算出する。なお、この分散値ＶLH2 についても、θLH2 に対して求めればよい。
【００３８】
Ｓ６０において、Ｓ５９で求めたｍａｘ（ρLH2 ，θLH2 ）についての分散値ＶLH2 が、所定の閾値ＴＨより大きいか否かを判定し、閾値ＴＨ以下である場合には十分な精度で角度が検出できたものとして、Ｓ６１において、ｍａｘ（ρLH2 ，θLH2 ）のθLH2 を入力された画像の傾き角度として出力し、処理を終える。この場合も、ここまでの処理で終了させることにより、傾き検出のための処理時間を短縮することができる。なお、さらに詳細に角度を求めるため、ＬＬ１ブロックの処理（Ｓ７１）へ移行してもよい。
【００３９】
分散値ＶLH2 が所定の閾値ＴＨより大きい場合には、θLH2 を画像の角度として採用するには十分な精度ではないとして、さらに詳細に角度を求めるため、ＬＬ１ブロックの処理（Ｓ７１）へ移行する。
【００４０】
Ｓ５６でｍａｘ（ρLL2 ，θLL2 ）のθLL2 が０°＜θLL2 ＜４５°または１３５°＜θLL2 ＜１８０°ではないと判断された場合、すなわち４５°＜θLL2 ＜１３５°の場合には、傾きが垂直に近いので、Ｓ６２において処理対象をＨＬ２ブロックとし、ＨＬ２ブロックを２値化する。Ｓ６３において、２値化したＨＬ２ブロックについてハフ変換を行い、ρ−θ平面の２次元ヒストグラムを作成する。このとき作成する２次元ヒストグラムも、Ｓ５８と同様の精度で作成すればよい。
【００４１】
Ｓ６４において、Ｓ６３で作成した２次元ヒストグラムから最大頻度の（ρ，θ）を求める。これをｍａｘ（ρHL2 ，θHL2 ）とする。また、このｍａｘ（ρHL2 ，θHL2 ）についての分散値ＶHL2 を算出する。なお、この分散値ＶHL2 についても、θHL2 に対して求めればよい。
【００４２】
Ｓ６５において、Ｓ６４で求めたｍａｘ（ρHL2 ，θHL2 ）についての分散値ＶHL2 が、所定の閾値ＴＨより大きいか否かを判定し、閾値ＴＨ以下である場合には十分な精度で角度が検出できたものとして、Ｓ６６において、ｍａｘ（ρHL2 ，θHL2 ）のθHL2 を入力された画像の傾き角度として出力し、処理を終える。これにより、傾き角度の検出処理時間を短縮することができる。なお、さらに詳細に角度を求めるため、ＬＬ１ブロックの処理（Ｓ７１）へ移行してもよい。
【００４３】
分散値ＶHL2 が所定の閾値ＴＨより大きい場合には、θHL2 を画像の角度として採用するには十分な精度ではないとして、さらに詳細に角度を求めるため、ＬＬ１ブロックの処理（Ｓ７１）へ移行する。
【００４４】
次にＳ７１以降の処理により、これまで求めた角度をもとにして次の階層（ＬＬ１、ＨＬ１、ＬＨ１、ＨＨ１）に対する角度検出の処理を行う。Ｓ７１において、ＬＬ１ブロックを２値化する。そしてＳ７２において、２値化したＬＬ１ブロックについてハフ変換を行い、ρ−θ平面の２次元ヒストグラムを作成する。このとき作成する２次元ヒストグラムは、Ｓ７９やＳ８４（またはＳ７３）で求めた角度を含む候補範囲について、詳細に２次元ヒストグラムを作成する。例えば、先に求めた角度を中心に±３°の範囲を候補範囲とし、０．１°単位で２次元ヒストグラムを作成した。
【００４５】
Ｓ７３において、Ｓ７２で作成した２次元ヒストグラムから最大頻度の（ρ，θ）を求める。これをｍａｘ（ρLL1 ，θLL1 ）とする。また、このｍａｘ（ρLL1 ，θLL1 ）についての分散値ＶLL1 を算出する。なお、この分散値ＶLL1 はθLL1 について求めるだけでもよい。
【００４６】
Ｓ７４において、Ｓ７３で求めたｍａｘ（ρLL1 ，θLL1 ）についての分散値ＶLL1 が、所定の閾値ＴＨより大きいか否かを判定し、閾値ＴＨ以下である場合には十分な精度で角度が検出できたものとして、Ｓ７５において、ｍａｘ（ρLL1 ，θLL1 ）のθLL1 を入力された画像の傾き角度として出力し、処理を終える。この時点で傾き角度を出力できれば、以降の処理を行わない分だけ処理時間を短縮することができる。
【００４７】
分散値ＶLL1 が所定の閾値ＴＨより大きい場合には、θLL1 を画像の角度として採用するには十分な精度ではないとして、この例では同じ階層のＬＬブロック以外のブロック、特にＨＬブロックかＬＨブロックのいずれかを用いて、さらに角度を求める。Ｓ７６において、ｍａｘ（ρLL1 ，θLL1 ）のθLL1 が０°＜θLL1 ＜４５°または１３５°＜θLL1 ＜１８０°か否かを判断する。この角度の場合には傾きが水平に近いので、Ｓ７７において処理対象をＬＨ１ブロックとし、ＬＨ１ブロックを２値化する。Ｓ７８において、２値化したＬＨ１ブロックについてハフ変換を行い、ρ−θ平面の２次元ヒストグラムを作成する。このとき作成する２次元ヒストグラムも、Ｓ７２と同様の精度で作成すればよい。あるいは、Ｓ７３で得られた角度をもとに候補範囲を狭め、精度を高めて２次元ヒストグラムを作成してもよい。ここではＳ７２と同様の候補範囲で、０．１°単位で２次元ヒストグラムを作成した。
【００４８】
Ｓ７９において、Ｓ７８で作成した２次元ヒストグラムから最大頻度の（ρ，θ）を求める。これをｍａｘ（ρLH1 ，θLH1 ）とする。Ｓ８０において、ｍａｘ（ρLH1 ，θLH1 ）のθLH1 を入力された画像の傾き角度として出力し、処理を終える。
【００４９】
Ｓ７６でｍａｘ（ρLL1 ，θLL1 ）のθLL1 が０°＜θLL1 ＜４５°または１３５°＜θLL1 ＜１８０°ではないと判断された場合、すなわち４５°＜θLL1 ＜１３５°の場合には、傾きが垂直に近いので、Ｓ８１において処理対象をＨＬ１ブロックとし、ＨＬ１ブロックを２値化する。Ｓ８２において、２値化したＨＬ１ブロックについてハフ変換を行い、ρ−θ平面の２次元ヒストグラムを作成する。このとき作成する２次元ヒストグラムも、Ｓ７８と同様の候補範囲及び精度で作成すればよい。
【００５０】
Ｓ８３において、Ｓ８２で作成した２次元ヒストグラムから最大頻度の（ρ，θ）を求める。これをｍａｘ（ρHL1 ，θHL1 ）とする。Ｓ８４において、ｍａｘ（ρHL1 ，θHL1 ）のθHL1 を入力された画像の傾き角度として出力し、処理を終える。
【００５１】
このように、多階層のウェーブレット変換を行って階層的に角度を検出することによって、精度よく画像の傾き角度を検出することができる。しかも、元の画像のままで同じ精度で角度を検出する場合に比べて高速に検出することができる。
【００５２】
なお、上述の動作例では分散値の判定を行うための閾値を区別していないが、同じであってもよいし、各階層や、各階層のＬＬブロックとＬＨ、ＨＬブロックに対する閾値を異ならせてもよい。もちろん、それぞれを任意に設定することができる。
【００５３】
また、この例では２階層の場合について示したが、３階層以上であっても同様にして階層的に角度を検出することができる。さらに、ＬＨブロックまたはＨＬブロックを用いずにＬＬブロックのみにより階層的に角度を検出することもできる。あるいは、ＬＨブロック、ＨＬブロック、ＨＨブロックを合成してハフ変換し、２次元ヒストグラムを作成して最大頻度の（ρ，θ）から当該階層の角度を求めてもよい。
【００５４】
図６は、本発明の画像傾き検出装置の機能をコンピュータプログラムで実現した場合におけるコンピュータプログラム及びそのコンピュータプログラムを格納した記憶媒体の一例の説明図である。図中、２１はプログラム、２２はコンピュータ、３１は光磁気ディスク、３２は光ディスク、３３は磁気ディスク、３４はメモリ、４１は光磁気ディスク装置、４２は光ディスク装置、４３は磁気ディスク装置である。
【００５５】
上述の各実施の形態で説明した各部の機能の一部または全部を、コンピュータにより実行可能なプログラム２１によって実現することが可能である。その場合、そのプログラム２１およびそのプログラムが用いるデータなどは、コンピュータが読み取り可能な記憶媒体に記憶することも可能である。記憶媒体とは、コンピュータのハードウェア資源に備えられている読取装置に対して、プログラムの記述内容に応じて、磁気、光、電気等のエネルギーの変化状態を引き起こして、それに対応する信号の形式で、読取装置にプログラムの記述内容を伝達できるものである。例えば、光磁気ディスク３１，光ディスク３２（ＣＤやＤＶＤなどを含む）、磁気ディスク３３，メモリ３４（ＩＣカード、メモリカードなどを含む）等である。もちろんこれらの記憶媒体は、可搬型に限られるものではない。
【００５６】
これらの記憶媒体にプログラム２１を格納しておき、例えばコンピュータ２２の光磁気ディスク装置４１，光ディスク装置４２，磁気ディスク装置４３，あるいは図示しないメモリスロットにこれらの記憶媒体を装着することによって、コンピュータからプログラム２１を読み出し、本発明の画像傾き検出装置の機能を実行することができる。あるいは、ネットワークなどを介してプログラム２１をコンピュータ２２に転送し、実行させてもよい。
【００５７】
もちろん、一部の機能についてハードウェアによって構成することもできるし、すべてをハードウェアで構成してもよい。あるいは、他の構成とともに本発明も含めたプログラムとして構成することも可能である。例えば複写機などの画像形成装置における制御プログラムとともに１つのプログラムとして構成し、原稿の傾きを検知するように構成することもできる。もちろん、他の用途に適用する場合には、その用途におけるプログラムとの一体化も可能である。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施の一形態を示すブロック図である。
【図２】ウェーブレット変換部１において行うウェーブレット空間変換の説明図である。
【図３】一般的なハフ変換の説明図である。
【図４】本発明の実施の一形態における動作の一例を示すフローチャートである。
【図５】本発明の実施の一形態における動作の一例を示すフローチャート（続き）である。
【図６】本発明の画像傾き検出装置の機能をコンピュータプログラムで実現した場合におけるコンピュータプログラム及びそのコンピュータプログラムを格納した記憶媒体の一例の説明図である。
【符号の説明】
【００５９】
１…ウェーブレット変換部、２…角度検出部、１１〜１６…フィルタ部、２１…プログラム、２２…コンピュータ、３１…光磁気ディスク、３２…光ディスク、３３…磁気ディスク、３４…メモリ、４１…光磁気ディスク装置、４２…光ディスク装置、４３…磁気ディスク装置。
【図１】
0004692764.tif 000002
【図２】
0004692764.tif 000003
【図３】
0004692764.tif 000004
【図４】
0004692764.tif 000005
【図５】
0004692764.tif 000006
【図６】
0004692764.tif 000007