(57)【要約】【課題】作業効率と直感的操作を両立することができる画像処理装置及び方法、並びにプログラム及び記憶媒体を提供する。【解決手段】画像処理装置のＣＰＵ１０１は、表示部１０３に表示される画像における、ポインティングデバイス１０２ａによる第１の点ａの座標を取得し、また、表示部１０３に表示される画像における、ポインティングデバイス１０２ａによる第２の点ｂの座標を取得する。そして、画像の回転中心ｏと第１の点ａとを結ぶ線分ｏａと、回転中心ｏと第２の点ｂとを結ぶ線分ｏｂとのなす角度θを計算して、画像を角度θだけ回転して表示する。【選択図】図４
2008033795.tif 000002
【特許請求の範囲】
【請求項１】
画像表示手段に表示される画像における、ポインティングデバイスによる第１の点ａの座標を取得する第１の取得手段と、
前記画像表示手段に表示される画像における、前記ポインティングデバイスによる第２の点ｂの座標を取得する第２の取得手段と、
画像の回転中心ｏと前記第１の点ａとを結ぶ線分ｏａと、前記回転中心ｏと前記第２の点ｂとを結ぶ線分ｏｂとのなす角度θを計算するθ計算手段と、
画像を前記角度θだけ回転して表示する回転・表示手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
画像の前記回転中心ｏは、前記画像表示手段の中心座標であることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記ポインティングデバイスによる前記回転中心ｏの座標を取得する第３の取得手段を備えることを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記線分ｏａと前記線分ｏｂとを、画像の上にスーパーインポーズ表示する画像表示領域を前記画像表示手段に備えることを特徴とする請求項１記載の画像処理装置。
【請求項５】
画像の回転角度を表す文字列を、画像の上にスーパーインポーズ表示する画像表示領域を前記画像表示手段に備えることを特徴とする請求項１記載の画像処理装置。
【請求項６】
画像表示手段に表示される画像における、ポインティングデバイスによる第１の点ａの座標を取得する第１の取得ステップと、
前記画像表示手段に表示される画像における、前記ポインティングデバイスによる第２の点ｂの座標を取得する第２の取得ステップと、
画像の回転中心ｏと前記第１の点ａとを結ぶ線分ｏａと、前記回転中心ｏと前記第２の点ｂとを結ぶ線分ｏｂとのなす角度θを計算するθ計算ステップと、
画像を前記角度θだけ回転して表示する回転・表示ステップと、
を備えることを特徴とする画像処理方法。
【請求項７】
画像の前記回転中心ｏは、前記画像表示手段の中心座標であることを特徴とする請求項６記載の画像処理方法。
【請求項８】
前記ポインティングデバイスによる前記回転中心ｏの座標を取得する第３の取得手ステップを備えることを特徴とする請求項６記載の画像処理方法。
【請求項９】
前記線分ｏａと前記線分ｏｂとを、画像の上にスーパーインポーズ表示することを特徴とする請求項６記載の画像処理方法。
【請求項１０】
画像の回転角度を表す文字列を、画像の上にスーパーインポーズ表示することを特徴とする請求項１記載の画像処理装置。
【請求項１１】
画像表示手段に表示される画像における、ポインティングデバイスによる第１の点ａの座標を取得する第１の取得プログラムと、
前記画像表示手段に表示される画像における、前記ポインティングデバイスによる第２の点ｂの座標を取得する第２の取得プログラムと、
画像の回転中心ｏと前記第１の点ａとを結ぶ線分ｏａと、前記回転中心ｏと前記第２の点ｂとを結ぶ線分ｏｂとのなす角度θを計算するθ計算プログラムと、
画像を前記角度θだけ回転して表示する回転・表示プログラムと、
をコンピュータに実行させることを特徴とする画像処理プログラム。
【請求項１２】
請求項１１記載の画像処理プログラムを格納するコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び方法、並びにプログラム及び記憶媒体に関し、特に、画像回転処理技術に特徴のある画像処理装置及び方法、並びにプログラム及び記憶媒体に関する。
【背景技術】
【０００２】
画像処理装置では、画像データの水平度を補正する等の目的で画像の任意角回転を行う場合、まず画像を画面表示し、操作者が回転角度を指定することで画像回転を行い、回転後の画像を再度画面表示するという画像回転調整が従来行われてきた。
【０００３】
回転角度の入力に際しては、種々の画像調整ソフトウェアに見られるように、（１）画像以外に調整スライダーや数値入力テキストボックスを呈示する、（２）画像の四隅のいずれかをマウスでポイントする、などの技術がある。
【０００４】
尚、適当な先行技術文献情報は見当たらない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記（１）の従来技術では、実際に回転を行ってみないと結果が操作者に示されなかったり、画像と離れた位置にあるスライダーの操作が画像に反映されるという動作のため、作業が直感的でなく効率が悪いという問題があった。また、上記（２）の従来技術では、操作は直感的なものに近づくが、操作画面に対して画像が十分に小さく、画像の四隅が画面内に収まっている場合しか使えないため改良の余地があった。
【０００６】
本発明の目的は、作業効率と直感的操作を両立することができる画像処理装置及び方法、並びにプログラム及び記憶媒体を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、請求項１記載の画像処理装置は、画像表示手段に表示される画像における、ポインティングデバイスによる第１の点ａの座標を取得する第１の取得手段と、前記画像表示手段に表示される画像における、前記ポインティングデバイスによる第２の点ｂの座標を取得する第２の取得手段と、画像の回転中心ｏと前記第１の点ａとを結ぶ線分ｏａと、前記回転中心ｏと前記第２の点ｂとを結ぶ線分ｏｂとのなす角度θを計算するθ計算手段と、画像を前記角度θだけ回転して表示する回転・表示手段とを備えることを特徴とする。
【０００８】
請求項６記載の画像処理方法は、画像表示手段に表示される画像における、ポインティングデバイスによる第１の点ａの座標を取得する第１の取得ステップと、前記画像表示手段に表示される画像における、前記ポインティングデバイスによる第２の点ｂの座標を取得する第２の取得ステップと、画像の回転中心ｏと前記第１の点ａとを結ぶ線分ｏａと、前記回転中心ｏと前記第２の点ｂとを結ぶ線分ｏｂとのなす角度θを計算するθ計算ステップと、画像を前記角度θだけ回転して表示する回転・表示ステップとを備えることを特徴とする。
【０００９】
請求項１１記載の画像処理プログラムは、画像表示手段に表示される画像における、ポインティングデバイスによる第１の点ａの座標を取得する第１の取得プログラムと、前記画像表示手段に表示される画像における、前記ポインティングデバイスによる第２の点ｂの座標を取得する第２の取得プログラムと、画像の回転中心ｏと前記第１の点ａとを結ぶ線分ｏａと、前記回転中心ｏと前記第２の点ｂとを結ぶ線分ｏｂとのなす角度θを計算するθ計算プログラムと、画像を前記角度θだけ回転して表示する回転・表示プログラムとをコンピュータに実行させることを特徴とする。
【００１０】
請求項１２記載のコンピュータ読み取り可能な記憶媒体は、請求項１１記載の画像処理プログラムを格納する。
【発明の効果】
【００１１】
本発明では、画像表示手段に表示される画像における、ポインティングデバイスによる第１の点ａの座標を取得し、また、画像表示手段に表示される画像における、ポインティングデバイスによる第２の点ｂの座標を取得する。そして、画像の回転中心ｏと第１の点ａとを結ぶ線分ｏａと、回転中心ｏと第２の点ｂとを結ぶ線分ｏｂとのなす角度θを計算して、画像を角度θだけ回転して表示する。
【００１２】
従って、画像の四隅が画面内に収まっていなくても、あたかもマウスで画像を掴んでスクロールするような操作で画像を回転させることができ、作業効率と直感的操作を両立することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面を参照しながら詳細に説明する。
【００１４】
図１は、本発明の実施の形態に係る画像処理装置の構成を概略的に示す図である。
【００１５】
図１において、画像処理装置は、ＣＰＵ１０１、キーボード１０２、表示部１０３、ＲｏＭ１０４、ＲａＭ１０５、ハードディスク装置１０６、フロッピー（登録商標）ディスク装置１０７及びプリンタ１０８がシステムバス１０９で接続されることにより構成される。
【００１６】
ＣＰＵ１０１はシステム全体の制御を行っている。キーボード１０２は、マウス１０２ａとともにシステムに入力するために使用される。表示装置１０３はＣＲＴや液晶等で構成されている。
【００１７】
ＲｏＭ１０４、ＲａＭ１０５は、システムの記憶装置を構成し、システムが実行するプログラムやシステムが利用するデータを記憶する。ハードディスク装置１０６、フロッピー（登録商標）ディスク装置１０７は、システムのファイルシステムに使用される外部記憶装置を構成している。
【００１８】
図２は、図１における表示部の構成と操作画面例を示す図である。
【００１９】
図２において、表示部１０３は、画像表示領域２１、角度調整スライダー２２、角度表示領域２３を備える。
【００２０】
ハードディスク装置１０６に格納された画像データがデコードされ、画像表示領域２１に表示される。角度調整スライダー２２は、０を中心に±１８０度の範囲で調整量を指定でき、操作者が調整量を指定すると周知の画像回転アルゴリズムに従って画像を回転し、画像表示領域２１に表示する。同時に、角度表示領域２３に調整角度を表示する。
【００２１】
画像表示領域２１において、ポインティングデバイスとしてのマウス１０２ａによる直接操作により、あたかも画像を掴んで動かすような直感的な操作を行うことができる。
【００２２】
まず図３を用いて、回転操作に関わる座標を説明する。点ｏは角度表示領域２１の中心点である。点ａはマウス１０２ａを用いて操作者が指定（マウスボタンダウン）した点である。点ｂは操作者がマウスボタンを押下したままマウスを移動（ドラッグ）し、現在マウスポインタが指している点を示している。点ａｏｂがなす角の角度をθとする。また、点ｏの座標を（ｘ０，ｙ０）とする。また、回転角度の初期値をθ０とする。画像が水平の時θ０  =  ０である。
【００２３】
図４は、図１の画像処理装置によって実行される画像回転処理の第１の実施の形態の手順を示すフローチャートである。
【００２４】
本処理は、図１におけるＣＰＵ１０１によって実行される。
【００２５】
図４において、まず、マウスボタンダウンの座標（ｘ１，ｙ１）をシステムより取得、格納する（ステップＳ４０１）（第１の取得手段）本実施の形態では表示装置１０３の左上を（０，０）、右下を（Ｗ，Ｈ）とする一般的な座標系に基づいて説明を行う。
【００２６】
次いで、マウス１０２ａが移動したか否かの判断を行う（ステップＳ４０２）。マウス１０２ａが移動していなければステップＳ４０２の前に戻る。すなわち、本ステップはマウス移動を監視するループを形成している。マウス１０２ａが移動したら、現在のマウスカーソル座標（ｘ２，ｙ２）をシステムより取得、格納する（ステップＳ４０３）（第２の取得手段）。
【００２７】
ｏａｂの座標から次式に従い角度θを計算する（ステップＳ４０４）（θ計算手段）。
【００２８】
θ＝ａｔａｎ２（ｙ２−ｙ０，ｘ２−ｘ０）−ａｔａｎ２（ｙ１−ｙ０，ｘ１−ｘ０）
ここで、ａｔａｎ２（）はＣ言語に標準定義されたアークタンジェント（逆正接）関数である。
【００２９】
次いで、画像データを、水平状態から角度θ０＋θだけ回転して画像表示領域２１に表示し、角度表示領域２３にθ０＋θを表示する（ステップＳ４０５）（回転・表示手段）。マウス１０２ａのマウスボタンが放されたか否かの判断を行う（ステップＳ４０６）。ボタンがリリースされていたらステップＳ４０７に進む。そうでなければステップＳ４０２に戻る。ステップＳ４０７で、画像回転角度θを値θ０だけ増加させる。
【００３０】
第１の実施の形態によれば、マウス１０２ａを用いてあたかも画像を掴んで動かすように画像表示の回転角度を調整することができる。また、画像内部の任意の点を掴むことができるため、画像の四隅が画面外に出ているときでも回転操作を行うことができる。
【００３１】
図４の第１の実施の形態においては、回転中心ｏは画像表示領域２１の中心としたが、これに限られるものではない。以下に示す第２の実施の形態では、点ａ、ｂに加えて回転中心ｏを更に操作者が指定する場合の処理を説明する。
【００３２】
図５は、図１の画像処理装置によって実行される画像回転処理の第２の実施の形態の手順を示すフローチャートである。
【００３３】
本処理は、図１におけるＣＰＵ１０１によって実行される。
【００３４】
図５において、まず、マウスボタンダウンの座標（ｘ０，ｙ０）をシステムより取得、格納する（ステップＳ５０１）（第３の取得手段）。マウスボタンダウンの座標（ｘ１，ｙ１）をシステムより取得、格納する（ステップＳ５０２）（第１の取得手段）。
【００３５】
次いで、マウス１０２ａが移動したか否かの判断を行う（ステップＳ５０３）。マウス１０２ａが移動していなければステップＳ５０３の前に戻る。すなわち、本ステップはマウス移動を監視するループを形成している。マウス１０２ａが移動したらステップＳ５０４に進む。現在のマウスカーソル座標（ｘ２，ｙ２）をシステムより取得、格納する（ステップＳ５０４）（第２の取得手段）。
【００３６】
ａｏｂの座標から次式に従い角度θを計算する（ステップＳ５０５）（θ計算手段）。
【００３７】
θ＝ａｔａｎ２（ｙ２−ｙ０，ｘ２−ｘ０）−ａｔａｎ２（ｙ１−ｙ０，ｘ１−ｘ０）
ここで、ａｔａｎ２（）はＣ言語に標準定義されたアークタンジェント（逆正接）関数である。
【００３８】
次いで、画像データを、水平状態から角度θ０＋θだけ回転して画像表示領域２１に表示し、角度表示領域２３にθ０＋θを表示する（ステップＳ５０６）（回転・表示手段）。マウス１０２ａのマウスボタンが放されたか否の判断を行う（ステップＳ５０７）。マウス１０２ａのマウスボタンがリリースされていたらステップＳ５０８に進む。そうでなければステップＳ５０３に戻る。
【００３９】
ステップＳ５０８で、画像回転角度θを、値θ０だけ増加し、処理を終了する。
【００４０】
図６は、図１の画像処理装置によって実行される画像回転処理の第２の実施の形態（図５のフローチャートに示す処理）におけるマウスボタンの状態を説明する図である。
【００４１】
図６において、横軸は時間経過を示す。縦軸はマウスボタンの状態を示し、図の上方はマウスボタンが押下された状態、下方はマウスボタンがリリースされた状態を示している。
【００４２】
操作者は、マウス１０２ａを用いてボタンアップでマウスカーソルを移動し、まず回転中心の点ｏをマウスクリックにより指定する（ステップＳ５０１）。再度ボタンアップ状態でマウスカーソルを移動し、マウスボタンの押下により点ａを指定する（ステップＳ５０２）。そのままマウスボタンを押下した状態でマウスカーソルを移動し、最終的に点ｂに到達した時点でマウスボタンをリリースする（ステップＳ５０８）。
【００４３】
第２の実施の形態によれば、操作者は、一回のマウスボタンクリックと一回のマウスドラッグ操作の組み合わせで、回転中心指定を含む画像の回転操作を行うことができる。
【００４４】
上記第２の実施の形態においては、まずクリックにより回転中心を選択し、続いてドラッグにより点ａ〜点ｂを選択したが、これに限られるものではない。例えば、図７に示すマウスボタンの状態に従って処理を行ってもよい。
【００４５】
図７は、図１の画像処理装置によって実行される画像回転処理の第３の実施の形態におけるマウスボタンの状態を説明する図である。
【００４６】
図７において、図６と同様に横軸は時間経過を示す。縦軸はマウスボタンの状態を示し、図の上方はマウスボタンが押下された状態、下方はマウスボタンがリリースされた状態を示している。
【００４７】
操作者は、マウス１０２ａを用いてボタンアップでマウスカーソルを移動し、まず回転中心の点ｏをマウスダウンにより指定する。そのままボタンダウン状態でマウスカーソルをドラッグし、マウスボタンアップにより点ａを指定する。そのままボタンアップの状態でマウスカーソルを移動し、最終的に点ｂに到達した時点でマウスボタンをクリックする。なお、マウスボタンの状態以外は、図５のフローチャートによる動作説明とほぼ同等であるので、フローの説明は省略する。
【００４８】
第３の実施の形態によれば、操作者は、一回のマウスドラッグ操作と一回のマウスボタンクリックの組み合わせで、回転中心指定を含む画像の回転操作を行うことができる。
【００４９】
上記第３の実施の形態においては、まずクリックにより回転中心を選択し、続いてドラッグにより点ａ〜点ｂを選択したが、これに限られるものではない。例えば、図８に示すマウスボタンの状態に従って処理を行ってもよい。
【００５０】
図８は、図１の画像処理装置によって実行される画像回転処理の第４の実施の形態におけるマウスボタンの状態を説明する図である。
【００５１】
図８において、図７と同様に横軸は時間経過を示す。縦軸はマウスボタンの状態を示し、図の上方はマウスボタンが押下された状態、下方はマウスボタンがリリースされた状態を示している。
【００５２】
操作者は、マウス１０２ａを用いてボタンアップでマウスカーソルを移動し、まず回転中心の点ｏをマウスボタンクリックにより指定する。続いてボタンアップ状態でマウスカーソルを移動し、マウスボタンクリックにより点ａを指定する。そのままボタンアップの状態でマウスカーソルを移動し、最終的に点ｂに到達した時点でマウスボタンをクリックする。なお、マウスボタンの状態以外は、図５のフローチャートによる動作説明とほぼ同等であるので、フローの説明は省略する。
【００５３】
第４の実施の形態によれば、操作者は３回のマウスボタンクリックとマウスカーソル移動の組み合わせで、回転中心指定を含む画像の回転操作を行うことができる。
【００５４】
ここで、画像を回転表示する際、図３における線分ｏａ、線分ｏｂを画像上にさらにスーパーインポーズ表示することで、実際の回転角度がより把握しやすくなり、操作性を向上することができる。また、このとき線分ｏａと線分ｏｂを異なる色で表示したり、線分ｏａにα値を持たせて画像データとαブレンド表示して薄く表示するなどして、両者を視覚的に区別することで操作性を向上することができる。
【００５５】
また、画像の回転角度は、画像表示領域２１とは別の角度表示領域２３に表示するとしたがこれに限らない。例えば画像表示領域２１の中の点ｂの近傍に、画像の回転角度をスーパーインポーズ表示することで、注視点から視線を移動しないで角度を読み取ることができ、より操作性を向上することができる。
【００５６】
また、一般的な画像編集アプリケーションにおいては、画像のドラッグはスクロール動作に割り当てられていることが多く、回転動作と共存するために動作モードの切り替えが必要になる。この場合は、
（１）点ａを指定する際にキーボード１０２の特定のキー（例えばコントロールキー）を押下しながらマウスボタンを押下すると回転モードに入る。
（２）操作画面上のメニューやボタン等により明示的に動作モードを回転モードに切り替えてから回転操作を行う。
（３）２個以上のマウスボタンを備えたマウス１０２ａを用いて、例えば左ボタンでのドラッグはスクロール動作、右ボタンでのドラッグは回転動作とする。
（４）上記方法の組み合わせ。
【００５７】
などの方法で、２つの動作モードを切り替えるようにすればよい。
【００５８】
また、本発明の目的は、実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
【００５９】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６０】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤーＲｏＭ、ＣＤーＲ、ＣＤーＲＷ、ＤＶＤーＲｏＭ、ＤＶＤーＲａＭ、ＤＶＤーＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲｏＭ等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【００６１】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているｏＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
【００６２】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００６３】
【図１】本発明の実施の形態に係る画像処理装置の構成を概略的に示す図である。
【図２】図１における表示部の構成と操作画面例を示す図である。
【図３】図２における画像表示領域と、画像及び各点の座標を示す図である。
【図４】図１の画像処理装置によって実行される画像回転処理の第１の実施の形態の手順を示すフローチャートである。
【図５】図１の画像処理装置によって実行される画像回転処理の第２の実施の形態の手順を示すフローチャートである。
【図６】図１の画像処理装置によって実行される画像回転処理の第２の実施の形態（図５のフローチャートに示す処理）におけるマウスボタンの状態を説明する図である。
【図７】図１の画像処理装置によって実行される画像回転処理の第３の実施の形態におけるマウスボタンの状態を説明する図である。
【図８】図１の画像処理装置によって実行される画像回転処理の第４の実施の形態におけるマウスボタンの状態を説明する図である。
【符号の説明】
【００６４】
１０１  ＣＰＵ
１０２  キーボード
１０２ａ  マウス（ポインティングデバイス）
１０３  表示部（画像表示手段）
１０４  ＲＯＭ
１０５  ＲＡＭ
１０６  ハードディスク
１０７  フロッピー（登録商標）ディスク
１０８  プリンタ
【図１】
2008033795.tif 000003
【図２】
2008033795.tif 000004
【図３】
2008033795.tif 000005
【図４】
2008033795.tif 000006
【図５】
2008033795.tif 000007
【図６】
2008033795.tif 000008
【図７】
2008033795.tif 000009
【図８】
2008033795.tif 000010