(57)【要約】【課題】画像が正立以外の方向で入力されていても、画像内の領域の配置を用いることによって、その画像の方向を正立にする画像処理システムを提供する。【解決手段】画像処理システムの画像分解手段は、画素の特徴に基づいて、画像内を領域に分解し、判別手段は、前記画像分解手段によって分解された領域を判別し、算出手段は、前記判別手段による判別結果及び前記領域の配置に応じて、前記画像の回転角度を算出し、画像回転手段は、前記算出手段によって算出された回転角度に基づいて前記画像を回転する。【選択図】図１
2009010452.tif 000002
【特許請求の範囲】
【請求項１】
画像の特徴に基づいて、画像内を領域に分解する画像分解手段と、
前記画像分解手段によって分解された領域を判別する判別手段と、
前記判別手段による判別結果及び前記領域の配置に応じて、前記画像の回転角度を算出する算出手段と、
前記算出手段によって算出された回転角度に基づいて前記画像を回転する画像回転手段
を具備することを特徴とする画像処理システム。
【請求項２】
前記算出手段は、
前記領域のうち配置関係が一意に定まる領域の組み合わせを検出し、該領域の組み合わせの配置関係に応じて、前記画像の回転角度を算出する
ことを特徴とする請求項１に記載の画像処理システム。
【請求項３】
前記算出手段は、
前記領域のうち所定の領域を検出し、該領域の方向に関する特徴に応じて、前記画像の回転角度を算出する
ことを特徴とする請求項１に記載の画像処理システム。
【請求項４】
前記算出手段は、
前記所定の領域を複数検出した場合は、該領域の配置に応じて、前記画像の回転角度を算出する
ことを特徴とする請求項３に記載の画像処理システム。
【請求項５】
前記算出手段は、
前記複数検出した領域から算出した回転角度に相違がある場合は、該複数の回転角度を用いて前記画像の回転角度を算出する
ことを特徴とする請求項４に記載の画像処理システム。
【請求項６】
コンピュータを、
画素の特徴に基づいて、画像内を領域に分解する画像分解手段と、
前記画像分解手段によって分解された領域を判別する判別手段と、
前記判別手段による判別結果及び前記領域の配置に応じて、前記画像の回転角度を算出する算出手段と、
前記算出手段によって算出された回転角度に基づいて前記画像を回転する画像回転手段
として機能させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理システム及び画像処理プログラムに関する。
【背景技術】
【０００２】
画像をデジタル情報として処理できる画像処理装置が増えつつある。この画像処理装置において、体裁の整った文書を得るために、対象とする画像を解析して、その解析結果に応じて様々な処理が行われている。
【０００３】
これに関連する技術として、例えば、特許文献１には、被写体を撮像して動画像もしくは静止画像を生成する電子カメラ及びモニタ用の表示画面を備えた電子カメラに関し、撮像面の姿勢の変化に確実に適応して記録すべき画像の上下を常に一定に保ち、表示画面の姿勢の変化に確実に適応して表示すべき画像の上下を常に一定に保つことを目的とし、被写体を撮像して画像を生成する撮像手段と、撮像手段の撮影光軸に沿った回転軸を中心に該撮像手段が予め決められた姿勢に対して回転された方向及び角度を検出する撮像姿勢検出手段と、撮像姿勢検出手段によって検出された方向及び角度で画像を回転して記録画像を生成する記録画像変換手段と、記録画像変換手段によって生成された記録画像を記録する記録手段とを備えて構成されることが開示されている。
【０００４】
例えば、特許文献２には、カメラで撮影して静止画を記録するときに、被写体の人物の顔の上下方向を自動的に所定の方向として記録することができるデジタルカメラなどを提供することを課題とし、顔画像有無判定部により、撮影した画像データの中から人物の顔画像の有無を判定し、次に顔方向判定処理部により、撮影した顔の上下方向を判定し、次に回転角度決定部により、その顔の上下方向の判定結果から記録データ自体を何度回転させるかを決定し、その結果を画像回転処理部に送り、そのデータに基づき記録データを回転してから記録することが開示されている。
【０００５】
例えば、特許文献３には、撮影シーン別の画像の整理及びプリントする画像の選択を効率的に行うことができるプリント画像選択装置及びプリント画像選択方法を提供することを課題とし、まず、写真撮影所において撮影が終了し、デジタルカメラからプリント画像選択装置にデジタル画像が入力されると、入力された画像に画像処理フィルタが適用され、画像処理が行われ、次に、撮影に失敗した画像が自動的に排除され、排除されなかったデジタル画像が撮影シーン別に整理され、その整理の際において、撮影シーンの識別と同時に、画像の天地が検出され、この天地に基づいて同一の撮影シーンに属する画像に自動的に回転処理が施され、その次に、撮影シーン別にデジタル画像の選択が行われ、これにより、各撮影シーンのベストショットのプリント注文を行えることが開示されている。
【０００６】
例えば、特許文献４には、オブジェクトの検出や画像内容の判定をより確実に行うことを課題とし、画像内容を判定する際に、肌色の画素からなる肌色領域が人物の顔であるかを判断するために肌色領域が画像の上左右辺に接しているかを判定したり両目や口に相当する画素領域が存在するかを判定する処理を、画像の右方向への回転角度が２７０度となるまで画像を９０度ずつ回転しながら繰り返し実行し、空色の画素からなる空色領域が空であるかを判断するために空色領域が画像の下辺に接しているかを判定する処理を、画像の回転角度が０度となるまで画像を左方向へ９０度ずつ回転しながら繰り返し実行し、この結果、画像を複数の回転角度で回転して画像内容の判定を行うから、より確実に画像内容の判定を行えることが開示されている。
【特許文献１】特開平１０−１６４４２６号公報
【特許文献２】特開２００５−２６０８７０号公報
【特許文献３】特開２００６−２５００６号公報
【特許文献４】特開２００６−１０７０３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、画像が正立以外の方向で入力された場合に、限られた対象の画像でないとその画像の方向を正立にすることができなかった。
本発明は、画像が正立以外の方向で入力されていても、画像内の領域の配置を用いることによって、その画像の方向を正立にする画像処理システム及び画像処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００８】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
［１］  画像の特徴に基づいて、画像内を領域に分解する画像分解手段と、
前記画像分解手段によって分解された領域を判別する判別手段と、
前記判別手段による判別結果及び前記領域の配置に応じて、前記画像の回転角度を算出する算出手段と、
前記算出手段によって算出された回転角度に基づいて前記画像を回転する画像回転手段
を具備することを特徴とする画像処理システム。
【０００９】
［２］  前記算出手段は、
前記領域のうち配置関係が一意に定まる領域の組み合わせを検出し、該領域の組み合わせの配置関係に応じて、前記画像の回転角度を算出する
ことを特徴とする［１］に記載の画像処理システム。
【００１０】
［３］  前記算出手段は、
前記領域のうち所定の領域を検出し、該領域の方向に関する特徴に応じて、前記画像の回転角度を算出する
ことを特徴とする［１］に記載の画像処理システム。
【００１１】
［４］  前記算出手段は、
前記所定の領域を複数検出した場合は、該領域の配置に応じて、前記画像の回転角度を算出する
ことを特徴とする［３］に記載の画像処理システム。
【００１２】
［５］  前記算出手段は、
前記複数検出した領域から算出した回転角度に相違がある場合は、該複数の回転角度を用いて前記画像の回転角度を算出する
ことを特徴とする［４］に記載の画像処理システム。
【００１３】
［６］  コンピュータを、
画素の特徴に基づいて、画像内を領域に分解する画像分解手段と、
前記画像分解手段によって分解された領域を判別する判別手段と、
前記判別手段による判別結果及び前記領域の配置に応じて、前記画像の回転角度を算出する算出手段と、
前記算出手段によって算出された回転角度に基づいて前記画像を回転する画像回転手段
として機能させることを特徴とする画像処理プログラム。
【発明の効果】
【００１４】
請求項１の画像処理システムによれば、本構成を有していない場合に比較して、画像が正立以外の方向で入力されていても、画像内の領域の配置を用いることによって、その画像の方向を正立にすることができる。
【００１５】
請求項２の画像処理システムによれば、請求項１の画像処理システムによる効果に加えて、配置関係が一意に定まる領域の組み合わせを用いることによって、その画像の回転角度をより正確に算出することができる。
【００１６】
請求項３の画像処理システムによれば、請求項１の画像処理システムによる効果に加えて、領域の方向に関する特徴を用いることによって、その画像の回転角度をより正確に算出することができる。
【００１７】
請求項４の画像処理システムによれば、請求項３の画像処理システムによる効果に加えて、所定の領域を複数検出した場合であっても、その画像の回転角度を算出することができる。
【００１８】
請求項５の画像処理システムによれば、請求項４の画像処理システムによる効果に加えて、算出した回転角度に相違がある場合であっても、その画像の回転角度を算出することができる。
【００１９】
請求項６の画像処理プログラムによれば、本構成を有していない場合に比較して、画像が正立以外の方向で入力されていても、画像内の領域の配置を用いることによって、その画像の方向を正立にすることができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、コンピュータ・プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させること、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能にほぼ一対一に対応しているが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。
【００２１】
本実施の形態は、図１に示すように、画像分解モジュール１１、判別モジュール１２、算出モジュール１３、画像回転モジュール１４を有している。算出モジュール１３は、関係性検出モジュール１３１、領域検出モジュール１３２、回転角算出モジュール１３３を有している。
【００２２】
画像分解モジュール１１は判別モジュール１２と接続されており、画像を受け付け、画像の特徴に基づいて、画像内を領域に分解し、その分解した画像を判別モジュール１２へ渡す。
ここで、画像の受け付けは、デジタルカメラ（スチルカメラ）、ファックス、スキャナ、複写機、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）等によって入力された画像又は画像記憶装置に記憶されていた画像を読み込むことによって行う。そして、例えば、位置的に近接しており各画素の色に関する情報を用いて、類似している画素をグループ分けすることによって、領域に分割する。また、各画素の色に関する情報の他に、境界線を抽出し、その境界線に沿って領域を分割するようにしてもよい。その他の手法を用いて領域の分割を行ってもよい。
また、画像内の部分画像（例えば、ビジネス用の文書に配置されている写真等）を切り出して、その切り出した部分画像を本実施の形態の対象画像としてもよい。
【００２３】
判別モジュール１２は画像分解モジュール１１、算出モジュール１３と接続されており、画像分解モジュール１１によって分解された領域を判別し、その判別結果を算出モジュール１３へ渡す。
ここでの判別は、各領域の特徴を抽出して認識を行う、いわゆる画像認識である。例えば、顔認識技術を用いて、色、形状等の特徴から顔と認識するようにしてもよい。ここでの判別は、領域が何であるかの他に、その領域の傾きを検出するようにしてもよい。
【００２４】
算出モジュール１３は判別モジュール１２、画像回転モジュール１４と接続されており、判別モジュール１２による判別結果及び領域の配置に応じて、画像の回転角度を算出し、その回転角度を画像回転モジュール１４へ渡す。
例えば、関係性検出モジュール１３１は、領域のうち配置関係が一意に定まる領域の組み合わせを検出する。そして、回転角算出モジュール１３３は、その領域の組み合わせの配置関係に応じて、画像の回転角度を算出するようにしてもよい。
また、領域検出モジュール１３２は、領域のうち所定の領域を検出する。そして、回転角算出モジュール１３３は、その領域の方向に関する特徴に応じて、画像の回転角度を算出するようにしてもよい。さらに、領域検出モジュール１３２が所定の領域を複数検出した場合は、回転角算出モジュール１３３がその領域の配置に応じて、画像の回転角度を算出するようにしてもよい。さらに、回転角算出モジュール１３３は、その複数検出した領域から算出した回転角度に相違がある場合は、その複数の回転角度を用いて画像の回転角度を算出するようにしてもよい。
【００２５】
画像回転モジュール１４は算出モジュール１３と接続されており、算出モジュール１３によって算出された回転角度に基づいて画像を回転する。
【００２６】
次に作用・働き（動作）を説明する。
図２は、本実施の形態が対象とする画像２０の一例である。また、図３は、画像２０の対象画像を画像分解モジュール１１によって、分解した領域の一例である。
画像分解モジュール１１は、画像２０を受け付ける。この画像２０は、海上の山（島）と太陽が写っている風景画像である。そして、画像２０は上下逆に入力されたものである。
この画像２０に対して、画像分解モジュール１１は、領域分割を行う。この場合、近接する画素の値が類似しているグループに分ける。その分解結果は、領域２１（海）、領域２２（山）、領域２３（山）、領域２４（太陽）、領域２５（空）である。
【００２７】
次に、判別モジュール１２によって、それぞれの領域を判別する。つまり、その領域の特徴（例えば、画素値、形状等）を抽出し、特徴空間での辞書（典型パターン）との比較によって、領域２１は海であること、領域２２は山であること、領域２３は山であること、領域２４は太陽であること、領域２５は空であることを判別する。その他の判別方法、例えば、ルールによる判別を行ってもよい。
【００２８】
次に、算出モジュール１３によって、画像２０の回転角度を算出する。
つまり、関係性検出モジュール１３１は、判別結果の組み合わせが関係性テーブル８０にあるかを検索する。ここで、図８を用いて関係性テーブル８０について説明する。関係性テーブル８０は、組み合わせ欄８１と上方向欄８２とを対応させて記憶しており、関係性検出モジュール１３１によって検索される。つまり、組み合わせ欄８１には、領域のうち配置関係が一意に定まる領域の組み合わせを記憶しており、上方向欄８２には、その領域のうち上方向に位置するものを記憶する。
【００２９】
関係性検出モジュール１３１は、判別モジュール１２による判別結果の組み合わせが組み合わせ欄８１にあれば、それに対応する上方向欄８２に記憶されているものを取り出す。そして、回転角算出モジュール１３３は、上方向欄８２のものが上方向になるように回転角度を算出する。例えば図３の場合は、領域２５と領域２１は、“空”と“海”の組み合わせであるので、“空”を上方向になるように回転角度（つまり１８０度）を算出する。また、領域２４と領域２１は、“太陽”と“海”の組み合わせであるので、“太陽”を上方向になるように回転角度（つまり１８０度）を算出する。
【００３０】
また、領域検出モジュール１３２は、判別結果が方向性テーブル９０にあるかを検索する。ここで、図９を用いて方向性テーブル９０について説明する。方向性テーブル９０は、対象欄９１とルール欄９２とを対応させて記憶しており、領域検出モジュール１３２によって検索される。つまり、対象欄９１には、１つの領域の方向検出のみで回転角度を算出可能な領域を記憶しており、ルール欄９２には、その領域の方向検出の結果を用いて回転角度を算出するためのルールを記憶する。
【００３１】
領域検出モジュール１３２は、判別モジュール１２による判別結果が対象欄９１にあれば、それに対応するルール欄９２に記憶されているルールを取り出す。そして、回転角算出モジュール１３３は、そのルールに従って回転角度を算出する。例えば図３の場合は、領域２２の判別結果は“山”であるので、「凸方向が上」になるように回転角度を算出する。ここで凸方向とは、領域の最長の一辺の対角にある頂点の方向をいう。領域２２の凸方向とは、下方向である。また、領域２５の判別結果は“空”であるので、「開放方向が上」になるように回転角度を算出する。ここで開放方向とは、画像２０の周囲に面している辺で最長のものの方向をいう。領域２５の開放方向とは、下方向である。
【００３２】
前述の例では、領域検出モジュール１３２が所定の領域を複数検出した場合であっても、それらから算出する回転角度には矛盾はないが、例えば魚眼レンズを通して撮影した画像の場合は、複数の山から算出される回転角度はそれぞれ異なるものである。そこで、その場合は、関係性検出モジュール１３１による処理も行い、その結果（領域の配置関係）に応じて回転角度を算出する。
【００３３】
さらに、回転角算出モジュール１３３は、複数検出した領域から算出した回転角度に相違がある場合は、その複数の回転角度を用いて画像の回転角度を算出するようにしてもよい。例えば、算出した複数の回転角度の平均値を画像の回転角度とする、算出した複数の回転角度のうち多数のものを画像の回転角度とする等である。
【００３４】
図４に示すフローチャートを用いて、本実施の形態による処理例を説明する。
ステップＳ４１では、画像分解モジュール１１が入力した画像を領域に分割する。
ステップＳ４２では、判別モジュール１２がステップＳ４１で分割した領域を判別する。
ステップＳ４３では、算出モジュール１３がステップＳ４２の判別結果を用いて、画像の回転角度を算出する。ステップＳ４３の処理は、図５〜７に示すフローチャートを用いて説明する。
ステップＳ４４では、画像回転モジュール１４がステップＳ４３で算出した回転角度に基づいて画像を回転する。
【００３５】
図５に示すフローチャートを用いて、算出モジュール１３による処理（ステップＳ４３）例を説明する。
ステップＳ５１では、関係性検出モジュール１３１がステップＳ４２の判別結果を用いて、配置関係が一意に定まる領域の組み合わせを検出する。
ステップＳ５２では、回転角算出モジュール１３３がステップＳ５１で検出した領域の組み合わせを用いて、画像の回転角度を算出する。
【００３６】
図６に示すフローチャートを用いて、算出モジュール１３による処理（ステップＳ４３）例を説明する。
ステップＳ６１では、関係性検出モジュール１３１がステップＳ４２の判別結果を用いて、その領域の方向を検出することによって画像の回転角度が算出できる領域を検出する。
ステップＳ６２では、回転角算出モジュール１３３がステップＳ６１で検出した領域の方向を用いて、画像の回転角度を算出する。
【００３７】
図７に示すフローチャートを用いて、算出モジュール１３による処理（ステップＳ４３）例を説明する。
ステップＳ７１では、関係性検出モジュール１３１がステップＳ４２の判別結果を用いて、配置関係が一意に定まる領域の組み合わせを検出する。
ステップＳ７２では、関係性検出モジュール１３１がステップＳ４２の判別結果を用いて、その領域の方向を検出することによって画像の回転角度が算出できる領域を検出する。
ステップＳ７３では、回転角算出モジュール１３３がステップＳ７１、ステップＳ７２の検出結果を用いて、画像の回転角度を算出する。
なお、ステップＳ７１とステップＳ７２の順番は、逆であってもよい。また、ステップＳ７１又はステップＳ７２のいずれか一方の処理を行った後に、ステップＳ７３で何らかの矛盾が生じた場合（例えば、ステップＳ７１又はステップＳ７２による検出結果が複数あり、それがそれぞれ異なる場合等）、先に行ったステップＳ７１又はステップＳ７２のいずれか一方の処理とは異なる処理を行うようにしてもよい。その場合は、算出した複数の回転角度から画像の回転角度を算出するようにしてもよい。
【００３８】
図１０を参照して、本実施の形態のハードウェア構成例について説明する。図１０に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部１０１７と、プリンタなどのデータ出力部１０１８を備えたハードウェア構成例を示している。
【００３９】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１００１は、前述の実施の形態において説明した各種のモジュール、すなわち、画像分解モジュール１１、判別モジュール１２、算出モジュール１３、画像回転モジュール１４等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００４０】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１００２は、ＣＰＵ１００１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１００３は、ＣＰＵ１００１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス１００４により相互に接続されている。
【００４１】
ホストバス１００４は、ブリッジ１００５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス１００６に接続されている。
【００４２】
キーボード１００８、マウス等のポインティングデバイス１００９は、操作者により操作される入力デバイスである。ディスプレイ１０１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などから成り、各種情報をテキストやイメージ情報として表示する。
【００４３】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ１００１によって実行するプログラムや情報を記録又は再生させる。ハードディスクは、入力された画像や画像分解モジュール１１による分解画像などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【００４４】
ドライブ１０１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体１０１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース１００７、外部バス１００６、ブリッジ１００５、及びホストバス１００４を介して接続されているＲＡＭ１００３に供給する。リムーバブル記録媒体１０１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００４５】
接続ポート１０１４は、外部接続機器１０１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１０１４は、インタフェース１００７、及び外部バス１００６、ブリッジ１００５、ホストバス１００４等を介してＣＰＵ１００１等に接続されている。通信部１０１６は、ネットワークに接続され、外部とのデータ通信処理を実行する。データ読み取り部１０１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部１０１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００４６】
なお、図１０に示すハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１０に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図１０に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機などに組み込まれていてもよい。
【００４７】
前記実施の形態においては、図８、図９で示したデータ構造は、これらのデータ構造に限られず、他のデータ構造であってもよい。例えば、テーブル構造ではなく、リンク構造等であってもよい。また、データ項目は、これらに図示したものに限られず、他のデータ項目を有していてもよい。
また、画像回転モジュール１４による回転結果を操作者に提示し、その回転結果で了解するか否かを問うようにしてもよい。それに対する操作者の選択操作（「ＯＫ」、「ＮＧ」のいずれかの選択）によって、「ＯＫ」の場合は回転した画像を格納し、「ＮＧ」の場合は操作者によって回転角度を指定させ、その回転角度によって画像回転モジュール１４による回転を行わせてもよい。また、「ＮＧ」の場合は、関係性検出モジュール１３１、領域検出モジュール１３２が複数の検出結果を得ていた場合は、採用されなかった検出結果を用いて、回転角算出モジュール１３３による回転角度を算出し、その算出した回転角度が前回の回転角度と異なる場合は、画像回転モジュール１４に回転を行わせるようにしてもよい。
【００４８】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【図面の簡単な説明】
【００４９】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】本実施の形態が対象とする画像の一例である。
【図３】画像分解モジュールによって、分解された領域の一例である。
【図４】本実施の形態による処理例を示すフローチャートである。
【図５】算出モジュールによる処理例を示すフローチャートである。
【図６】算出モジュールによる処理例を示すフローチャートである。
【図７】算出モジュールによる処理例を示すフローチャートである。
【図８】関係性テーブルのデータ構造例を示す説明図である。
【図９】方向性テーブルのデータ構造例を示す説明図である。
【図１０】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【符号の説明】
【００５０】
１１…画像分解モジュール
１２…判別モジュール
１３…算出モジュール
１４…画像回転モジュール
８０…関係性テーブル
９０…方向性テーブル
１３１…関係性検出モジュール
１３２…領域検出モジュール
１３３…回転角算出モジュール
１００１…ＣＰＵ
１００２…ＲＯＭ
１００３…ＲＡＭ
１００４…ホストバス
１００５…ブリッジ
１００６…外部バス
１００７…インタフェース
１００８…キーボード
１００９…ポインティングデバイス
１０１０…ディスプレイ
１０１１…ＨＤＤ
１０１２…ドライブ
１０１３…リムーバブル記録媒体
１０１４…接続ポート
１０１５…外部接続機器
１０１６…通信部
１０１７…データ読み取り部
１０１８…データ出力部
【図１】
2009010452.tif 000003
【図２】
2009010452.tif 000004
【図３】
2009010452.tif 000005
【図４】
2009010452.tif 000006
【図５】
2009010452.tif 000007
【図６】
2009010452.tif 000008
【図７】
2009010452.tif 000009
【図８】
2009010452.tif 000010
【図９】
2009010452.tif 000011
【図１０】
2009010452.tif 000012