(57)【要約】【課題】画像処理シーケンス決定を効率化する画像編集装置、画像編集方法、およびプログラムを提供すること。【解決手段】デスクトップ画面上に表示したＧＵＩを介して画像編集を行う画像編集装置１００は、編集するべき画像を取得する画像データ取得部２１４と、取得した画像を前記ＧＵＩに表示領域を割当て表示する画像表示部２１６と、ＧＵＩに表示された画像に対して適用するべき画像処理を選択させる選択領域をＧＵＩに表示させる画像処理選択部２１８と、選択領域への画像処理選択部２１８による画像処理の登録に応答して、登録された画像処理の入力画像に対し登録された画像処理を適用して出力画像を生成する画像処理実行部２２０とを含み、画像表示部２１６は、生成された出力画像を取得し、画像編集のシーケンスに対応付けて出力画像を表示するための表示領域を生成し、生成した表示領域に取得した出力画像を表示している。【選択図】図２
2011002930.tif 000002
【特許請求の範囲】
【請求項１】
デスクトップ画面上に表示したＧＵＩを介して画像編集を行う画像編集装置であって、前記画像編集装置は、
編集するべき原画像を取得する画像データ取得手段と、
前記ＧＵＩに表示領域を割当てて、取得した前記原画像を表示する画像表示手段と、
前記ＧＵＩに表示された前記原画像に対して適用するべき画像処理を選択させる選択領域および登録するべき前記画像処理を前記ＧＵＩに表示させる画像処理選択手段と、
前記画像処理選択手段による前記選択領域への前記画像処理の登録に応答して、登録された前記画像処理の入力画像に対し登録された前記画像処理を適用して出力画像を生成する画像処理実行手段と、
を含み、
前記画像表示手段は、生成された前記出力画像を取得して前記画像編集のシーケンスに対応付けて前記出力画像のための表示領域を生成し、生成した前記表示領域に取得した前記出力画像を表示する、画像編集装置。
【請求項２】
前記画像処理選択手段は、前記選択領域に登録するべき画像処理を変更させる画像処理変更手段を含み、前記画像処理実行手段は、前記画像処理選択手段から変更の指令を受領すると、変更に関連する既登録画像処理を前記シーケンスの順で実行して前記画像表示手段に渡し、前記シーケンスで変更前に生成されていた前記表示領域の表示画像を更新する、請求項１に記載の画像編集装置。
【請求項３】
前記画像処理選択手段が前記選択領域に登録された既登録画像処理を削除する画像処理削除手段を含み、前記画像処理実行手段は、前記画像処理選択手段からの削除の指令を受領して、前記シーケンスに残存し、かつ削除に関連する既登録画像処理を前記シーケンスの順で実行して前記画像表示手段に渡し、前記シーケンスで変更前に生成されていた前記表示領域の出力画像を更新する、請求項１または２に記載の画像編集装置。
【請求項４】
前記画像処理選択手段は、前記選択領域の既登録画像処理のシーケンス順を入替える画像処理入替手段を含み、前記画像処理実行手段は、前記画像処理選択手段からの指令を受領し、前記入替に関連する既登録画像処理を前記シーケンスを入替後の順序で実行して、出力画像を前記画像表示手段に渡し前記シーケンスで入替前に生成されていた前記表示領域の画像を当該出力画像で更新する、請求項１〜３のいずれか１項に記載の画像編集装置。
【請求項５】
前記画像処理選択手段は、前記選択領域の既登録画像処理のパラメータを変更するパラメータ変更手段を含み、前記画像処理実行手段は、前記パラメータ変更手段からの前記パラメータの変更を検出し、変更後のパラメータを用いて前記パラメータの変更に関連する既登録画像処理を前記シーケンスの順で実行して、前記シーケンスで前記パラメータ変更前に生成されていた前記表示領域の出力画像を更新する、請求項１〜４のいずれか１項に記載の画像編集装置。
【請求項６】
前記画像編集装置は、前記画像処理の履歴を記録する処理ログ記録手段を含み、前記処理ログ記録手段は、新たな画像処理の追加、既登録画像処理の変更、削除、またはパラメータ変更により前記シーケンスに変化があった場合、前記シーケンスの変化により生成される新たな画像を前記シーケンスの中で固有に識別する識別値を付して、前記シーケンスを処理ログとして登録する、請求項１〜５のいずれか１項に記載の画像編集装置。
【請求項７】
コンピュータが実行する画像編集方法であって、前記画像編集方法は、コンピュータが
編集するべき原画像を取得して、取得した前記原画像をＧＵＩに表示領域を割当て表示するステップと、
前記ＧＵＩに表示された前記原画像に対して適用するべき画像処理を選択させる選択領域および登録するべき前記画像処理を前記ＧＵＩに表示するステップと、
前記選択領域への画像処理の登録に応答して、登録された前記画像処理の入力画像に対し登録された前記画像処理を適用して出力画像を生成するステップと、
生成された前記出力画像を取得し、前記画像編集のシーケンスに対応付けて前記出力画像のための表示領域を生成し、生成した前記表示領域に取得した当該出力画像を表示するステップと
を実行する、画像編集方法。
【請求項８】
前記選択領域に登録された画像処理が存在しない場合には、前記選択領域に画像処理を追加し、前記画像処理が登録されている場合には、登録された前記画像処理の変更、削除または前記画像処理が適用するパラメータ変更を可能とするＧＵＩを表示し、前記画像処理の追加、変更、削除またはパラメータ変更を可能とするステップを含む、請求項７に記載の画像編集方法。
【請求項９】
さらに前記シーケンスの指定した位置での画像処理の変更によりシーケンスを入替するステップを含む、請求項７または８に記載の画像編集方法。
【請求項１０】
コンピュータを請求項１〜６のいずれか１項に記載の機能手段として機能させるためのコンピュータ実行可能なプログラム。
【請求項１１】
請求項１０に記載されるプログラムを格納する、コンピュータ可読な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に関し、より詳細には、画像に対する画像処理のシーケンス決定を効率化する画像編集装置、画像編集方法、およびプログラムに関する。
【背景技術】
【０００２】
デジタル画像に対しては種々の画像処理が可能であり、種々の効果を対象画像に施して画像を加工する、いわゆる画像処理は、市販ソフトウェアから無料のフリーウェアに至るまで多種多様なものが知られている。ユーザが画像に対して特定の効果を施したい場合、ユーザが使用している画像処理ソフトから目的とする効果を指定し、その効果の適用度合いなどを表す各種パラメータを設定するのが一般的な操作シーケンスである。
【０００３】
上述した操作シーケンスを行う際に、画像処理ソフトによっては、処理対象の画像の特徴を判断し、パラメータを推奨値へと自動的に設定する技術が知られている。また、画像処理では、対象画像に対して複数の効果を連続的に適用することも多い。
【０００４】
この際、対象画像に対して複数の効果を連続して適用する場合、効果適用の順序によっては、画像劣化や色再現性劣化などの画像劣化が予期せずに発生してしまうこともある。しかしながら、従来知られている画像処理ソフトは、対象画像に対して複数の効果をシーケンスとして適用する際、画像処理を適用するシーケンスの判断は、ユーザの選択に任せられている場合が多い。効果適用のシーケンスをユーザの選択に任せる場合、ユーザ自身が効果の適用順序を選択することになるので、以下のような問題があった。
（１）ユーザが目的の画像を得るため、どのような順序で効果を適用すればよいか、が直感的に解りづらいこと、
（２）途中の効果、例えば、５種類の効果を適用する場合、３番目に適用する効果の種類を変更するためには、対象画像に戻って再度取り消した画像処理をシーケンス順に適用するなど非常に手間がかかること、である。
【０００５】
上記の問題のうち、（１）に関してみれば、対象画像に対して複数の効果を適用する場合、各効果を適用する順によって最終的に得られる画像が異なってくることから、様々なパターンについてトライアンドエラーで試す必要がある。また、（２）に関しては、例えば効果の適用を最初からやり直すであるとか、ｕｎｄｏ機能を用いて変更したい効果まで操作を取り消した上で変更を行い、ユーザが記憶している効果の適用順を変えて後続する効果を再度適用するといった作業が必要である。
【０００６】
これまで、上述した画像処理を効率化するための方法が知られており、例えば、特許第３８９００９６号明細書（特許文献１）には、画像編集に不慣れなユーザであっても容易に画像編集ができる画像編集システムが記載されている。特許文献１は、複数の画像編集処理を、異なるシーケンスで適用した結果を、ディスプレイ装置上に表示させ、ユーザに好みの処理結果を選択させるものである。
【０００７】
特許文献１に記載された画像編集システムは、複数の画像処理結果をユーザに提示してユーザが最も好ましいと思うものを選択させることにより、効果適用のシーケンス選択を効率化することが可能である。しかしながら、特許文献１では、効果適用の選択を効率化する反面、処理の種類やシーケンス、効果適用度合いなどのパラメータ設定は、装置が予め用意されたものに限定されてしまい、ユーザの選択の自由度が狭められてしまうという問題が生じていた。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、上記従来技術の課題を解決するためになされたものであり、本発明は、画像に対して複数の効果を適用する際に、ユーザが、効率的に対象画像をユーザが目的とする視覚的効果を有する結果画像とする、画像編集装置、画像編集方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では、上記課題を解決するために、デスクトップ画面上に表示したＧＵＩを介して画像編集を行う画像編集装置は、編集するべき原画像を取得する画像データ取得手段と、ＧＵＩに表示領域を割当てて、取得した原画像を表示する画像表示手段と、ＧＵＩに表示された原画像に対して適用するべき画像処理を選択させる選択領域および登録するべき画像処理を前記ＧＵＩに表示させる画像処理選択手段と、画像処理選択手段による選択領域への前記画像処理の登録に応答して、登録された前記画像処理の入力画像に対し登録された前記画像処理を適用して出力画像を生成する画像処理実行手段とを含んでいる。
【００１０】
画像表示手段は、生成された出力画像を取得して画像編集のシーケンスに対応付けて出力画像のための表示領域を生成し、生成した前記表示領域に取得した出力画像を表示している。本発明では、画像処理選択手段は、選択領域に登録するべき画像処理を変更させる画像処理変更手段を含み、画像処理実行手段は、画像処理選択手段から変更の指令を受領すると、変更に関連する既登録画像処理をシーケンスの順で実行して画像表示手段に渡し、シーケンスで変更前に生成されていた表示領域の表示画像を更新する。
【００１１】
さらに本発明では、画像処理選択手段が選択領域に登録された既登録画像処理を削除する画像処理削除手段を含み、画像処理実行手段は、画像処理選択手段からの削除の指令を受領して、シーケンスに残存し、かつ削除に関連する既登録画像処理をシーケンスの順で実行して画像表示手段に渡し、シーケンスで変更前に生成されていた表示領域の出力画像を更新する。
【００１２】
また、本発明では、画像処理選択手段は、選択領域の既登録画像処理のシーケンス順を入替える画像処理入替手段を含み、画像処理実行手段は、画像処理選択手段からの指令を受領し、入替に関連する既登録画像処理をシーケンスを入替後の順序で実行して、出力画像を画像表示手段に渡しシーケンスで入替前に生成されていた表示領域の画像を当該出力画像で更新することができる。
【００１３】
画像処理選択手段は、選択領域の既登録画像処理のパラメータを変更するパラメータ変更手段を含み、画像処理実行手段は、パラメータ変更手段からのパラメータの変更を検出し、変更後のパラメータを用いてパラメータの変更に関連する既登録画像処理をシーケンスの順で実行して、シーケンスでパラメータ変更前に生成されていた前記表示領域の出力画像を更新することができる。
【００１４】
さらに、画像編集装置は、画像処理の履歴を記録する処理ログ記録手段を含み、処理ログ記録手段は、新たな画像処理の追加、既登録画像処理の変更、削除、またはパラメータ変更によりシーケンスに変化があった場合、シーケンスの変化により生成される新たな画像をシーケンスの中で固有に識別する識別値を付して、シーケンスを処理ログとして登録することができる。
【００１５】
さらに本発明では、コンピュータが実行する画像編集方法であって、
編集するべき原画像を取得して、取得した原画像をＧＵＩに表示領域を割当て表示するステップと、
ＧＵＩに表示された原画像に対して適用するべき画像処理を選択させる選択領域および登録するべき画像処理を前記ＧＵＩに表示するステップと、
選択領域への画像処理の登録に応答して、登録された画像処理の入力画像に対し登録された画像処理を適用して出力画像を生成するステップと、
生成された出力画像を取得し、画像編集のシーケンスに対応付けて出力画像のための表示領域を生成し、生成した表示領域に取得した当該出力画像を表示するステップと
を実行する、画像編集方法が提供される。
【００１６】
本発明では、選択領域に登録された画像処理が存在しない場合には、選択領域に画像処理を追加し、画像処理が登録されている場合には、登録された画像処理の変更、削除または画像処理が適用するパラメータ変更を可能とするＧＵＩを表示し、画像処理の追加、変更、削除またはパラメータ変更を可能とするステップを含むことができる。
【００１７】
本発明では、さらにシーケンスの指定した位置での画像処理の変更によりシーケンスを入替するステップを含むことができる。
【００１８】
本発明ではさらに、上述した機能手段として機能させるためのコンピュータ実行可能なプログラムおよび当該プログラムを格納する、コンピュータ可読な記録媒体が提供できる。
【００１９】
本発明によれば、ユーザが目的とする結果画像を得る上で、画像処理の効果を確認しながら効率的に画像処理を適用するシーケンスおよび画像処理の程度をリアルタイムで確認しながら、目的とする結果画像を得るための画像処理種類に制限を受けずに画像処理シーケンスを決定することが可能となる。また、本発明によれば、ユーザが、画像処理を適用する順序やパラメータをユーザの目的に充分適合させつつ、任意に変更することが可能とされる。さらに、複数の画像処理を適用することにより結果画像がどのように変化していくかを把握することができ、効果の適用要否を判断しながら、目的とする結果画像を得るための最適シーケンスを効率的に決定することができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態の画像編集装置１００のハードウェア構成を示した図。
【図２】本実施形態の画像編集装置１００の機能ブロック図
【図３】本実施形態の画像編集装置１００がデスクトップ画面上に表示する、ＧＵＩの実施形態を示した図。
【図４】図３のＧＵＩを介して画像編集装置１００が実行する処理のフローチャート。
【図５】図５を参照してより詳細に処理の追加、変更、削除に対応する入出力データフローを示した図。
【図６】本実施形態の画像編集装置１００が生成し、管理する処理ログの例示的な実施形態を示した図。
【図７】本実施形態で処理の追加、修正、削除を行う場合の画像編集装置１００が実行する処理の、図４のポイントＡに後続する処理のフローチャート。
【図８】本実施形態でユーザが対象画像を取得して処理を開始した状態でのウィンドウ８００の実施形態を示した図。
【図９】本実施形態の画像編集装置１００の図８に後続する処理後に表示するウィンドウ９００の実施形態を示した図。
【図１０】本実施形態でさらに処理を追加する場合のウィンドウ１０００の実施形態を示した図。
【図１１】本実施形態の処理追加の他の実施形態を示した図。
【図１２】本実施形態で、パラメータを変更する処理のフローチャート。
【図１３】本実施形態によるパラメータ設定変更の実施形態で表示されるウィンドウ１３００を示した図。
【図１４】本実施形態で画像処理履歴を確認しながらユーザが処理シーケンスを設定する実施形態を示した図。
【発明を実施するための形態】
【００２１】
以下、本発明を図面に示した実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図１は、本実施形態の画像編集装置１００のハードウェア構成を示す。画像編集装置１００は、パーソナルコンピュータ、ワークステーション、サーバなどとして構成することができる。画像編集装置１００は、中央処理装置（ＣＰＵ）１１０と、ＣＰＵ１１０の処理を可能とするＲＡＭ、ＤＲＡＭなどの固体メモリ素子から形成されるメモリ１１２とを備える。ＣＵＰ１１０およびメモリ１１２は、システムバス１２０を介して、画像編集装置１００の他のデバイスやドライバに接続されている。システムバス１２０には、グラフィックスドライバ１１４およびネットワークデバイス（ＮＩＣ）１１６が接続されている。グラフィックスドライバ１１４は、バスを介してディスプレイ装置１１８に接続されて、ＣＰＵ１１０による処理結果をディスプレイ画面上に表示させている。また、ネットワークデバイス１１６は、トランスポート層レベルおよび物理層レベルで画像編集装置１００をネットワークへと接続し、ネットワークを介してのデータ送受信を可能としている。
【００２２】
システムバス１２０には、さらにＩ／Ｏバスブリッジ１２２が接続されている。Ｉ／Ｏバスブリッジ１２２の下流側には、ＰＣＩなどのＩ／Ｏバス１２８を介して、ＩＤＥ、ＡＴＡ、ＡＴＡＰＩ、ＳＡＴＡ、ＳＣＳＩ、ＵＳＢなどにより、ハードディスク、各種光学ディスクなどの外付け記憶装置１２４が接続されている。また、Ｉ／Ｏバス１２８には、ＵＳＢなどのバスを介して、キーボードやマウスなどの入力装置１２６が接続され、ユーザによる入力および指令を受付けている。
【００２３】
ＣＰＵ１１０としては、より具体的には、例えば、ＰＥＮＴＩＵＭ（登録商標）〜ＰＥＮＴＩＵＭ（登録商標）４、ＰＥＮＴＩＵＭ（登録商標）互換ＣＰＵ、ＰＯＷＥＲＰＣ（登録商標）、ＭＩＰＳなどを挙げることができる。
【００２４】
また、画像編集装置１００が使用するオペレーティング・システム（ＯＳ）としては、ＭａｃＯＳ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）２００Ｘ  Ｓｅｒｖｅｒ、ＵＮＩＸ（登録商標）、ＡＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、またはそれ以外の適切なＯＳ、例えばＦｒｅｅＢＳＤなどを挙げることができる。画像編集装置１００は、上述したハードウェア・ソフトウェア基盤の上で、Ｃ、Ｃ＋＋、Ｃ＃、Ｖｉｓｕａｌ  Ｃ＋＋、ＶｉｓｕａｌＢａｓｉｃ、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｅｒｌ、Ｒｕｂｙなどのオブジェクト指向のプログラミング言語により記述されたアプリケーションプログラムを実行し、後述する機能処理手段としてコンピュータを機能させている。
【００２５】
図２は、本実施形態の画像編集装置１００の機能ブロック図である。画像編集装置１００は、アプリケーションプログラムの実行により、コンピュータの機能手段として提供される、画像ファイル選択部２１２と、画像データ取得部２１４と、画像表示部２１６とを含んで構成されている。画像ファイル選択部２１２は、ハードディスク装置や光学ドライブなどの外付け記憶装置１２４に構成される画像蓄積部２１０に格納された画像ファイルのリストを表示させるグラフィカルユーザインタフェース（ＧＵＩ）として構成することができ、ユーザが、外付け記憶装置などに記憶された画像ファイルの選択をサポートする。本実施形態で適用される画像ファイルは、これまで知られたいかなるフォーマットでもよく、ＢＭＰ、ＧＩＦ、ＪＰＥＧ、ＪＰＥＧ２０００、ＴＩＦＦ、ＰＮＧ、ＥＭＦ、ＰｏｓｔＳｃｒｉｐｔ（登録商標）などを挙げることができる。
【００２６】
画像データ取得部２１４は、画像ファイル選択部２１２を介してユーザが選択した画像ファイルを、アプリケーションによる処理のために、ＲＡＭなどのメモリ１１２に読込んで処理対象の画像データとして設定する。さらに画像編集装置１００は、画像表示部２１６と、画像処理選択部２１８と、画像処理実行部２２０とを含んでいる。画像表示部２１６は、画像データを表示するための表示領域として機能する表示ボックスをディスプレイ画面上に確保し、表示するべき画像を、シーケンス順に、シーケンス上で対応する表示ボックス内に表示する処理を実行する。また、画像表示部２１６は、画像処理実行部２２０の処理した結果画像である出力画像データを受領して、ディスプレイ画面上に、選択された処理および処理の入力画像データとの対応付けを示す形式で、新たな表示ボックスを生成し、当該表示ボックスの内部に出力画像データを表示させる。
【００２７】
画像処理選択部２１８は、ディスプレイ画面上に処理を選択するための種々のオブジェクトを表示させ、マウスやキーボード操作を介した当該オブジェクトの選択に対応してオブジェクトに割当てられた画像処理を呼出す処理を実行させるイベントハンドラなどとして実装することができる。画像処理選択部２１８が管理するオブジェクトとしては、画像処理の選択および登録を可能とする選択オブジェクトおよび画像と処理との関係を示し、特定の実施形態においては画像処理の追加を可能とするリンクオブジェクトなどを挙げることができる。各オブジェクトには、当該オブジェクト領域に関連付けてユーザイベントが定義されていて、ユーザイベントを受領して、画像処理の追加、変更、削除、入替、画像処理パラメータの設定・変更などを可能とする。
【００２８】
画像処理実行部２２０は、画像に対して選択された画像処理を実行する処理手段であり、画像編集装置１００のアプリケーションモジュールとして実装することができる。また、他の実施形態では、独立したアプリケーションとして実装することもでき、この場合、画像編集装置１００が、独立したアプリケーションを連携して起動する。画像編集装置１００が実行する画像処理としては、画像データ取得部２１４が取得した画像データに対し、平滑化、コントラスト調整、解像度増減、γ補正、２値化しきい値設定、明度調整、カラーバランス調整、階調調整、カラー／グレースケール／モノクロ２値調整などを挙げることができるが、これらの処理のみに限定されない。
【００２９】
画像編集装置１００は、さらに処理ログ記録部２２２を備えており、処理ログ記録部２２２は、画像処理選択部２１８が受領した処理指令および処理の入力画像データおよび出力画像データを対応付け、処理シーケンスとして記録する。画像処理実行部２２０が作成した入力画像データおよび出力画像データは、ユーザが指定するフォーマットまたはオリジナルフォーマットとして画像蓄積部２１０に格納され、ユーザにより他の目的のために利用される。
【００３０】
処理ログ記録部２２２は、処理履歴を種々の形式で作成することができ、例えばテーブル、リストとして処理ログを生成することができる。さらに他の実施形態では、処理ログを、テキストエディタやＪａｖａＳｃｒｉｐｔ（登録商標）などへのインタフェース性を考慮して、テキスト、ＨＴＭＬ、ＸＭＬなどのＡＳＣＩＩコードを含む文書として作成することができる。
【００３１】
図３は、本実施形態の画像編集装置１００がデスクトップ画面上に表示するＧＵＩの実施形態を示す。図３に示す実施形態では、デスクトップ画面上にウィンドウ３００が表示され、当該ウィンドウ３００内に処理に関連する画像が表示される。例えばユーザが選択した画像は、後続する画像処理の入力画像データとされ、表示ボックス３１２内に画像３１０として表示されている。画像３１０は、対象画像がそのまま表示できるサイズであれば対象画像を表示することができるし、表示ボックス３１２内に表示できるサイズに適宜縮小して表示させることもできる。他の実施形態では、例えばＥＭＦなどを使用してサムネイルを生成し、表示ボックス３１２内に表示させることができる。表示ボックス３１２からは、画像３１０に対して画像処理が可能であることを示すリンクを介して選択オブジェクト３１４が表示されている。
【００３２】
選択オブジェクト３１４からはリンクを介して、さらに表示ボックス３１６が表示されており、表示ボックス３１６の内部には、選択オブジェクト３１４で選択された処理が施された後の画像３１８が表示されている。説明するシーケンスでは、選択オブジェクト３１４には、画像処理として平滑化が選択されていることが示されており、表示ボックス３１６に表示された画像３１８は、画像３１０に対して平滑化処理を施した後の画像とされている。
【００３３】
図３に示す選択オブジェクト３１４は、本実施形態の画像処理を登録する選択領域として機能しており、その形状は、図３に示す以外にでも処理の選択や登録を可能とすることができる限り、特に制限はない。また、リンクは、リンクオブジェクトが関連付けられていて、リンクオブジェクトは、画像処理のシーケンスを視覚的に示すことができる限りその形状には特に限定はない。上述した選択オブジェクトおよびリンクには、ポップアップメニューを表示させる機能が定義されていて、選択オブジェクトからは、画像処理の登録や各機能のパラメータの設定が可能とされている。
【００３４】
さらに表示ボックス３１６からは後続する画像処理が可能であることを示すリンクが、選択オブジェクト３２０をポイントするように表示される。ユーザは、画像３１８に対してさらに画像処理を実行することを希望する場合、選択オブジェクト３２０に対して、例えば「鮮鋭化」処理を登録すると、画像３１８を入力画像として鮮鋭化処理が実行される。そして、生成された出力画像は、図２の画像表示部２１６に送られ、新たに生成された表示ボックス３２２内に鮮鋭化処理された出力画像が、画像３２４として表示される。新たに表示された表示ボックス３２２からはさらに後続する画像処理が可能であることを示すリンクが別の選択オブジェクト３２６をポイントするように表示されている。ユーザが選択オブジェクト３２６に対して具体的な処理、例えば「色相補正」処理を登録すると、さらに新たに表示ボックス３２８が生成されて、表示ボックス３２８内部に登録した画像処理の色相補正された画像３３０が表示される。
【００３５】
新たに生成された表示ボックス３２８からは、さらに後続する画像処理を設定できることを示すリンクが、後続処理を選択可能とする選択オブジェクト３３２をポイントしている。ユーザが表示ボックス３２２に表示された出力画像に満足しない場合、画像３１８および画像３２４について上述したと同様の処理を繰り返すことで、ユーザが希望する目標画像を生成する。
【００３６】
図３に示した処理への入力画像および出力画像は、それぞれディジタルデータであり、固有の識別値が割当てられてＲＡＭなどに格納され、以後の編集処理の入力画像として利用される。また、図３に示した画像処理のシーケンスは、例えば｛（処理１、入力画像データの識別値、出力画像データの識別値）−（処理２、入力画像データの識別値、出力画像データの識別値）−（処理３、入力画像データの識別値、出力画像データの識別値），．．．，｝のセットとして、テキストや構造化文書として処理ログ記録部２２２により処理シーケンス順を参照可能とする形式で、ＲＡＭなどに処理ログとして記録される。また、ユーザが特定の画像に対して複数の処理シーケンスを適用する場合には、複数の処理シーケンスを個別に参照できる形式として処理ログを生成することができる。
【００３７】
図４は、図３のＧＵＩを介して画像編集装置１００が実行する処理のフローチャートを示す。図４の処理は、ステップＳ４００から開始し、ステップＳ４０１で、処理オブジェクトが選択されたか否かを判断し、処理オブジェクトからマウスなどを介し、選択オブジェクトに定義されたユーザイベントを受領するまで（ｎｏ）、ユーザイベントを待機する。ステップＳ４０１で、定義されたユーザイベントを検出すると（ｙｅｓ）、ステップＳ４０２で、当該処理オブジェクトに割当てられたメニューを、プルダウンメニュー、ポップアップメニューとして表示させる。ステップＳ４０３、Ｓ４０４、Ｓ４０５では、ユーザによるメニュー項目の選択を判断する。説明する実施形態では、メニュー項目として、デフォルト設定では、処理の追加、処理の変更、処理の削除、およびパラメータ設定が登録されているものとして説明する。
【００３８】
ステップＳ４０３で、処理の追加が選択されたと判断する場合（ｙｅｓ）、ステップＳ４０８で処理一覧ウィンドウをウィンドウ３００内の適切な位置に表示する。処理一覧ウィンドウは、ユーザが選択し選択オブジェクトに登録可能な画像処理をリストするサブウィンドウとして提供することができる。ステップＳ４０９でユーザイベントがあるまで（ｎｏ）、ユーザイベントを待機する。ステップＳ４０９でユーザイベントを検出すると（ｙｅｓ）、ステップＳ４１０で処理シーケンスの最後の表示ボックスから延びるリンクでポイントされた処理オブジェクトに選択された処理を登録し、選択オブジェクトに、登録された処理の名称、例えば「平滑化」をテキスト表示させ、直ちに平滑化処理を実行し、ポイントＡに後続する処理に制御を渡す。
【００３９】
一方、ステップＳ４０３で、選択されたメニュー項目が処理の追加でない場合（ｎｏ）、ステップＳ４０４で選択されたメニュー項目が処理の変更か否かを判断する。ステップＳ４０４で処理の変更が選択されたと判断した場合（ｙｅｓ）、画像編集装置１００は、処理をステップＳ４０８に分岐させ、ステップＳ４０９で変更するべき目的の処理の選択を促すため、処理一覧ウィンドウを表示させ、以下、ステップＳ４０９以降と同一の処理を実行する。
【００４０】
一方、ステップＳ４０４で、処理の変更ではないと判断した場合（ｎｏ）、ステップＳ４０５で選択されたメニュー項目が処理の削除か否かを判断し、処理の削除でもない場合（ｎｏ）、ステップＳ４０６で、選択オブジェクトの領域でメニュー表示を指定するユーザイベントが継続しているか否かを判断し、ユーザイベントが継続している場合（ｙｅｓ）、処理をステップＳ４０３に返して、繰り返し、ユーザイベントを待機する。一方、ユーザイベントが継続していない場合（ｎｏ）、ステップＳ４０７で処理選択シーケンスを終了する。
【００４１】
一方、ステップＳ４０５で処理の削除が選択されたと判断された場合（ｙｅｓ）、ステップＳ４１１で選択された選択オブジェクトをウィンドウ３００上から削除し、ステップＳ４１２で、処理に対応する表示ボックスおよび画像をウィンドウ３００上から削除する。さらに、ステップＳ４１３で後続する処理が既に設定されている場合（ｙｅｓ）、後続する画像処理をシーケンス上で直前の出力画像を、削除された画像処理の直後の画像処理の入力画像として設定し、画像処理を適用する。また、ステップＳ４１３で後続する処理が登録されていない場合（ｎｏ）、処理をステップＳ４０７に分岐させ、当該シーケンス編集処理を終了させる。
【００４２】
本実施形態で可能なシーケンスの変更は、図４で説明した処理の追加、変更、削除の他、シーケンスの途中での新規な画像処理の追加、既登録画像処理の削除、またはリンクオブジェクトの前後の既登録画像処理を相互に入れ換えるように変更することによる、シーケンスの入替である。シーケンスの途中での新規な画像処理の挿入は、選択オブジェクトまたはリンクオブジェクトに対する処理の登録によって行われる。シーケンスの途中での画像処理の削除は、図４のステップＳ４０５に後続する処理に従い実行することができる。入替については、より詳細に、図５および図６を使用して説明する。なお、シーケンスのリンクオブジェクトを挟んだ連携した画像処理の追加、変更、削除、処理を一括して実行する他のオブジェクトを、シーケンス入替手段として用意することができる。シーケンス入替手段は、複数の画像の一括選択および入替を、選択オブジェクトの既登録画像処理の変更を連続して適用する入替オブジェクトとして実装することができる。
【００４３】
また、処理の変更は、選択オブジェクトに既に設定されている処理を異なる処理に変更することであり、メニュー項目の選択および処理一覧ウィンドウからの選択に応答して、シーケンス系列上で入力画像を変更することなく、選択オブジェクトに登録された画像処理を指定するための引数を新たに選択され登録された異なる画像処理の値に設定して、画像処理実行部２２０が実行する画像処理モジュールを呼出す際の引数を変更する処理である。
【００４４】
図５を参照してより詳細に処理の追加、変更、削除に対応する入出力データフローを示す。図５のシーケンス５００は、ユーザが処理の追加、変更、削除することなく画像処理を行ったシーケンスの実施形態である。シーケンス５００では、画像処理装置１００は、新シーケンスが開始したと判断し、ポインタ「：ＩＮＩＴ」を付して処理ログの生成を開始する。ユーザは、初期の入力画像（原画像）として画像０を選択し、図３で説明したＧＵＩに従って処理１を選択オブジェクトに登録し処理１を適用して画像１を生成する。処理２は、選択オブジェクトへの処理２の登録に応答して呼出される処理２モジュールが処理１の出力画像である画像１に対して処理２を適用し、出力画像として画像２を生成する。同様の処理は、処理３についても繰返すことで、ユーザが目的画像が得られたと判断するまで、処理の追加が行われる。
【００４５】
ユーザがシーケンス５００を生成して行く際に、画像編集装置１００は、追加に関連する画像処理が、処理ログを参照し、現在シーケンスの最終の画像処理であるか否かを判断する。後続する画像処理が登録されていない場合、新シーケンスを示すポインタ「：ＩＮＩＴ」を維持したまま処理ログを延長する。本実施形態では、ユーザにシーケンス生成を委ねているので、ユーザが最終処理でシーケンスの最後の画像処理を削除または変更する場合もあるが、シーケンスの最終処理が削除される場合は、（１）希望する効果がまったく得られなかった場合、（２）処理の選択ミスなど処理の試行錯誤の過程で発生する場合が多い。このため、画像編集装置１００は、シーケンス５００の最後の画像処理が削除された場合には、削除・変更に対応する新たなポインタを生成せず、最後の画像処理の追加・変更について別シーケンスを定義することなく、シーケンス５００内の矢線で示すように、シーケンスを成長させることができる。
【００４６】
なお、上述したシーケンスの最後の画像処理のトライアンドエラー的な削除・変更を含めて処理ログとして登録する場合には、新シーケンス内で、処理が削除されたことおよび変更されたことを示す識別値を別に付して、新シーケンス内で生存している処理を明示的に示すことにより、表示・非表示を制御した処理ログを生成することができる。
【００４７】
一方、シーケンス５１０は、ユーザがシーケンスの途中にある処理２を処理Ｍに変更する場合の実施形態である。ユーザは、当初処理１、処理２、処理３，．．．のシーケンスで画像処理を施したが、目的画像が得られないと判断し、処理２を処理Ｍに変更する。シーケンス５１０では、画像処理実行部２２０は、当該変更に対応し、処理２以降の入力画像が変更されるため、画像処理モジュールを呼出すための引数を取得し、処理Ｍを実行するための画像処理モジュールを呼出す。画像処理モジュールは、直前の画像処理である処理１の出力画像を読込んで画像処理を施し、出力画像として画像２Ｍを生成する。その後、後続する処理３の入力画像として画像２Ｍを渡し、処理３の出力画像として画像３Ｍを生成する。
【００４８】
処理ログは、シーケンス５１０の変更に対応し、処理シーケンス５００の処理ログを読出して、新シーケンスに５００をコピーし、例えば処理の変更を指定するため、ポインタ「：ＡＬＴ」を付してシーケンス５１０の変更を開始する。画像処理選択部２１８は、変更の指令を受領したと判断すると、画像処理を指定する引数を検索し、当該引数を変更後の引数に書換える。その後、画像処理実行部２２０は、処理Ｍを呼出し、その入力画像としてシーケンス上で直前の画像処理の出力画像を設定し処理Ｍを適用して、処理Ｍの出力画像を画像２Ｍとして生成する。
【００４９】
さらに画像処理実行部２２０は、当該シーケンス上で固有に出力画像を識別する識別値を付し、処理Ｍの出力画像として処理ログに設定する。当該処理が終了した後、画像２Ｍは、シーケンス上で後続する処理３の入力画像とされ、順次後続する処理の入力画像の識別値および出力画像の識別値に固有の識別値を割当ててシーケンス５１０の処理ログを生成する。生成した処理ログには、例えば「：ＡＬＴ」などのポインタを付してシーケンス５００に対応する処理ログの後ろに追加することで、処理ログの更新を行う。また、他の実施形態では、ポインタ「：ＡＬＴ」に対応する新シーケンス名を付して別の処理ログとして登録することもできる。
【００５０】
シーケンス５２０は、既存のシーケンス５００に新たな処理である処理Ｎを追加する場合の実施形態である。シーケンス５２０で、処理Ｎが追加された場合、シーケンス上で、直前の処理の出力画像を処理Ｎの入力画像とし、処理Ｎの出力画像データを、直下流側の処理２の入力画像に設定して処理２を実行する。以後、処理３以下の処理を入力画像および出力画像を更新しながらそれぞれに固有の識別値を付して処理を実行する。処理ログ上においても、処理の挿入を指令するユーザイベントを受領すると、直前の処理ログをコピーして、例えば「：ＩＮＳＴ」などのポインタを付して新たなシーケンスを宣言し、挿入するべき画像処理のシーケンス上での位置に処理Ｎに対応する引数を記述し、入力画像をシーケンスの直前画像処理の出力画像として設定する。そして、処理Ｎの出力画像の識別値を直下流側の入力画像の値として渡すことで、シーケンシャルな画像処理を可能とし、処理ログを生成することができる。シーケンス５２０に対応する処理が終了した後、追加に対応する新たなシーケンス５２０を、既存の処理ログの後ろに追加することで、処理ログを更新する。
【００５１】
また、シーケンス５３０は、処理２を行ったにも拘わらず、ユーザが処理２の有効性に疑問を生じた場合などに処理２をシーケンスから削除する場合に発生する。シーケンス５３０の処理は、シーケンス５００をコピーして新たなシーケンス「：ＳＫＩＰ」を宣言して開始する。シーケンス５３０を生成するため、画像処理実行部２２０は、原画像を入力画像とし、処理１を実行し、処理１の出力画像を処理２にではなく、処理３の入力画像として設定し、処理３を実行させる。処理３の出力画像である画像３Ｏは、固有の識別値を付してＲＡＭなどに登録される。
【００５２】
その他の処理は、シーケンス５１０の処理と同様に行うことができる。シーケンス５３０に対応する処理ログは、削除した処理を指定する引数および出力画像の識別値を削除して、後続する処理の入力画像を削除された処理の入力画像で書換え、処理３の画像３Ｏの識別値を新たに処理３の出力として設定することで対応することができる。さらに後続する処理については、それぞれの処理の入力画像データおよび出力画像データの出力値を新たに生成された各識別値で書換えることで生成することができる。
【００５３】
なお、処理の削除を指令するユーザイベントを検出した場合、画像編集装置１００は、直前ログをコピーして例えば、「：ＩＮＳＴ」、「：ＡＬＴ」、「：ＳＫＩＰ」といったポインタを生成して新たな処理シーケンスを宣言し、上述した処理を実行して処理ログを生成後、直前の処理ログの後ろに追加記入することで、処理ログの更新を終了する。また、画像処理を挿入する「：ＩＮＳＴ」コンテキストの途中で他の処理の削除が発生する場合も想定される。この場合、直ちに処理の挿入が指令された直前ログをコピーして新たな処理ログを宣言し、例えば既に行っている削除を含むシーケンスとは異なるポインタ、例えば「：ＩＮＳＴ＋ＳＫＩＰ」などを付して処理ログを生成し、既存の処理ログの後ろに追加書き込みすることで、処理ログを更新することができる。
【００５４】
処理ログを順次追加して行く実施形態は、処理を変更した場合、シーケンス上で画像処理の種類や順序によってどの程度変化するのかをレビューする際に好ましく用いることができる形態である。一方、特定の用途に応じて現在処理中のシーケンスのみに注目して画像処理段階による画像変化を追跡するだけでよい場合、新シーケンスが宣言されるごとに別ファイルを生成し、登録することができる。
【００５５】
図６は、本実施形態の画像編集装置１００が生成し、管理する処理ログの例示的な実施形態を示す。画像処理モジュールには、固有の識別値、例えば、Image_proc**が割当てられており、例えば、数字シーケンスでもよいし、「平滑化」、「鮮鋭化」、「色相補正」などを示す固有の値が付されていてもよい。また、image_id0001は、直前の画像処理によって生成された画像を固有に指定する識別値である。さらに、“attrib=”に設定される値は、当該処理の処理パラメータを指定する値が登録される。
【００５６】
図６に示した処理ログは、説明の目的から特定の処理ごとに別のラインを形成するように生成され、画像処理の処理ログは、最初の対象画像に対して処理を開始した処理シーケンスに対してポインタ「：ＩＮＩＴ」を付与し、処理の変更については、ポインタ「：ＡＬＴ＠Ｌ」、追加についてはポインタ「：ＩＮＳＴ＠Ｍ」、削除についてはポインタ「：ＳＫＩＰ＠Ｎ」を付して、最初のシーケンスの後ろに順次追加して作成することができる（Ｌ、Ｍ、Ｎは、自然数である。）。
【００５７】
処理を識別する値に後続する“＠”以下の部分は、処理シーケンスに対して複数のシーケンス変更処理を行った場合、削除なら削除といった同一の種類の修正のうち、特定番目の修正を指定するための値である。また、図６に示した実施形態には、画像処理を施した場合の処理パラメータであるａｔｔｒｉｂが追加されていて、ａｔｔｒｉｂとしては、ユーザが特定の処理を行う際に変更したパラメータが登録される。例えばａｔｔｒｉｂ＝ｄｅｆａｕｌｔは、ユーザがデフォルト設定のパラメータのままで処理を行ったことを示し、ａｔｔｒｉｂ＝ｕｓｅｒ１は、ユーザがパラメータを、ユーザパラメータ１に変更を行ったことを示す。
【００５８】
また、ユーザが、変更、追加、削除などの処理を直前までに生成した処理シーケンスに対して行う場合には、図４で説明したように例えば、処理シーケンス５１０では、直前の処理シーケンスであるポインタ＝：ＡＬＴで示される処理シーケンスをコピーし、異なるポインタを宣言して処理ログを生成することができる。また、図６の形式で、処理ログを生成し、登録することにより、ユーザが処理履歴ごとに画像の変化を確認する際に、画像処理の再実行が不要となり、効率的に画像の変更履歴を取得し、より効率的に目的画像に近い処理シーケンスを予測することが可能となる。
【００５９】
さらに図６に示した実施形態では、シーケンスで生成された画像の累積数を示すカウンタである、IMAGE_COUNTERが示されている。IMAGE_COUNTERは、ユーザがシーケンスにおいてユーザイベントとして登録した画像処理によって生成された画像の数を累積してカウントする値であり、一旦追加された画像処理が削除された場合でも削除に対応する値は減分されない。また、IMAGE_COUNTERの値は、特定の処理が削除され、その後に別の処理が追加された場合、IMAGE_COUNTERの値がさらに増分されて、当該追加された画像処理のシーケンス上での履歴順を指定するとともに削除された、画像についても識別可能とする。
【００６０】
例えば画像を固有に識別する識別値は、Image_idINCR（INCRは、増分後のIMAGE_COUNTERの値である。）とすることができ、図６の各処理ログ上で生成された画像を固有に特定するために利用される。削除された画像処理の出力画像は、そのまま残しておくこともできるし、ＲＡＭなどの容量に応じて削除前および変更前の画像処理の出力画像は、当該処理の登録に対応して削除することができる。
【００６１】
この結果、ユーザが特定の処理を何度追加、削除、変更しても新たに生成される画像には、同一のシーケンス位置であっても異なる画像を割当てることができ処理ログが指定されただけで、該当する画像を取得し、処理シーケンス順に配置することが可能となる。
【００６２】
さらに、図６には、処理ログを、シーケンス５１０を、新シーケンスの宣言とともに別ファイルとして登録する実施形態を示す。新シーケンスの宣言とともに処理ログを別ファイルとして登録する場合、シーケンス５１０は、ファイル名＝ＩＮＩＴ．ｌｏｇとして登録され、変更に関連するシーケンス６１０は、ファイル名＝ＡＬＴ．ｌｏｇなどとして登録される。
【００６３】
図７は、本実施形態で処理の追加、修正、削除を行う場合の画像編集装置１００が実行する処理の、図４のポイントＡに後続する処理のフローチャートである。図７の処理は、図４のポイントＡから制御を渡されて開始し、ステップＳ７００で画像処理実行部２２０が、指定された処理の引数を参照して当該処理を実行するアプリケーションを起動し、その入力データとして直前処理の出力画像データを指定して処理を開始させる。ステップＳ７０１では、表示ボックスを新たに生成し、生成した表示ボックス内に処理結果の画像を表示する。ステップＳ７０２では、後続する選択オブジェクトの値がｎｕｌｌではないかを判断して、後続処理が設定されているか否かを判断し、後続する処理が設定されていない場合（ｎｏ）、ポイントＣから、図４のポイントＣに処理を分岐させ、処理を終了する。
【００６４】
一方、ステップＳ７０２で、後続する処理が既に定義されている場合（ｙｅｓ）ステップＳ７０３でステップＳ７００の処理で生成された出力画像を後続処理の入力画像として設定し、図７のポイントＢから図４のポイントＡを経て、図７のポイントＡに達し、さらに後続する処理を実行させる。図７の処理によって、ユーザが処理シーケンス上の任意の処理について追加、変更、削除した場合であっても当該シーケンスの修正に対応する画像を効率的にユーザに提示することができる。なお、ユーザが目的画像に満足した場合、目的画像を任意のフォーマットで画像蓄積部２１０に格納し、ユーザが別の目的のための利用を可能とする。
【００６５】
以下、図８〜図１１を使用して、本実施形態の画像編集装置１００による画像編集処理を具体的に説明する。図８は、本実施形態でユーザが対象画像を取得して処理を開始した状態でのウィンドウ８００の実施形態を示す。なお、図８〜図１１では、説明の便宜上、保存、キャンセルなどの追加的なボタンオブジェクトについては省略している。ユーザが処理を開始し、対象画像を決定すると、ウィンドウ８００には、表示ボックス８１０が表示され、表示ボックス８１０内に対象画像８１２が表示される。対象画像８１２は、適宜縮小した画像でもよいし、サムネイルとされていてもよい。
【００６６】
また、表示ボックス８１０からは、テキスト表示＝処理ボックスが与えられた選択オブジェクト８１６がリンク８１４によってポイントされている。選択オブジェクト８１６は、マウスなどを介してダブルクリック、シングルクリック、または右クリックなどのユーザイベントを検出して処理選択を促すためのポップアップメニュー８１８を表示させる。ポップアップメニュー８１８には、例示的な目的で、「処理の追加」、「処理の削除」、「処理の変更」、「パラメータ変更」などのメニュー項目が示されている。
【００６７】
選択オブジェクト８１６は、選択オブジェクト８１６の位置で実行するべき画像処理の引数を設定し、画像処理実行部２２０に引数として渡し、ユーザが選択・登録した画像処理モジュールの呼出を可能とするオブジェクトである。選択オブジェクト８１６は、選択オブジェクト８１６に処理の引数である変数appl_name＝nullである場合、図８に示すように例えば「処理ボックス」などの名称を表示し、画像処理が定義された後には、例えば色相補正などの処理をダイジェストしたテキストを表示する。
【００６８】
図８のウィンドウ８００でユーザが、選択オブジェクト８１６に対して定義されたユーザイベントを行うと、画像編集装置１００は、ポップアップメニュー８１８をウィンドウ８００に表示させる。ポップアップメニュー８１８では、図８の段階では、選択オブジェクト８１６の位置で画像処理を登録する「処理の追加」オプションメニュー８２０のみが選択可能とされている。他のオプションメニューは、現在選択オブジェクトには画像処理を指定する引数が定義されていない状態なので、グレー表示とされていて、ユーザから見て選択不可とされている。ユーザが、「処理の追加」オプションメニュー８２０を選択することで、画像処理の追加を可能とする処理一覧ウィンドウが表示され、画像処理モジュールの選択が可能とされる。
【００６９】
図９は、本実施形態の画像編集装置１００の図８に後続する処理後に表示するウィンドウ９００の実施形態である。ユーザが選択オブジェクト８１６から画像編集装置１００に対して処理の追加を指令すると、処理一覧ウィンドウ９２０が表示される。処理一覧ウィンドウ９２０には、画像編集装置１００が実行可能な画像処理種類が、選択オブジェクト８１６を類推させるオブジェクト９２２として表示されている。ユーザは、処理一覧ウィンドウ９２０から平滑化と表示されたオブジェクト９２２にマウス９２４を一致させ、選択オブジェクト９１０にドラッグドロップすることで、オブジェクト９２２に割当てられ、対応する画像処理を呼出すための引数が、選択オブジェクト９１０にappl_name=flat.exeなどとして登録される。
【００７０】
選択オブジェクト９１０は、画像処理を呼び出すための引数がnullではないことを検出すると、画像処理実行部２２０に設定された引数を渡し、対応するアプリケーションモジュールを起動する。例えば、引数がappl_name=image_proc01として設定され、入力画像データがsourceの場合、画像処理実行部２２０は、引数を受領して、実行コード＜appl_code.exe“D:\source”＞を実行し、その処理結果を、image_id0001などとしてＲＡＭに格納する。画像表示部２１６は、画像処理実行部２２０の処理が終了する通知を受領すると、表示ボックス９１４を生成し、画像処理の出力画像をＲＡＭなどから読出して表示ボックス９１４内部に表示する。なお、図１０に示した画像処理オプションは、単なる例示であり、本実施形態では画像編集装置１００が実装する画像処理モジュールであれば、制限無く対応することができる。
【００７１】
図１０は、本実施形態でさらに処理を追加する場合の実施形態である。図１０に示したウィンドウ１０００では、図９の実施形態で説明したように、選択オブジェクト９１０に対して処理＝平滑化が設定され、画像処理実行部２２０は、画像処理を実行し出力画像データを生成し、その画像９１６を表示ボックス９１４内に表示させている。なお、説明する実施形態では、画像９１６を固有に指定する識別値は、image_id0001であるものとする。
【００７２】
さらに画像処理実行部２２０の処理が完了すると、表示ボックス９１４からリンクによりポイントされた新たな選択オブジェクト１０１０が表示される。ユーザは、新たに表示された選択オブジェクト１０１０にマウスを一致させ、定義されたユーザイベントを発生させることで、後続する画像処理を追加することができる。追加された画像処理は、例えば、処理一覧ウィンドウ９２０内の「鮮鋭化」とすることができ、オブジェクト１０１６を選択オブジェクト１０１０にドラッグドロップすることにより、選択オブジェクト１０１０にappl_name=image_proc02が設定される。画像処理実行部２２０は、実行コード＜imageproc02.exe“image_id0001”＞を実行して出力画像image_id0002を生成した後、ＲＡＭに出力画像を格納する。そして画像表示部２１６に通知して、新たな表示ボックス１０１８を生成し、その内部にimage_id0002で参照される画像１０２０を表示させている。以上の処理を繰り返すことにより、ユーザは、対象画像に対して連続して特定の画像処理を施した結果を取得することができる。
【００７３】
図１１は、本実施形態の処理追加の他の実施形態に分類されるシーケンスの変更処理の実施形態を示す。図１１に示す実施形態は、シーケンスの変更処理のうち、画像処理の入替によるシーケンス変更である。図１１に示す実施形態は、図５の処理シーケンス５１０を生成する処理の実施形態である。表示ボックス１１１０内には、原画像１１１２が表示されており、ユーザは、図１１に示すウィンドウ１１００では、既に原画像１１１２に対し平滑化の処理を適用し、図９で示すウィンドウ９００で示される状態にあったものとする。
【００７４】
ユーザは、原画像１１１２に対して平滑化処理を施して得られた画像９１６に満足せず、平滑化処理の前に鮮鋭化処理を施してはどうだろうか、と考えたものとする。この場合、ユーザは、図９の選択オブジェクト９１０をポイントするリンク８１４または既に「平滑化」処理が登録されている選択オブジェクト９１０にマウスカーソルを一致させ、定義されたユーザイベント、例えばマウス右クリックを生成する。そうすると、ポップアップメニューが表示され、処理の追加を選択すると、処理一覧ウィンドウ１１３０が表示される。
【００７５】
ユーザがマウスカーソルを鮮鋭化オブジェクト１１３４上に一致させ、リンク１１３２または選択オブジェクト１１１８上にドラッグドロップすることにより、ユーザは、ユーザがシーケンスの中間位置に画像処理を追加することが可能とされる。この場合、処理を追加する処理シーケンスの位置は、ユーザイベントが発生したＧＵＩ上の処理シーケンスである、平滑化処理の直前として設定される。図１１に示したウィンドウ１１００は、ユーザが図８で示したウィンドウ８００上で、以上に説明した処理を実行することにより生成される。
【００７６】
例えば、ユーザが鮮鋭化オブジェクト１１３４をリンク１１３２にドラッグドロップする。リンク１１３２に定義されたリンクオブジェクトは、ドラッグドロップのユーザイベントを検出すると、当該ユーザイベントに関連するオブジェクトの画像処理を呼出すための引数appl_name=nullであるか否かを判断し、nullではない有意の値を有している場合、シーケンスにおいて当該位置の直後に定義された画像処理の前に画像処理を追加してappl_name＝image_proc003などを設定し、原画像１１１２を、追加した画像処理の入力画像として設定して画像処理を直ちに実行する。そして実行した結果の出力画像を、既に定義されている平滑化処理の入力画像として渡し、平滑化処理を実行させる。
【００７７】
この結果、ユーザは、原画像１１１２に対して平滑化処理が定義されていた処理シーケンス上の位置で平滑化１１１６ではなく、鮮鋭化１１１８の処理を実行した画像１１２２を得ることができる。さらに画像処理実行部２２０は、既に定義されている平滑化処理１１２４を、鮮鋭化処理を実行した結果である画像１１２２に対して実行し、表示ボックス１１２６内に鮮鋭化処理後に平滑化処理された画像１１２８を表示する。なお、処理シーケンスを変更して生成された画像データには、それぞれ固有の識別値を付してＲＡＭなどに登録しておく点については上述した通りである。
【００７８】
なお、処理の変更および削除については、ポップアップメニューを表示させるユーザイベントの位置を選択オブジェクト１１１８とすることでそれぞれ処理シーケンスの変更を指令することができる。
【００７９】
また、本実施形態の画像編集装置１００は、処理シーケンスを変更することなく、処理シーケンスが含む画像処理のパラメータを修正し、パラメータ修正に対応した画像データのシーケンスも生成する。パラメータ変更を可能とするＧＵＩは、処理の追加、削除、変更とは別に用意することもできるが、追加・変更・削除を行うためのポップアップメニューのメニュー項目としておくことが、プログラムモジュールの増加を伴うことなく、またユーザビリティの上で好ましい。
【００８０】
パラメータ変更のメニューは、図８および図１０に示されるように、ポップアップメニュー８１８に追加されており、既に処理が定義されている選択オブジェクト上で、ユーザイベントが発生した場合、処理を指定する引数がｎｕｌｌではないことを検出してグレー表示からブラック表示に変更され、パラメータの変更が可能とされる。
【００８１】
ユーザが、パラメータの変更メニューを選択すると、対応する処理で設定可能なパラメータまたはパラメータの一覧が表示され、ユーザが選択した処理の画像処理パラメータを変更することができる。ユーザが変更したパラメータは、処理ログの例えばａｔｔｒｉｂ変数に設定される。
【００８２】
図１２は、本実施形態で、パラメータを変更する処理のフローチャートである。図１２の処理は、ステップＳ１２００でユーザイベントを待機する状態から開始する。ステップＳ１２０１で、パラメータ設定を指令するユーザイベントが既に処理が設定されている選択オブジェクト上で発生したか否かを判断し、パラメータ設定を要求するユーザイベントが発生しない場合（ｎｏ）、ステップＳ１２０１で待機する。
【００８３】
ステップＳ１２０１で、パラメータ操作を要求するユーザイベントが発生した場合（ｙｅｓ）、ステップＳ１２０２でパラメータ設定を行うためのＧＵＩをウィンドウ上に表示する。ステップＳ１２０３では、現在登録されている既処理のパラメータ値とＧＵＩ上からその時点で設定されているパラメータ値とを比較して、パラメータの設定値変更を検査する。ステップＳ１２０３でパラメータ設定に変更があったと判断した場合（ｙｅｓ）、ステップＳ１２０４で処理パラメータを変更し、ポイントＡから図７のポイントＡに制御を渡し、画像処理実行部２２０を呼出して以後のシーケンスの順で画像処理を実行させる。一方、パラメータ変更がない場合（ｎｏ）、図１２のポイントＣから図４のポイントＣに制御を渡し、画像編集を終了させる。
【００８４】
なお、パラメータ変更がないとの判断は、これまで知られたいかなる方法を使用しても行うことができ、例えば、パラメータ設定のＧＵＩ表示にタイムアウトを設け、タイムアウトタイマの満了によりパラメータ変更無しと、判断することができる。
【００８５】
図１３は、本実施形態によるパラメータ設定変更の実施形態で表示されるウィンドウ１３００を示す。図１３に示した実施形態では、対象画像１３１２が表示ボックス１３１０内に表示され、平滑化処理された後の画像が、表示ボックス１３１４に表示されている、表示ボックス１３１４に表示された画像は、画像処理実行部２２０が処理を実行する際に、デフォルト設定されたパラメータ値を使用して生成されている。ユーザが選択オブジェクト１３３０上でユーザイベントを生成すると、ポップアップメニュー１３１６が表示される。図１３の実施形態では、選択オブジェクト１３３０に有意な引数が指定されているので、ポップアップメニュー１３１６上で、パラメータ変更のメニュー項目がブラック表示されている。この段階で、ユーザは、パラメータ変更を指定することが可能とされる。
【００８６】
ユーザが、パラメータ変更を選択すると、パラメータを変更するためのＧＵＩ、説明する実施形態では、例えばエッジカットオフレベルを修正するためのスライダバー１３２０が表示される。ユーザがスライダバー１３２０からパラメータ値を修正したと画像編集装置１００が判断すると、当該パラメータの変更が平滑化画像処理に反映され、表示ボックス１３１４内の画像が、表示ボックス１３２２内に示される画像へと変更される。ユーザは当該パラメータ変更に満足しない場合、さらにスライダバー１３２４を操作し、パラメータ値を変更して、表示ボックス１３２６内に表示される画像を、表示ボックス１３１４内に生成させる。
【００８７】
なお、他の実施形態では、パラメータ変更に対応する画像で原画像を置換表示するのではなく、図１３に示すように例示列挙し、表示ボックス１３２２、１３２６のいずれかを選択するユーザイベントの検出により表示ボックス１３１４の画像に反映させることができる。当該実施形態の場合、処理ログには、選択した表示ボックス内の画像を生成した際のパラメータで、ａｔｔｒｉｂ変数が書き換えられる。本実施形態では、設定可能なパラメータは、エッジカットオフレベルの他、階調レベル、色バランス、色相、モノクロ／グレースケール／カラーモード指定、圧縮レベル、解像度、ディザリング方法（ランダムディザかパターンディザか）、輝度ダイナミックレンジ、コントラストなどを例示的に挙げることができるが、これらのパラメータに限定されるものではない。
【００８８】
図１４は、本実施形態で画像処理履歴を確認しながらユーザが処理シーケンスを設定する実施形態を示す。図１４のウィンドウ１４００では、ユーザが指令した処理シーケンスについて、処理１ステップごとに処理履歴が画像と共に表示される。処理ステージ１４１０では、対象画像の選択に対応する画像が表示される。また処理ステージ１４２０では、ユーザが対象画像に対して平滑化処理を施した場合の画像と対象画像とが表示されている。
【００８９】
さらに処理ステージ１４３０では、平滑化後にユーザが鮮鋭化処理を追加し、鮮鋭化処理後の画像が最も右手側に表示されている。図１４の履歴表示を行うことで、ユーザは、画像特性の変化について一連の予測を行うことができ、処理の追加、変更、削除を効率化することができる。また、処理ステージ１４４０は、最新に実行された画像処理の入力画像データ、処理内容、および出力画像データを抽出して表示する表示フレームとされている。
【００９０】
例えばユーザが、現在の処理結果を表示する表示フレーム内で新たな処理を追加することも可能であり、この際には、図９、図１０、図１１で説明した処理を使用して新規な画像処理を追加したり、修正したりすることができる。現在の処理結果を表示する表示フレーム内で処理シーケンスを修正した場合、最新の全処理シーケンスが処理ステージ１４３０内に表示される。表示フレームの大きさが不足する場合には、カーソルが移動して、処理ステージ１４１０の画像を非表示とし、その代わりに最新の全処理シーケンスを表示させることができる。
【００９１】
なお、図１４のＧＵＩは、図６で説明した処理ログ６００を使用して生成することができ、各処理ステージは、処理ログの第１行目から読み取りを開始し、第１ステージに対象画像の画像データを表示し、第２ステージに第１行目の処理内容に対応する画像およびオブジェクトを表示し、第３ステージに第１行目および第２行目の処理内容に対応する画像およびオブジェクトを表示させることで、順次生成することができる。また、現在の処理結果は、処理ログ６００の最終行の記述を読み込んで、対応する画像およびオブジェクトを表示させることで生成できる。また、本実施形態では、履歴表示されている処理シーケンスをコピーして、コピーした処理シーケンスに対して画像処理の変更またはパラメータ設定の変更を行うこともできる。例えば、説明する実施形態では、図１４の処理ステージ１４２０ＧＵＩ上でダブルクリックなどの定義済みユーザイベントを生成すると、処理ステージ１４２０が表示フレーム内の適切な箇所にコピーおよび表示される。コピーシーケンスは、図６の処理ログの対応する部分についてもコピーし、例えば、ポインタ「：ＣＰＯＹ」を付して新規シーケンスを宣言する。ユーザが当該コピーシーケンスに対応する処理ステージのオブジェクトに対して図９から図１１の説明と同様の操作を適用することで、処理シーケンスの途中から切り出したシーケンスを初期シーケンスとして、処理の新規追加や修正ができる。
【００９２】
ユーザが最終的に生成された画像が目的画像として許容できると判断した場合、ユーザは、当該最終的に生成された画像をマウスカーソルをポイントし、マウス右クリックなどのユーザイベントを生成することで、ファイル保存のメニュー項目を含むポップアップウィンドウを表示させ、ファイル保存を選択することで、最終画像を目的画像として画像蓄積部２１０に登録することができる。
【００９３】
また、図１４に示した中間的に得られた画像については、一連の画像処理シーケンスが終了するまで、ＲＡＭなどに、image_id000N（Ｎは、自然数である。）などの固有の識別値を付して保持されている。ユーザが、目的画像としてどちらが好ましいかについて比較を行うことが必要であったり、処理ログ自体を保存しておきたい場合には、特定の中間画像のみを画像蓄積部２１０に記録することができる。また、ユーザが処理ログ自体を記録した場合には、処理ログ６００および対応する画像を対応付けてハードディスク装置や光学ドライブなどの外付け記憶装置１２４に格納することができる。また、処理ログ６００を記録する場合に、画像を固有に識別する識別値について変数に置換してマクロオブジェクトとして登録しておき、以後の処理で、対象画像を指定するだけで登録した処理シーケンスを自動実行し、同一の処理を施した目的画像を生成させることができる。
【００９４】
処理ログ６００をマクロオブジェクトとして登録することにより、大量の処理画像に対して同一の画像処理を施す処理が効率化でき、またユーザの嗜好などによる画像処理のばらつきがなくなるので、より高精度の画像処理を効率的に実行することができる。
【００９５】
本実施形態の上記機能は、ＶｉｓｕａｌＢａｓｉｃ、Ｃ、Ｃ＃、Ｃ＋＋、Ｊａｖａ（登録商標）、ＪａｖａＢｅａｎｓ（登録商標）、ＪａｖａＡｐｐｌｅｔ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｅｒｌ、Ｒｕｂｙなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なアプリケーションプログラムやプラグインプログラムにより実現でき、プログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【００９６】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００９７】
１００…画像編集装置、１１０…ＣＰＵ、１１２…メモリ、１２０…システムバス、１１４…グラフィックスドライバ、１１８…ディスプレイ装置、１１６…ネットワークデバイス、１２２…バスブリッジ、１２８…バス、１２４…記憶装置、１２６…入力装置、２００…機能ブロック（画像編集装置）、２１２…画像ファイル選択部、２１４…画像データ取得部、２１６…画像表示部、２１０…画像蓄積部、２１８…画像処理選択部、２２０…画像処理実行部、２２２…処理ログ記録部、３００…ウィンドウ、３１２…表示ボックス、３１０…画像、３１４…選択オブジェクト、３１６…表示ボックス、３１８…画像、３２０…選択オブジェクト、３２２…表示ボックス、３２４…画像、３２６…選択オブジェクト、３２８…表示ボックス、３３０…画像、３３２…選択オブジェクト
【先行技術文献】
【特許文献】
【００９８】
【特許文献１】特許第３８９００９６号明細書
【図１】
2011002930.tif 000003
【図２】
2011002930.tif 000004
【図３】
2011002930.tif 000005
【図４】
2011002930.tif 000006
【図５】
2011002930.tif 000007
【図６】
2011002930.tif 000008
【図７】
2011002930.tif 000009
【図８】
2011002930.tif 000010
【図９】
2011002930.tif 000011
【図１０】
2011002930.tif 000012
【図１１】
2011002930.tif 000013
【図１２】
2011002930.tif 000014
【図１３】
2011002930.tif 000015
【図１４】
2011002930.tif 000016