(57)【特許請求の範囲】
【請求項１】
入力された画像の縦と横との解像度を抽出する抽出手段と、
前記抽出された前記画像の縦と横との解像度が等しいか否かを判別し、前記縦と横との解像度が異なる場合、前記縦と横との解像度が等しくなるように、前記縦と横とのいずれか一方の解像度を他方の解像度と同じ解像度に解像度変換する第１の解像度変換手段と、
前記入力された画像の傾きを検出する検出手段と、
前記第１の解像度変換手段で解像度変換された画像を、前記検出手段で検出された前記画像の傾きに応じて回転させて傾き補正する傾き補正手段と、
前記傾き補正手段で傾き補正された画像の、前記第１の解像度変換手段で解像度変換された一方の解像度を、元の解像度に解像度変換する第２の解像度変換手段とを備える、画像処理装置。
【請求項２】
入力された画像の縦と横との解像度を抽出する抽出手段と、
前記抽出された前記画像の縦と横との解像度が等しいか否かを判別し、前記縦と横との解像度が異なる場合、前記縦と横との解像度が等しくなるように、前記縦と横とのいずれか一方の解像度を他方の解像度と同じ解像度に解像度変換する第１の解像度変換手段と、
前記入力された画像の傾きを検出する検出手段と、
前記第１の解像度変換手段で解像度変換された画像を、前記検出手段で検出された前記画像の傾きに応じて回転させて傾き補正する傾き補正手段と、
前記傾き補正手段で傾き補正された画像の、前記第１の解像度変換手段で解像度変換された一方の解像度を、所望の解像度に解像度変換する第２の解像度変換手段とを備える、画像処理装置。
【請求項３】
前記第１の解像度変換手段は、前記画像の縦と横との解像度のうち低い方の解像度が所定の解像度よりも低い場合、前記低い方の解像度を他方の解像度と同じ解像度に解像度変換し、前記低い方の解像度が前記所定の解像度よりも高い場合、高い方の解像度を前記低い方の解像度と同じ解像度に解像度変換する、請求項１または２に記載の画像処理装置。
【請求項４】
入力された画像の縦と横との解像度を抽出する抽出手段と、
前記抽出された前記画像の縦と横との解像度が等しいか否かを判別し、前記縦と横との解像度が異なる場合、前記縦と横との解像度が等しくなるように、前記縦と横との解像度を予め定められた特定の解像度に解像度変換する第１の解像度変換手段と、
前記入力された画像の傾きを検出する検出手段と、
前記第１の解像度変換手段で解像度変換された画像を、前記検出手段で検出された前記画像の傾き角度分、前記検出された傾きに対して逆方向に回転させて傾き補正する傾き補正手段と、
前記傾き補正手段で傾き補正された画像の、前記第１の解像度変換手段で解像度変換された縦と横との解像度を、各々元の解像度に解像度変換する第２の解像度変換手段とを備える、画像処理装置。
【請求項５】
入力された画像の縦と横との解像度を抽出する抽出ステップと、
前記抽出された前記画像の縦と横との解像度が等しいか否かを判別し、前記縦と横との解像度が異なる場合、前記縦と横との解像度が等しくなるように、前記縦と横とのいずれか一方の解像度を他方の解像度と同じ解像度に解像度変換する第１の解像度変換ステップと、
前記第１の解像度変換ステップで解像度変換された画像を、所定の角度回転させて傾き補正する傾き補正ステップと、
前記傾き補正ステップで傾き補正された画像の、前記第１の解像度変換ステップで解像度変換された一方の解像度を、元の解像度に解像度変換する第２の解像度変換ステップとをコンピュータに実行させる、画像処理プログラム。
【請求項６】
入力された画像の縦と横との解像度を抽出する抽出ステップと、
前記抽出された前記画像の縦と横との解像度が等しいか否かを判別し、前記縦と横との解像度が異なる場合、前記縦と横との解像度が等しくなるように、前記縦と横との解像度を予め定められた特定の解像度に解像度変換する第１の解像度変換ステップと、
前記第１の解像度変換ステップで解像度変換された画像を、所定の傾き角度分回転させて傾き補正する傾き補正ステップと、
前記傾き補正ステップで傾き補正された画像の、前記第１の解像度変換ステップで解像度変換された縦と横との解像度を、各々元の解像度に解像度変換する第２の解像度変換ステップとをコンピュータに実行させる、画像処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は画像処理装置および画像処理プログラムに関し、特に、入力された画像データに対して傾き補正処理を行なう画像処理装置および画像処理プログラムに関する。
【０００２】
【従来の技術】
スキャナだけではなく、ファクシミリから読込まれた画像データについても、コンピュータ上で取扱う機会が増加している。
【０００３】
ファクシミリから読込まれた画像データは、ファクシミリの画像読込モードによって縦横の解像度が異なる場合がある。例えば、スーパーファインモードで読込んだファクシミリ画像の縦横の解像度は、２００ｄｐｉ×４００ｄｐｉとなっている。
【０００４】
また、スキャナから読込まれた画像の縦横の解像度は一致していることが多いが、縦横の読取解像度をそれぞれ個別に設定できるものもある。
【０００５】
従来より、このように読込まれた画像データの傾きを補正する傾き補正の処理として様々な方法が提案されている。例えば、特許文献１は、様々な走査方向において、読込まれた画像のラインごとの累積ヒストグラムを作成して、「走査方法と傾き角度とが一致した場合は累積ヒストグラムに明確なピークが発生する」という性質を利用して傾き角度を検出する。そして、検出された傾き角度に基づいて読込まれた画像を回転することによって傾きを補正する傾き補正装置について開示している。
【０００６】
また、特許文献２もまた、同様の方法で傾き角度を検出し、読込まれた画像の傾き補正を行なうファクシミリ装置について開示している。
【０００７】
また、特許文献３は、読取った画像データから矩形領域となる罫線を検出し、この罫線の角度ずれを検出することで傾き角度を検出し、傾きを補正するファクシミリ装置について開示している。
【０００８】
上述の特許文献１〜３などに開示されている傾き補正の処理は、読込まれた画像の縦横の解像度が一致している、すなわち、読込まれた画像の横方向の傾き角度と縦方向の傾き角度とが一致していることを前提とする処理である。例えば、読込まれた画像の傾き角度が、図２０のようになっている場合、画像を時計まわりに角度θだけ回転することによって、縦方向および横方向の傾きを同時に補正できる。
【０００９】
【特許文献１】
特公昭６２−５２３３７号公報
【００１０】
【特許文献２】
特開平８−２３４３９号公報
【００１１】
【特許文献３】
特開２００１−３２０５５４号公報
【００１２】
【発明が解決しようとする課題】
しかしながら、図２１に示すように、読込まれた画像の縦方向の解像度が横方向の解像度の１／２である場合には、横方向の傾き角度は（θ−α）、縦方向の傾き角度は（θ＋β）と、縦横方向の傾き角度が異なっている。このような画像に対して上述の傾き補正の処理を行なった場合、つまり、横方向の傾きを補正するように画像を角度（θ−α）だけ回転させても、縦方向の傾きは、（θ＋β）−（θ−α）＝（α＋β）だけ残ったままになってしまうという問題がある。また、縦方向の傾きを補正するように画像を回転した場合も同様の問題がある。
【００１３】
上述の処理について、具体例として実際の画像の適用した場合について図を挙げて説明する。図２２は、縦横の解像度が異なった、傾いた画像の具体例を示す図である。図２２は、具体的には、ファクシミリで読込んだ縦横の解像度が２００ｄｐｉ×４００ｄｐｉの画像であって、傾いている場合の画像の図である。このような縦横の解像度が異なった傾いている画像に対して、上述のような傾き補正の処理を行なった結果の画像の具体例を、図２３に示す。図２３を参照して、図２２に示す縦横の解像度が異なった傾いている画像に対して上述の傾き補正の処理を行なうことで、横方向の傾きは解消される。しかしながら、縦方向の傾き（ずれ）は解消されないという問題が発生する。
【００１４】
なお、このような場合、図２３に示される補正後の画像に対して、さらに行もしくはブロック単位で横方向に少しずつシフトすることによって、縦方向の傾きを補正することも可能である。しかし、この方法では、もともと斜めになっている文字や線を単純に横にシフトさせるだけであるので、画質が劣化するという問題もある。
【００１５】
本発明はこのような問題に鑑みてなされたものであって、縦横の解像度が異なる画像が入力された場合であっても、画質を劣化させることなく適切に傾き補正処理を行なうことのできる画像処理装置および画像処理プログラムを提供することを目的とする。
【００１６】
【課題を解決するための手段】
上記目的を達成するために、本発明のある局面に従うと、画像処理装置は、入力された画像の縦と横との解像度を抽出する抽出手段と、抽出された画像の縦と横との解像度が等しいか否かを判別し、縦と横との解像度が異なる場合、縦と横との解像度が等しくなるように、縦と横とのいずれか一方の解像度を他方の解像度と同じ解像度に解像度変換する第１の解像度変換手段と、入力された画像の傾きを検出する検出手段と、第１の解像度変換手段で解像度変換された画像を、検出手段で検出された画像の傾きに応じて回転させて傾き補正する傾き補正手段と、傾き補正手段で傾き補正された画像の、第１の解像度変換手段で解像度変換された一方の解像度を、元の解像度に解像度変換する第２の解像度変換手段とを備える。
【００１７】
上記目的を達成するために、本発明の他の局面に従うと、画像処理装置は、入力された画像の縦と横との解像度を抽出する抽出手段と、抽出された画像の縦と横との解像度が等しいか否かを判別し、縦と横との解像度が異なる場合、縦と横との解像度が等しくなるように、縦と横とのいずれか一方の解像度を他方の解像度と同じ解像度に解像度変換する第１の解像度変換手段と、入力された画像の傾きを検出する検出手段と、第１の解像度変換手段で解像度変換された画像を、検出手段で検出された画像の傾きに応じて回転させて傾き補正する傾き補正手段と、傾き補正手段で傾き補正された画像の、第１の解像度変換手段で解像度変換された一方の解像度を、所望の解像度に解像度変換する第２の解像度変換手段とを備える。
【００１８】
また、上述の第１の解像度変換手段は、画像の縦と横との解像度のうち低い方の解像度が所定の解像度よりも低い場合、低い方の解像度を他方の解像度と同じ解像度に解像度変換し、低い方の解像度が所定の解像度よりも高い場合、高い方の解像度を低い方の解像度と同じ解像度に解像度変換することが望ましい。
【００１９】
上記目的を達成するために、本発明のさらに他の局面に従うと、画像処理装置は、入力された画像の縦と横との解像度を抽出する抽出手段と、抽出された画像の縦と横との解像度が等しいか否かを判別し、縦と横との解像度が異なる場合、縦と横との解像度が等しくなるように、縦と横との解像度を予め定められた特定の解像度に解像度変換する第１の解像度変換手段と、入力された画像の傾きを検出する検出手段と、第１の解像度変換手段で解像度変換された画像を、検出手段で検出された画像の傾き角度分、検出された傾きに対して逆方向に回転させて傾き補正する傾き補正手段と、傾き補正手段で傾き補正された画像の、第１の解像度変換手段で解像度変換された縦と横との解像度を、各々元の解像度に解像度変換する第２の解像度変換手段とを備える。
【００２０】
上記目的を達成するために、本発明のさらに他の局面に従うと、画像処理プログラムは、入力された画像の縦と横との解像度を抽出する抽出ステップと、抽出された画像の縦と横との解像度が等しいか否かを判別し、縦と横との解像度が異なる場合、縦と横との解像度が等しくなるように、縦と横とのいずれか一方の解像度を他方の解像度と同じ解像度に解像度変換する第１の解像度変換ステップと、第１の解像度変換ステップで解像度変換された画像を、所定の角度回転させて傾き補正する傾き補正ステップと、傾き補正ステップで傾き補正された画像の、第１の解像度変換ステップで解像度変換された一方の解像度を、元の解像度に解像度変換する第２の解像度変換ステップとをコンピュータに実行させる。
【００２１】
上記目的を達成するために、本発明のさらに他の局面に従うと、画像処理プログラムは、入力された画像の縦と横との解像度を抽出する抽出ステップと、抽出された画像の縦と横との解像度が等しいか否かを判別し、縦と横との解像度が異なる場合、縦と横との解像度が等しくなるように、縦と横との解像度を予め定められた特定の解像度に解像度変換する第１の解像度変換ステップと、第１の解像度変換ステップで解像度変換された画像を、所定の傾き角度分回転させて傾き補正する傾き補正ステップと、傾き補正ステップで傾き補正された画像の、第１の解像度変換ステップで解像度変換された縦と横との解像度を、各々元の解像度に解像度変換する第２の解像度変換ステップとをコンピュータに実行させる。
【００２２】
【発明の実施の形態】
以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００２３】
図１は、本発明の実施の形態における画像処理システムの構成の具体例を示す図である。図１を参照して、本実施の形態における画像処理システムは、画像入力装置１００と、画像処理装置２００と、画像記憶装置３００と、画像出力装置４００とを含み、それぞれの装置は通信回線を介してデータのやり取りを行なう。
【００２４】
スキャナ等に代表される画像入力装置１００で読込まれた画像データは、コンピュータ等に代表される画像処理装置２００に送られる。次に、画像処理装置２００において、画像データに対して傾き補正等の適切な処理が施され、ハードディスク等に代表される画像記憶装置３００に記憶される。あるいは、プリンタ等に代表される画像出力装置４００に送られ、画像出力装置４００から出力される。
【００２５】
本実施の形態における画像処理システムは、図１に示す４つの装置を含むシステムであるものとして以降の説明を行なうが、上の４つの装置は、各々独立した装置に限定されず、例えばファクシミリ装置やスキャナや複写機やＭＦＰ（Multi Function Peripherals）等の、１つの装置に含まれていても構わない。
【００２６】
図２は、図１に示される画像処理装置２００の構成を示すブロック図である。図２に示されるように、画像処理装置２００は、ＣＰＵ（Central Processing Unit）２０１によって制御され、Ｉ／Ｆ（インタフェース）２０７を介して画像入力装置１００から入力された画像データの処理を行なう。また、Ｉ／Ｆ２０７を介して、処理を施した画像データを画像記憶装置３００や画像出力装置４００へ出力する。
【００２７】
ＣＰＵ２０１で実行されるプログラムは、記憶部であるＨＤＤ（Hard Disk Drive）２０２またはＲＯＭ（Read Only Memory）２０３に記憶される。そして、ＲＡＭ（Random Access Memory）２０４は、ＣＰＵ２０１でプログラムが実行される際の一時的な作業領域となる。また、ＲＡＭ２０４は、以下の処理で一時的な記憶領域であるメモリ領域ともなる。ユーザは、キーボードやマウス等の入力部（Input Unit）２０５から情報や指示を入力する。また、画像入力装置１００から受付けた画像やその処理結果等はディスプレイ２０６に表示される。なお、図２に示される構成は一般的なパーソナルコンピュータの構成であって、画像処理装置２００の構成は図２に示される構成に限定されない。
【００２８】
図３は、図２に示す画像処理装置２００の機能ブロック図であり、画像処理装置２００におけるデータの流れを詳細に示した図である。図３において点線の矢印は画像データの流れを示し、実線の矢印はその他のデータの流れを示す。
【００２９】
図３を参照して、画像入力装置１００から入力された画像データは、Ｉ／Ｆ２０７で画像処理装置２００に取込まれ、解像度抽出部２１１と第１の解像度変換部２１３とにそれぞれ送られる。
【００３０】
解像度抽出部２１１は、Ｉ／Ｆ２０７から受取った画像データに基づいて、画像の縦横の解像度データを抽出する。そして、解像度抽出部２１１は、抽出した解像度データを解像度判定部２１２に送る。
【００３１】
解像度判定部２１２は、解像度抽出部２１１から受取った解像度データに基づいて、縦方向と横方向との解像度が一致しているか否かを判定する。そして、解像度判定部２１２は、その判定結果を解像度判定データとして、第１の解像度変換部２１３および第２の解像度変換部２１６に送る。
【００３２】
第１の解像度変換部２１３は、解像度判定部２１２から受取った解像度判定データに基づいて、画像の縦横の解像度が一致している場合には、Ｉ／Ｆ２０７から受取った画像データをそのまま傾き角度検出部２１４と画像回転部２１５とにそれぞれ送る。
【００３３】
画像の縦横の解像度が異なっている場合には、Ｉ／Ｆ２０７から受取った画像データに対して解像度変換処理を行なう。そして、第１の解像度変換部２１３は、解像度変換処理を行なった画像データを、傾き角度検出部２１４と画像回転部２１５とにそれぞれ送る。
【００３４】
傾き角度検出部２１４は、第１の解像度変換部２１３から受取った画像データを解析し、画像の傾き角度を検出する。そして、傾き角度検出部２１４は、検出した傾き角度を傾き角度データとして、画像回転部２１５に送る。
【００３５】
画像回転部２１５は、傾き角度検出部２１４から受取った傾き角度データに基づいて、第１の解像度変換部２１３から受取った画像データを回転する。この処理によって、画像回転部２１５は、画像の回転による傾きを解消するように補正する。そして、画像回転部２１５は、傾き補正後の画像データを第２の解像度変換部２１６に送る。
【００３６】
第２の解像度変換部２１６は、解像度判定部２１２から受取った解像度判定データに基づいて、画像回転部２１５から受取った傾き補正後の画像データを元の解像度に戻すための解像度変換処理を行なう。そして、第２の解像度変換部２１６は、解像度変換処理を行なった画像データを、画像記憶装置３００に送る。あるいは、傾き補正後の画像データを画像出力装置４００に送る。
【００３７】
図４は、本発明における傾き補正処理を示すフローチャートである。図４のフローチャートに示される処理は、画像処理装置２００のＣＰＵ２０１が、ＨＤＤ２０２あるいはＲＯＭ２０３に記憶されているプログラムを読出してＲＡＭ２０４上で実行し、図３に示される画像処理装置２００の各部を機能させることによって実現される。
【００３８】
図４を参照して、始めに、Ｉ／Ｆ２０７より、画像入力装置１００で読込まれた画像データが入力される（Ｓ１０１）。
【００３９】
次に、解像度抽出部２１１において、ステップＳ１０１で入力された画像データ（以降、元画像という）から解像度データが抽出される（Ｓ１０３）。画像の縦と横との解像度は、通常、ファイルのヘッダ部分に記載されている。そこで、ステップＳ１０３においては、解像度抽出部２１１は、画像データのファイルのヘッダ部分に記載されている情報を読取ることによって、当該画像の解像度データを抽出することができる。また、その他の方法で解像度データを抽出してもよい。なお、ステップＳ１０３における解像度抽出部２１１での解像度データの抽出方法は、本発明において限定されるものではない。
【００４０】
次に、解像度判定部２１２において、ステップＳ１０３で抽出された解像度データに基づいて、画像の縦横の解像度が一致しているか否かが判定される（Ｓ１０５）。画像の縦横の解像度が異なる場合は（Ｓ１０５でＮＯ）、第１の解像度変換部２１３において、元画像データに対して、縦横の解像度を一致させるような解像度変換処理が実行される（Ｓ１０７）。ステップＳ１０７における解像度変換処理としては様々な処理方法が挙げられ、ここでは、その方法については限定しない。なお、ステップＳ１０７における処理については、後にその具体的な処理についてサブルーチンを挙げて説明する。
【００４１】
次に、傾き角度検出部２１４において、ステップＳ１０７で解像度変換処理が施され縦横の解像度が一致した画像より、画像の傾きが検出される（Ｓ１０９）。ステップＳ１０９における傾きの検出方法としては様々な検出方法が挙げられ、ここでは、その方法については限定しない。その一例として、特公昭６２−５２３３７号公報に開示されているような検出方法を用いることもできる。なお、ステップＳ１０９における処理については、後にその具体的な処理についてサブルーチンを挙げ、詳細な説明を行なう。
【００４２】
次に、画像回転部２１５において、ステップＳ１０９で検出された傾き角度に応じて、ステップＳ１０７で解像度変換処理が施され縦横の解像度が一致した画像データが回転される（Ｓ１１１）。ステップＳ１１１では、画像回転部２１５は、縦横の解像度が一致した画像データを、ステップＳ１０９で検出された傾き角度分だけ、ステップＳ１０９で検出された傾き角度とは逆方向に回転させる。なお、ステップＳ１１１における画像の回転方法としては様々な方法が挙げられ、ここでは、その方法については限定しない。例えば、回転後の画像の各画素に対応する元の画像の画素位置を求め、回転後の画像と元の画像とのそれぞれの画素値を対応付けることによって回転後の画像データを取得する方法のような、一般的な方法を用いることができる。なお、ステップＳ１１１において回転後の画像の各画素値を計算する際に、さらに補間処理を行なうことで、文字や線の「がたつき」を防止することもできる。
【００４３】
次に、第２の解像度変換部２１６において、ステップＳ１０３で抽出された解像度データに基づいて、ステップＳ１１１で回転された画像データに対して、再度、縦横の解像度を元の解像度に戻すための解像度変換処理が実行される（Ｓ１１３）。ステップＳ１１３における解像度変換処理としては、ステップＳ１０７で実行される解像度変換処理と同様の方法が考えられる。なお、ステップＳ１１３においては、元の解像度に限定されず、所望の解像度の設定をユーザから受付け、ステップＳ１１１で回転した画像データを受付けた所望の解像度にするための解像度変換処理を実行してもよい。
【００４４】
さらに、上述のステップＳ１０５において、解像度判定部２１２で、ステップＳ１０１で入力した画像の縦横の解像度が一致していると判定された場合は（Ｓ１０５でＹＥＳ）、傾き角度検出部２１４において、元画像の傾きが検出される（Ｓ１１５）。ステップＳ１１５における傾きの検出方法としては、ステップＳ１０９における傾きの検出方法と同様の方法が考えられる。
【００４５】
次に、画像回転部２１５において、ステップＳ１１５で検出された傾き角度に応じて、元画像データが回転される（Ｓ１１７）。ステップＳ１１７における画像の回転方法としては、ステップＳ１１１における画像の回転方法と同様の方法が考えられる。
【００４６】
そして、傾き補正処理後の画像データが、Ｉ／Ｆ２０７より画像記憶装置３００あるいは画像出力装置４００に出力され（Ｓ１１９）、処理が終了する。
【００４７】
本実施の形態における画像処理装置２００は、以上の傾き補正処理を実行することによって、上述のステップＳ１０１で図２２に示すような縦横の解像度が異なった傾いた画像データが入力された場合、ステップＳ１０７において縦横の解像度を一致させるような解像度変換処理を実行し、図５に示すような画像に変換する。さらに、ステップＳ１１１では図５に示す画像について回転処理を実行し、図６に示す画像に変換する。そして、ステップＳ１１３では図６に示す画像の解像度を元の解像度に戻すための解像度変換処理を実行し、図７に示す画像に変換する。
【００４８】
このような処理方法を適用することで、縦横の解像度が異なる画像が入力された場合であっても、傾き角度を正しく検出し、傾き補正を行なうことができる。また、画像の一方向の傾きを補正した後さらにもう一方の傾きを画像のシフトによって補正する方法に比べて、画質の劣化のない、良好な補正結果を得ることができる。
【００４９】
次に、上述のステップＳ１０７における解像度変換処理について、その一例を図８にフローチャートを示す。
【００５０】
図８を参照して、始めに、第１の解像度変換部２１３において、元画像の縦方向の解像度が予め設定した解像度（例えば２００ｄｐｉ）に等しいか否かが判定される（Ｓ２０１）。
【００５１】
元画像の縦方向の解像度が予め設定した解像度に等しい場合には（Ｓ２０１でＹＥＳ）、第１の解像度変換部２１３は、元画像の縦方向については変換処理を行なわず、ステップＳ２０９に処理を進める。
【００５２】
元画像の縦方向の解像度が予め設定した解像度と異なる場合には（Ｓ２０１でＮＯ）、第１の解像度変換部２１３は、元画像の縦方向の解像度と予め設定した解像度との大小関係に応じて（Ｓ２０３）、元画像の縦方向の解像度を予め設定した解像度に合わせるように元画像の縦方向について拡大あるいは縮小処理を行なう（Ｓ２０５あるいはＳ２０７）。
【００５３】
さらに、第１の解像度変換部２１３において、元画像の横方向の解像度が予め設定した解像度に等しいか否かが判定される（Ｓ２０９）。
【００５４】
元画像の横方向の解像度が予め設定した解像度に等しい場合には（Ｓ２０９でＹＥＳ）、第１の解像度変換部２１３は、元画像の横方向については変換処理を行なわず、処理を終了する。
【００５５】
元画像の横方向の解像度が予め設定した解像度と異なる場合には（Ｓ２０９でＮＯ）、第１の解像度変換部２１３は、元画像の横方向の解像度と予め設定した解像度との大小関係に応じて（Ｓ２１１）、元画像の横方向の解像度を予め設定した解像度に合わせるように元画像の横方向について拡大あるいは縮小処理を行なう（Ｓ２１３あるいはＳ２１５）。
【００５６】
なお、上述のステップＳ２０５、Ｓ２０７、Ｓ２１３あるいはＳ２１５で実行する拡大および縮小処理の方法としては、ニアレストネイバー法や線形補間法等の、一般的な方法を用いることができる。
【００５７】
本実施の形態の画像処理装置２００がステップＳ１０７において以上の解像度変換処理を行なうことで、例えば元画像の解像度が３００ｄｐｉ×１５０ｄｐｉであったとき、基準となる解像度を２００ｄｐｉと設定することで、元画像は２００ｄｐｉ×２００ｄｐｉに変換されて、元画像の縦横の解像度が一致する。
【００５８】
なお、図８のフローチャートにおいては、予め設定した解像度（例えば２００ｄｐｉ）に元画像の縦横の解像度を合わせるように拡大あるいは縮小処理を行なう場合の解像度変換処理について示したが、上述の処理において、元画像の縦方向の解像度と横方向の解像度とが異なる場合にのみ、予め設定した解像度に元画像の縦横の解像度を合わせるように拡大あるいは縮小処理を行なってもよい。
【００５９】
さらに、本発明において解像度変換処理の方法は図８に示した方法に限定されない。他の解像度変換処理の具体例として、図９、図１０、および図１１に示す解像度変換処理が挙げられる。
【００６０】
具体的には、図９を参照して、他の解像度変換処理の方法として、元画像の縦方向の解像度と横方向の解像度とを比較して（Ｓ４０１）、縦横の解像度のうち小さい方の解像度に合わせるように、元画像の解像度の大きい方の方向について縮小処理を行なう（Ｓ４０３あるいはＳ４０５）方法が挙げられる。
【００６１】
また、図１０を参照して、他の解像度変換処理の方法として、元画像の縦方向の解像度と横方向の解像度とを比較して（Ｓ４１１）、縦横の解像度のうち大きい方の解像度に合わせるように、元画像の解像度の小さい方の方向について拡大処理を行なう（Ｓ４１３あるいはＳ４１５）方法が挙げられる。
【００６２】
本実施の形態の画像処理装置２００において、このような図９あるいは図１０に示す解像度変換処理を行なうことで、元画像の縦方向あるいは横方向のいずれか一方向のみの解像度変換処理を行なうだけで、元画像の縦横の解像度を同じにすることができる。ただし、縦横の解像度を常に小さい方の解像度に合わせる変換処理を行なうと、変換処理後の画像の解像度が小さくなりすぎ、傾きの検出精度が低下する場合もある。また、縦横の解像度を常に大きい方の解像度に合わせる変換処理を行なうと、変換後の画像の解像度が大きくなりすぎ、傾きの補正処理に非常に時間がかかる場合もある。このため、図１１に示すさらに他の解像度変換処理が挙げられる。
【００６３】
図１１を参照して、さらに他の解像度変換処理の方法として、元画像の縦方向の解像度と横方向の解像度とを比較して（Ｓ４２１）、さらに縦横の解像度のうち小さい方の解像度と一定値（例えば、２００ｄｐｉ）とを比較する（Ｓ４２１あるいはＳ４２９）。小さい方の解像度が一定値を超えている場合（Ｓ４２３でＮＯ、あるいはＳ４２９でＮＯ）、小さい方の解像度に合わせるように、元画像の解像度の大きい方の方向について縮小処理を行なう（Ｓ４２７あるいはＳ４３３）。また、小さい方の解像度が一定値未満である場合（Ｓ４２３でＹＥＳ、あるいはＳ４２９でＹＥＳ）、大きい方の解像度に合わせるように、元画像の解像度の小さい方の方向について拡大処理を行なう（Ｓ４２５あるいはＳ４３１）方法が挙げられる。
【００６４】
本実施の形態の画像処理装置２００において図１１に示す解像度変換処理を行なうことで、基準となる解像度を２００ｄｐｉと設定することで、例えば元画像が３００ｄｐｉ×１５０ｄｐｉであったとき元画像は３００ｄｐｉ×３００ｄｐｉに変換され、元画像が３００ｄｐｉ×２５０ｄｐｉであったとき元画像は２５０ｄｐｉ×２５０ｄｐｉに変換されて元画像の縦横の解像度が一致する。
【００６５】
なお、一般的に、小さい方の解像度に合わせて解像度の大きい方の方向について縮小処理を行なうよりも、大きい方の解像度に合わせて解像度の小さい方の方向について拡大処理を行なう方が、補正後の画質がよい。そのため、図１１に示す解像度変換処理の場合、図１２に示すヒューマンインタフェースであるＧＵＩ（graphical user interface）をディスプレイ２０６等に表示して速度優先モードか画質優先モードかの処理モードの設定の指示をユーザから受付け、速度優先モードが選択された場合には前者の処理を、画質優先モードが選択された場合には後者の処理を行なうようにしてもよい。
【００６６】
次に、上述のステップＳ１０９における傾きの検出処理について、その一例を図１３および図１４にフローチャートを示す。図１３および図１４に示す傾きの検出処理は、特公昭６２−５２３３７号公報に開示されている検出方法に若干修正を加えた処理である。
【００６７】
始めに、図１３を参照して、傾き角度検出部２１４において、元画像の明度（ＲＧＢ成分）に基づいて、明度画像が作成される（Ｓ３０１）。ステップＳ３０１での明度画像の作成方法については一般的な作成方法を用いることができ、ここではその方法については限定しない。
【００６８】
次に、ステップＳ３０１で作成された明度画像が縮小される（Ｓ３０３）。ステップＳ３０３における縮小処理方法としては様々な方法が挙げられ、ここでは、その方法については限定しない。その一例として、ステップＳ３０１で作成された明度画像を複数の矩形領域に分割し、それぞれの矩形領域を平均濃度値に応じて置換える処理方法が挙げられる。このとき、矩形領域のサイズは、解像度や画像の大きさに基づいて決定されることが好ましい。具体的には、矩形領域の短辺の長さが５００〜１０００画素程度になるように決定されることが好ましい。
【００６９】
次に、傾き角度検出部２１４は、ステップＳ３０３で縮小された明度画像に対して、特定のしきい値を用いて２値化処理を行ない、背景画素を０とした、０と１とからなる２値画像を作成する（Ｓ３０５）。ステップＳ３０５における２値化処理は、Ｓｏｂｅｌオペレータ等のオペレータ（フィルタ）を用いて、明度画像に含まれるエッジ成分であるエッジ画素を検出し、検出された全てのエッジ画素に対応する明度の平均値をしきい値として２値化することによって実行される。この方法は、２値化のしきい値となる明度値は文字や図形と背景との境界部分に存在する可能性が高いという性質を利用した方法である。ただし、２値化の方法として、ｐ−タイル法やモード法など一般的な手法を用いてもよい。
【００７０】
次に、傾き角度検出部２１４は、ステップＳ３０５で作成された２値画像の中から、文字成分を最も多く含む正方形領域を抽出し、その領域を傾き検出領域とする（Ｓ３０７）。ステップＳ３０７において、２値画像の中から正方形領域を抽出することで、その領域を９０度回転させることにより、当該画像処理装置２００は、同じ傾き角度検出基準を用いて横書き原稿だけでなく縦書き原稿についても傾き補正処理を行なうことができる。また、傾き検出領域のサイズは、縦横５００画素程度であることが好ましい。
【００７１】
また、ステップＳ３０７において正方形領域を抽出する際に、含まれる成分が文字成分であるか否かを判定する方法としては、一般的な領域識別方法を用いることもできる。しかし、本実施の形態においては、文字領域には多くのエッジが含まれるという性質を利用して、エッジ成分を最も多く含む正方形領域を傾き検出領域として抽出することが好ましい。エッジ成分は、上述のステップＳ３０５において２値化処理のしきい値を決定する際にすでに抽出されているため、ステップＳ３０７ではそのすでに抽出されているエッジ成分を最も多く含む正方形領域を抽出することで、処理を高速化することができる。
【００７２】
次に、傾き角度検出部２１４は、ステップＳ３０７で抽出された傾き検出領域内において、検出角度ｓ方向のラインごとに「１」の数をカウントし、各ラインに対する累積ヒストグラムを計算する（Ｓ３０９）。なお、ここでの傾き角度ｓは、プラス／マイナス１０〜１５度程度までとして各ラインに対する累積ヒストグラムを計算することが好ましい。一般的に、上述の範囲外の傾きはあり得ないものとされるからである。また、各検出角度ｓ間のピッチとしては、０．２度程度であることが好ましい。
【００７３】
さらに、傾き角度検出部２１４は、ステップＳ３０９で計算された累積ヒストグラムに基づいて、検出角度ｓごとにヒストグラムの起伏度ＵＤ１（ｓ）を計算する（Ｓ３１１）。なお、ヒストグラムの起伏度ＵＤ１（ｓ）は、次式によって求められる。
【００７４】
0003698136.tif 000002
ただし、上式においてｆ（ｉ）は、第ｉライン目における累積カウント数を表わす。
【００７５】
傾き角度検出部２１４は、上述のステップＳ３０９，Ｓ３１１の計算を全ての検出角度ｓについて実行すると（Ｓ３１３でＹＥＳ）、次に、図１４を参照して、傾き検出領域を９０度回転する（Ｓ３２１）。
【００７６】
次に、傾き角度検出部２１４は、上述のステップＳ３０９，Ｓ３１１と同様の計算を、ステップＳ３２１で９０度回転した傾き検出領域に対して、全ての検出角度ｓについて実行し（Ｓ３２３〜Ｓ３２７）、検出角度ｓごとにヒストグラムの起伏度ＵＤ２（ｓ）を得る。
【００７７】
そして、傾き角度検出部２１４は、元の方向の傾き検出領域と９０度回転した傾き検出領域とに対して、検出角度ｓごとに計算された全てのヒストグラムの起伏度ＵＤ１（ｓ），ＵＤ２（ｓ）の中から最大の値を抽出し、最大のヒストグラムの起伏度となるときの検出角度ｓを、画像の傾き角度として検出する（Ｓ３２９）。
【００７８】
本実施の形態の画像処理装置２００において以上の傾きの検出処理を実行することで、横書き原稿だけでなく縦書き原稿についても傾き角度を検出できる。
【００７９】
なお、図１３および図１４に示される傾き検出処理は、元画像がフルカラー画像であってＲＧＢ成分を含む画像であることを前提とした場合の処理である。そこで、元画像がＲＧＢ成分を含む画像でない場合の傾き検出処理について、処理の具体例を挙げて説明する。
【００８０】
図１５は、元画像がグレースケール画像である場合の傾き検出処理を示すフローチャートである。図１５を参照して、元画像がグレースケール画像である場合は、図１３のステップＳ３０１で実行される明度画像への変換処理が不要となる。以降の元画像がグレースケール画像である場合の傾き検出処理は、元画像がＲＧＢ成分を含む画像である場合の、図１３および図１４に示される処理と同様の処理である。
【００８１】
一方、図１６は、元画像がモノクロ２値画像である場合の傾き検出処理を示すフローチャートである。図１６を参照して、元画像がモノクロ２値画像である場合は、図１３のステップＳ３０１に示される明度画像への変換処理に替えて、ステップＳ３０１で、傾き角度検出部２１４において元画像が２５６階調の画像に変換される。そして、以降の元画像がモノクロ２値画像である場合の傾き検出処理においては、変換された２５６階調の画像が明度画像と同様に扱われ、図１３および図１４に示される処理と同様の縮小処理やエッジ抽出処理が実行される。
【００８２】
本実施の形態の画像処理装置２００においてこのような傾き検出処理を実行することで、元画像がグレースケール画像の場合も、モノクロ２値画像の場合も、フルカラー画像の場合と同様に傾きを検出することができる。また、画像縮小時にはスムージングと同様の効果があるため、ディザ法あるいは誤差拡散法等によるハーフトーン画像のような、傾きを誤検出しやすいモノクロ２値画像に対しても、正しく傾き補正処理を行なうことができる。
【００８３】
なお、本実施の形態における画像処理装置２００では、ステップＳ１１１あるいはＳ１１７において画像回転処理を行なう際に、１つの元画像に対して、元画像データを格納する領域と回転処理後の画像データを格納する領域との、２つの画像分のメモリ領域をＲＡＭ２０４のメモリ領域に用意することを前提としている。そこで、以下に、使用するメモリ領域を削減する方法について述べる。
【００８４】
図１７は、画像回転処理に用いるメモリ領域の割当処理を示すフローチャートである。図１７を参照して、始めに、画像回転部２１５は、１行目から順に、回転処理後の画像データの行ｙを一時的に格納するメモリ領域を、ＲＡＭ２０４のメモリ領域に１行分確保する（Ｓ５０１，Ｓ５０３）。回転処理後の画像データの行ｙを一時的に格納するメモリ領域について、図１８に具体例を示す。図１８を参照して、行ｙを一時的に格納する１行分のメモリ領域５００は、回転処理後の画像データの行番号を格納する行番号領域５０１と、行番号に対応する回転処理後の画像データを格納するデータ領域５０２とから構成される。そして、画像回転部２１５は、回転処理後の画像データの行を示す行番号ｙを、行番号領域５０１に格納する（Ｓ５０５）。
【００８５】
次に、画像回転部２１５は、回転処理後の行ｙに対応する元画像の行の座標を計算する（Ｓ５０７）。
【００８６】
次に、画像回転部２１５は、回転処理後の行ｙに対応する元画像の行の画像データを、メモリ領域５００のデータ領域５０２に格納する（Ｓ５０９）。
【００８７】
次に、画像回転部２１５は、ステップＳ５０７で計算した回転処理後の行ｙに対応する元画像の行の左端のｙ座標を値ｌｙ、右端のｙ座標を値ｒｙとする（Ｓ５１１，Ｓ５１３）。図１９に、回転処理後の行ｙ（図１９においては、行ｙは１行目に示される）に対応する元画像の行の左端のｙ座標ｌｙと、右端のｙ座標ｒｙとの具体例を示す。
【００８８】
次に、画像回転部２１５は、回転処理後の画像データの全ての行についてＲＡＭ２０４のメモリ領域に確保されているのメモリ領域の、全ての行番号領域から、値ｌｙより小さく、かつ値ｒｙより小さい全ての行を検索する（Ｓ５１５）。
【００８９】
次に、画像回転部２１５は、検索された行について確保されているメモリ領域の、行番号領域を解放する（Ｓ５１７）。
【００９０】
そして、画像回転部２１５は、回転処理後の画像データの各行に対応する回転処理後の画像データを格納するデータ領域を順次１行ずつ増やして（Ｓ５１９）元画像について全ての行の回転処理が終了するまで上述の処理を繰返し（Ｓ５２１でＮＯ）、回転処理を行なった後の画像データを順次格納していく。
【００９１】
本実施の形態の画像処理装置２００で上述の画像回転処理に用いるメモリ領域の割当処理を実行することによって、画像回転処理に使用するメモリ領域を削減することができる。
【００９２】
なお、本実施の形態においては、画像処理装置２００に入力される画像の縦方向あるいは横方向の解像度は、画像全体として各々１種類の解像度であるものとしたが、入力される画像の解像度が、縦方向あるいは横方向に複数種類であってもよい。すなわち、入力される画像として、例えば、１つの画像中に部分的に異なる解像度の領域を含む画像であってもよい。この場合、画像処理装置２００においては、各解像度ごとの各領域を抽出して、各領域ごとに個別に上述の傾き補正処理を行なった後に、再度傾き補正された各領域を合成するようにすればよい。
【００９３】
さらに、上述の画像処理装置が行なう傾きの補正方法を、プログラムとして提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）およびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【００９４】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【００９５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【図１】  本発明の実施の形態における画像処理システムの構成の具体例を示す図である。
【図２】  図１に示される画像処理装置２００の構成を示すブロック図である。
【図３】  図２に示す画像処理装置２００の機能ブロック図である。
【図４】  本発明における傾き補正処理を示すフローチャートである。
【図５】  解像度変換処理後の画像の具体例を示す図である。
【図６】  回転処理後の画像の具体例を示す図である。
【図７】  解像度を元の解像度に戻すための解像度変換処理後の画像の具体例を示す図である。
【図８】  ステップＳ１０７における解像度変換処理の具体例を示すフローチャートである。
【図９】  ステップＳ１０７における解像度変換処理の他の具体例を示すフローチャートである。
【図１０】  ステップＳ１０７における解像度変換処理の他の具体例を示すフローチャートである。
【図１１】  ステップＳ１０７における解像度変換処理の他の具体例を示すフローチャートである。
【図１２】  処理モードの設定をユーザから受付けるためのＧＵＩの具体例を示す図である。
【図１３】  ステップＳ１０９における傾きの検出処理を示すフローチャートである。
【図１４】  ステップＳ１０９における傾きの検出処理を示すフローチャートである。
【図１５】  元画像がグレースケール画像である場合の傾き検出処理を示すフフローチャートである。
【図１６】  元画像がモノクロ２値画像である場合の傾き検出処理を示すフローチャートである。
【図１７】  画像回転処理に用いるメモリ領域の割当処理を示すフローチャートである。
【図１８】  回転処理後の画像データの行ｙを一時的に格納するメモリ領域の具体例を示す図である。
【図１９】  回転処理後の行ｙに対応する元画像の行の左端のｙ座標ｌｙと、右端のｙ座標ｒｙとの具体例を示す図である。
【図２０】  読込まれた画像の縦横の解像度が一致している場合の、画像の傾き角度の具体例を示す図である。
【図２１】  読込まれた画像の縦横の解像度が異なっている場合の、画像の縦横方向の傾き角度の具体例を示す図である。
【図２２】  縦横の解像度が異なった、傾いた画像の具体例を示す図である。
【図２３】  縦横の解像度が異なった、傾いた画像に対して、従来の傾き補正の処理を行なった結果の画像の具体例を示す図である。
【符号の説明】
１００  画像入力装置、２００  画像処理装置、２０１  ＣＰＵ、２０２  ＨＤＤ、２０３  ＲＯＭ、２０４  ＲＡＭ、２０５  入力部、２０６  ディスプレイ、２０７  Ｉ／Ｆ、２１１  解像度抽出部、２１２  解像度判定部、２１３  第１の解像度変換部、２１４  傾き角度検出部、２１５  画像回転部、２１６  第２の解像度変換部、３００  画像記憶装置、４００  画像出力装置、５００  メモリ領域、５０１  行番号領域、５０２  データ領域。
【図１】
0003698136.tif 000003
【図２】
0003698136.tif 000004
【図３】
0003698136.tif 000005
【図４】
0003698136.tif 000006
【図５】
0003698136.tif 000007
【図６】
0003698136.tif 000008
【図７】
0003698136.tif 000009
【図８】
0003698136.tif 000010
【図９】
0003698136.tif 000011
【図１０】
0003698136.tif 000012
【図１１】
0003698136.tif 000013
【図１２】
0003698136.tif 000014
【図１３】
0003698136.tif 000015
【図１４】
0003698136.tif 000016
【図１５】
0003698136.tif 000017
【図１６】
0003698136.tif 000018
【図１７】
0003698136.tif 000019
【図１８】
0003698136.tif 000020
【図１９】
0003698136.tif 000021
【図２０】
0003698136.tif 000022
【図２１】
0003698136.tif 000023
【図２２】
0003698136.tif 000024
【図２３】
0003698136.tif 000025