(57)【要約】【課題】  元画像を破壊することなく画像加工処理を行うことが可能な画像編集装置を提供すること。【解決手段】  加工後の画像データを、未加工の画像データとそれに適用された加工処理を表す加工情報との組合せによって構成する。これにより、加工後の画像データから未加工画像データを画質劣化無く復元することが可能である。また、加工情報を工程毎に記録することで、いつでも過去に行った加工を取り消したり、やり直したりすることが可能である。【選択図】  図３
2006209543.tif 000002
【特許請求の範囲】
【請求項１】
元画像データに対し、ユーザから指示された加工処理を適用可能な画像編集装置であって、
前記元画像データに対して前記加工処理を適用し、出力する画像処理手段と、
前記画像処理手段が出力する画像データを、前記加工処理を適用した結果としてユーザに表示する表示手段と、
前記元画像データに適用した前記加工処理の内容を表す工程情報を、前記加工処理を適用する毎に記憶する工程情報記憶手段と、
前記元画像データと前記元画像データに関する前記工程情報とを含むデータを、前記加工処理後の画像データとして保存する保存手段とを有することを特徴とする画像処理装置。
【請求項２】
前記加工処理後の画像データに対して加工処理の取り消し指示があった場合には、その時点において最後に適用した加工処理を、対応する前記工程情報に基づいて取り消し、加工処理のやり直し指示があった場合には、その時点において最後に適用した加工処理の次の加工処理を、対応する前記工程情報に基づいて実行するように前記画像処理手段を制御する制御手段を更に有することを特徴とする請求項１記載の画像編集装置。
【請求項３】
さらに、前記保存手段が、前記元画像データの回転量を示す回転情報を前記加工処理後の画像データに含ませ、
前記画像処理手段が、前記元画像データに対して前記回転情報に基づいた回転処理を適用することを特徴とする請求項１又は請求項２記載の画像編集装置。
【請求項４】
前記加工情報の各々には、対応する加工処理を適用する前の画像と、適用後の画像との差分画像データが含まれることを特徴とする請求項１乃至請求項３のいずれか１項に記載の画像編集装置。
【請求項５】
前記画像処理手段が、前記元画像よりも低い解像度を有する前記加工処理後の画像を生成する場合、前記元画像の解像度を低減した後に前記加工処理を適用することを特徴とする請求項１乃至請求項４のいずれか１項に記載の画像編集装置。
【請求項６】
前記表示手段が、前記画像処理手段が出力する画像データの一部領域を等倍表示するとともに、他の画像データに表示を切り替える場合には、前記他の画像データのうち、前記一部領域と対応する領域を等倍表示することを特徴とする請求項１乃至請求項５のいずれか１項に記載の画像編集装置。
【請求項７】
元画像データと、当該元画像データに対して適用された加工処理の内容を表す加工情報とを含む第１の画像データから、前記加工情報を読み出す読み出し手段と、
前記読み出した加工情報を、前記第１の画像データと同様の加工処理を適用すべき第２の画像データに関する加工情報として前記第２の画像データに添付する添付手段とを有することを特徴とする画像編集装置。
【請求項８】
前記添付手段が、前記第１の画像データと、前記第２の画像データの解像度が一致した場合のみ前記加工情報の添付を実行することを特徴とする請求項６記載の画像編集装置。
【請求項９】
前記第１の画像データと、前記第２の画像データの解像度が異なり、縦横比が一致する場合、前記添付された前記加工情報に含まれる座標情報を前記第２の画像データの解像度に併せて変換する座標変換手段を更に有することを特徴とする請求項６記載の画像編集装置。
【請求項１０】
元画像データに対し、ユーザから指示された加工処理を適用可能な画像編集方法であって、
前記元画像データに対して前記加工処理を適用し、出力する画像処理ステップと、
前記画像処理ステップが出力する画像データを、前記加工処理を適用した結果としてユーザに表示する表示ステップと、
前記元画像データに適用した前記加工処理の内容を表す工程情報を、前記加工処理を適用する毎に記憶する工程情報記憶ステップと、
前記元画像データと前記元画像データに関する前記工程情報とを含むデータを、前記加工処理後の画像データとして保存する保存ステップとを有することを特徴とする画像処理方法。
【請求項１１】
コンピュータを、請求項１乃至請求項９のいずれか１項に記載の画像編集装置として機能させることを特徴とするプログラム。
【請求項１２】
請求項１１記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像編集装置及び画像編集方法に関する。
【背景技術】
【０００２】
一眼レフデジタルカメラの構造上の問題点として、レンズ交換できないタイプ（一体型）とは異なり、レンズ交換時に撮像センサが剥き出しになるという点がある。そのため、ＣＣＤやＣＭＯＳセンサ等の撮像センサ上のローパスフィルタ等にゴミが付着すると、ゴミが写り込んだ画像が撮影されてしまう。
【０００３】
このような「ゴミ問題」を解決するためには、物理的にゴミを除去したり、ゴミの混入を防止するハードウェア面からの対策が重要であるのはもちろんである。しかし、現時点でこのようなハードウェア面からの対策がなされていないカメラで撮影した、ゴミの写り込んだ画像の修正には、コンピュータ装置を代表とする外部機器で稼働するソフトウェアアプリケーション（ＰＣアプリケーション）による支援が必要となる。
【０００４】
ＰＣアプリケーションにより画像を修正してゴミ問題を解決する方法としては、
・画像解析を用いた自動ゴミ除去処理
・領域複製処理
といった方法が考えられる。前者は画像からゴミ位置を特定し、ゴミの画素を、本来構成すべき推定画素で置換することによりゴミを除去する方法である。後者は、ゴミが写り込んだ領域（ゴミ領域）に、別の領域の画素値をブレンドすることでゴミを消す方法である。後者では、ＰＣアプリケーション使用者がコピー元の領域（ゴミ領域と似た色合いの領域）とコピー先の領域（ゴミ領域）を指定することで、ゴミを手動で消去することができる。
【０００５】
自動ゴミ除去処理は、ＰＣアプリケーションによる自動処理であるため、作業の手間を軽減することができる反面、ゴミ領域を検出するための画像が必要となるなど、画像解析処理が複雑であり、また、誤判定による画質劣化などのリスクがある。領域複製処理は、ＰＣアプリケーションの使用者が手動で領域指定する必要があるため、作業の手間はかかるが、出力結果はアプリケーション使用者の意図に合致したものとなる。
【０００６】
領域複製処理は、Ａｄｏｂｅ社のＰｈｏｔｏＳｈｏｐ（商標）に代表される画像加工ＰＣアプリケーションが一般的に備える機能である。領域複製処理については例えば「コピースタンプ」機能として、非特許文献１に記載されている。
【０００７】
【非特許文献１】「コピースタンプ」、”デジタル用語辞典”、[online]、［２００４年１２月１日検索］、インターネット＜ＵＲＬ：http://www.nifty.com/webapp/digitalword/word/080/08091.htm＞
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、一般的な画像加工ＰＣアプリケーションは、元画像を加工した後のデータを保存するものであるため、元画像を残し別の新たな画像ファイルとして保存するか、元データを捨てて上書き保存することになってしまう。したがって、加工後の画像を保存した後で、編集をやり直したくなったとしても、元画像を使って一から編集しなおすか、多少の画質が劣化することには目をつぶって加工後の画像をさらに加工するかのいずれかしか選択肢が無かった。また、商品撮影時など、ほぼ同じようなカットが複数存在し、これらに同じ加工を適用したい場合、適用したいカット毎に加工処理内容を指定しなくてはならず煩わしいという問題があった。
【課題を解決するための手段】
【０００９】
上記問題を解決するために、本発明の画像編集装置は以下の構成を含む。
すなわち、本発明の画像処理装置は、元画像データに対し、ユーザから指示された加工処理を適用可能な画像編集装置であって、元画像データに対して加工処理を適用し、出力する画像処理手段と、画像処理手段が出力する画像データを、加工処理を適用した結果としてユーザに表示する表示手段と、元画像データに適用した加工処理の内容を表す工程情報を、加工処理を適用する毎に記憶する工程情報記憶手段と、元画像データと元画像データに関する工程情報とを含むデータを、加工処理後の画像データとして保存する保存手段とを有することを特徴とする。
【００１０】
また、上記問題を解決するために、本発明の画像編集方法は、元画像データに対し、ユーザから指示された加工処理を適用可能な画像編集方法であって、元画像データに対して加工処理を適用し、出力する画像処理ステップと、画像処理ステップが出力する画像データを、加工処理を適用した結果としてユーザに表示する表示ステップと、元画像データに適用した加工処理の内容を表す工程情報を、加工処理を適用する毎に記憶する工程情報記憶ステップと、元画像データと元画像データに関する工程情報とを含むデータを、加工処理後の画像データとして保存する保存ステップとを有することを特徴とする。
【発明の効果】
【００１１】
このような構成により、本発明の画像編集装置によれば、加工後に保存した画像データからも元画像を復元可能であり、また、複数の画像に共通した加工を適用したい場合でも効率よく加工処理を実行することが可能になる。
【発明を実施するための最良の形態】
【００１２】
〔第１の実施形態〕
以下、図面を用いて本発明をその好適な実施形態に基づいて詳細に説明する。
図１は、本発明の第１の実施形態に係る画像編集装置として機能可能な汎用コンピュータシステムの概略構成例を示した図である。ＣＰＵ１０１は、システム全体の動作をコントロールし、一次記憶装置１０２に格納されたプログラムの実行などを行う。一次記憶装置１０２は主に半導体メモリであり、二次記憶装置１０３に記憶されたプログラムなどを読み込んで格納する。二次記憶装置１０３は、例えばハードディスクなどがこれに該当する。
【００１３】
一般にコンピュータシステムにおいて一次記憶装置の容量は二次記憶装置の容量より小さく、一次記憶装置に格納しきれないプログラムやデータなどは二次記憶装置に格納される。また、長時間記憶しなくてはならないデータなども二次記憶装置に格納される。本実施形態では、ＣＰＵ１０１が実行することでシステムを本実施形態の画像編集装置として機能させるプログラムを二次記憶装置１０３に格納し、プログラム実行時に一次記憶装置１０２に読み込んでＣＰＵ１０１が実行するものとする。入力デバイス１０４とは例えば、システムに対してユーザが指示を与えるために用いるマウスやキーボードといった入力装置の他、画像データの入力に必要なメモリカードリーダー、スキャナ、フィルムスキャナなどがこれに該当する。出力デバイス１０５とは例えば、モニタやプリンタなどが考えられる。システムの構成には他にも様々な形態が考えられるが、本発明の主眼ではないので説明を省略する。
【００１４】
本実施形態による画像編集装置には、複数のアプリケーションプログラムを並列実行可能なオペレーティングシステム（ＯＳ）が搭載され、操作者はＯＳが提供するＧＵＩ(Graphical User Interface)を介して装置上で動作するアプリケーションプログラムの操作を行うことができる。例えば本実施形態では、オペレーティングシステムとしてマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）を用いるものとする。したがって、以下の説明においてはＷｉｎｄｏｗｓ（登録商標）の仕様に基づいた記述になっているが、これは本発明の実施環境を限定するものではなく、他のＯＳ環境に本発明を適用可能であることは言うまでもない。
また、本実施形態に係る画像編集装置で実行可能な画像加工処理に特に制限はないが、以下では、従来技術で述べた領域複製処理を例として説明する。
【００１５】
図２は、本実施形態の画像編集装置が領域複製処理時に提示するＧＵＩの例を示す図である。加工対象画像は画像表示領域２０１に表示される。表示設定や加工パラメータを変更するためのパレット２０２には、コピー元位置指定モードボタン２０３、表示モード遷移ボタン２０４、全画面表示切り替えボタン２０５、コピー元座標を絶対座標として扱うか相対座標として扱うかを示すコピー元座標指定チェックボタン２０８、ブレンド領域の半径を指定する半径スライダ２０９、さらに、複数画像を加工対象とした場合の「次の画像」「前の画像」を選択する前選択ボタン２１０および次選択ボタン２１１、加工情報スタック（元画像データに対して適用された加工処理の内容を、加工処理の適用毎に記憶した工程情報の集合体。操作履歴。）を加工対象画像に添付する保存ボタン２０６、加工情報スタック適用後の画像をモニタやプリンタに出力するための変換ボタン２０７を備える。
【００１６】
図３は、領域複数処理において画像編集装置が取り扱うデータを示す図である。加工の対象となる画像は全て、ファイルリストに登録する。ファイルリストを構成するファイルエントリは、各画像のファイル名、画像回転情報および加工情報スタックを持つ。また、編集対象画像を示す編集対象画像ポインタがあり、このポインタで参照されているファイルエントリに対応するファイルが編集対象画像となる。
【００１７】
また、編集対象画像データとして、未加工状態の未加工画像データ、および後述する加工情報スタックに含まれる加工を適用した後のプレビュー画像データを持つ。未加工状態の画像データを保持するのは、後述するＵｎｄｏ／Ｒｅｄｏ処理のためである。図３中では、編集対象画像の加工情報スタックとファイルエントリの加工情報スタックとを別のデータとして表現しているが、編集対象画像データから直接ファイルエントリの加工情報スタックを参照しても良い。本実施形態では、直接ファイルエントリの加工情報スタックを参照する形をとる。
【００１８】
また、１回のドラッグ操作によって複数の領域複製処理を１つの加工情報エントリに記録できるよう、ドラッグ操作に伴いＯＳから通知される座標を、適用座標列と呼ぶ配列に格納する。格納された座標の数は、適用座標数で保持する。したがって、領域複製処理を開始した時点で適用座標数を０に初期化する必要がある。
【００１９】
加工情報スタックを構成する各加工情報エントリ内には、加工パラメータと加工画像キャッシュがある。
加工パラメータとは、どの座標にどのような加工処理を適用したかを示す情報である。本実施形態では加工処理として領域複製処理のみを行うため、加工処理を識別するためのＩＤは保持しないが、加工パラメータの構成要素として加工処理を識別するＩＤを付与しても良いことは言うまでもない。本実施形態における加工パラメータは、領域複製処理範囲を示す半径ｒ、適用座標列、および適用座標数とする。
【００２０】
加工画像キャッシュとは、加工情報エントリに記録された画像加工処理を適用する前と適用した後の画像の差分である。このようなキャッシュを保持することで、実際に加工処理を実行するよりも高速に加工処理を実行できる。このキャッシュは、主にＵｎｄｏ／Ｒｅｄｏ処理で利用する。
【００２１】
本実施形態による画像編集プログラムでは、加工情報スタック以外の画像加工情報として画像回転情報を持つ。画像の回転方向については、画像データそのものを回転する場合もあるが、Ｅｘｉｆ(Exchangeable image file format for Digital Still Cameras)のＯｒｉｅｎｔａｔｉｏｎタグに代表される、画像の回転方向を示す情報を付与することで、適切な画像の回転方向を保存する場合もある。後者は画像データ自体を変更しないため、回転処理のためのデコード処理による画質の劣化が無く、ＣＣＤ−ＲＡＷデータに代表される特殊な画像データ形式にも対応可能である。
【００２２】
そこで本実施形態では、加工情報スタックに合わせて画像の回転方向を示す画像回転情報を画像データに付与し、画像の回転結果を保持することとする。本実施形態においては、例えばキーボードのＣｔｒｌキーとＬキーを同時に押下することで左９０度回転、ＣｔｒｌキーとＲキーを同時に押下することで右９０度回転の指示として動作する。画像回転情報や加工情報スタックの保存方法やデータ形式については後述する。
【００２３】
図４は、本実施形態にかかる画像編集装置が出力デバイス１０５としての表示装置に表示するＧＵＩの状態遷移図である。
ＧＵＩは画像をウィンドウの大きさに合わせた倍率で表示（ｆｉｔ表示）するｆｉｔモード４０１と、画素等倍表示にする等倍モード４０２の２モードに分かれており、遷移コマンドによって互いの状態へ遷移する。本実施形態では、ｆｉｔモード時は画像加工を禁止し、等倍モードでのみ画像加工ができるように制御している。これは、画像加工を実行する範囲が広くなると、加工前画像と加工後画像の差分である加工画像キャッシュのデータサイズが大きくなり、処理に必要なメモリ領域が非常に大きなものになってしまうからである。画像加工操作を等倍モードに限定することで、画像加工範囲を限定し、使用メモリ量の増加を抑制することができる。
【００２４】
ｆｉｔモード時は、等倍モードへの遷移のみ可能である。本実施形態において、画像編集装置は、表示モード遷移ボタン２０４が押下されるか、画像表示領域２０１にｆｉｔ表示されている画像のどこかがダブルクリックされると、等倍モードへ移行する。表示モード遷移ボタン２０４が押下された場合、編集対象画像の中央部を画素等倍表示し、等倍モードに遷移する。また、ｆｉｔ表示画像がダブルクリックされた場合、ダブルクリックされた画像位置が中央に表示されるように画素等倍表示する。等倍表示時の画像外領域は、黒で塗りつぶす。
【００２５】
等倍モード時は、画像加工ができる。等倍モード時の状態遷移図を図５に示す。ｆｉｔモードから等倍モードに遷移した直後は、移動モード５０２になる。移動モード５０２の状態で画像がダブルクリックされるか、表示モード遷移ボタン２０４が押下されると、ｆｉｔモードへ遷移する。
【００２６】
移動モード５０２では、画像表示位置の変更が可能である。一般的なウィンドウ表示と同様、垂直、水平スクロールバーの操作によりユーザは画像表示位置の変更ができる。
移動モード５０２、あるいはスタンプモード５０４でＡｌｔキーが押下されている間、あるいはコピー元位置指定モードボタン２０３が押下されると、コピー元位置指定モード５０３に遷移する。Ａｌｔボタンが開放されるか、コピー元位置指定モードボタン２０４が再度押下されると、移動モード５０２に遷移する。表示モード遷移ボタン２０４が押下されると、ｆｉｔモード５０１へ戻る。コピー位置指定モード５０３において画像上がクリックされた場合、そのクリック位置をコピー元座標としてスタンプモード５０４に遷移する。
【００２７】
スタンプモード５０４に入った後、最初にマウスの左ボタンがクリック（左クリック）された座標に対し、領域複製処理を行う。この座標を基準座標と呼ぶ。基準座標が更新された場合、コピー相対座標を未設定状態にする。コピー相対座標とは、領域複製処理のコピー先の領域からコピー元の領域への相対座標である。
【００２８】
スタンプモード５０４において右クリックされた場合、移動モード５０２に遷移する。移動モードで表示モード遷移ボタン２０４が押下されると、ｆｉｔモード５０１へ戻る。
【００２９】
次に、図６に示すフローチャートを用いて領域複製処理の流れについて説明する。ここで図６中の複製マスクとは、半径スライダ２０９の状態に応じて生成した複製マスクである。複製マスクの生成処理は、半径スライダ２０９の状態が変化する度に実行する。複製マスク生成処理については後述する。
【００３０】
（ステップＳ６０１）  コピー相対座標が設定されているかどうかをチェックする。設定されていればステップＳ６０３へ、設定されていなければステップＳ６０２へ進む。
（ステップＳ６０２）  コピー元位置から基準座標への相対座標を求め、これをコピー相対座標とする。
（ステップＳ６０３）  コピー元位置の相対座標を算出する。コピー元位置を絶対座標として扱う場合、基準座標とコピー先座標の相対座標を用いる。コピー元位置を相対座標として扱う場合、コピー相対座標を用いる。
【００３１】
（ステップＳ６０４）  適用座標数を０に初期化し、プレビューキャッシュ画像を作成する。プレビューキャッシュ画像とは、この時点でのプレビュー画像のコピーである。
（ステップＳ６０５）  マウスの左ボタンの状態をチェックする。左ボタンが押下されている場合は、ステップＳ６０６へ進む。そうでない場合はステップＳ６０８へ進む。
（ステップＳ６０６）  マウスカーソルが指し示す座標をコピー先座標とし、複製マスクを用いてコピー相対座標からのブレンド処理を行う。複製マスク、およびブレンド処理の詳細については後述する。
（ステップＳ６０７）  適用座標数を１増やし、適用座標列にコピー先座標を追加する。ステップＳ６０５へ戻る。
（ステップＳ６０８）  加工情報スタック終端位置情報より先にある加工情報エントリを破棄する。
【００３２】
（ステップＳ６０９）  新たな加工情報エントリを作成し、これを参照するように加工情報スタック終端位置情報を更新する。
（ステップＳ６１０）  ステップＳ６０４で作成したプレビューキャッシュ画像とプレビュー画像との差分画像を作成する。この差分画像を、ステップＳ６０９で作成した加工エントリの加工画像キャッシュとする。プレビューキャッシュには、キャッシュ作成時の回転方向を示すキャッシュ回転情報を付与しておく。
（ステップＳ６１１）  ステップＳ６０９で作成した加工情報エントリの加工パラメータとして、半径ｒ、コピー相対座標、適用座標数、適用座標列を登録する。ここで、コピー相対座標、適用座標列は、画像回転情報を用いて、画像回転処理適用前の座標に変換して登録する。このような処理により、画像の回転方向が変更されたとしても常に適切な位置に加工処理を適用することが可能になる。
【００３３】
次に、ブレンド処理の詳細について説明する。ブレンド処理とは、コピー先座標を中心とした半径ｒの領域に、コピー元座標を中心とした半径ｒの領域を合成処理することである。実際にはコピー先座標から離れるほどコピー元座標の比率を落として合成処理しないと、領域複製処理を行った部分と行っていない部分の境界部分が目立ってしまうので、コピー先座標から離れるほど合成比率を落とすような処理になる。そこで、合成処理を、半径ｒの２倍の範囲で行う。この合成の比率を示すマップのことを、複製マスクと呼ぶ。
【００３４】
まず、複製マスクの概要を図７に示す。複製マスクの各要素の値域は、［０．０，１．０］である。この値が大きいほどコピー元領域の画素値が優先される。複製マスクの要素は、複製マスクの中心（Ｃｘ，Ｃｙ）からの距離に応じて算出される値で算出する。この計算方法については後述する。コピー元座標Ｆ、コピー先座標Ｔをそれぞれ、ｘ座標を−２＊ｒ、ｙ座標を−２＊ｒとした座標、複製マスクの左上を原点とした場合、座標（ｉ，ｊ）にある画素のブレンド処理を、次式に従って画素値を求める。
Ｔ’i,j＝Ｂi,j＊Ｆi,j＋（１．０−Ｂi,j）＊Ｔi,j
ここで、Ｆはコピー元座標の画素、Ｔはコピー先領域の画素、Ｂは複製マスクの要素、Ｔ’はブレンド処理後のコピー先領域の画素とする。本実施形態では各画素のＲＧＢそれぞれの値をブレンド率に応じて合成してブレンド後の画素値を算出する。
【００３５】
図６に示した処理においてマウスがドラッグ操作された場合の、ドラッグ中のマウスポインタの軌跡に対する処理について述べる。Ｗｉｎｄｏｗｓ（登録商標）では、ドラッグ中にマウスポインタが通過した全ての座標がＯＳからアプリケーションに通知されるわけではなく、一定間隔で通知される。しかし、この間隔が比較的長い。そこで、ドラッグ状態を示す通知を受けた場合、その座標Ａ（ｘａ，ｙａ）と直前に通知された座標Ｂ（ｘｂ，ｙｂ）とを結ぶ線分上に一定距離Ｌ毎に領域複製処理を行う。このような処理を行うことで滑らかな領域複製結果を得ることができる。
【００３６】
ここで、ドラッグ中の領域複製処理を適用する点の間隔Ｌを、半径スライダ２０９で指定された半径ｒを用いて次式で求める。
Ｌ＝ｆｌｏｏｒ（ｒ／Ｂ＋０．５）
ただし、Ｌ＝０の場合、Ｌ＝１として処理する。ここで、ｆｌｏｏｒ（ｘ）は、実数ｘの小数点以下を切り捨てした整数値を表す。また、Ｂは経験的に求められる値で、本実施形態ではＢ＝４．７とする。
【００３７】
ここで、図７に示した複製マスクの要素の計算方法について述べる。マスクの要素Ｂｉ，ｊは、次式で求める。
【００３８】
【数１】
2006209543.tif 000003
【００３９】
Ｃｘ、Ｃｙは図７中に示したマスクの中央座標で、本実施形態では（Ｃｘ，Ｃｙ）＝（２＊ｒ，２＊ｒ）とする。したがって、複製マスクサイズは、幅（４＊ｒ＋１）要素、高さ（４＊ｒ＋１）要素となる。ｉ、ｊは左上を（ｉ，ｊ）＝（０，０）とする座標値であり、ｉ，ｊの値域は［０，４＊ｒ］となる。ｒは半径スライダ２０９で指定された半径である。
【００４０】
次に、図８に示すフローチャートを用いて、編集対象画像ファイルが指定された場合や前選択ボタン２１０や次選択ボタン２１１によって編集対象画像が変更された場合の編集対象画像切り替え処理について説明する。
【００４１】
（ステップＳ８０１）  編集対象画像の加工情報スタックについて、加工情報スタック終端情報より先の加工情報エントリを破棄する。
（ステップＳ８０２）  編集対象画像の加工情報スタックについて、加工情報スタックの加工情報キャッシュを全て破棄する。
（ステップＳ８０３）  新たに選択されたファイルのファイルエントリを参照するように、編集対象情報ポインタを更新する。
【００４２】
（ステップＳ８０４）  編集対象画像ポインタが参照する加工情報スタックを参照するように、編集対象画像の加工情報スタックの参照先を更新する。
（ステップＳ８０５）  ファイルをデコードし、編集対象画像データ中の未加工画像を取得する。
（ステップＳ８０６）  ステップＳ８０５で得た未加工画像に対し、加工情報スタックに保持された加工処理を適用し、プレビュー画像を生成する。加工処理の詳細については図９を用いて後述する。
（ステップＳ８０７）  ＧＵＩの状態をｆｉｔモード４０１に遷移して、プレビュー画像をｆｉｔ表示する。
【００４３】
次に、本実施形態におけるＵｎｄｏ／Ｒｅｄｏ処理について述べる。
Ｕｎｄｏとは、直前に適用した加工処理を取り消す処理である。本実施形態では、加工情報スタック終端位置情報を、一つ前の加工情報エントリを参照するよう修正することにより、Ｕｎｄｏ処理が実現できる。
【００４４】
また、Ｒｅｄｏとは、Ｕｎｄｏの取り消し処理、すなわちやり直し処理である。本実施形態では、加工情報スタック終端位置情報を、参照中の加工スタックエントリの次のエントリを参照するように更新することにより、Ｒｅｄｏ処理が実現できる。
【００４５】
このように、加工情報エントリと加工情報スタック終端位置情報を用いることで、加工情報スタック終端位置情報の参照先を変更するだけでＵｎｄｏ／Ｒｅｄｏ機能が実現可能であり、加工処理を適用した座標が間違っている場合や加工結果が思わしくない場合でも、何度でもやりなおしすることができるようになる。
【００４６】
Ｕｎｄｏ／Ｒｅｄｏ処理や新たな編集対象画像ファイルが選択された場合、プレビュー画像の更新処理が必要になる。プレビュー画像の更新処理は、未加工画像に対して加工情報スタックに従って加工処理を適用して行う。以下、プレビュー画像の更新処理の詳細について、図９に示すフローチャートを用いて説明する。なお、加工情報スタックが空の場合には、この処理を適用しない。
【００４７】
（ステップＳ９０１）  現在のプレビュー画像を破棄した後、未加工画像を複製し、この複製をプレビュー画像とする。このプレビュー画像は、画像回転情報が示す方向になるように回転処理する。
（ステップＳ９０２）  加工情報スタックが参照する加工情報エントリを示すポインタｐを作成する。
（ステップＳ９０３）  ポインタｐが示す加工情報エントリに加工画像キャッシュが存在するかどうかをチェックする。存在する場合はステップＳ９０４へ、存在しない場合はＳ９０５へ進む。
【００４８】
（ステップＳ９０４）  画像回転情報とキャッシュ回転情報を比較し、画像回転情報で指定された画像の方向に合うように、差分画像を回転し、差分をプレビュー画像に反映する。ステップＳ９０６へ進む
（ステップＳ９０５）  ポインタｐが示す加工情報エントリの加工パラメータを用い、プレビュー画像に加工処理を適用する。ただし、加工処理を適用する前に、コピー相対座標、適用座標列に格納された座標を、画像回転情報が示す方向に回転し、回転後の座標に対して加工処理を適用する。加工処理適用後、ステップＳ９０６へ進む。
（ステップＳ９０６）  次の加工情報エントリが存在する場合、ステップＳ９０７へ進む。存在しない場合は、処理を終了する。
（ステップＳ９０７）  ポインタｐが次の加工情報エントリを参照するようにポインタを更新し、ステップＳ９０３へ戻る。
【００４９】
ここで、図２における保存ボタン２０６と変換ボタン２０７について説明する。保存ボタン２０６が押下された場合、加工情報スタックおよび画像回転情報を編集対象画像ファイルに付与する。この機能を用意することで、元画像データ（未加工画像データ）を維持したまま加工結果を保存することができる。変換ボタン２０７が押下された場合、編集対象画像データファイル中の元画像データに対し、加工情報スタックに応じた画像処理を適用し、画像回転情報に従って画像を回転後、新たなファイルとして保存する。画像の回転前に加工情報スタックを適用することで、加工情報スタック内の座標変換を行わなくても良いという利点がある。しかし、本実施形態では処理の共通化のため、画像回転情報に合わせて画像を回転した後、図９に示す処理によって加工情報スタックに沿った加工処理を適用する。
【００５０】
保存ボタン２０６によって付与されるデータ形式の一例を図１０に示す。図１０に示すデータを加工情報と呼ぶ。
画像回転方向は、回転しない状態を「０」、右９０度回転時は「１」、１８０度回転時は「２」、左９０度回転時は「３」を２バイトで格納する。加工情報スタックエントリ数は４バイトで、加工情報スタックエントリの数を格納する。加工情報スタックエントリ内には、処理識別ＩＤ、適用半径、画像回転前の座標値で表現されたコピー相対座標および適用座標と、適用座標の数を保持する。座標はｘ座標２バイト、ｙ座標２バイトの計４バイトで、その他の数値は２バイトとする。処理識別ＩＤは、将来加工処理の種類を増やした時に対応するために設けられ、本実施形態では常に０ｘ０００１を格納する。
【００５１】
加工情報は、ＪＰＥＧデータのＥＯＩ(End Of Image)の後やＴｉｆｆデータの末尾、ＣＣＤ−ＲＡＷデータファイルの末尾に付与することができる。ただし、ＣＣＤ−ＲＡＷデータファイルの末尾に特別な意味、例えばＣＣＤ−ＲＡＷファイルの識別コードなどが含まれている場合があるため、加工情報の末尾の１６バイトには加工情報をファイルに添付する前のファイルの末尾１６バイトをコピーして記録する互換エリアを設けている。また、ファイルに添付された加工情報があるかどうかを判定するため、互換エリアの直前に、識別情報”ＡＤＴ” ０、および、加工データの先頭を検出するためのデータ長をそれぞれ４バイトで格納する。
【００５２】
次に、図１１に示すフローチャートを用いて、本実施形態における加工情報の読み込み処理について説明する。
（ステップＳ１１０１）  識別情報の有無を確認するため、最初にファイル末尾から２４バイト目の位置から４バイト読み込む。
（ステップＳ１１０２）  ステップＳ１１０１で読み込んだデータが識別情報”ＡＤＴ” ０であるかどうかをチェックし、加工情報が画像データに付与されているかどうかを判定する。識別情報が検出された場合には加工情報が付与されていると判定し、ステップＳ１１０３へ進み、そうでない場合は読み込み処理を終了する。
（ステップＳ１１０３）  ファイル末尾から２０バイト目の位置から４バイト読み込み、加工情報のデータ長を取得する。
（ステップＳ１１０４）  互換エリアの先頭から加工情報のデータ長分戻った位置からファイル末尾までを読み込む。読み込んだデータが加工情報である。なお、予めデータ長として互換エリアの１６バイト分が追加してある場合にはファイルの末尾からデータ長分戻った位置から読み込めばよい。
【００５３】
以上説明したように、本実施形態によれば、未加工の画像データとそれに適用された加工処理とを個別に保存することにより、編集加工対象となる元画像データに変更を加えることなく加工を適用し、加工結果を保存することが可能になる。
【００５４】
また、加工処理を工程毎に保存するため、適用した加工を段階的に取り消すことが可能であるほか、取り消した加工処理を再度適用することも可能である。
【００５５】
〔第２の実施形態〕
本実施形態では、第１の実施形態で述べたシステム上における、異なる画像間での加工情報スタックのコピー＆ペーストについて述べる。ほぼ似た絵柄の画像が複数ある場合、一枚の画像に対して加工処理を行い、同様の処理を別の画像に適用することで、加工作業に費やす時間を削減することができる。本実施形態による画像編集装置では、第１の実施形態と同様、編集（加工）手順を加工情報スタックという形で保持しているため、この加工情報スタックだけを別の画像データファイルへ適用することで、同じ加工処理を実現可能である。
【００５６】
まず、加工情報スタックのコピー処理について述べる。加工情報スタックのコピー処理とは、編集対象画像の加工情報スタックを例えば一次記憶装置の領域として確保されるコピーバッファに格納する処理である。ただし、コピーした加工情報スタックをペーストする場合、ペーストするかどうかの判断にコピー元画像の解像度が必要になるため、これを別途保持する。コピーバッファに格納する情報は、加工情報スタック、画像回転情報、元画像の回転処理前の画像解像度である。
【００５７】
次に、加工情報スタックのペースト処理について述べる。加工情報スタックのペースト処理とは、コピー処理によってコピーバッファ内に保持された加工情報スタックを、編集対象画像データファイルに添付、或いはその加工情報スタックに反映する処理である。
【００５８】
ペースト処理には、編集対象画像の加工情報スタックに、ペーストする加工情報スタックを付加する方法と、編集対象画像の加工情報スタックを破棄し、ペーストする加工情報スタックに置き換える方法がある。本実施形態では、後者を用いるものとする。
【００５９】
図１２は、本実施形態におけるペースト処理を説明するフローチャートである。
（ステップＳ１２０１）  ペースト処理実行判定を行う。本実施形態では、コピーバッファに格納された元画像の回転前の画像解像度と、ペースト対象画像の回転前の画像解像度を比較し、画像の幅および高さが一致した場合のみ、ペースト処理を実行可能であると判定する。ペースト処理が実行できない場合は処理を終了し、そうでない場合はステップＳ１２０２へ進む。
（ステップＳ１２０２）  ペースト対象画像データファイル内の加工情報スタックを破棄する。
（ステップＳ１２０３）  コピーバッファ内の加工情報スタックを複製し、これをペースト対象画像の加工情報スタックとして置き換えることによって更新する。
（ステップＳ１２０４）  更新された加工情報スタックを用い、ペースト対象画像に対して図９に示した加工処理を実行し、プレビュー画像、および加工画像キャッシュの再構成を行い、処理を終了する。
【００６０】
このように、本実施形態によれば、加工情報スタックを他の画像データファイルに適用することで、共通の画像加工処理を実現することが可能である。従って、類似の複数画像に対して同じ処理を適用する場合、ある１つの画像に対して加工処理を行えば、残りの画像に対しては加工情報をコピーペーストするだけでよく、使い勝手がよい。
【００６１】
〔第３の実施形態〕
第２の実施形態では、加工情報スタックのコピー元画像の解像度と、ペーストしようとしている画像の解像度が完全に一致する場合だけ、ペースト処理が実行可能であると判定した。しかし、近年のデジタルカメラの中には、解像度が異なるだけの全く同じ絵柄の画像データを同時に生成するものもある。第２の実施形態のような判定では、このような複数の画像間での加工情報スタックの共通利用に対応できない。
【００６２】
そのため、本実施形態では、加工情報スタックのペースト先の画像の解像度に応じて加工情報中の座標を変換することで、このような画像間での加工情報スタックの共通利用を実現するものである。ただし、アスペクト比（縦横比）が異なる画像については画像が切り抜かれている場合も考えられるので、本実施形態ではペースト処理対象としない。
【００６３】
本実施形態におけるペースト処理について、図１３に示すフローチャートに基づき説明する。
（ステップＳ１３０１）  ペースト処理実行判定を行う。本実施形態では、コピーバッファに格納された、元画像の回転前の画像解像度と、ペースト対象画像の回転前の画像解像度を比較し、画像のアスペクト比が実質的に一致した場合のみ、ペースト処理を実行する。ここで完全一致を条件としないのは、同じ画像を縮小した場合でもアスペクト比が完全に一致しない場合があるためである。アスペクト比の差が予め定められた数値内である場合に一致するとみなす。ペースト処理を実行できないと判断される場合は処理を終了し、そうでない場合はステップＳ１３０２へ進む。
（ステップＳ１３０２）  ペースト対象画像データファイルの加工情報スタックを破棄する。
【００６４】
（ステップＳ１３０３）  コピーバッファ内に格納された、元画像の加工情報スタックを複製し、これをペースト対象画像の加工情報スタックとして置き換える。
（ステップＳ１３０４）  コピー元画像の画像解像度と、ペースト対象画像の画像解像度を用い、ペースト対象画像の加工情報スタックに含まれる座標を変換する。加工情報スタックに保持されている座標（Ｘ，Ｙ）について、コピー元座標の画像解像度を幅Ｗｃ、高さＨｃ、ペースト対象画像の画像解像度を幅Ｗｐ、高さＨｐとすると、変換後の座標（Ｘ’，Ｙ’）は、
Ｘ’＝Ｘ＊Ｗｐ／Ｗｃ
Ｙ’＝Ｙ＊Ｈｐ／Ｈｃ
となる。
【００６５】
また、画像処理の適用半径も、次式で変換する。ｒが変換前、ｒ’が変換後の値である。
【００６６】
【数２】
2006209543.tif 000004
【００６７】
（ステップＳ１３０５）  変更後の加工情報スタックを用い、ペースト対象画像に対して図９に示した加工処理を実行し、プレビュー画像、および加工画像キャッシュの再構成を行い、処理を終了する。
【００６８】
このように、本実施形態によれば、コピーもと画像とペースト先画像の解像度に基づいて加工情報スタックに含まれる座標を変換することにより、解像度の異なる同一画像間での加工情報スタックの共通利用が可能になる。
【００６９】
〔第４の実施形態〕
本実施形態は、第１の実施形態で述べた画像編集装置での印刷処理に関する。
加工後の画像を印刷する場合、一般的には、未加工画像に対して加工情報スタックにある編集内容を適用し、その後印刷解像度に変換してプリンタへ出力することが考えられる。しかし、上述したように、画像加工処理、特に領域複製処理においては、適用領域が小さいほど処理が高速に実行できる。
【００７０】
そこで、出力解像度が画像の解像度より小さい場合、まず画像を出力解像度に合わせて縮小し、加工情報スタックの情報を出力解像度に合わせて変換し、縮小画像に対して変換後の加工情報スタックの処理内容を適用することが考えられる。この変換処理は、第３の実施形態で示した処理において、縮小画像をペースト先画像とした処理と同様であるため、説明を省略する。
このような処理を行うことで、複雑な加工処理を適用した場合でも、より高速に印刷出力を得ることができる。
【００７１】
〔第５の実施形態〕
第１の実施形態では、編集対象画像データファイルが指定された場合や前選択ボタン２１０や次選択ボタン２１１によって編集対象画像が変更された場合の処理として、表示モードをｆｉｔモードに戻すように構成していた。本実施形態では、第１の実施形態とは異なり、表示モードを維持したまま、適切な領域を表示することを特徴とする。
【００７２】
第１の実施形態では、撮像センサ上に付着したゴミが撮像データに写りこんでしまった場合のゴミ除去処理を領域複製処理によって実現する際の、ＧＵＩの表示モードについて説明した。
【００７３】
この撮像センサ上のゴミは、シャッター動作時の衝撃などによって若干移動する場合があるものの、連続して撮影した画像データのほぼ同じ位置が写り込んでいる可能性が高いことが知られている。そこで、本実施形態では、画像回転前の座標を維持しながら表示画像を切り替えることにより、他の画像に切り替えた後も、一旦強制的にｆｉｔモードへ戻さずに、直前に表示していたゴミと同じゴミが表示されるような位置を表示する。このような画像の切り替え方式を提供することで、複数の画像間で同じ位置にあるゴミに注目しながら編集作業を行うことができる。
【００７４】
本実施形態における編集対象画像の変更時処理を図１４に示すフローチャートを用いて説明する。ただし、ｆｉｔモード４０１の状態での編集対象画像の変更処理は、第１の実施形態と同様の処理を行う。ここで、直前まで選択されていた編集対象画像を第１の画像、新たに選択又は指定された画像を第２の画像とする。第１の画像、第２の画像は、画像回転情報に従って回転した後の状態とする。それぞれの回転前の画像を、第１の未回転画像、第２の未回転画像とする。
【００７５】
（ステップＳ１４０１）  第１の画像のうち、等倍モードで表示されている部分領域の中心座標Ａ（ＸＡ，ＹＡ）を求める。ここで中心座標Ａは、表示領域における座標ではなく、第１の画像の全体における座標である。
（ステップＳ１４０２）  第１の画像の画像回転情報を用いて、中心座標Ａの、第１の未回転画像上で対応する座標Ｂ（ＸＢ，ＹＢ）を算出する。この座標は、中心座標Ａ（ＸＡ，ＹＡ）を、画像回転情報で示される回転方向を打ち消す方向に回転することで算出できる。
（ステップＳ１４０３）  座標Ｂ（ＸＢ，ＹＢ）を、次式で正規化する。Ｗ１とＨ１はそれぞれ、第１の未回転画像の画像幅、画像高さである。正規化後の座標を（Ｘ’Ｂ，Ｙ’Ｂ）とする。
Ｘ’Ｂ＝ＸＢ／Ｗ１
Ｙ’Ｂ＝ＹＢ／Ｈ１
【００７６】
（ステップＳ１４０４）  第２の未回転画像の画像幅Ｗ２、画像高さＨ２を用いて、第２の未回転画像においてＸ’Ｂ、Ｙ’Ｂに対応する中心座標Ｃ（ＸＣ，ＹＣ）を算出する。
ＸＣ＝Ｗ２＊Ｘ’Ｂ
ＹＣ＝Ｈ２＊Ｙ’Ｂ
（ステップＳ１４０５）  中心座標Ｃを、第２の画像の画像回転情報に従って回転した座標Ｄ（ＸＤ，ＹＤ）を求める。
（ステップＳ１４０６）  この座標Ｄ（ＸＤ、ＹＤ）が画像表示領域２０１の中心となるように第２の画像の部分領域を等倍モードで表示する。
【００７７】
このような処理を行うことで、未回転状態の画像上での相対位置を保ったまま、編集対象画像を切り替えることができる。したがって、仮に同じカメラで撮った複数の画像を切り替えた場合、画像の回転方向に関係なく、撮像センサ上でほぼ同じ位置が常に表示領域の中心に表示され、効率良くゴミ除去処理を行うことができる可能性が高い。また、ｆｉｔモードに戻さないため、画像を切り替える毎に等倍モードへ移行させるための操作を行う必要がなく、その点でも効率が向上すると考えられる。
【００７８】
〔他の実施形態〕
前述した実施形態の機能を実現するソフトウェアのプログラムを、記録媒体から直接、或いは有線／無線通信を用いて当該プログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを実行することによって同等の機能が達成される場合も本発明に含む。
【００７９】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。
【００８０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００８１】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記録媒体、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ等の光／光磁気記憶媒体、不揮発性の半導体メモリなどがある。
【００８２】
有線／無線通信を用いたプログラムの供給方法としては、コンピュータネットワーク上のサーバに本発明を形成するコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイル等、クライアントコンピュータ上で本発明を形成するコンピュータプログラムとなりうるデータファイル（プログラムデータファイル）を記憶し、接続のあったクライアントコンピュータにプログラムデータファイルをダウンロードする方法などが挙げられる。この場合、プログラムデータファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに配置することも可能である。
【００８３】
つまり、本発明の機能処理をコンピュータで実現するためのプログラムデータファイルを複数のユーザに対してダウンロードさせるサーバ装置も本発明に含む。
【００８４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件を満たしたユーザに対して暗号化を解く鍵情報を、例えばインターネットを介してホームページからダウンロードさせることによって供給し、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００８５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００８６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【図面の簡単な説明】
【００８７】
【図１】本発明の実施形態に係る画像編集装置として機能可能なコンピュータシステムの構成例を表す図である。
【図２】本発明の実施形態に係る画像編集装置が領域複製処理時に提示するＧＵＩの例を示す図である。
【図３】本発明の実施形態に係る画像編集装置が領域複数処理において取り扱うデータを示す図である。
【図４】本発明の実施形態に係る画像編集装置が提示するＧＵＩの状態遷移図である。
【図５】本発明の実施形態に係る画像編集装置が提示するＧＵＩの等倍モードにおける状態遷移図である。
【図６】本発明の実施形態に係る画像編集装置の領域複製処理全体を説明するフローチャートである。
【図７】本発明の実施形態における複製マスクの概要を示す図である。
【図８】第１の実施形態に係る画像編集装置における、編集対象画像切り替え処理を説明するフローチャートである。
【図９】本発明の実施形態における加工情報スタックの適用処理を説明するフローチャートである。
【図１０】本発明の実施形態における加工情報の構造を示す図である。
【図１１】本発明の実施形態における加工情報読み込み処理を説明するフローチャートである。
【図１２】第２の実施形態における加工情報スタックのペースト処理を説明するフローチャートである。
【図１３】第３の実施形態における加工情報スタックのペースト処理を説明するフローチャートである。
【図１４】第５の実施形態における編集対象画像切り替え処理を説明するフローチャートである。
【図１】
2006209543.tif 000005
【図２】
2006209543.tif 000006
【図３】
2006209543.tif 000007
【図４】
2006209543.tif 000008
【図５】
2006209543.tif 000009
【図６】
2006209543.tif 000010
【図７】
2006209543.tif 000011
【図８】
2006209543.tif 000012
【図９】
2006209543.tif 000013
【図１０】
2006209543.tif 000014
【図１１】
2006209543.tif 000015
【図１２】
2006209543.tif 000016
【図１３】
2006209543.tif 000017
【図１４】
2006209543.tif 000018