画像編集装置、画像編集方法、およびプログラム
【課題】画像処理シーケンス決定を効率化する画像編集装置、画像編集方法、およびプログラムを提供すること。
【解決手段】デスクトップ画面上に表示したGUIを介して画像編集を行う画像編集装置100は、編集するべき画像を取得する画像データ取得部214と、取得した画像を前記GUIに表示領域を割当て表示する画像表示部216と、GUIに表示された画像に対して適用するべき画像処理を選択させる選択領域をGUIに表示させる画像処理選択部218と、選択領域への画像処理選択部218による画像処理の登録に応答して、登録された画像処理の入力画像に対し登録された画像処理を適用して出力画像を生成する画像処理実行部220とを含み、画像表示部216は、生成された出力画像を取得し、画像編集のシーケンスに対応付けて出力画像を表示するための表示領域を生成し、生成した表示領域に取得した出力画像を表示している。
【解決手段】デスクトップ画面上に表示したGUIを介して画像編集を行う画像編集装置100は、編集するべき画像を取得する画像データ取得部214と、取得した画像を前記GUIに表示領域を割当て表示する画像表示部216と、GUIに表示された画像に対して適用するべき画像処理を選択させる選択領域をGUIに表示させる画像処理選択部218と、選択領域への画像処理選択部218による画像処理の登録に応答して、登録された画像処理の入力画像に対し登録された画像処理を適用して出力画像を生成する画像処理実行部220とを含み、画像表示部216は、生成された出力画像を取得し、画像編集のシーケンスに対応付けて出力画像を表示するための表示領域を生成し、生成した表示領域に取得した出力画像を表示している。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理技術に関し、より詳細には、画像に対する画像処理のシーケンス決定を効率化する画像編集装置、画像編集方法、およびプログラムに関する。
【背景技術】
【0002】
デジタル画像に対しては種々の画像処理が可能であり、種々の効果を対象画像に施して画像を加工する、いわゆる画像処理は、市販ソフトウェアから無料のフリーウェアに至るまで多種多様なものが知られている。ユーザが画像に対して特定の効果を施したい場合、ユーザが使用している画像処理ソフトから目的とする効果を指定し、その効果の適用度合いなどを表す各種パラメータを設定するのが一般的な操作シーケンスである。
【0003】
上述した操作シーケンスを行う際に、画像処理ソフトによっては、処理対象の画像の特徴を判断し、パラメータを推奨値へと自動的に設定する技術が知られている。また、画像処理では、対象画像に対して複数の効果を連続的に適用することも多い。
【0004】
この際、対象画像に対して複数の効果を連続して適用する場合、効果適用の順序によっては、画像劣化や色再現性劣化などの画像劣化が予期せずに発生してしまうこともある。しかしながら、従来知られている画像処理ソフトは、対象画像に対して複数の効果をシーケンスとして適用する際、画像処理を適用するシーケンスの判断は、ユーザの選択に任せられている場合が多い。効果適用のシーケンスをユーザの選択に任せる場合、ユーザ自身が効果の適用順序を選択することになるので、以下のような問題があった。
(1)ユーザが目的の画像を得るため、どのような順序で効果を適用すればよいか、が直感的に解りづらいこと、
(2)途中の効果、例えば、5種類の効果を適用する場合、3番目に適用する効果の種類を変更するためには、対象画像に戻って再度取り消した画像処理をシーケンス順に適用するなど非常に手間がかかること、である。
【0005】
上記の問題のうち、(1)に関してみれば、対象画像に対して複数の効果を適用する場合、各効果を適用する順によって最終的に得られる画像が異なってくることから、様々なパターンについてトライアンドエラーで試す必要がある。また、(2)に関しては、例えば効果の適用を最初からやり直すであるとか、undo機能を用いて変更したい効果まで操作を取り消した上で変更を行い、ユーザが記憶している効果の適用順を変えて後続する効果を再度適用するといった作業が必要である。
【0006】
これまで、上述した画像処理を効率化するための方法が知られており、例えば、特許第3890096号明細書(特許文献1)には、画像編集に不慣れなユーザであっても容易に画像編集ができる画像編集システムが記載されている。特許文献1は、複数の画像編集処理を、異なるシーケンスで適用した結果を、ディスプレイ装置上に表示させ、ユーザに好みの処理結果を選択させるものである。
【0007】
特許文献1に記載された画像編集システムは、複数の画像処理結果をユーザに提示してユーザが最も好ましいと思うものを選択させることにより、効果適用のシーケンス選択を効率化することが可能である。しかしながら、特許文献1では、効果適用の選択を効率化する反面、処理の種類やシーケンス、効果適用度合いなどのパラメータ設定は、装置が予め用意されたものに限定されてしまい、ユーザの選択の自由度が狭められてしまうという問題が生じていた。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は、上記従来技術の課題を解決するためになされたものであり、本発明は、画像に対して複数の効果を適用する際に、ユーザが、効率的に対象画像をユーザが目的とする視覚的効果を有する結果画像とする、画像編集装置、画像編集方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明では、上記課題を解決するために、デスクトップ画面上に表示したGUIを介して画像編集を行う画像編集装置は、編集するべき原画像を取得する画像データ取得手段と、GUIに表示領域を割当てて、取得した原画像を表示する画像表示手段と、GUIに表示された原画像に対して適用するべき画像処理を選択させる選択領域および登録するべき画像処理を前記GUIに表示させる画像処理選択手段と、画像処理選択手段による選択領域への前記画像処理の登録に応答して、登録された前記画像処理の入力画像に対し登録された前記画像処理を適用して出力画像を生成する画像処理実行手段とを含んでいる。
【0010】
画像表示手段は、生成された出力画像を取得して画像編集のシーケンスに対応付けて出力画像のための表示領域を生成し、生成した前記表示領域に取得した出力画像を表示している。本発明では、画像処理選択手段は、選択領域に登録するべき画像処理を変更させる画像処理変更手段を含み、画像処理実行手段は、画像処理選択手段から変更の指令を受領すると、変更に関連する既登録画像処理をシーケンスの順で実行して画像表示手段に渡し、シーケンスで変更前に生成されていた表示領域の表示画像を更新する。
【0011】
さらに本発明では、画像処理選択手段が選択領域に登録された既登録画像処理を削除する画像処理削除手段を含み、画像処理実行手段は、画像処理選択手段からの削除の指令を受領して、シーケンスに残存し、かつ削除に関連する既登録画像処理をシーケンスの順で実行して画像表示手段に渡し、シーケンスで変更前に生成されていた表示領域の出力画像を更新する。
【0012】
また、本発明では、画像処理選択手段は、選択領域の既登録画像処理のシーケンス順を入替える画像処理入替手段を含み、画像処理実行手段は、画像処理選択手段からの指令を受領し、入替に関連する既登録画像処理をシーケンスを入替後の順序で実行して、出力画像を画像表示手段に渡しシーケンスで入替前に生成されていた表示領域の画像を当該出力画像で更新することができる。
【0013】
画像処理選択手段は、選択領域の既登録画像処理のパラメータを変更するパラメータ変更手段を含み、画像処理実行手段は、パラメータ変更手段からのパラメータの変更を検出し、変更後のパラメータを用いてパラメータの変更に関連する既登録画像処理をシーケンスの順で実行して、シーケンスでパラメータ変更前に生成されていた前記表示領域の出力画像を更新することができる。
【0014】
さらに、画像編集装置は、画像処理の履歴を記録する処理ログ記録手段を含み、処理ログ記録手段は、新たな画像処理の追加、既登録画像処理の変更、削除、またはパラメータ変更によりシーケンスに変化があった場合、シーケンスの変化により生成される新たな画像をシーケンスの中で固有に識別する識別値を付して、シーケンスを処理ログとして登録することができる。
【0015】
さらに本発明では、コンピュータが実行する画像編集方法であって、
編集するべき原画像を取得して、取得した原画像をGUIに表示領域を割当て表示するステップと、
GUIに表示された原画像に対して適用するべき画像処理を選択させる選択領域および登録するべき画像処理を前記GUIに表示するステップと、
選択領域への画像処理の登録に応答して、登録された画像処理の入力画像に対し登録された画像処理を適用して出力画像を生成するステップと、
生成された出力画像を取得し、画像編集のシーケンスに対応付けて出力画像のための表示領域を生成し、生成した表示領域に取得した当該出力画像を表示するステップと
を実行する、画像編集方法が提供される。
【0016】
本発明では、選択領域に登録された画像処理が存在しない場合には、選択領域に画像処理を追加し、画像処理が登録されている場合には、登録された画像処理の変更、削除または画像処理が適用するパラメータ変更を可能とするGUIを表示し、画像処理の追加、変更、削除またはパラメータ変更を可能とするステップを含むことができる。
【0017】
本発明では、さらにシーケンスの指定した位置での画像処理の変更によりシーケンスを入替するステップを含むことができる。
【0018】
本発明ではさらに、上述した機能手段として機能させるためのコンピュータ実行可能なプログラムおよび当該プログラムを格納する、コンピュータ可読な記録媒体が提供できる。
【0019】
本発明によれば、ユーザが目的とする結果画像を得る上で、画像処理の効果を確認しながら効率的に画像処理を適用するシーケンスおよび画像処理の程度をリアルタイムで確認しながら、目的とする結果画像を得るための画像処理種類に制限を受けずに画像処理シーケンスを決定することが可能となる。また、本発明によれば、ユーザが、画像処理を適用する順序やパラメータをユーザの目的に充分適合させつつ、任意に変更することが可能とされる。さらに、複数の画像処理を適用することにより結果画像がどのように変化していくかを把握することができ、効果の適用要否を判断しながら、目的とする結果画像を得るための最適シーケンスを効率的に決定することができる。
【図面の簡単な説明】
【0020】
【図1】本実施形態の画像編集装置100のハードウェア構成を示した図。
【図2】本実施形態の画像編集装置100の機能ブロック図
【図3】本実施形態の画像編集装置100がデスクトップ画面上に表示する、GUIの実施形態を示した図。
【図4】図3のGUIを介して画像編集装置100が実行する処理のフローチャート。
【図5】図5を参照してより詳細に処理の追加、変更、削除に対応する入出力データフローを示した図。
【図6】本実施形態の画像編集装置100が生成し、管理する処理ログの例示的な実施形態を示した図。
【図7】本実施形態で処理の追加、修正、削除を行う場合の画像編集装置100が実行する処理の、図4のポイントAに後続する処理のフローチャート。
【図8】本実施形態でユーザが対象画像を取得して処理を開始した状態でのウィンドウ800の実施形態を示した図。
【図9】本実施形態の画像編集装置100の図8に後続する処理後に表示するウィンドウ900の実施形態を示した図。
【図10】本実施形態でさらに処理を追加する場合のウィンドウ1000の実施形態を示した図。
【図11】本実施形態の処理追加の他の実施形態を示した図。
【図12】本実施形態で、パラメータを変更する処理のフローチャート。
【図13】本実施形態によるパラメータ設定変更の実施形態で表示されるウィンドウ1300を示した図。
【図14】本実施形態で画像処理履歴を確認しながらユーザが処理シーケンスを設定する実施形態を示した図。
【発明を実施するための形態】
【0021】
以下、本発明を図面に示した実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図1は、本実施形態の画像編集装置100のハードウェア構成を示す。画像編集装置100は、パーソナルコンピュータ、ワークステーション、サーバなどとして構成することができる。画像編集装置100は、中央処理装置(CPU)110と、CPU110の処理を可能とするRAM、DRAMなどの固体メモリ素子から形成されるメモリ112とを備える。CUP110およびメモリ112は、システムバス120を介して、画像編集装置100の他のデバイスやドライバに接続されている。システムバス120には、グラフィックスドライバ114およびネットワークデバイス(NIC)116が接続されている。グラフィックスドライバ114は、バスを介してディスプレイ装置118に接続されて、CPU110による処理結果をディスプレイ画面上に表示させている。また、ネットワークデバイス116は、トランスポート層レベルおよび物理層レベルで画像編集装置100をネットワークへと接続し、ネットワークを介してのデータ送受信を可能としている。
【0022】
システムバス120には、さらにI/Oバスブリッジ122が接続されている。I/Oバスブリッジ122の下流側には、PCIなどのI/Oバス128を介して、IDE、ATA、ATAPI、SATA、SCSI、USBなどにより、ハードディスク、各種光学ディスクなどの外付け記憶装置124が接続されている。また、I/Oバス128には、USBなどのバスを介して、キーボードやマウスなどの入力装置126が接続され、ユーザによる入力および指令を受付けている。
【0023】
CPU110としては、より具体的には、例えば、PENTIUM(登録商標)〜PENTIUM(登録商標)4、PENTIUM(登録商標)互換CPU、POWERPC(登録商標)、MIPSなどを挙げることができる。
【0024】
また、画像編集装置100が使用するオペレーティング・システム(OS)としては、MacOS(登録商標)、Windows(登録商標)、Windows(登録商標)200X Server、UNIX(登録商標)、AIX(登録商標)、LINUX(登録商標)、またはそれ以外の適切なOS、例えばFreeBSDなどを挙げることができる。画像編集装置100は、上述したハードウェア・ソフトウェア基盤の上で、C、C++、C#、Visual C++、VisualBasic、Java(登録商標)、JavaScript(登録商標)、Perl、Rubyなどのオブジェクト指向のプログラミング言語により記述されたアプリケーションプログラムを実行し、後述する機能処理手段としてコンピュータを機能させている。
【0025】
図2は、本実施形態の画像編集装置100の機能ブロック図である。画像編集装置100は、アプリケーションプログラムの実行により、コンピュータの機能手段として提供される、画像ファイル選択部212と、画像データ取得部214と、画像表示部216とを含んで構成されている。画像ファイル選択部212は、ハードディスク装置や光学ドライブなどの外付け記憶装置124に構成される画像蓄積部210に格納された画像ファイルのリストを表示させるグラフィカルユーザインタフェース(GUI)として構成することができ、ユーザが、外付け記憶装置などに記憶された画像ファイルの選択をサポートする。本実施形態で適用される画像ファイルは、これまで知られたいかなるフォーマットでもよく、BMP、GIF、JPEG、JPEG2000、TIFF、PNG、EMF、PostScript(登録商標)などを挙げることができる。
【0026】
画像データ取得部214は、画像ファイル選択部212を介してユーザが選択した画像ファイルを、アプリケーションによる処理のために、RAMなどのメモリ112に読込んで処理対象の画像データとして設定する。さらに画像編集装置100は、画像表示部216と、画像処理選択部218と、画像処理実行部220とを含んでいる。画像表示部216は、画像データを表示するための表示領域として機能する表示ボックスをディスプレイ画面上に確保し、表示するべき画像を、シーケンス順に、シーケンス上で対応する表示ボックス内に表示する処理を実行する。また、画像表示部216は、画像処理実行部220の処理した結果画像である出力画像データを受領して、ディスプレイ画面上に、選択された処理および処理の入力画像データとの対応付けを示す形式で、新たな表示ボックスを生成し、当該表示ボックスの内部に出力画像データを表示させる。
【0027】
画像処理選択部218は、ディスプレイ画面上に処理を選択するための種々のオブジェクトを表示させ、マウスやキーボード操作を介した当該オブジェクトの選択に対応してオブジェクトに割当てられた画像処理を呼出す処理を実行させるイベントハンドラなどとして実装することができる。画像処理選択部218が管理するオブジェクトとしては、画像処理の選択および登録を可能とする選択オブジェクトおよび画像と処理との関係を示し、特定の実施形態においては画像処理の追加を可能とするリンクオブジェクトなどを挙げることができる。各オブジェクトには、当該オブジェクト領域に関連付けてユーザイベントが定義されていて、ユーザイベントを受領して、画像処理の追加、変更、削除、入替、画像処理パラメータの設定・変更などを可能とする。
【0028】
画像処理実行部220は、画像に対して選択された画像処理を実行する処理手段であり、画像編集装置100のアプリケーションモジュールとして実装することができる。また、他の実施形態では、独立したアプリケーションとして実装することもでき、この場合、画像編集装置100が、独立したアプリケーションを連携して起動する。画像編集装置100が実行する画像処理としては、画像データ取得部214が取得した画像データに対し、平滑化、コントラスト調整、解像度増減、γ補正、2値化しきい値設定、明度調整、カラーバランス調整、階調調整、カラー/グレースケール/モノクロ2値調整などを挙げることができるが、これらの処理のみに限定されない。
【0029】
画像編集装置100は、さらに処理ログ記録部222を備えており、処理ログ記録部222は、画像処理選択部218が受領した処理指令および処理の入力画像データおよび出力画像データを対応付け、処理シーケンスとして記録する。画像処理実行部220が作成した入力画像データおよび出力画像データは、ユーザが指定するフォーマットまたはオリジナルフォーマットとして画像蓄積部210に格納され、ユーザにより他の目的のために利用される。
【0030】
処理ログ記録部222は、処理履歴を種々の形式で作成することができ、例えばテーブル、リストとして処理ログを生成することができる。さらに他の実施形態では、処理ログを、テキストエディタやJavaScript(登録商標)などへのインタフェース性を考慮して、テキスト、HTML、XMLなどのASCIIコードを含む文書として作成することができる。
【0031】
図3は、本実施形態の画像編集装置100がデスクトップ画面上に表示するGUIの実施形態を示す。図3に示す実施形態では、デスクトップ画面上にウィンドウ300が表示され、当該ウィンドウ300内に処理に関連する画像が表示される。例えばユーザが選択した画像は、後続する画像処理の入力画像データとされ、表示ボックス312内に画像310として表示されている。画像310は、対象画像がそのまま表示できるサイズであれば対象画像を表示することができるし、表示ボックス312内に表示できるサイズに適宜縮小して表示させることもできる。他の実施形態では、例えばEMFなどを使用してサムネイルを生成し、表示ボックス312内に表示させることができる。表示ボックス312からは、画像310に対して画像処理が可能であることを示すリンクを介して選択オブジェクト314が表示されている。
【0032】
選択オブジェクト314からはリンクを介して、さらに表示ボックス316が表示されており、表示ボックス316の内部には、選択オブジェクト314で選択された処理が施された後の画像318が表示されている。説明するシーケンスでは、選択オブジェクト314には、画像処理として平滑化が選択されていることが示されており、表示ボックス316に表示された画像318は、画像310に対して平滑化処理を施した後の画像とされている。
【0033】
図3に示す選択オブジェクト314は、本実施形態の画像処理を登録する選択領域として機能しており、その形状は、図3に示す以外にでも処理の選択や登録を可能とすることができる限り、特に制限はない。また、リンクは、リンクオブジェクトが関連付けられていて、リンクオブジェクトは、画像処理のシーケンスを視覚的に示すことができる限りその形状には特に限定はない。上述した選択オブジェクトおよびリンクには、ポップアップメニューを表示させる機能が定義されていて、選択オブジェクトからは、画像処理の登録や各機能のパラメータの設定が可能とされている。
【0034】
さらに表示ボックス316からは後続する画像処理が可能であることを示すリンクが、選択オブジェクト320をポイントするように表示される。ユーザは、画像318に対してさらに画像処理を実行することを希望する場合、選択オブジェクト320に対して、例えば「鮮鋭化」処理を登録すると、画像318を入力画像として鮮鋭化処理が実行される。そして、生成された出力画像は、図2の画像表示部216に送られ、新たに生成された表示ボックス322内に鮮鋭化処理された出力画像が、画像324として表示される。新たに表示された表示ボックス322からはさらに後続する画像処理が可能であることを示すリンクが別の選択オブジェクト326をポイントするように表示されている。ユーザが選択オブジェクト326に対して具体的な処理、例えば「色相補正」処理を登録すると、さらに新たに表示ボックス328が生成されて、表示ボックス328内部に登録した画像処理の色相補正された画像330が表示される。
【0035】
新たに生成された表示ボックス328からは、さらに後続する画像処理を設定できることを示すリンクが、後続処理を選択可能とする選択オブジェクト332をポイントしている。ユーザが表示ボックス322に表示された出力画像に満足しない場合、画像318および画像324について上述したと同様の処理を繰り返すことで、ユーザが希望する目標画像を生成する。
【0036】
図3に示した処理への入力画像および出力画像は、それぞれディジタルデータであり、固有の識別値が割当てられてRAMなどに格納され、以後の編集処理の入力画像として利用される。また、図3に示した画像処理のシーケンスは、例えば{(処理1、入力画像データの識別値、出力画像データの識別値)−(処理2、入力画像データの識別値、出力画像データの識別値)−(処理3、入力画像データの識別値、出力画像データの識別値),...,}のセットとして、テキストや構造化文書として処理ログ記録部222により処理シーケンス順を参照可能とする形式で、RAMなどに処理ログとして記録される。また、ユーザが特定の画像に対して複数の処理シーケンスを適用する場合には、複数の処理シーケンスを個別に参照できる形式として処理ログを生成することができる。
【0037】
図4は、図3のGUIを介して画像編集装置100が実行する処理のフローチャートを示す。図4の処理は、ステップS400から開始し、ステップS401で、処理オブジェクトが選択されたか否かを判断し、処理オブジェクトからマウスなどを介し、選択オブジェクトに定義されたユーザイベントを受領するまで(no)、ユーザイベントを待機する。ステップS401で、定義されたユーザイベントを検出すると(yes)、ステップS402で、当該処理オブジェクトに割当てられたメニューを、プルダウンメニュー、ポップアップメニューとして表示させる。ステップS403、S404、S405では、ユーザによるメニュー項目の選択を判断する。説明する実施形態では、メニュー項目として、デフォルト設定では、処理の追加、処理の変更、処理の削除、およびパラメータ設定が登録されているものとして説明する。
【0038】
ステップS403で、処理の追加が選択されたと判断する場合(yes)、ステップS408で処理一覧ウィンドウをウィンドウ300内の適切な位置に表示する。処理一覧ウィンドウは、ユーザが選択し選択オブジェクトに登録可能な画像処理をリストするサブウィンドウとして提供することができる。ステップS409でユーザイベントがあるまで(no)、ユーザイベントを待機する。ステップS409でユーザイベントを検出すると(yes)、ステップS410で処理シーケンスの最後の表示ボックスから延びるリンクでポイントされた処理オブジェクトに選択された処理を登録し、選択オブジェクトに、登録された処理の名称、例えば「平滑化」をテキスト表示させ、直ちに平滑化処理を実行し、ポイントAに後続する処理に制御を渡す。
【0039】
一方、ステップS403で、選択されたメニュー項目が処理の追加でない場合(no)、ステップS404で選択されたメニュー項目が処理の変更か否かを判断する。ステップS404で処理の変更が選択されたと判断した場合(yes)、画像編集装置100は、処理をステップS408に分岐させ、ステップS409で変更するべき目的の処理の選択を促すため、処理一覧ウィンドウを表示させ、以下、ステップS409以降と同一の処理を実行する。
【0040】
一方、ステップS404で、処理の変更ではないと判断した場合(no)、ステップS405で選択されたメニュー項目が処理の削除か否かを判断し、処理の削除でもない場合(no)、ステップS406で、選択オブジェクトの領域でメニュー表示を指定するユーザイベントが継続しているか否かを判断し、ユーザイベントが継続している場合(yes)、処理をステップS403に返して、繰り返し、ユーザイベントを待機する。一方、ユーザイベントが継続していない場合(no)、ステップS407で処理選択シーケンスを終了する。
【0041】
一方、ステップS405で処理の削除が選択されたと判断された場合(yes)、ステップS411で選択された選択オブジェクトをウィンドウ300上から削除し、ステップS412で、処理に対応する表示ボックスおよび画像をウィンドウ300上から削除する。さらに、ステップS413で後続する処理が既に設定されている場合(yes)、後続する画像処理をシーケンス上で直前の出力画像を、削除された画像処理の直後の画像処理の入力画像として設定し、画像処理を適用する。また、ステップS413で後続する処理が登録されていない場合(no)、処理をステップS407に分岐させ、当該シーケンス編集処理を終了させる。
【0042】
本実施形態で可能なシーケンスの変更は、図4で説明した処理の追加、変更、削除の他、シーケンスの途中での新規な画像処理の追加、既登録画像処理の削除、またはリンクオブジェクトの前後の既登録画像処理を相互に入れ換えるように変更することによる、シーケンスの入替である。シーケンスの途中での新規な画像処理の挿入は、選択オブジェクトまたはリンクオブジェクトに対する処理の登録によって行われる。シーケンスの途中での画像処理の削除は、図4のステップS405に後続する処理に従い実行することができる。入替については、より詳細に、図5および図6を使用して説明する。なお、シーケンスのリンクオブジェクトを挟んだ連携した画像処理の追加、変更、削除、処理を一括して実行する他のオブジェクトを、シーケンス入替手段として用意することができる。シーケンス入替手段は、複数の画像の一括選択および入替を、選択オブジェクトの既登録画像処理の変更を連続して適用する入替オブジェクトとして実装することができる。
【0043】
また、処理の変更は、選択オブジェクトに既に設定されている処理を異なる処理に変更することであり、メニュー項目の選択および処理一覧ウィンドウからの選択に応答して、シーケンス系列上で入力画像を変更することなく、選択オブジェクトに登録された画像処理を指定するための引数を新たに選択され登録された異なる画像処理の値に設定して、画像処理実行部220が実行する画像処理モジュールを呼出す際の引数を変更する処理である。
【0044】
図5を参照してより詳細に処理の追加、変更、削除に対応する入出力データフローを示す。図5のシーケンス500は、ユーザが処理の追加、変更、削除することなく画像処理を行ったシーケンスの実施形態である。シーケンス500では、画像処理装置100は、新シーケンスが開始したと判断し、ポインタ「:INIT」を付して処理ログの生成を開始する。ユーザは、初期の入力画像(原画像)として画像0を選択し、図3で説明したGUIに従って処理1を選択オブジェクトに登録し処理1を適用して画像1を生成する。処理2は、選択オブジェクトへの処理2の登録に応答して呼出される処理2モジュールが処理1の出力画像である画像1に対して処理2を適用し、出力画像として画像2を生成する。同様の処理は、処理3についても繰返すことで、ユーザが目的画像が得られたと判断するまで、処理の追加が行われる。
【0045】
ユーザがシーケンス500を生成して行く際に、画像編集装置100は、追加に関連する画像処理が、処理ログを参照し、現在シーケンスの最終の画像処理であるか否かを判断する。後続する画像処理が登録されていない場合、新シーケンスを示すポインタ「:INIT」を維持したまま処理ログを延長する。本実施形態では、ユーザにシーケンス生成を委ねているので、ユーザが最終処理でシーケンスの最後の画像処理を削除または変更する場合もあるが、シーケンスの最終処理が削除される場合は、(1)希望する効果がまったく得られなかった場合、(2)処理の選択ミスなど処理の試行錯誤の過程で発生する場合が多い。このため、画像編集装置100は、シーケンス500の最後の画像処理が削除された場合には、削除・変更に対応する新たなポインタを生成せず、最後の画像処理の追加・変更について別シーケンスを定義することなく、シーケンス500内の矢線で示すように、シーケンスを成長させることができる。
【0046】
なお、上述したシーケンスの最後の画像処理のトライアンドエラー的な削除・変更を含めて処理ログとして登録する場合には、新シーケンス内で、処理が削除されたことおよび変更されたことを示す識別値を別に付して、新シーケンス内で生存している処理を明示的に示すことにより、表示・非表示を制御した処理ログを生成することができる。
【0047】
一方、シーケンス510は、ユーザがシーケンスの途中にある処理2を処理Mに変更する場合の実施形態である。ユーザは、当初処理1、処理2、処理3,...のシーケンスで画像処理を施したが、目的画像が得られないと判断し、処理2を処理Mに変更する。シーケンス510では、画像処理実行部220は、当該変更に対応し、処理2以降の入力画像が変更されるため、画像処理モジュールを呼出すための引数を取得し、処理Mを実行するための画像処理モジュールを呼出す。画像処理モジュールは、直前の画像処理である処理1の出力画像を読込んで画像処理を施し、出力画像として画像2Mを生成する。その後、後続する処理3の入力画像として画像2Mを渡し、処理3の出力画像として画像3Mを生成する。
【0048】
処理ログは、シーケンス510の変更に対応し、処理シーケンス500の処理ログを読出して、新シーケンスに500をコピーし、例えば処理の変更を指定するため、ポインタ「:ALT」を付してシーケンス510の変更を開始する。画像処理選択部218は、変更の指令を受領したと判断すると、画像処理を指定する引数を検索し、当該引数を変更後の引数に書換える。その後、画像処理実行部220は、処理Mを呼出し、その入力画像としてシーケンス上で直前の画像処理の出力画像を設定し処理Mを適用して、処理Mの出力画像を画像2Mとして生成する。
【0049】
さらに画像処理実行部220は、当該シーケンス上で固有に出力画像を識別する識別値を付し、処理Mの出力画像として処理ログに設定する。当該処理が終了した後、画像2Mは、シーケンス上で後続する処理3の入力画像とされ、順次後続する処理の入力画像の識別値および出力画像の識別値に固有の識別値を割当ててシーケンス510の処理ログを生成する。生成した処理ログには、例えば「:ALT」などのポインタを付してシーケンス500に対応する処理ログの後ろに追加することで、処理ログの更新を行う。また、他の実施形態では、ポインタ「:ALT」に対応する新シーケンス名を付して別の処理ログとして登録することもできる。
【0050】
シーケンス520は、既存のシーケンス500に新たな処理である処理Nを追加する場合の実施形態である。シーケンス520で、処理Nが追加された場合、シーケンス上で、直前の処理の出力画像を処理Nの入力画像とし、処理Nの出力画像データを、直下流側の処理2の入力画像に設定して処理2を実行する。以後、処理3以下の処理を入力画像および出力画像を更新しながらそれぞれに固有の識別値を付して処理を実行する。処理ログ上においても、処理の挿入を指令するユーザイベントを受領すると、直前の処理ログをコピーして、例えば「:INST」などのポインタを付して新たなシーケンスを宣言し、挿入するべき画像処理のシーケンス上での位置に処理Nに対応する引数を記述し、入力画像をシーケンスの直前画像処理の出力画像として設定する。そして、処理Nの出力画像の識別値を直下流側の入力画像の値として渡すことで、シーケンシャルな画像処理を可能とし、処理ログを生成することができる。シーケンス520に対応する処理が終了した後、追加に対応する新たなシーケンス520を、既存の処理ログの後ろに追加することで、処理ログを更新する。
【0051】
また、シーケンス530は、処理2を行ったにも拘わらず、ユーザが処理2の有効性に疑問を生じた場合などに処理2をシーケンスから削除する場合に発生する。シーケンス530の処理は、シーケンス500をコピーして新たなシーケンス「:SKIP」を宣言して開始する。シーケンス530を生成するため、画像処理実行部220は、原画像を入力画像とし、処理1を実行し、処理1の出力画像を処理2にではなく、処理3の入力画像として設定し、処理3を実行させる。処理3の出力画像である画像3Oは、固有の識別値を付してRAMなどに登録される。
【0052】
その他の処理は、シーケンス510の処理と同様に行うことができる。シーケンス530に対応する処理ログは、削除した処理を指定する引数および出力画像の識別値を削除して、後続する処理の入力画像を削除された処理の入力画像で書換え、処理3の画像3Oの識別値を新たに処理3の出力として設定することで対応することができる。さらに後続する処理については、それぞれの処理の入力画像データおよび出力画像データの出力値を新たに生成された各識別値で書換えることで生成することができる。
【0053】
なお、処理の削除を指令するユーザイベントを検出した場合、画像編集装置100は、直前ログをコピーして例えば、「:INST」、「:ALT」、「:SKIP」といったポインタを生成して新たな処理シーケンスを宣言し、上述した処理を実行して処理ログを生成後、直前の処理ログの後ろに追加記入することで、処理ログの更新を終了する。また、画像処理を挿入する「:INST」コンテキストの途中で他の処理の削除が発生する場合も想定される。この場合、直ちに処理の挿入が指令された直前ログをコピーして新たな処理ログを宣言し、例えば既に行っている削除を含むシーケンスとは異なるポインタ、例えば「:INST+SKIP」などを付して処理ログを生成し、既存の処理ログの後ろに追加書き込みすることで、処理ログを更新することができる。
【0054】
処理ログを順次追加して行く実施形態は、処理を変更した場合、シーケンス上で画像処理の種類や順序によってどの程度変化するのかをレビューする際に好ましく用いることができる形態である。一方、特定の用途に応じて現在処理中のシーケンスのみに注目して画像処理段階による画像変化を追跡するだけでよい場合、新シーケンスが宣言されるごとに別ファイルを生成し、登録することができる。
【0055】
図6は、本実施形態の画像編集装置100が生成し、管理する処理ログの例示的な実施形態を示す。画像処理モジュールには、固有の識別値、例えば、Image_proc**が割当てられており、例えば、数字シーケンスでもよいし、「平滑化」、「鮮鋭化」、「色相補正」などを示す固有の値が付されていてもよい。また、image_id0001は、直前の画像処理によって生成された画像を固有に指定する識別値である。さらに、“attrib=”に設定される値は、当該処理の処理パラメータを指定する値が登録される。
【0056】
図6に示した処理ログは、説明の目的から特定の処理ごとに別のラインを形成するように生成され、画像処理の処理ログは、最初の対象画像に対して処理を開始した処理シーケンスに対してポインタ「:INIT」を付与し、処理の変更については、ポインタ「:ALT@L」、追加についてはポインタ「:INST@M」、削除についてはポインタ「:SKIP@N」を付して、最初のシーケンスの後ろに順次追加して作成することができる(L、M、Nは、自然数である。)。
【0057】
処理を識別する値に後続する“@”以下の部分は、処理シーケンスに対して複数のシーケンス変更処理を行った場合、削除なら削除といった同一の種類の修正のうち、特定番目の修正を指定するための値である。また、図6に示した実施形態には、画像処理を施した場合の処理パラメータであるattribが追加されていて、attribとしては、ユーザが特定の処理を行う際に変更したパラメータが登録される。例えばattrib=defaultは、ユーザがデフォルト設定のパラメータのままで処理を行ったことを示し、attrib=user1は、ユーザがパラメータを、ユーザパラメータ1に変更を行ったことを示す。
【0058】
また、ユーザが、変更、追加、削除などの処理を直前までに生成した処理シーケンスに対して行う場合には、図4で説明したように例えば、処理シーケンス510では、直前の処理シーケンスであるポインタ=:ALTで示される処理シーケンスをコピーし、異なるポインタを宣言して処理ログを生成することができる。また、図6の形式で、処理ログを生成し、登録することにより、ユーザが処理履歴ごとに画像の変化を確認する際に、画像処理の再実行が不要となり、効率的に画像の変更履歴を取得し、より効率的に目的画像に近い処理シーケンスを予測することが可能となる。
【0059】
さらに図6に示した実施形態では、シーケンスで生成された画像の累積数を示すカウンタである、IMAGE_COUNTERが示されている。IMAGE_COUNTERは、ユーザがシーケンスにおいてユーザイベントとして登録した画像処理によって生成された画像の数を累積してカウントする値であり、一旦追加された画像処理が削除された場合でも削除に対応する値は減分されない。また、IMAGE_COUNTERの値は、特定の処理が削除され、その後に別の処理が追加された場合、IMAGE_COUNTERの値がさらに増分されて、当該追加された画像処理のシーケンス上での履歴順を指定するとともに削除された、画像についても識別可能とする。
【0060】
例えば画像を固有に識別する識別値は、Image_idINCR(INCRは、増分後のIMAGE_COUNTERの値である。)とすることができ、図6の各処理ログ上で生成された画像を固有に特定するために利用される。削除された画像処理の出力画像は、そのまま残しておくこともできるし、RAMなどの容量に応じて削除前および変更前の画像処理の出力画像は、当該処理の登録に対応して削除することができる。
【0061】
この結果、ユーザが特定の処理を何度追加、削除、変更しても新たに生成される画像には、同一のシーケンス位置であっても異なる画像を割当てることができ処理ログが指定されただけで、該当する画像を取得し、処理シーケンス順に配置することが可能となる。
【0062】
さらに、図6には、処理ログを、シーケンス510を、新シーケンスの宣言とともに別ファイルとして登録する実施形態を示す。新シーケンスの宣言とともに処理ログを別ファイルとして登録する場合、シーケンス510は、ファイル名=INIT.logとして登録され、変更に関連するシーケンス610は、ファイル名=ALT.logなどとして登録される。
【0063】
図7は、本実施形態で処理の追加、修正、削除を行う場合の画像編集装置100が実行する処理の、図4のポイントAに後続する処理のフローチャートである。図7の処理は、図4のポイントAから制御を渡されて開始し、ステップS700で画像処理実行部220が、指定された処理の引数を参照して当該処理を実行するアプリケーションを起動し、その入力データとして直前処理の出力画像データを指定して処理を開始させる。ステップS701では、表示ボックスを新たに生成し、生成した表示ボックス内に処理結果の画像を表示する。ステップS702では、後続する選択オブジェクトの値がnullではないかを判断して、後続処理が設定されているか否かを判断し、後続する処理が設定されていない場合(no)、ポイントCから、図4のポイントCに処理を分岐させ、処理を終了する。
【0064】
一方、ステップS702で、後続する処理が既に定義されている場合(yes)ステップS703でステップS700の処理で生成された出力画像を後続処理の入力画像として設定し、図7のポイントBから図4のポイントAを経て、図7のポイントAに達し、さらに後続する処理を実行させる。図7の処理によって、ユーザが処理シーケンス上の任意の処理について追加、変更、削除した場合であっても当該シーケンスの修正に対応する画像を効率的にユーザに提示することができる。なお、ユーザが目的画像に満足した場合、目的画像を任意のフォーマットで画像蓄積部210に格納し、ユーザが別の目的のための利用を可能とする。
【0065】
以下、図8〜図11を使用して、本実施形態の画像編集装置100による画像編集処理を具体的に説明する。図8は、本実施形態でユーザが対象画像を取得して処理を開始した状態でのウィンドウ800の実施形態を示す。なお、図8〜図11では、説明の便宜上、保存、キャンセルなどの追加的なボタンオブジェクトについては省略している。ユーザが処理を開始し、対象画像を決定すると、ウィンドウ800には、表示ボックス810が表示され、表示ボックス810内に対象画像812が表示される。対象画像812は、適宜縮小した画像でもよいし、サムネイルとされていてもよい。
【0066】
また、表示ボックス810からは、テキスト表示=処理ボックスが与えられた選択オブジェクト816がリンク814によってポイントされている。選択オブジェクト816は、マウスなどを介してダブルクリック、シングルクリック、または右クリックなどのユーザイベントを検出して処理選択を促すためのポップアップメニュー818を表示させる。ポップアップメニュー818には、例示的な目的で、「処理の追加」、「処理の削除」、「処理の変更」、「パラメータ変更」などのメニュー項目が示されている。
【0067】
選択オブジェクト816は、選択オブジェクト816の位置で実行するべき画像処理の引数を設定し、画像処理実行部220に引数として渡し、ユーザが選択・登録した画像処理モジュールの呼出を可能とするオブジェクトである。選択オブジェクト816は、選択オブジェクト816に処理の引数である変数appl_name=nullである場合、図8に示すように例えば「処理ボックス」などの名称を表示し、画像処理が定義された後には、例えば色相補正などの処理をダイジェストしたテキストを表示する。
【0068】
図8のウィンドウ800でユーザが、選択オブジェクト816に対して定義されたユーザイベントを行うと、画像編集装置100は、ポップアップメニュー818をウィンドウ800に表示させる。ポップアップメニュー818では、図8の段階では、選択オブジェクト816の位置で画像処理を登録する「処理の追加」オプションメニュー820のみが選択可能とされている。他のオプションメニューは、現在選択オブジェクトには画像処理を指定する引数が定義されていない状態なので、グレー表示とされていて、ユーザから見て選択不可とされている。ユーザが、「処理の追加」オプションメニュー820を選択することで、画像処理の追加を可能とする処理一覧ウィンドウが表示され、画像処理モジュールの選択が可能とされる。
【0069】
図9は、本実施形態の画像編集装置100の図8に後続する処理後に表示するウィンドウ900の実施形態である。ユーザが選択オブジェクト816から画像編集装置100に対して処理の追加を指令すると、処理一覧ウィンドウ920が表示される。処理一覧ウィンドウ920には、画像編集装置100が実行可能な画像処理種類が、選択オブジェクト816を類推させるオブジェクト922として表示されている。ユーザは、処理一覧ウィンドウ920から平滑化と表示されたオブジェクト922にマウス924を一致させ、選択オブジェクト910にドラッグドロップすることで、オブジェクト922に割当てられ、対応する画像処理を呼出すための引数が、選択オブジェクト910にappl_name=flat.exeなどとして登録される。
【0070】
選択オブジェクト910は、画像処理を呼び出すための引数がnullではないことを検出すると、画像処理実行部220に設定された引数を渡し、対応するアプリケーションモジュールを起動する。例えば、引数がappl_name=image_proc01として設定され、入力画像データがsourceの場合、画像処理実行部220は、引数を受領して、実行コード<appl_code.exe“D:\source”>を実行し、その処理結果を、image_id0001などとしてRAMに格納する。画像表示部216は、画像処理実行部220の処理が終了する通知を受領すると、表示ボックス914を生成し、画像処理の出力画像をRAMなどから読出して表示ボックス914内部に表示する。なお、図10に示した画像処理オプションは、単なる例示であり、本実施形態では画像編集装置100が実装する画像処理モジュールであれば、制限無く対応することができる。
【0071】
図10は、本実施形態でさらに処理を追加する場合の実施形態である。図10に示したウィンドウ1000では、図9の実施形態で説明したように、選択オブジェクト910に対して処理=平滑化が設定され、画像処理実行部220は、画像処理を実行し出力画像データを生成し、その画像916を表示ボックス914内に表示させている。なお、説明する実施形態では、画像916を固有に指定する識別値は、image_id0001であるものとする。
【0072】
さらに画像処理実行部220の処理が完了すると、表示ボックス914からリンクによりポイントされた新たな選択オブジェクト1010が表示される。ユーザは、新たに表示された選択オブジェクト1010にマウスを一致させ、定義されたユーザイベントを発生させることで、後続する画像処理を追加することができる。追加された画像処理は、例えば、処理一覧ウィンドウ920内の「鮮鋭化」とすることができ、オブジェクト1016を選択オブジェクト1010にドラッグドロップすることにより、選択オブジェクト1010にappl_name=image_proc02が設定される。画像処理実行部220は、実行コード<imageproc02.exe“image_id0001”>を実行して出力画像image_id0002を生成した後、RAMに出力画像を格納する。そして画像表示部216に通知して、新たな表示ボックス1018を生成し、その内部にimage_id0002で参照される画像1020を表示させている。以上の処理を繰り返すことにより、ユーザは、対象画像に対して連続して特定の画像処理を施した結果を取得することができる。
【0073】
図11は、本実施形態の処理追加の他の実施形態に分類されるシーケンスの変更処理の実施形態を示す。図11に示す実施形態は、シーケンスの変更処理のうち、画像処理の入替によるシーケンス変更である。図11に示す実施形態は、図5の処理シーケンス510を生成する処理の実施形態である。表示ボックス1110内には、原画像1112が表示されており、ユーザは、図11に示すウィンドウ1100では、既に原画像1112に対し平滑化の処理を適用し、図9で示すウィンドウ900で示される状態にあったものとする。
【0074】
ユーザは、原画像1112に対して平滑化処理を施して得られた画像916に満足せず、平滑化処理の前に鮮鋭化処理を施してはどうだろうか、と考えたものとする。この場合、ユーザは、図9の選択オブジェクト910をポイントするリンク814または既に「平滑化」処理が登録されている選択オブジェクト910にマウスカーソルを一致させ、定義されたユーザイベント、例えばマウス右クリックを生成する。そうすると、ポップアップメニューが表示され、処理の追加を選択すると、処理一覧ウィンドウ1130が表示される。
【0075】
ユーザがマウスカーソルを鮮鋭化オブジェクト1134上に一致させ、リンク1132または選択オブジェクト1118上にドラッグドロップすることにより、ユーザは、ユーザがシーケンスの中間位置に画像処理を追加することが可能とされる。この場合、処理を追加する処理シーケンスの位置は、ユーザイベントが発生したGUI上の処理シーケンスである、平滑化処理の直前として設定される。図11に示したウィンドウ1100は、ユーザが図8で示したウィンドウ800上で、以上に説明した処理を実行することにより生成される。
【0076】
例えば、ユーザが鮮鋭化オブジェクト1134をリンク1132にドラッグドロップする。リンク1132に定義されたリンクオブジェクトは、ドラッグドロップのユーザイベントを検出すると、当該ユーザイベントに関連するオブジェクトの画像処理を呼出すための引数appl_name=nullであるか否かを判断し、nullではない有意の値を有している場合、シーケンスにおいて当該位置の直後に定義された画像処理の前に画像処理を追加してappl_name=image_proc003などを設定し、原画像1112を、追加した画像処理の入力画像として設定して画像処理を直ちに実行する。そして実行した結果の出力画像を、既に定義されている平滑化処理の入力画像として渡し、平滑化処理を実行させる。
【0077】
この結果、ユーザは、原画像1112に対して平滑化処理が定義されていた処理シーケンス上の位置で平滑化1116ではなく、鮮鋭化1118の処理を実行した画像1122を得ることができる。さらに画像処理実行部220は、既に定義されている平滑化処理1124を、鮮鋭化処理を実行した結果である画像1122に対して実行し、表示ボックス1126内に鮮鋭化処理後に平滑化処理された画像1128を表示する。なお、処理シーケンスを変更して生成された画像データには、それぞれ固有の識別値を付してRAMなどに登録しておく点については上述した通りである。
【0078】
なお、処理の変更および削除については、ポップアップメニューを表示させるユーザイベントの位置を選択オブジェクト1118とすることでそれぞれ処理シーケンスの変更を指令することができる。
【0079】
また、本実施形態の画像編集装置100は、処理シーケンスを変更することなく、処理シーケンスが含む画像処理のパラメータを修正し、パラメータ修正に対応した画像データのシーケンスも生成する。パラメータ変更を可能とするGUIは、処理の追加、削除、変更とは別に用意することもできるが、追加・変更・削除を行うためのポップアップメニューのメニュー項目としておくことが、プログラムモジュールの増加を伴うことなく、またユーザビリティの上で好ましい。
【0080】
パラメータ変更のメニューは、図8および図10に示されるように、ポップアップメニュー818に追加されており、既に処理が定義されている選択オブジェクト上で、ユーザイベントが発生した場合、処理を指定する引数がnullではないことを検出してグレー表示からブラック表示に変更され、パラメータの変更が可能とされる。
【0081】
ユーザが、パラメータの変更メニューを選択すると、対応する処理で設定可能なパラメータまたはパラメータの一覧が表示され、ユーザが選択した処理の画像処理パラメータを変更することができる。ユーザが変更したパラメータは、処理ログの例えばattrib変数に設定される。
【0082】
図12は、本実施形態で、パラメータを変更する処理のフローチャートである。図12の処理は、ステップS1200でユーザイベントを待機する状態から開始する。ステップS1201で、パラメータ設定を指令するユーザイベントが既に処理が設定されている選択オブジェクト上で発生したか否かを判断し、パラメータ設定を要求するユーザイベントが発生しない場合(no)、ステップS1201で待機する。
【0083】
ステップS1201で、パラメータ操作を要求するユーザイベントが発生した場合(yes)、ステップS1202でパラメータ設定を行うためのGUIをウィンドウ上に表示する。ステップS1203では、現在登録されている既処理のパラメータ値とGUI上からその時点で設定されているパラメータ値とを比較して、パラメータの設定値変更を検査する。ステップS1203でパラメータ設定に変更があったと判断した場合(yes)、ステップS1204で処理パラメータを変更し、ポイントAから図7のポイントAに制御を渡し、画像処理実行部220を呼出して以後のシーケンスの順で画像処理を実行させる。一方、パラメータ変更がない場合(no)、図12のポイントCから図4のポイントCに制御を渡し、画像編集を終了させる。
【0084】
なお、パラメータ変更がないとの判断は、これまで知られたいかなる方法を使用しても行うことができ、例えば、パラメータ設定のGUI表示にタイムアウトを設け、タイムアウトタイマの満了によりパラメータ変更無しと、判断することができる。
【0085】
図13は、本実施形態によるパラメータ設定変更の実施形態で表示されるウィンドウ1300を示す。図13に示した実施形態では、対象画像1312が表示ボックス1310内に表示され、平滑化処理された後の画像が、表示ボックス1314に表示されている、表示ボックス1314に表示された画像は、画像処理実行部220が処理を実行する際に、デフォルト設定されたパラメータ値を使用して生成されている。ユーザが選択オブジェクト1330上でユーザイベントを生成すると、ポップアップメニュー1316が表示される。図13の実施形態では、選択オブジェクト1330に有意な引数が指定されているので、ポップアップメニュー1316上で、パラメータ変更のメニュー項目がブラック表示されている。この段階で、ユーザは、パラメータ変更を指定することが可能とされる。
【0086】
ユーザが、パラメータ変更を選択すると、パラメータを変更するためのGUI、説明する実施形態では、例えばエッジカットオフレベルを修正するためのスライダバー1320が表示される。ユーザがスライダバー1320からパラメータ値を修正したと画像編集装置100が判断すると、当該パラメータの変更が平滑化画像処理に反映され、表示ボックス1314内の画像が、表示ボックス1322内に示される画像へと変更される。ユーザは当該パラメータ変更に満足しない場合、さらにスライダバー1324を操作し、パラメータ値を変更して、表示ボックス1326内に表示される画像を、表示ボックス1314内に生成させる。
【0087】
なお、他の実施形態では、パラメータ変更に対応する画像で原画像を置換表示するのではなく、図13に示すように例示列挙し、表示ボックス1322、1326のいずれかを選択するユーザイベントの検出により表示ボックス1314の画像に反映させることができる。当該実施形態の場合、処理ログには、選択した表示ボックス内の画像を生成した際のパラメータで、attrib変数が書き換えられる。本実施形態では、設定可能なパラメータは、エッジカットオフレベルの他、階調レベル、色バランス、色相、モノクロ/グレースケール/カラーモード指定、圧縮レベル、解像度、ディザリング方法(ランダムディザかパターンディザか)、輝度ダイナミックレンジ、コントラストなどを例示的に挙げることができるが、これらのパラメータに限定されるものではない。
【0088】
図14は、本実施形態で画像処理履歴を確認しながらユーザが処理シーケンスを設定する実施形態を示す。図14のウィンドウ1400では、ユーザが指令した処理シーケンスについて、処理1ステップごとに処理履歴が画像と共に表示される。処理ステージ1410では、対象画像の選択に対応する画像が表示される。また処理ステージ1420では、ユーザが対象画像に対して平滑化処理を施した場合の画像と対象画像とが表示されている。
【0089】
さらに処理ステージ1430では、平滑化後にユーザが鮮鋭化処理を追加し、鮮鋭化処理後の画像が最も右手側に表示されている。図14の履歴表示を行うことで、ユーザは、画像特性の変化について一連の予測を行うことができ、処理の追加、変更、削除を効率化することができる。また、処理ステージ1440は、最新に実行された画像処理の入力画像データ、処理内容、および出力画像データを抽出して表示する表示フレームとされている。
【0090】
例えばユーザが、現在の処理結果を表示する表示フレーム内で新たな処理を追加することも可能であり、この際には、図9、図10、図11で説明した処理を使用して新規な画像処理を追加したり、修正したりすることができる。現在の処理結果を表示する表示フレーム内で処理シーケンスを修正した場合、最新の全処理シーケンスが処理ステージ1430内に表示される。表示フレームの大きさが不足する場合には、カーソルが移動して、処理ステージ1410の画像を非表示とし、その代わりに最新の全処理シーケンスを表示させることができる。
【0091】
なお、図14のGUIは、図6で説明した処理ログ600を使用して生成することができ、各処理ステージは、処理ログの第1行目から読み取りを開始し、第1ステージに対象画像の画像データを表示し、第2ステージに第1行目の処理内容に対応する画像およびオブジェクトを表示し、第3ステージに第1行目および第2行目の処理内容に対応する画像およびオブジェクトを表示させることで、順次生成することができる。また、現在の処理結果は、処理ログ600の最終行の記述を読み込んで、対応する画像およびオブジェクトを表示させることで生成できる。また、本実施形態では、履歴表示されている処理シーケンスをコピーして、コピーした処理シーケンスに対して画像処理の変更またはパラメータ設定の変更を行うこともできる。例えば、説明する実施形態では、図14の処理ステージ1420GUI上でダブルクリックなどの定義済みユーザイベントを生成すると、処理ステージ1420が表示フレーム内の適切な箇所にコピーおよび表示される。コピーシーケンスは、図6の処理ログの対応する部分についてもコピーし、例えば、ポインタ「:CPOY」を付して新規シーケンスを宣言する。ユーザが当該コピーシーケンスに対応する処理ステージのオブジェクトに対して図9から図11の説明と同様の操作を適用することで、処理シーケンスの途中から切り出したシーケンスを初期シーケンスとして、処理の新規追加や修正ができる。
【0092】
ユーザが最終的に生成された画像が目的画像として許容できると判断した場合、ユーザは、当該最終的に生成された画像をマウスカーソルをポイントし、マウス右クリックなどのユーザイベントを生成することで、ファイル保存のメニュー項目を含むポップアップウィンドウを表示させ、ファイル保存を選択することで、最終画像を目的画像として画像蓄積部210に登録することができる。
【0093】
また、図14に示した中間的に得られた画像については、一連の画像処理シーケンスが終了するまで、RAMなどに、image_id000N(Nは、自然数である。)などの固有の識別値を付して保持されている。ユーザが、目的画像としてどちらが好ましいかについて比較を行うことが必要であったり、処理ログ自体を保存しておきたい場合には、特定の中間画像のみを画像蓄積部210に記録することができる。また、ユーザが処理ログ自体を記録した場合には、処理ログ600および対応する画像を対応付けてハードディスク装置や光学ドライブなどの外付け記憶装置124に格納することができる。また、処理ログ600を記録する場合に、画像を固有に識別する識別値について変数に置換してマクロオブジェクトとして登録しておき、以後の処理で、対象画像を指定するだけで登録した処理シーケンスを自動実行し、同一の処理を施した目的画像を生成させることができる。
【0094】
処理ログ600をマクロオブジェクトとして登録することにより、大量の処理画像に対して同一の画像処理を施す処理が効率化でき、またユーザの嗜好などによる画像処理のばらつきがなくなるので、より高精度の画像処理を効率的に実行することができる。
【0095】
本実施形態の上記機能は、VisualBasic、C、C#、C++、Java(登録商標)、JavaBeans(登録商標)、JavaApplet(登録商標)、JavaScript(登録商標)、Perl、Rubyなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なアプリケーションプログラムやプラグインプログラムにより実現でき、プログラムは、ハードディスク装置、CD−ROM、MO、フレキシブルディスク、EEPROM、EPROMなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【0096】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【0097】
100…画像編集装置、110…CPU、112…メモリ、120…システムバス、114…グラフィックスドライバ、118…ディスプレイ装置、116…ネットワークデバイス、122…バスブリッジ、128…バス、124…記憶装置、126…入力装置、200…機能ブロック(画像編集装置)、212…画像ファイル選択部、214…画像データ取得部、216…画像表示部、210…画像蓄積部、218…画像処理選択部、220…画像処理実行部、222…処理ログ記録部、300…ウィンドウ、312…表示ボックス、310…画像、314…選択オブジェクト、316…表示ボックス、318…画像、320…選択オブジェクト、322…表示ボックス、324…画像、326…選択オブジェクト、328…表示ボックス、330…画像、332…選択オブジェクト
【先行技術文献】
【特許文献】
【0098】
【特許文献1】特許第3890096号明細書
【技術分野】
【0001】
本発明は、画像処理技術に関し、より詳細には、画像に対する画像処理のシーケンス決定を効率化する画像編集装置、画像編集方法、およびプログラムに関する。
【背景技術】
【0002】
デジタル画像に対しては種々の画像処理が可能であり、種々の効果を対象画像に施して画像を加工する、いわゆる画像処理は、市販ソフトウェアから無料のフリーウェアに至るまで多種多様なものが知られている。ユーザが画像に対して特定の効果を施したい場合、ユーザが使用している画像処理ソフトから目的とする効果を指定し、その効果の適用度合いなどを表す各種パラメータを設定するのが一般的な操作シーケンスである。
【0003】
上述した操作シーケンスを行う際に、画像処理ソフトによっては、処理対象の画像の特徴を判断し、パラメータを推奨値へと自動的に設定する技術が知られている。また、画像処理では、対象画像に対して複数の効果を連続的に適用することも多い。
【0004】
この際、対象画像に対して複数の効果を連続して適用する場合、効果適用の順序によっては、画像劣化や色再現性劣化などの画像劣化が予期せずに発生してしまうこともある。しかしながら、従来知られている画像処理ソフトは、対象画像に対して複数の効果をシーケンスとして適用する際、画像処理を適用するシーケンスの判断は、ユーザの選択に任せられている場合が多い。効果適用のシーケンスをユーザの選択に任せる場合、ユーザ自身が効果の適用順序を選択することになるので、以下のような問題があった。
(1)ユーザが目的の画像を得るため、どのような順序で効果を適用すればよいか、が直感的に解りづらいこと、
(2)途中の効果、例えば、5種類の効果を適用する場合、3番目に適用する効果の種類を変更するためには、対象画像に戻って再度取り消した画像処理をシーケンス順に適用するなど非常に手間がかかること、である。
【0005】
上記の問題のうち、(1)に関してみれば、対象画像に対して複数の効果を適用する場合、各効果を適用する順によって最終的に得られる画像が異なってくることから、様々なパターンについてトライアンドエラーで試す必要がある。また、(2)に関しては、例えば効果の適用を最初からやり直すであるとか、undo機能を用いて変更したい効果まで操作を取り消した上で変更を行い、ユーザが記憶している効果の適用順を変えて後続する効果を再度適用するといった作業が必要である。
【0006】
これまで、上述した画像処理を効率化するための方法が知られており、例えば、特許第3890096号明細書(特許文献1)には、画像編集に不慣れなユーザであっても容易に画像編集ができる画像編集システムが記載されている。特許文献1は、複数の画像編集処理を、異なるシーケンスで適用した結果を、ディスプレイ装置上に表示させ、ユーザに好みの処理結果を選択させるものである。
【0007】
特許文献1に記載された画像編集システムは、複数の画像処理結果をユーザに提示してユーザが最も好ましいと思うものを選択させることにより、効果適用のシーケンス選択を効率化することが可能である。しかしながら、特許文献1では、効果適用の選択を効率化する反面、処理の種類やシーケンス、効果適用度合いなどのパラメータ設定は、装置が予め用意されたものに限定されてしまい、ユーザの選択の自由度が狭められてしまうという問題が生じていた。
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は、上記従来技術の課題を解決するためになされたものであり、本発明は、画像に対して複数の効果を適用する際に、ユーザが、効率的に対象画像をユーザが目的とする視覚的効果を有する結果画像とする、画像編集装置、画像編集方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明では、上記課題を解決するために、デスクトップ画面上に表示したGUIを介して画像編集を行う画像編集装置は、編集するべき原画像を取得する画像データ取得手段と、GUIに表示領域を割当てて、取得した原画像を表示する画像表示手段と、GUIに表示された原画像に対して適用するべき画像処理を選択させる選択領域および登録するべき画像処理を前記GUIに表示させる画像処理選択手段と、画像処理選択手段による選択領域への前記画像処理の登録に応答して、登録された前記画像処理の入力画像に対し登録された前記画像処理を適用して出力画像を生成する画像処理実行手段とを含んでいる。
【0010】
画像表示手段は、生成された出力画像を取得して画像編集のシーケンスに対応付けて出力画像のための表示領域を生成し、生成した前記表示領域に取得した出力画像を表示している。本発明では、画像処理選択手段は、選択領域に登録するべき画像処理を変更させる画像処理変更手段を含み、画像処理実行手段は、画像処理選択手段から変更の指令を受領すると、変更に関連する既登録画像処理をシーケンスの順で実行して画像表示手段に渡し、シーケンスで変更前に生成されていた表示領域の表示画像を更新する。
【0011】
さらに本発明では、画像処理選択手段が選択領域に登録された既登録画像処理を削除する画像処理削除手段を含み、画像処理実行手段は、画像処理選択手段からの削除の指令を受領して、シーケンスに残存し、かつ削除に関連する既登録画像処理をシーケンスの順で実行して画像表示手段に渡し、シーケンスで変更前に生成されていた表示領域の出力画像を更新する。
【0012】
また、本発明では、画像処理選択手段は、選択領域の既登録画像処理のシーケンス順を入替える画像処理入替手段を含み、画像処理実行手段は、画像処理選択手段からの指令を受領し、入替に関連する既登録画像処理をシーケンスを入替後の順序で実行して、出力画像を画像表示手段に渡しシーケンスで入替前に生成されていた表示領域の画像を当該出力画像で更新することができる。
【0013】
画像処理選択手段は、選択領域の既登録画像処理のパラメータを変更するパラメータ変更手段を含み、画像処理実行手段は、パラメータ変更手段からのパラメータの変更を検出し、変更後のパラメータを用いてパラメータの変更に関連する既登録画像処理をシーケンスの順で実行して、シーケンスでパラメータ変更前に生成されていた前記表示領域の出力画像を更新することができる。
【0014】
さらに、画像編集装置は、画像処理の履歴を記録する処理ログ記録手段を含み、処理ログ記録手段は、新たな画像処理の追加、既登録画像処理の変更、削除、またはパラメータ変更によりシーケンスに変化があった場合、シーケンスの変化により生成される新たな画像をシーケンスの中で固有に識別する識別値を付して、シーケンスを処理ログとして登録することができる。
【0015】
さらに本発明では、コンピュータが実行する画像編集方法であって、
編集するべき原画像を取得して、取得した原画像をGUIに表示領域を割当て表示するステップと、
GUIに表示された原画像に対して適用するべき画像処理を選択させる選択領域および登録するべき画像処理を前記GUIに表示するステップと、
選択領域への画像処理の登録に応答して、登録された画像処理の入力画像に対し登録された画像処理を適用して出力画像を生成するステップと、
生成された出力画像を取得し、画像編集のシーケンスに対応付けて出力画像のための表示領域を生成し、生成した表示領域に取得した当該出力画像を表示するステップと
を実行する、画像編集方法が提供される。
【0016】
本発明では、選択領域に登録された画像処理が存在しない場合には、選択領域に画像処理を追加し、画像処理が登録されている場合には、登録された画像処理の変更、削除または画像処理が適用するパラメータ変更を可能とするGUIを表示し、画像処理の追加、変更、削除またはパラメータ変更を可能とするステップを含むことができる。
【0017】
本発明では、さらにシーケンスの指定した位置での画像処理の変更によりシーケンスを入替するステップを含むことができる。
【0018】
本発明ではさらに、上述した機能手段として機能させるためのコンピュータ実行可能なプログラムおよび当該プログラムを格納する、コンピュータ可読な記録媒体が提供できる。
【0019】
本発明によれば、ユーザが目的とする結果画像を得る上で、画像処理の効果を確認しながら効率的に画像処理を適用するシーケンスおよび画像処理の程度をリアルタイムで確認しながら、目的とする結果画像を得るための画像処理種類に制限を受けずに画像処理シーケンスを決定することが可能となる。また、本発明によれば、ユーザが、画像処理を適用する順序やパラメータをユーザの目的に充分適合させつつ、任意に変更することが可能とされる。さらに、複数の画像処理を適用することにより結果画像がどのように変化していくかを把握することができ、効果の適用要否を判断しながら、目的とする結果画像を得るための最適シーケンスを効率的に決定することができる。
【図面の簡単な説明】
【0020】
【図1】本実施形態の画像編集装置100のハードウェア構成を示した図。
【図2】本実施形態の画像編集装置100の機能ブロック図
【図3】本実施形態の画像編集装置100がデスクトップ画面上に表示する、GUIの実施形態を示した図。
【図4】図3のGUIを介して画像編集装置100が実行する処理のフローチャート。
【図5】図5を参照してより詳細に処理の追加、変更、削除に対応する入出力データフローを示した図。
【図6】本実施形態の画像編集装置100が生成し、管理する処理ログの例示的な実施形態を示した図。
【図7】本実施形態で処理の追加、修正、削除を行う場合の画像編集装置100が実行する処理の、図4のポイントAに後続する処理のフローチャート。
【図8】本実施形態でユーザが対象画像を取得して処理を開始した状態でのウィンドウ800の実施形態を示した図。
【図9】本実施形態の画像編集装置100の図8に後続する処理後に表示するウィンドウ900の実施形態を示した図。
【図10】本実施形態でさらに処理を追加する場合のウィンドウ1000の実施形態を示した図。
【図11】本実施形態の処理追加の他の実施形態を示した図。
【図12】本実施形態で、パラメータを変更する処理のフローチャート。
【図13】本実施形態によるパラメータ設定変更の実施形態で表示されるウィンドウ1300を示した図。
【図14】本実施形態で画像処理履歴を確認しながらユーザが処理シーケンスを設定する実施形態を示した図。
【発明を実施するための形態】
【0021】
以下、本発明を図面に示した実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図1は、本実施形態の画像編集装置100のハードウェア構成を示す。画像編集装置100は、パーソナルコンピュータ、ワークステーション、サーバなどとして構成することができる。画像編集装置100は、中央処理装置(CPU)110と、CPU110の処理を可能とするRAM、DRAMなどの固体メモリ素子から形成されるメモリ112とを備える。CUP110およびメモリ112は、システムバス120を介して、画像編集装置100の他のデバイスやドライバに接続されている。システムバス120には、グラフィックスドライバ114およびネットワークデバイス(NIC)116が接続されている。グラフィックスドライバ114は、バスを介してディスプレイ装置118に接続されて、CPU110による処理結果をディスプレイ画面上に表示させている。また、ネットワークデバイス116は、トランスポート層レベルおよび物理層レベルで画像編集装置100をネットワークへと接続し、ネットワークを介してのデータ送受信を可能としている。
【0022】
システムバス120には、さらにI/Oバスブリッジ122が接続されている。I/Oバスブリッジ122の下流側には、PCIなどのI/Oバス128を介して、IDE、ATA、ATAPI、SATA、SCSI、USBなどにより、ハードディスク、各種光学ディスクなどの外付け記憶装置124が接続されている。また、I/Oバス128には、USBなどのバスを介して、キーボードやマウスなどの入力装置126が接続され、ユーザによる入力および指令を受付けている。
【0023】
CPU110としては、より具体的には、例えば、PENTIUM(登録商標)〜PENTIUM(登録商標)4、PENTIUM(登録商標)互換CPU、POWERPC(登録商標)、MIPSなどを挙げることができる。
【0024】
また、画像編集装置100が使用するオペレーティング・システム(OS)としては、MacOS(登録商標)、Windows(登録商標)、Windows(登録商標)200X Server、UNIX(登録商標)、AIX(登録商標)、LINUX(登録商標)、またはそれ以外の適切なOS、例えばFreeBSDなどを挙げることができる。画像編集装置100は、上述したハードウェア・ソフトウェア基盤の上で、C、C++、C#、Visual C++、VisualBasic、Java(登録商標)、JavaScript(登録商標)、Perl、Rubyなどのオブジェクト指向のプログラミング言語により記述されたアプリケーションプログラムを実行し、後述する機能処理手段としてコンピュータを機能させている。
【0025】
図2は、本実施形態の画像編集装置100の機能ブロック図である。画像編集装置100は、アプリケーションプログラムの実行により、コンピュータの機能手段として提供される、画像ファイル選択部212と、画像データ取得部214と、画像表示部216とを含んで構成されている。画像ファイル選択部212は、ハードディスク装置や光学ドライブなどの外付け記憶装置124に構成される画像蓄積部210に格納された画像ファイルのリストを表示させるグラフィカルユーザインタフェース(GUI)として構成することができ、ユーザが、外付け記憶装置などに記憶された画像ファイルの選択をサポートする。本実施形態で適用される画像ファイルは、これまで知られたいかなるフォーマットでもよく、BMP、GIF、JPEG、JPEG2000、TIFF、PNG、EMF、PostScript(登録商標)などを挙げることができる。
【0026】
画像データ取得部214は、画像ファイル選択部212を介してユーザが選択した画像ファイルを、アプリケーションによる処理のために、RAMなどのメモリ112に読込んで処理対象の画像データとして設定する。さらに画像編集装置100は、画像表示部216と、画像処理選択部218と、画像処理実行部220とを含んでいる。画像表示部216は、画像データを表示するための表示領域として機能する表示ボックスをディスプレイ画面上に確保し、表示するべき画像を、シーケンス順に、シーケンス上で対応する表示ボックス内に表示する処理を実行する。また、画像表示部216は、画像処理実行部220の処理した結果画像である出力画像データを受領して、ディスプレイ画面上に、選択された処理および処理の入力画像データとの対応付けを示す形式で、新たな表示ボックスを生成し、当該表示ボックスの内部に出力画像データを表示させる。
【0027】
画像処理選択部218は、ディスプレイ画面上に処理を選択するための種々のオブジェクトを表示させ、マウスやキーボード操作を介した当該オブジェクトの選択に対応してオブジェクトに割当てられた画像処理を呼出す処理を実行させるイベントハンドラなどとして実装することができる。画像処理選択部218が管理するオブジェクトとしては、画像処理の選択および登録を可能とする選択オブジェクトおよび画像と処理との関係を示し、特定の実施形態においては画像処理の追加を可能とするリンクオブジェクトなどを挙げることができる。各オブジェクトには、当該オブジェクト領域に関連付けてユーザイベントが定義されていて、ユーザイベントを受領して、画像処理の追加、変更、削除、入替、画像処理パラメータの設定・変更などを可能とする。
【0028】
画像処理実行部220は、画像に対して選択された画像処理を実行する処理手段であり、画像編集装置100のアプリケーションモジュールとして実装することができる。また、他の実施形態では、独立したアプリケーションとして実装することもでき、この場合、画像編集装置100が、独立したアプリケーションを連携して起動する。画像編集装置100が実行する画像処理としては、画像データ取得部214が取得した画像データに対し、平滑化、コントラスト調整、解像度増減、γ補正、2値化しきい値設定、明度調整、カラーバランス調整、階調調整、カラー/グレースケール/モノクロ2値調整などを挙げることができるが、これらの処理のみに限定されない。
【0029】
画像編集装置100は、さらに処理ログ記録部222を備えており、処理ログ記録部222は、画像処理選択部218が受領した処理指令および処理の入力画像データおよび出力画像データを対応付け、処理シーケンスとして記録する。画像処理実行部220が作成した入力画像データおよび出力画像データは、ユーザが指定するフォーマットまたはオリジナルフォーマットとして画像蓄積部210に格納され、ユーザにより他の目的のために利用される。
【0030】
処理ログ記録部222は、処理履歴を種々の形式で作成することができ、例えばテーブル、リストとして処理ログを生成することができる。さらに他の実施形態では、処理ログを、テキストエディタやJavaScript(登録商標)などへのインタフェース性を考慮して、テキスト、HTML、XMLなどのASCIIコードを含む文書として作成することができる。
【0031】
図3は、本実施形態の画像編集装置100がデスクトップ画面上に表示するGUIの実施形態を示す。図3に示す実施形態では、デスクトップ画面上にウィンドウ300が表示され、当該ウィンドウ300内に処理に関連する画像が表示される。例えばユーザが選択した画像は、後続する画像処理の入力画像データとされ、表示ボックス312内に画像310として表示されている。画像310は、対象画像がそのまま表示できるサイズであれば対象画像を表示することができるし、表示ボックス312内に表示できるサイズに適宜縮小して表示させることもできる。他の実施形態では、例えばEMFなどを使用してサムネイルを生成し、表示ボックス312内に表示させることができる。表示ボックス312からは、画像310に対して画像処理が可能であることを示すリンクを介して選択オブジェクト314が表示されている。
【0032】
選択オブジェクト314からはリンクを介して、さらに表示ボックス316が表示されており、表示ボックス316の内部には、選択オブジェクト314で選択された処理が施された後の画像318が表示されている。説明するシーケンスでは、選択オブジェクト314には、画像処理として平滑化が選択されていることが示されており、表示ボックス316に表示された画像318は、画像310に対して平滑化処理を施した後の画像とされている。
【0033】
図3に示す選択オブジェクト314は、本実施形態の画像処理を登録する選択領域として機能しており、その形状は、図3に示す以外にでも処理の選択や登録を可能とすることができる限り、特に制限はない。また、リンクは、リンクオブジェクトが関連付けられていて、リンクオブジェクトは、画像処理のシーケンスを視覚的に示すことができる限りその形状には特に限定はない。上述した選択オブジェクトおよびリンクには、ポップアップメニューを表示させる機能が定義されていて、選択オブジェクトからは、画像処理の登録や各機能のパラメータの設定が可能とされている。
【0034】
さらに表示ボックス316からは後続する画像処理が可能であることを示すリンクが、選択オブジェクト320をポイントするように表示される。ユーザは、画像318に対してさらに画像処理を実行することを希望する場合、選択オブジェクト320に対して、例えば「鮮鋭化」処理を登録すると、画像318を入力画像として鮮鋭化処理が実行される。そして、生成された出力画像は、図2の画像表示部216に送られ、新たに生成された表示ボックス322内に鮮鋭化処理された出力画像が、画像324として表示される。新たに表示された表示ボックス322からはさらに後続する画像処理が可能であることを示すリンクが別の選択オブジェクト326をポイントするように表示されている。ユーザが選択オブジェクト326に対して具体的な処理、例えば「色相補正」処理を登録すると、さらに新たに表示ボックス328が生成されて、表示ボックス328内部に登録した画像処理の色相補正された画像330が表示される。
【0035】
新たに生成された表示ボックス328からは、さらに後続する画像処理を設定できることを示すリンクが、後続処理を選択可能とする選択オブジェクト332をポイントしている。ユーザが表示ボックス322に表示された出力画像に満足しない場合、画像318および画像324について上述したと同様の処理を繰り返すことで、ユーザが希望する目標画像を生成する。
【0036】
図3に示した処理への入力画像および出力画像は、それぞれディジタルデータであり、固有の識別値が割当てられてRAMなどに格納され、以後の編集処理の入力画像として利用される。また、図3に示した画像処理のシーケンスは、例えば{(処理1、入力画像データの識別値、出力画像データの識別値)−(処理2、入力画像データの識別値、出力画像データの識別値)−(処理3、入力画像データの識別値、出力画像データの識別値),...,}のセットとして、テキストや構造化文書として処理ログ記録部222により処理シーケンス順を参照可能とする形式で、RAMなどに処理ログとして記録される。また、ユーザが特定の画像に対して複数の処理シーケンスを適用する場合には、複数の処理シーケンスを個別に参照できる形式として処理ログを生成することができる。
【0037】
図4は、図3のGUIを介して画像編集装置100が実行する処理のフローチャートを示す。図4の処理は、ステップS400から開始し、ステップS401で、処理オブジェクトが選択されたか否かを判断し、処理オブジェクトからマウスなどを介し、選択オブジェクトに定義されたユーザイベントを受領するまで(no)、ユーザイベントを待機する。ステップS401で、定義されたユーザイベントを検出すると(yes)、ステップS402で、当該処理オブジェクトに割当てられたメニューを、プルダウンメニュー、ポップアップメニューとして表示させる。ステップS403、S404、S405では、ユーザによるメニュー項目の選択を判断する。説明する実施形態では、メニュー項目として、デフォルト設定では、処理の追加、処理の変更、処理の削除、およびパラメータ設定が登録されているものとして説明する。
【0038】
ステップS403で、処理の追加が選択されたと判断する場合(yes)、ステップS408で処理一覧ウィンドウをウィンドウ300内の適切な位置に表示する。処理一覧ウィンドウは、ユーザが選択し選択オブジェクトに登録可能な画像処理をリストするサブウィンドウとして提供することができる。ステップS409でユーザイベントがあるまで(no)、ユーザイベントを待機する。ステップS409でユーザイベントを検出すると(yes)、ステップS410で処理シーケンスの最後の表示ボックスから延びるリンクでポイントされた処理オブジェクトに選択された処理を登録し、選択オブジェクトに、登録された処理の名称、例えば「平滑化」をテキスト表示させ、直ちに平滑化処理を実行し、ポイントAに後続する処理に制御を渡す。
【0039】
一方、ステップS403で、選択されたメニュー項目が処理の追加でない場合(no)、ステップS404で選択されたメニュー項目が処理の変更か否かを判断する。ステップS404で処理の変更が選択されたと判断した場合(yes)、画像編集装置100は、処理をステップS408に分岐させ、ステップS409で変更するべき目的の処理の選択を促すため、処理一覧ウィンドウを表示させ、以下、ステップS409以降と同一の処理を実行する。
【0040】
一方、ステップS404で、処理の変更ではないと判断した場合(no)、ステップS405で選択されたメニュー項目が処理の削除か否かを判断し、処理の削除でもない場合(no)、ステップS406で、選択オブジェクトの領域でメニュー表示を指定するユーザイベントが継続しているか否かを判断し、ユーザイベントが継続している場合(yes)、処理をステップS403に返して、繰り返し、ユーザイベントを待機する。一方、ユーザイベントが継続していない場合(no)、ステップS407で処理選択シーケンスを終了する。
【0041】
一方、ステップS405で処理の削除が選択されたと判断された場合(yes)、ステップS411で選択された選択オブジェクトをウィンドウ300上から削除し、ステップS412で、処理に対応する表示ボックスおよび画像をウィンドウ300上から削除する。さらに、ステップS413で後続する処理が既に設定されている場合(yes)、後続する画像処理をシーケンス上で直前の出力画像を、削除された画像処理の直後の画像処理の入力画像として設定し、画像処理を適用する。また、ステップS413で後続する処理が登録されていない場合(no)、処理をステップS407に分岐させ、当該シーケンス編集処理を終了させる。
【0042】
本実施形態で可能なシーケンスの変更は、図4で説明した処理の追加、変更、削除の他、シーケンスの途中での新規な画像処理の追加、既登録画像処理の削除、またはリンクオブジェクトの前後の既登録画像処理を相互に入れ換えるように変更することによる、シーケンスの入替である。シーケンスの途中での新規な画像処理の挿入は、選択オブジェクトまたはリンクオブジェクトに対する処理の登録によって行われる。シーケンスの途中での画像処理の削除は、図4のステップS405に後続する処理に従い実行することができる。入替については、より詳細に、図5および図6を使用して説明する。なお、シーケンスのリンクオブジェクトを挟んだ連携した画像処理の追加、変更、削除、処理を一括して実行する他のオブジェクトを、シーケンス入替手段として用意することができる。シーケンス入替手段は、複数の画像の一括選択および入替を、選択オブジェクトの既登録画像処理の変更を連続して適用する入替オブジェクトとして実装することができる。
【0043】
また、処理の変更は、選択オブジェクトに既に設定されている処理を異なる処理に変更することであり、メニュー項目の選択および処理一覧ウィンドウからの選択に応答して、シーケンス系列上で入力画像を変更することなく、選択オブジェクトに登録された画像処理を指定するための引数を新たに選択され登録された異なる画像処理の値に設定して、画像処理実行部220が実行する画像処理モジュールを呼出す際の引数を変更する処理である。
【0044】
図5を参照してより詳細に処理の追加、変更、削除に対応する入出力データフローを示す。図5のシーケンス500は、ユーザが処理の追加、変更、削除することなく画像処理を行ったシーケンスの実施形態である。シーケンス500では、画像処理装置100は、新シーケンスが開始したと判断し、ポインタ「:INIT」を付して処理ログの生成を開始する。ユーザは、初期の入力画像(原画像)として画像0を選択し、図3で説明したGUIに従って処理1を選択オブジェクトに登録し処理1を適用して画像1を生成する。処理2は、選択オブジェクトへの処理2の登録に応答して呼出される処理2モジュールが処理1の出力画像である画像1に対して処理2を適用し、出力画像として画像2を生成する。同様の処理は、処理3についても繰返すことで、ユーザが目的画像が得られたと判断するまで、処理の追加が行われる。
【0045】
ユーザがシーケンス500を生成して行く際に、画像編集装置100は、追加に関連する画像処理が、処理ログを参照し、現在シーケンスの最終の画像処理であるか否かを判断する。後続する画像処理が登録されていない場合、新シーケンスを示すポインタ「:INIT」を維持したまま処理ログを延長する。本実施形態では、ユーザにシーケンス生成を委ねているので、ユーザが最終処理でシーケンスの最後の画像処理を削除または変更する場合もあるが、シーケンスの最終処理が削除される場合は、(1)希望する効果がまったく得られなかった場合、(2)処理の選択ミスなど処理の試行錯誤の過程で発生する場合が多い。このため、画像編集装置100は、シーケンス500の最後の画像処理が削除された場合には、削除・変更に対応する新たなポインタを生成せず、最後の画像処理の追加・変更について別シーケンスを定義することなく、シーケンス500内の矢線で示すように、シーケンスを成長させることができる。
【0046】
なお、上述したシーケンスの最後の画像処理のトライアンドエラー的な削除・変更を含めて処理ログとして登録する場合には、新シーケンス内で、処理が削除されたことおよび変更されたことを示す識別値を別に付して、新シーケンス内で生存している処理を明示的に示すことにより、表示・非表示を制御した処理ログを生成することができる。
【0047】
一方、シーケンス510は、ユーザがシーケンスの途中にある処理2を処理Mに変更する場合の実施形態である。ユーザは、当初処理1、処理2、処理3,...のシーケンスで画像処理を施したが、目的画像が得られないと判断し、処理2を処理Mに変更する。シーケンス510では、画像処理実行部220は、当該変更に対応し、処理2以降の入力画像が変更されるため、画像処理モジュールを呼出すための引数を取得し、処理Mを実行するための画像処理モジュールを呼出す。画像処理モジュールは、直前の画像処理である処理1の出力画像を読込んで画像処理を施し、出力画像として画像2Mを生成する。その後、後続する処理3の入力画像として画像2Mを渡し、処理3の出力画像として画像3Mを生成する。
【0048】
処理ログは、シーケンス510の変更に対応し、処理シーケンス500の処理ログを読出して、新シーケンスに500をコピーし、例えば処理の変更を指定するため、ポインタ「:ALT」を付してシーケンス510の変更を開始する。画像処理選択部218は、変更の指令を受領したと判断すると、画像処理を指定する引数を検索し、当該引数を変更後の引数に書換える。その後、画像処理実行部220は、処理Mを呼出し、その入力画像としてシーケンス上で直前の画像処理の出力画像を設定し処理Mを適用して、処理Mの出力画像を画像2Mとして生成する。
【0049】
さらに画像処理実行部220は、当該シーケンス上で固有に出力画像を識別する識別値を付し、処理Mの出力画像として処理ログに設定する。当該処理が終了した後、画像2Mは、シーケンス上で後続する処理3の入力画像とされ、順次後続する処理の入力画像の識別値および出力画像の識別値に固有の識別値を割当ててシーケンス510の処理ログを生成する。生成した処理ログには、例えば「:ALT」などのポインタを付してシーケンス500に対応する処理ログの後ろに追加することで、処理ログの更新を行う。また、他の実施形態では、ポインタ「:ALT」に対応する新シーケンス名を付して別の処理ログとして登録することもできる。
【0050】
シーケンス520は、既存のシーケンス500に新たな処理である処理Nを追加する場合の実施形態である。シーケンス520で、処理Nが追加された場合、シーケンス上で、直前の処理の出力画像を処理Nの入力画像とし、処理Nの出力画像データを、直下流側の処理2の入力画像に設定して処理2を実行する。以後、処理3以下の処理を入力画像および出力画像を更新しながらそれぞれに固有の識別値を付して処理を実行する。処理ログ上においても、処理の挿入を指令するユーザイベントを受領すると、直前の処理ログをコピーして、例えば「:INST」などのポインタを付して新たなシーケンスを宣言し、挿入するべき画像処理のシーケンス上での位置に処理Nに対応する引数を記述し、入力画像をシーケンスの直前画像処理の出力画像として設定する。そして、処理Nの出力画像の識別値を直下流側の入力画像の値として渡すことで、シーケンシャルな画像処理を可能とし、処理ログを生成することができる。シーケンス520に対応する処理が終了した後、追加に対応する新たなシーケンス520を、既存の処理ログの後ろに追加することで、処理ログを更新する。
【0051】
また、シーケンス530は、処理2を行ったにも拘わらず、ユーザが処理2の有効性に疑問を生じた場合などに処理2をシーケンスから削除する場合に発生する。シーケンス530の処理は、シーケンス500をコピーして新たなシーケンス「:SKIP」を宣言して開始する。シーケンス530を生成するため、画像処理実行部220は、原画像を入力画像とし、処理1を実行し、処理1の出力画像を処理2にではなく、処理3の入力画像として設定し、処理3を実行させる。処理3の出力画像である画像3Oは、固有の識別値を付してRAMなどに登録される。
【0052】
その他の処理は、シーケンス510の処理と同様に行うことができる。シーケンス530に対応する処理ログは、削除した処理を指定する引数および出力画像の識別値を削除して、後続する処理の入力画像を削除された処理の入力画像で書換え、処理3の画像3Oの識別値を新たに処理3の出力として設定することで対応することができる。さらに後続する処理については、それぞれの処理の入力画像データおよび出力画像データの出力値を新たに生成された各識別値で書換えることで生成することができる。
【0053】
なお、処理の削除を指令するユーザイベントを検出した場合、画像編集装置100は、直前ログをコピーして例えば、「:INST」、「:ALT」、「:SKIP」といったポインタを生成して新たな処理シーケンスを宣言し、上述した処理を実行して処理ログを生成後、直前の処理ログの後ろに追加記入することで、処理ログの更新を終了する。また、画像処理を挿入する「:INST」コンテキストの途中で他の処理の削除が発生する場合も想定される。この場合、直ちに処理の挿入が指令された直前ログをコピーして新たな処理ログを宣言し、例えば既に行っている削除を含むシーケンスとは異なるポインタ、例えば「:INST+SKIP」などを付して処理ログを生成し、既存の処理ログの後ろに追加書き込みすることで、処理ログを更新することができる。
【0054】
処理ログを順次追加して行く実施形態は、処理を変更した場合、シーケンス上で画像処理の種類や順序によってどの程度変化するのかをレビューする際に好ましく用いることができる形態である。一方、特定の用途に応じて現在処理中のシーケンスのみに注目して画像処理段階による画像変化を追跡するだけでよい場合、新シーケンスが宣言されるごとに別ファイルを生成し、登録することができる。
【0055】
図6は、本実施形態の画像編集装置100が生成し、管理する処理ログの例示的な実施形態を示す。画像処理モジュールには、固有の識別値、例えば、Image_proc**が割当てられており、例えば、数字シーケンスでもよいし、「平滑化」、「鮮鋭化」、「色相補正」などを示す固有の値が付されていてもよい。また、image_id0001は、直前の画像処理によって生成された画像を固有に指定する識別値である。さらに、“attrib=”に設定される値は、当該処理の処理パラメータを指定する値が登録される。
【0056】
図6に示した処理ログは、説明の目的から特定の処理ごとに別のラインを形成するように生成され、画像処理の処理ログは、最初の対象画像に対して処理を開始した処理シーケンスに対してポインタ「:INIT」を付与し、処理の変更については、ポインタ「:ALT@L」、追加についてはポインタ「:INST@M」、削除についてはポインタ「:SKIP@N」を付して、最初のシーケンスの後ろに順次追加して作成することができる(L、M、Nは、自然数である。)。
【0057】
処理を識別する値に後続する“@”以下の部分は、処理シーケンスに対して複数のシーケンス変更処理を行った場合、削除なら削除といった同一の種類の修正のうち、特定番目の修正を指定するための値である。また、図6に示した実施形態には、画像処理を施した場合の処理パラメータであるattribが追加されていて、attribとしては、ユーザが特定の処理を行う際に変更したパラメータが登録される。例えばattrib=defaultは、ユーザがデフォルト設定のパラメータのままで処理を行ったことを示し、attrib=user1は、ユーザがパラメータを、ユーザパラメータ1に変更を行ったことを示す。
【0058】
また、ユーザが、変更、追加、削除などの処理を直前までに生成した処理シーケンスに対して行う場合には、図4で説明したように例えば、処理シーケンス510では、直前の処理シーケンスであるポインタ=:ALTで示される処理シーケンスをコピーし、異なるポインタを宣言して処理ログを生成することができる。また、図6の形式で、処理ログを生成し、登録することにより、ユーザが処理履歴ごとに画像の変化を確認する際に、画像処理の再実行が不要となり、効率的に画像の変更履歴を取得し、より効率的に目的画像に近い処理シーケンスを予測することが可能となる。
【0059】
さらに図6に示した実施形態では、シーケンスで生成された画像の累積数を示すカウンタである、IMAGE_COUNTERが示されている。IMAGE_COUNTERは、ユーザがシーケンスにおいてユーザイベントとして登録した画像処理によって生成された画像の数を累積してカウントする値であり、一旦追加された画像処理が削除された場合でも削除に対応する値は減分されない。また、IMAGE_COUNTERの値は、特定の処理が削除され、その後に別の処理が追加された場合、IMAGE_COUNTERの値がさらに増分されて、当該追加された画像処理のシーケンス上での履歴順を指定するとともに削除された、画像についても識別可能とする。
【0060】
例えば画像を固有に識別する識別値は、Image_idINCR(INCRは、増分後のIMAGE_COUNTERの値である。)とすることができ、図6の各処理ログ上で生成された画像を固有に特定するために利用される。削除された画像処理の出力画像は、そのまま残しておくこともできるし、RAMなどの容量に応じて削除前および変更前の画像処理の出力画像は、当該処理の登録に対応して削除することができる。
【0061】
この結果、ユーザが特定の処理を何度追加、削除、変更しても新たに生成される画像には、同一のシーケンス位置であっても異なる画像を割当てることができ処理ログが指定されただけで、該当する画像を取得し、処理シーケンス順に配置することが可能となる。
【0062】
さらに、図6には、処理ログを、シーケンス510を、新シーケンスの宣言とともに別ファイルとして登録する実施形態を示す。新シーケンスの宣言とともに処理ログを別ファイルとして登録する場合、シーケンス510は、ファイル名=INIT.logとして登録され、変更に関連するシーケンス610は、ファイル名=ALT.logなどとして登録される。
【0063】
図7は、本実施形態で処理の追加、修正、削除を行う場合の画像編集装置100が実行する処理の、図4のポイントAに後続する処理のフローチャートである。図7の処理は、図4のポイントAから制御を渡されて開始し、ステップS700で画像処理実行部220が、指定された処理の引数を参照して当該処理を実行するアプリケーションを起動し、その入力データとして直前処理の出力画像データを指定して処理を開始させる。ステップS701では、表示ボックスを新たに生成し、生成した表示ボックス内に処理結果の画像を表示する。ステップS702では、後続する選択オブジェクトの値がnullではないかを判断して、後続処理が設定されているか否かを判断し、後続する処理が設定されていない場合(no)、ポイントCから、図4のポイントCに処理を分岐させ、処理を終了する。
【0064】
一方、ステップS702で、後続する処理が既に定義されている場合(yes)ステップS703でステップS700の処理で生成された出力画像を後続処理の入力画像として設定し、図7のポイントBから図4のポイントAを経て、図7のポイントAに達し、さらに後続する処理を実行させる。図7の処理によって、ユーザが処理シーケンス上の任意の処理について追加、変更、削除した場合であっても当該シーケンスの修正に対応する画像を効率的にユーザに提示することができる。なお、ユーザが目的画像に満足した場合、目的画像を任意のフォーマットで画像蓄積部210に格納し、ユーザが別の目的のための利用を可能とする。
【0065】
以下、図8〜図11を使用して、本実施形態の画像編集装置100による画像編集処理を具体的に説明する。図8は、本実施形態でユーザが対象画像を取得して処理を開始した状態でのウィンドウ800の実施形態を示す。なお、図8〜図11では、説明の便宜上、保存、キャンセルなどの追加的なボタンオブジェクトについては省略している。ユーザが処理を開始し、対象画像を決定すると、ウィンドウ800には、表示ボックス810が表示され、表示ボックス810内に対象画像812が表示される。対象画像812は、適宜縮小した画像でもよいし、サムネイルとされていてもよい。
【0066】
また、表示ボックス810からは、テキスト表示=処理ボックスが与えられた選択オブジェクト816がリンク814によってポイントされている。選択オブジェクト816は、マウスなどを介してダブルクリック、シングルクリック、または右クリックなどのユーザイベントを検出して処理選択を促すためのポップアップメニュー818を表示させる。ポップアップメニュー818には、例示的な目的で、「処理の追加」、「処理の削除」、「処理の変更」、「パラメータ変更」などのメニュー項目が示されている。
【0067】
選択オブジェクト816は、選択オブジェクト816の位置で実行するべき画像処理の引数を設定し、画像処理実行部220に引数として渡し、ユーザが選択・登録した画像処理モジュールの呼出を可能とするオブジェクトである。選択オブジェクト816は、選択オブジェクト816に処理の引数である変数appl_name=nullである場合、図8に示すように例えば「処理ボックス」などの名称を表示し、画像処理が定義された後には、例えば色相補正などの処理をダイジェストしたテキストを表示する。
【0068】
図8のウィンドウ800でユーザが、選択オブジェクト816に対して定義されたユーザイベントを行うと、画像編集装置100は、ポップアップメニュー818をウィンドウ800に表示させる。ポップアップメニュー818では、図8の段階では、選択オブジェクト816の位置で画像処理を登録する「処理の追加」オプションメニュー820のみが選択可能とされている。他のオプションメニューは、現在選択オブジェクトには画像処理を指定する引数が定義されていない状態なので、グレー表示とされていて、ユーザから見て選択不可とされている。ユーザが、「処理の追加」オプションメニュー820を選択することで、画像処理の追加を可能とする処理一覧ウィンドウが表示され、画像処理モジュールの選択が可能とされる。
【0069】
図9は、本実施形態の画像編集装置100の図8に後続する処理後に表示するウィンドウ900の実施形態である。ユーザが選択オブジェクト816から画像編集装置100に対して処理の追加を指令すると、処理一覧ウィンドウ920が表示される。処理一覧ウィンドウ920には、画像編集装置100が実行可能な画像処理種類が、選択オブジェクト816を類推させるオブジェクト922として表示されている。ユーザは、処理一覧ウィンドウ920から平滑化と表示されたオブジェクト922にマウス924を一致させ、選択オブジェクト910にドラッグドロップすることで、オブジェクト922に割当てられ、対応する画像処理を呼出すための引数が、選択オブジェクト910にappl_name=flat.exeなどとして登録される。
【0070】
選択オブジェクト910は、画像処理を呼び出すための引数がnullではないことを検出すると、画像処理実行部220に設定された引数を渡し、対応するアプリケーションモジュールを起動する。例えば、引数がappl_name=image_proc01として設定され、入力画像データがsourceの場合、画像処理実行部220は、引数を受領して、実行コード<appl_code.exe“D:\source”>を実行し、その処理結果を、image_id0001などとしてRAMに格納する。画像表示部216は、画像処理実行部220の処理が終了する通知を受領すると、表示ボックス914を生成し、画像処理の出力画像をRAMなどから読出して表示ボックス914内部に表示する。なお、図10に示した画像処理オプションは、単なる例示であり、本実施形態では画像編集装置100が実装する画像処理モジュールであれば、制限無く対応することができる。
【0071】
図10は、本実施形態でさらに処理を追加する場合の実施形態である。図10に示したウィンドウ1000では、図9の実施形態で説明したように、選択オブジェクト910に対して処理=平滑化が設定され、画像処理実行部220は、画像処理を実行し出力画像データを生成し、その画像916を表示ボックス914内に表示させている。なお、説明する実施形態では、画像916を固有に指定する識別値は、image_id0001であるものとする。
【0072】
さらに画像処理実行部220の処理が完了すると、表示ボックス914からリンクによりポイントされた新たな選択オブジェクト1010が表示される。ユーザは、新たに表示された選択オブジェクト1010にマウスを一致させ、定義されたユーザイベントを発生させることで、後続する画像処理を追加することができる。追加された画像処理は、例えば、処理一覧ウィンドウ920内の「鮮鋭化」とすることができ、オブジェクト1016を選択オブジェクト1010にドラッグドロップすることにより、選択オブジェクト1010にappl_name=image_proc02が設定される。画像処理実行部220は、実行コード<imageproc02.exe“image_id0001”>を実行して出力画像image_id0002を生成した後、RAMに出力画像を格納する。そして画像表示部216に通知して、新たな表示ボックス1018を生成し、その内部にimage_id0002で参照される画像1020を表示させている。以上の処理を繰り返すことにより、ユーザは、対象画像に対して連続して特定の画像処理を施した結果を取得することができる。
【0073】
図11は、本実施形態の処理追加の他の実施形態に分類されるシーケンスの変更処理の実施形態を示す。図11に示す実施形態は、シーケンスの変更処理のうち、画像処理の入替によるシーケンス変更である。図11に示す実施形態は、図5の処理シーケンス510を生成する処理の実施形態である。表示ボックス1110内には、原画像1112が表示されており、ユーザは、図11に示すウィンドウ1100では、既に原画像1112に対し平滑化の処理を適用し、図9で示すウィンドウ900で示される状態にあったものとする。
【0074】
ユーザは、原画像1112に対して平滑化処理を施して得られた画像916に満足せず、平滑化処理の前に鮮鋭化処理を施してはどうだろうか、と考えたものとする。この場合、ユーザは、図9の選択オブジェクト910をポイントするリンク814または既に「平滑化」処理が登録されている選択オブジェクト910にマウスカーソルを一致させ、定義されたユーザイベント、例えばマウス右クリックを生成する。そうすると、ポップアップメニューが表示され、処理の追加を選択すると、処理一覧ウィンドウ1130が表示される。
【0075】
ユーザがマウスカーソルを鮮鋭化オブジェクト1134上に一致させ、リンク1132または選択オブジェクト1118上にドラッグドロップすることにより、ユーザは、ユーザがシーケンスの中間位置に画像処理を追加することが可能とされる。この場合、処理を追加する処理シーケンスの位置は、ユーザイベントが発生したGUI上の処理シーケンスである、平滑化処理の直前として設定される。図11に示したウィンドウ1100は、ユーザが図8で示したウィンドウ800上で、以上に説明した処理を実行することにより生成される。
【0076】
例えば、ユーザが鮮鋭化オブジェクト1134をリンク1132にドラッグドロップする。リンク1132に定義されたリンクオブジェクトは、ドラッグドロップのユーザイベントを検出すると、当該ユーザイベントに関連するオブジェクトの画像処理を呼出すための引数appl_name=nullであるか否かを判断し、nullではない有意の値を有している場合、シーケンスにおいて当該位置の直後に定義された画像処理の前に画像処理を追加してappl_name=image_proc003などを設定し、原画像1112を、追加した画像処理の入力画像として設定して画像処理を直ちに実行する。そして実行した結果の出力画像を、既に定義されている平滑化処理の入力画像として渡し、平滑化処理を実行させる。
【0077】
この結果、ユーザは、原画像1112に対して平滑化処理が定義されていた処理シーケンス上の位置で平滑化1116ではなく、鮮鋭化1118の処理を実行した画像1122を得ることができる。さらに画像処理実行部220は、既に定義されている平滑化処理1124を、鮮鋭化処理を実行した結果である画像1122に対して実行し、表示ボックス1126内に鮮鋭化処理後に平滑化処理された画像1128を表示する。なお、処理シーケンスを変更して生成された画像データには、それぞれ固有の識別値を付してRAMなどに登録しておく点については上述した通りである。
【0078】
なお、処理の変更および削除については、ポップアップメニューを表示させるユーザイベントの位置を選択オブジェクト1118とすることでそれぞれ処理シーケンスの変更を指令することができる。
【0079】
また、本実施形態の画像編集装置100は、処理シーケンスを変更することなく、処理シーケンスが含む画像処理のパラメータを修正し、パラメータ修正に対応した画像データのシーケンスも生成する。パラメータ変更を可能とするGUIは、処理の追加、削除、変更とは別に用意することもできるが、追加・変更・削除を行うためのポップアップメニューのメニュー項目としておくことが、プログラムモジュールの増加を伴うことなく、またユーザビリティの上で好ましい。
【0080】
パラメータ変更のメニューは、図8および図10に示されるように、ポップアップメニュー818に追加されており、既に処理が定義されている選択オブジェクト上で、ユーザイベントが発生した場合、処理を指定する引数がnullではないことを検出してグレー表示からブラック表示に変更され、パラメータの変更が可能とされる。
【0081】
ユーザが、パラメータの変更メニューを選択すると、対応する処理で設定可能なパラメータまたはパラメータの一覧が表示され、ユーザが選択した処理の画像処理パラメータを変更することができる。ユーザが変更したパラメータは、処理ログの例えばattrib変数に設定される。
【0082】
図12は、本実施形態で、パラメータを変更する処理のフローチャートである。図12の処理は、ステップS1200でユーザイベントを待機する状態から開始する。ステップS1201で、パラメータ設定を指令するユーザイベントが既に処理が設定されている選択オブジェクト上で発生したか否かを判断し、パラメータ設定を要求するユーザイベントが発生しない場合(no)、ステップS1201で待機する。
【0083】
ステップS1201で、パラメータ操作を要求するユーザイベントが発生した場合(yes)、ステップS1202でパラメータ設定を行うためのGUIをウィンドウ上に表示する。ステップS1203では、現在登録されている既処理のパラメータ値とGUI上からその時点で設定されているパラメータ値とを比較して、パラメータの設定値変更を検査する。ステップS1203でパラメータ設定に変更があったと判断した場合(yes)、ステップS1204で処理パラメータを変更し、ポイントAから図7のポイントAに制御を渡し、画像処理実行部220を呼出して以後のシーケンスの順で画像処理を実行させる。一方、パラメータ変更がない場合(no)、図12のポイントCから図4のポイントCに制御を渡し、画像編集を終了させる。
【0084】
なお、パラメータ変更がないとの判断は、これまで知られたいかなる方法を使用しても行うことができ、例えば、パラメータ設定のGUI表示にタイムアウトを設け、タイムアウトタイマの満了によりパラメータ変更無しと、判断することができる。
【0085】
図13は、本実施形態によるパラメータ設定変更の実施形態で表示されるウィンドウ1300を示す。図13に示した実施形態では、対象画像1312が表示ボックス1310内に表示され、平滑化処理された後の画像が、表示ボックス1314に表示されている、表示ボックス1314に表示された画像は、画像処理実行部220が処理を実行する際に、デフォルト設定されたパラメータ値を使用して生成されている。ユーザが選択オブジェクト1330上でユーザイベントを生成すると、ポップアップメニュー1316が表示される。図13の実施形態では、選択オブジェクト1330に有意な引数が指定されているので、ポップアップメニュー1316上で、パラメータ変更のメニュー項目がブラック表示されている。この段階で、ユーザは、パラメータ変更を指定することが可能とされる。
【0086】
ユーザが、パラメータ変更を選択すると、パラメータを変更するためのGUI、説明する実施形態では、例えばエッジカットオフレベルを修正するためのスライダバー1320が表示される。ユーザがスライダバー1320からパラメータ値を修正したと画像編集装置100が判断すると、当該パラメータの変更が平滑化画像処理に反映され、表示ボックス1314内の画像が、表示ボックス1322内に示される画像へと変更される。ユーザは当該パラメータ変更に満足しない場合、さらにスライダバー1324を操作し、パラメータ値を変更して、表示ボックス1326内に表示される画像を、表示ボックス1314内に生成させる。
【0087】
なお、他の実施形態では、パラメータ変更に対応する画像で原画像を置換表示するのではなく、図13に示すように例示列挙し、表示ボックス1322、1326のいずれかを選択するユーザイベントの検出により表示ボックス1314の画像に反映させることができる。当該実施形態の場合、処理ログには、選択した表示ボックス内の画像を生成した際のパラメータで、attrib変数が書き換えられる。本実施形態では、設定可能なパラメータは、エッジカットオフレベルの他、階調レベル、色バランス、色相、モノクロ/グレースケール/カラーモード指定、圧縮レベル、解像度、ディザリング方法(ランダムディザかパターンディザか)、輝度ダイナミックレンジ、コントラストなどを例示的に挙げることができるが、これらのパラメータに限定されるものではない。
【0088】
図14は、本実施形態で画像処理履歴を確認しながらユーザが処理シーケンスを設定する実施形態を示す。図14のウィンドウ1400では、ユーザが指令した処理シーケンスについて、処理1ステップごとに処理履歴が画像と共に表示される。処理ステージ1410では、対象画像の選択に対応する画像が表示される。また処理ステージ1420では、ユーザが対象画像に対して平滑化処理を施した場合の画像と対象画像とが表示されている。
【0089】
さらに処理ステージ1430では、平滑化後にユーザが鮮鋭化処理を追加し、鮮鋭化処理後の画像が最も右手側に表示されている。図14の履歴表示を行うことで、ユーザは、画像特性の変化について一連の予測を行うことができ、処理の追加、変更、削除を効率化することができる。また、処理ステージ1440は、最新に実行された画像処理の入力画像データ、処理内容、および出力画像データを抽出して表示する表示フレームとされている。
【0090】
例えばユーザが、現在の処理結果を表示する表示フレーム内で新たな処理を追加することも可能であり、この際には、図9、図10、図11で説明した処理を使用して新規な画像処理を追加したり、修正したりすることができる。現在の処理結果を表示する表示フレーム内で処理シーケンスを修正した場合、最新の全処理シーケンスが処理ステージ1430内に表示される。表示フレームの大きさが不足する場合には、カーソルが移動して、処理ステージ1410の画像を非表示とし、その代わりに最新の全処理シーケンスを表示させることができる。
【0091】
なお、図14のGUIは、図6で説明した処理ログ600を使用して生成することができ、各処理ステージは、処理ログの第1行目から読み取りを開始し、第1ステージに対象画像の画像データを表示し、第2ステージに第1行目の処理内容に対応する画像およびオブジェクトを表示し、第3ステージに第1行目および第2行目の処理内容に対応する画像およびオブジェクトを表示させることで、順次生成することができる。また、現在の処理結果は、処理ログ600の最終行の記述を読み込んで、対応する画像およびオブジェクトを表示させることで生成できる。また、本実施形態では、履歴表示されている処理シーケンスをコピーして、コピーした処理シーケンスに対して画像処理の変更またはパラメータ設定の変更を行うこともできる。例えば、説明する実施形態では、図14の処理ステージ1420GUI上でダブルクリックなどの定義済みユーザイベントを生成すると、処理ステージ1420が表示フレーム内の適切な箇所にコピーおよび表示される。コピーシーケンスは、図6の処理ログの対応する部分についてもコピーし、例えば、ポインタ「:CPOY」を付して新規シーケンスを宣言する。ユーザが当該コピーシーケンスに対応する処理ステージのオブジェクトに対して図9から図11の説明と同様の操作を適用することで、処理シーケンスの途中から切り出したシーケンスを初期シーケンスとして、処理の新規追加や修正ができる。
【0092】
ユーザが最終的に生成された画像が目的画像として許容できると判断した場合、ユーザは、当該最終的に生成された画像をマウスカーソルをポイントし、マウス右クリックなどのユーザイベントを生成することで、ファイル保存のメニュー項目を含むポップアップウィンドウを表示させ、ファイル保存を選択することで、最終画像を目的画像として画像蓄積部210に登録することができる。
【0093】
また、図14に示した中間的に得られた画像については、一連の画像処理シーケンスが終了するまで、RAMなどに、image_id000N(Nは、自然数である。)などの固有の識別値を付して保持されている。ユーザが、目的画像としてどちらが好ましいかについて比較を行うことが必要であったり、処理ログ自体を保存しておきたい場合には、特定の中間画像のみを画像蓄積部210に記録することができる。また、ユーザが処理ログ自体を記録した場合には、処理ログ600および対応する画像を対応付けてハードディスク装置や光学ドライブなどの外付け記憶装置124に格納することができる。また、処理ログ600を記録する場合に、画像を固有に識別する識別値について変数に置換してマクロオブジェクトとして登録しておき、以後の処理で、対象画像を指定するだけで登録した処理シーケンスを自動実行し、同一の処理を施した目的画像を生成させることができる。
【0094】
処理ログ600をマクロオブジェクトとして登録することにより、大量の処理画像に対して同一の画像処理を施す処理が効率化でき、またユーザの嗜好などによる画像処理のばらつきがなくなるので、より高精度の画像処理を効率的に実行することができる。
【0095】
本実施形態の上記機能は、VisualBasic、C、C#、C++、Java(登録商標)、JavaBeans(登録商標)、JavaApplet(登録商標)、JavaScript(登録商標)、Perl、Rubyなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なアプリケーションプログラムやプラグインプログラムにより実現でき、プログラムは、ハードディスク装置、CD−ROM、MO、フレキシブルディスク、EEPROM、EPROMなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【0096】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【0097】
100…画像編集装置、110…CPU、112…メモリ、120…システムバス、114…グラフィックスドライバ、118…ディスプレイ装置、116…ネットワークデバイス、122…バスブリッジ、128…バス、124…記憶装置、126…入力装置、200…機能ブロック(画像編集装置)、212…画像ファイル選択部、214…画像データ取得部、216…画像表示部、210…画像蓄積部、218…画像処理選択部、220…画像処理実行部、222…処理ログ記録部、300…ウィンドウ、312…表示ボックス、310…画像、314…選択オブジェクト、316…表示ボックス、318…画像、320…選択オブジェクト、322…表示ボックス、324…画像、326…選択オブジェクト、328…表示ボックス、330…画像、332…選択オブジェクト
【先行技術文献】
【特許文献】
【0098】
【特許文献1】特許第3890096号明細書
【特許請求の範囲】
【請求項1】
デスクトップ画面上に表示したGUIを介して画像編集を行う画像編集装置であって、前記画像編集装置は、
編集するべき原画像を取得する画像データ取得手段と、
前記GUIに表示領域を割当てて、取得した前記原画像を表示する画像表示手段と、
前記GUIに表示された前記原画像に対して適用するべき画像処理を選択させる選択領域および登録するべき前記画像処理を前記GUIに表示させる画像処理選択手段と、
前記画像処理選択手段による前記選択領域への前記画像処理の登録に応答して、登録された前記画像処理の入力画像に対し登録された前記画像処理を適用して出力画像を生成する画像処理実行手段と、
を含み、
前記画像表示手段は、生成された前記出力画像を取得して前記画像編集のシーケンスに対応付けて前記出力画像のための表示領域を生成し、生成した前記表示領域に取得した前記出力画像を表示する、画像編集装置。
【請求項2】
前記画像処理選択手段は、前記選択領域に登録するべき画像処理を変更させる画像処理変更手段を含み、前記画像処理実行手段は、前記画像処理選択手段から変更の指令を受領すると、変更に関連する既登録画像処理を前記シーケンスの順で実行して前記画像表示手段に渡し、前記シーケンスで変更前に生成されていた前記表示領域の表示画像を更新する、請求項1に記載の画像編集装置。
【請求項3】
前記画像処理選択手段が前記選択領域に登録された既登録画像処理を削除する画像処理削除手段を含み、前記画像処理実行手段は、前記画像処理選択手段からの削除の指令を受領して、前記シーケンスに残存し、かつ削除に関連する既登録画像処理を前記シーケンスの順で実行して前記画像表示手段に渡し、前記シーケンスで変更前に生成されていた前記表示領域の出力画像を更新する、請求項1または2に記載の画像編集装置。
【請求項4】
前記画像処理選択手段は、前記選択領域の既登録画像処理のシーケンス順を入替える画像処理入替手段を含み、前記画像処理実行手段は、前記画像処理選択手段からの指令を受領し、前記入替に関連する既登録画像処理を前記シーケンスを入替後の順序で実行して、出力画像を前記画像表示手段に渡し前記シーケンスで入替前に生成されていた前記表示領域の画像を当該出力画像で更新する、請求項1〜3のいずれか1項に記載の画像編集装置。
【請求項5】
前記画像処理選択手段は、前記選択領域の既登録画像処理のパラメータを変更するパラメータ変更手段を含み、前記画像処理実行手段は、前記パラメータ変更手段からの前記パラメータの変更を検出し、変更後のパラメータを用いて前記パラメータの変更に関連する既登録画像処理を前記シーケンスの順で実行して、前記シーケンスで前記パラメータ変更前に生成されていた前記表示領域の出力画像を更新する、請求項1〜4のいずれか1項に記載の画像編集装置。
【請求項6】
前記画像編集装置は、前記画像処理の履歴を記録する処理ログ記録手段を含み、前記処理ログ記録手段は、新たな画像処理の追加、既登録画像処理の変更、削除、またはパラメータ変更により前記シーケンスに変化があった場合、前記シーケンスの変化により生成される新たな画像を前記シーケンスの中で固有に識別する識別値を付して、前記シーケンスを処理ログとして登録する、請求項1〜5のいずれか1項に記載の画像編集装置。
【請求項7】
コンピュータが実行する画像編集方法であって、前記画像編集方法は、コンピュータが
編集するべき原画像を取得して、取得した前記原画像をGUIに表示領域を割当て表示するステップと、
前記GUIに表示された前記原画像に対して適用するべき画像処理を選択させる選択領域および登録するべき前記画像処理を前記GUIに表示するステップと、
前記選択領域への画像処理の登録に応答して、登録された前記画像処理の入力画像に対し登録された前記画像処理を適用して出力画像を生成するステップと、
生成された前記出力画像を取得し、前記画像編集のシーケンスに対応付けて前記出力画像のための表示領域を生成し、生成した前記表示領域に取得した当該出力画像を表示するステップと
を実行する、画像編集方法。
【請求項8】
前記選択領域に登録された画像処理が存在しない場合には、前記選択領域に画像処理を追加し、前記画像処理が登録されている場合には、登録された前記画像処理の変更、削除または前記画像処理が適用するパラメータ変更を可能とするGUIを表示し、前記画像処理の追加、変更、削除またはパラメータ変更を可能とするステップを含む、請求項7に記載の画像編集方法。
【請求項9】
さらに前記シーケンスの指定した位置での画像処理の変更によりシーケンスを入替するステップを含む、請求項7または8に記載の画像編集方法。
【請求項10】
コンピュータを請求項1〜6のいずれか1項に記載の機能手段として機能させるためのコンピュータ実行可能なプログラム。
【請求項11】
請求項10に記載されるプログラムを格納する、コンピュータ可読な記録媒体。
【請求項1】
デスクトップ画面上に表示したGUIを介して画像編集を行う画像編集装置であって、前記画像編集装置は、
編集するべき原画像を取得する画像データ取得手段と、
前記GUIに表示領域を割当てて、取得した前記原画像を表示する画像表示手段と、
前記GUIに表示された前記原画像に対して適用するべき画像処理を選択させる選択領域および登録するべき前記画像処理を前記GUIに表示させる画像処理選択手段と、
前記画像処理選択手段による前記選択領域への前記画像処理の登録に応答して、登録された前記画像処理の入力画像に対し登録された前記画像処理を適用して出力画像を生成する画像処理実行手段と、
を含み、
前記画像表示手段は、生成された前記出力画像を取得して前記画像編集のシーケンスに対応付けて前記出力画像のための表示領域を生成し、生成した前記表示領域に取得した前記出力画像を表示する、画像編集装置。
【請求項2】
前記画像処理選択手段は、前記選択領域に登録するべき画像処理を変更させる画像処理変更手段を含み、前記画像処理実行手段は、前記画像処理選択手段から変更の指令を受領すると、変更に関連する既登録画像処理を前記シーケンスの順で実行して前記画像表示手段に渡し、前記シーケンスで変更前に生成されていた前記表示領域の表示画像を更新する、請求項1に記載の画像編集装置。
【請求項3】
前記画像処理選択手段が前記選択領域に登録された既登録画像処理を削除する画像処理削除手段を含み、前記画像処理実行手段は、前記画像処理選択手段からの削除の指令を受領して、前記シーケンスに残存し、かつ削除に関連する既登録画像処理を前記シーケンスの順で実行して前記画像表示手段に渡し、前記シーケンスで変更前に生成されていた前記表示領域の出力画像を更新する、請求項1または2に記載の画像編集装置。
【請求項4】
前記画像処理選択手段は、前記選択領域の既登録画像処理のシーケンス順を入替える画像処理入替手段を含み、前記画像処理実行手段は、前記画像処理選択手段からの指令を受領し、前記入替に関連する既登録画像処理を前記シーケンスを入替後の順序で実行して、出力画像を前記画像表示手段に渡し前記シーケンスで入替前に生成されていた前記表示領域の画像を当該出力画像で更新する、請求項1〜3のいずれか1項に記載の画像編集装置。
【請求項5】
前記画像処理選択手段は、前記選択領域の既登録画像処理のパラメータを変更するパラメータ変更手段を含み、前記画像処理実行手段は、前記パラメータ変更手段からの前記パラメータの変更を検出し、変更後のパラメータを用いて前記パラメータの変更に関連する既登録画像処理を前記シーケンスの順で実行して、前記シーケンスで前記パラメータ変更前に生成されていた前記表示領域の出力画像を更新する、請求項1〜4のいずれか1項に記載の画像編集装置。
【請求項6】
前記画像編集装置は、前記画像処理の履歴を記録する処理ログ記録手段を含み、前記処理ログ記録手段は、新たな画像処理の追加、既登録画像処理の変更、削除、またはパラメータ変更により前記シーケンスに変化があった場合、前記シーケンスの変化により生成される新たな画像を前記シーケンスの中で固有に識別する識別値を付して、前記シーケンスを処理ログとして登録する、請求項1〜5のいずれか1項に記載の画像編集装置。
【請求項7】
コンピュータが実行する画像編集方法であって、前記画像編集方法は、コンピュータが
編集するべき原画像を取得して、取得した前記原画像をGUIに表示領域を割当て表示するステップと、
前記GUIに表示された前記原画像に対して適用するべき画像処理を選択させる選択領域および登録するべき前記画像処理を前記GUIに表示するステップと、
前記選択領域への画像処理の登録に応答して、登録された前記画像処理の入力画像に対し登録された前記画像処理を適用して出力画像を生成するステップと、
生成された前記出力画像を取得し、前記画像編集のシーケンスに対応付けて前記出力画像のための表示領域を生成し、生成した前記表示領域に取得した当該出力画像を表示するステップと
を実行する、画像編集方法。
【請求項8】
前記選択領域に登録された画像処理が存在しない場合には、前記選択領域に画像処理を追加し、前記画像処理が登録されている場合には、登録された前記画像処理の変更、削除または前記画像処理が適用するパラメータ変更を可能とするGUIを表示し、前記画像処理の追加、変更、削除またはパラメータ変更を可能とするステップを含む、請求項7に記載の画像編集方法。
【請求項9】
さらに前記シーケンスの指定した位置での画像処理の変更によりシーケンスを入替するステップを含む、請求項7または8に記載の画像編集方法。
【請求項10】
コンピュータを請求項1〜6のいずれか1項に記載の機能手段として機能させるためのコンピュータ実行可能なプログラム。
【請求項11】
請求項10に記載されるプログラムを格納する、コンピュータ可読な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2011−2930(P2011−2930A)
【公開日】平成23年1月6日(2011.1.6)
【国際特許分類】
【出願番号】特願2009−144180(P2009−144180)
【出願日】平成21年6月17日(2009.6.17)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成23年1月6日(2011.1.6)
【国際特許分類】
【出願日】平成21年6月17日(2009.6.17)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]