<第一の実施例>
以下、図面にもとづいて本発明の実施形態を説明する。
図1は、本発明の一実施形態にかかる画像データ処理装置を対応概略構成図により示している。
デジタルスチルカメラなどで撮影した画像データは、コンピュータなどの外部記憶装置などを利用して管理することになる。かかる外部記憶装置などに該当するデータ保存手段A1はこれらの複数の画像データとともにそれぞれに対応するパラメータを関連づけて記憶し、コンピュータによるデータベース管理などによって適宜変更、追加、削除などといった管理が行われる。
このような管理を行うため、データ保存手段A1には、画像データ記憶領域A11とパラメータ記憶領域A12と関連付け情報記憶領域A13が確保されている。画像データ記憶領域A11には画像データが記憶されるが、一括したデータベース構造としても良いし、それぞれ個別のファイルを格納する領域としてもよい。パラメータ記憶領域A12は個別の画像データに対する画像処理の指示を示す情報であり、画像データと比べると比較的容量は小さい。この場合も、一括したデータベース構造としても良いし、それぞれ個別のファイルを生成してもよい。関連付け情報記憶領域A13はパラメータ記憶領域A12に記憶されるパラメータと画像データ記憶領域A11に記憶される画像データとを関連づける関連付け情報が記録される。このように関連させる手法は様々であり、一例としてパラメータのデータベース構造を形成しつつその索引情報として構成すれば、パラメータ記憶領域A12と関連付け情報記憶領域A13とは不可分一体的に実現される。なお、画像データ記憶領域A11については着脱自由な記録メディア等も当然に含まれるし、また、物理的に画像データ記憶領域A11とパラメータ記憶領域A12と関連付け情報記憶領域A13とが同一の装置である必要はない。さらに、画像データ記憶領域A11が複数の装置などからアクセスされる共有領域であっても良い。
また、コンピュータ自身における入出力機器およびコンピュータ自身の演算結果によって実現されるパラメータ設定手段A2によって画像データの管理操作あるいは演算などによって画像処理の内容を表すパラメータを設定すると、このデータ保存手段A1はデータベース管理を介して対応するパラメータと画像データとを関連付けて管理処理を実行することになり、この際に関連付け情報が生成される。このパラメータ設定手段A2は結果的にパラメータを生成するものであり、GUIを介してユーザーからの画像処理の指示を受け付けてパラメータを設定する場合や、画像データを独自に検査して所定の目的に添う画像処理を実現するパラメータを設定する場合を含んでいる。関連付け情報は、様々なものを利用でき、対応テーブルを用意しても良いし、ファイル名を関連させても良いし、保存領域を一致させるなどして関連付けるものであってもよい。
このようにして上記データ保存手段A1には、画像データとそれに実施すべき画像処理の内容を表すパラメータが関連付け情報によって関連づけがなされて保存されることになる。そして、データ取得手段A4は、このデータ保存手段A1は関連付け情報記憶領域A13の情報に基づいて対応する画像データとパラメータとを画像データ記憶領域A11とパラメータ記憶領域A12とから取得し、画像処理再現手段A3に出力する。このデータ取得手段A4も一般的にはGUIを介してユーザーからの画像選択の指示を受け付けて取得する画像データを特定することになるが、特定する方法はこれに限られない。例えば、コンピュータなどでは外部のアプリケーションから所定の引数を与えられて対象とする画像データを特定され、これによって画像データを特定して取得しつつ画像処理再現手段A3に引き渡すことも可能である。また、画像データを取得する態様は具体的なハードウェアによって変化し、メモリ上に展開されている状態で単に画像データを変数にセットするだけのような場合でも取得したものと同視できる。
画像処理再現手段A3はパラメータに対応した修整処理を実現するものであり、複数の修整エンジンA31〜A3nを備える。各修整エンジンA3xは画像データとパラメータが与えられたときに同パラメータが表す各修整エンジンA3xに応じた修整を同画像データに施して新たに修整画像データを生成し、これを出力する。ここで画像データはオリジナルとして扱われ、修整画像データは新たに生成される。むろん、新たに生成した画像データによってオリジナルの画像データを上書きすることは自由であり、データ保存手段A1における画像データ記憶領域A11に上書き保存してもよい。修整エンジンA31〜A3nは数種の変換結果が得られるという意味で複数存在するように表示しているが、実質的に一つの修整エンジンであってパラメータ次第で数種の変換結果が得られるものであっても良いし、個別の修整エンジンを用意してそれぞれ別個に変換結果が得られるものであっても良い。また、修整エンジンA31〜A3nはアプリケーション自体が内部に備えるものに限らず、外部に存在する修整エンジンA31〜A3nを選択するものであっても良い。
なお、データ保存手段A1やパラメータ設定手段A2や画像処理再現手段A3やデータ取得手段A4は単独のハードウェアでのみ実現可能なものではなく、汎用的なコンピュータシステム10を利用して実現することが可能であり、そのようにソフトウェアで上記構成を実現する場合はそれぞれがデータ保存ステップA1、パラメータ設定ステップA2、データ取得ステップA4、画像再現処理ステップA3として実現される。
本実施形態においてはこのような画像データ処理装置を実現するハードウェアの一例としてコンピュータシステム10を採用している。図2は、同コンピュータシステム10をブロック図により示している。本コンピュータシステム10は、画像データを直接的に入力する画像入力デバイスとして、スキャナ11aとデジタルスチルカメラ11bとビデオカメラ11cとを備えており、コンピュータ本体12に接続されている。それぞれの入力デバイスは画像をドットマトリクス状の画素で表現した画像データを生成してコンピュータ本体12に出力可能となっており、ここで同画像データはRGBの三原色においてそれぞれ256階調表示することにより、約1670万色を表現可能となっている。
コンピュータ本体12には、外部補助記憶装置としてのフロッピーディスクドライブ13aとハードディスク13bとCD−ROMドライブ13cとが接続されており、ハードディスク13bにはシステム関連の主要プログラムが記録されており、フロッピーディスクやCD−ROMなどから適宜必要なプログラムなどを読み込み可能となっている。
また、コンピュータ本体12を外部のネットワークなどに接続するための通信デバイスとしてモデム14aが接続されており、外部のネットワークに同公衆通信回線を介して接続し、ソフトウェアやデータをダウンロードして導入可能となっている。この例ではモデム14aにて電話回線を介して外部にアクセスするようにしているが、LANアダプタを介してネットワークに対してアクセスする構成とすることも可能である。
ここで、外部補助記憶装置のうち、フロッピーディスクドライブ13aやCD−ROMドライブ13cについては、記録媒体自身が交換可能であり、この記録媒体に画像データが記録された状態で供給されることにより、画像入力デバイスの一手段ともなりうる。また、モデム14aやLANアダプタを介してネットワークにアクセスした場合、このネットワークから画像データが供給されることもあり、このような場合も画像入力デバイスの一手段となりうる。なお、ネットワークにアクセスするのは、データを取得する場合に限らず、プログラムの一部や、外部的に起動可能な別プログラムを取得する場合もある。これにより、修整エンジンの一部あるいは全部を外部から取得したり、外部にあるものに実行を委ねるということも可能である。
この他、コンピュータ本体12の操作用にキーボード15aやポインティングデバイスとしてのマウス15bも接続され、さらに、マルチメディア対応のためにスピーカ18aやマイク18bを備えている。
さらに、画像出力デバイスとして、ディスプレイ17aとカラープリンタ17bとを備えている。ディスプレイ17aについては水平方向に800画素と垂直方向に600画素の表示エリアを備えており、各画素毎に上述した1670万色の表示が可能となっている。むろん、この解像度は一例に過ぎず、640×480画素であったり、1024×768画素であるなど、適宜、変更可能である。
また、印刷装置としてのカラープリンタ17bはインクジェットプリンタであり、CMYKの四色の色インクを用いて記録媒体たる印刷用紙上にドットを付して画像を印刷可能となっている。画像密度は360×360dpiや720×720dpiといった高密度印刷が可能となっているが、階調表限については色インクを付すか否かといった2階調表現となっている。色インクについては、かかる四色のものに限らず、色の薄いライトシアンやライトマゼンタを加えた六色によってドットの目立ちを低減させることも可能であるし、インクジェット方式に限らずカラートナーを利用した静電写真方式などを採用することも可能である。また、印刷装置は必ずしもカラープリンタである必要はなく、白黒のプリンタであっても良い。後述するように白黒再現においてはそれに応じた最適な画像処理がありえるし、かかる画像処理を画像データに施してしまうと再度カラーで再現したい場合には不都合なことが生じる。しかしながら、本発明においては、あくまでも元の画像データは残されることになり、そのような画像処理も容易に実行してしまうことが可能となる。
一方、このような画像入力デバイスを使用して画像を入力しつつ、画像出力デバイスに表示あるいは出力するため、コンピュータ本体12内では所定のプログラムが実行されることになる。そのうち、基本プログラムとして稼働しているのはオペレーティングシステム(OS)12aであり、このオペレーティングシステム12aにはディスプレイ17aでの表示を行わせるディスプレイドライバ(DSP DRV)12bとカラープリンタ17bに印刷出力を行わせるプリンタドライバ(PRT DRV)12cが組み込まれている。これらのドライバ12b,12cの類はディスプレイ17aやカラープリンタ17bの機種に依存しており、それぞれの機種に応じてオペレーティングシステム12aに対して追加変更可能である。また、機種に依存して標準処理以上の付加機能を実現することもできるようになっている。すなわち、オペレーティングシステム12aという標準システム上で共通化した処理体系を維持しつつ、許容される範囲内での各種の追加的処理を実現できる。
むろん、このようなプログラムを実行する前提として、コンピュータ本体12内にはCPU12eとRAM12fとROM12gとI/O12hなどが備えられており、演算処理を実行するCPU12eがRAM12fを一時的なワークエリアや設定記憶領域として使用したりプログラム領域として使用しながら、ROM12gに書き込まれた基本プログラムを適宜実行し、I/O12hを介して接続されている外部機器及び内部機器などを制御している。
この基本プログラムとしてのオペレーティングシステム12a上でアプリケーション12dが実行される。アプリケーション12dの処理内容は様々であり、操作デバイスとしてのキーボード15aやマウス15bの操作を監視し、操作された場合には各種の外部機器を適切に制御して対応する演算処理などを実行し、さらには、処理結果をディスプレイ17aに表示したり、カラープリンタ17bに出力したりすることになる。
かかるコンピュータシステム10では、画像入力デバイスであるスキャナ11aなどで写真などを読み取って画像データを取得することができる他、デジタルスチルカメラ11bで撮影した画像データを取得したり、ビデオカメラ11cで撮影した動画としての画像データを取得することができる。また、予め撮影された各種の画像データがCD−ROMソフトとして提供されることも多々あるし、予め画像データを一つの記憶領域に保存しておいた上で複数の人間がネットワークを介してアクセスすることも多い。
デジタルスチルカメラ11bで撮影した画像データはハードディスク13bにまとめて保存しておくことが多く、このような画像データはディスプレイ17a上で鑑賞して楽しむばかりでなく、カラープリンタ17bで出力して楽しむことも多い。画像データの利点として、写りが悪くても容易に修整できる点がある。すなわち、カラープリンタ17bで印刷するにあたって元の画像データのままでは写りが悪いなど、フォトレタッチなどで修整が行われる。このようにして、画像データの管理と画像の修整を行なう画像データ処理装置の必要性が生じ、アプリケーション12dとコンピュータシステム10とが有機一体化して画像データ処理装置を実現することになる。
この意味で、画像データ処理ソフトであるアプリケーション12dは、デジタルスチルカメラ11bで撮影された画像データをハードディスク13bに記憶して管理したり、CD−ROMドライブ13cを介してCD−ROMによって供給される画像データを適宜入力できるようにして管理しつつ、後述するようにパラメータも併せて管理する。従って、この意味で関連するソフトウェアとハードウェアとによってデータ保存手段A1を構成する。
また、このようにして記憶されている画像データについては、アプリケーション12dによって処理対象を特定した上で上述したような対応するパラメータと共に内部の画像処理ルーチンによって画像処理することになり、この意味で関連するソフトウェアとハードウェアとによって画像処理再現手段A3を構成する。
そして、アプリケーション12dは、オペレーティングシステム12aを介してキーボード15aやマウス15bの操作を入力しつつ所定の対応画面を生成してディスプレイ17a上に表示するが、このようなGUI処理を経て対象とする画像データを選定し、実行する画像処理を特定していくという意味で関連するソフトウェアとハードウェアとによってパラメータ設定手段A2を構成する。さらに、既に保存されている画像データを読み出したときに予め特定しておいた画像処理を実行可能とするようにパラメータを読み込む意味で関連するソフトウェアとハードウェアとによってデータ取得手段A4を構成する。
なお、このようなソフトウェアは、ハードディスク13bに記憶されており、コンピュータ本体12にて読み込まれて稼働する。また、導入時にはCD−ROM13c−1であるとかフロッピーディスク13a−1などの媒体に記録されてインストールされる。従って、これらの媒体は画像データ処理プログラムを記録した媒体を構成する。
図3は上記画像データ処理ソフトによる制御内容をブロック化して表しており、各種の総合的な制御を行うメイン制御部60と、各種の共通的な制御を行う共通機能部20と、画像データの管理を行うフィルムデータ管理部30と、各画像データについて画像修整を実行する画像修整制御部40と、一連の印刷処理を実行するDPE印刷制御部50から構成されている。
メイン制御部60は、後述する各種フローを適宜選択して実行するものであり、その他、他に分類されない各種の機能も実行する。そのうちの一つが環境設定部60aであり、本画像データ処理ソフトにおいて共通の設定などを設定情報ファイル60bとしてハードディスク13b上に記録し、適宜他の機能部から読み出し可能としている。この設定情報ファイル60bは、各種のデフォルト指定、例えば、新たな画像データの取り込み元の指定であるとか、後述するような印刷処理で次回に引き継ぐためのページのパラメータであるといったような類のものが記録されることになる。
共通機能部20については、図4にその詳細ブロックを示しており、そのいくつかは他の機能部からも共通して呼び出せるようになっている。例えば、画像選択部20aはサムネール作成部20iにて各画像データについてサムネールを作成させつつ画像表示部20mにてディスプレイ17aに複数のサムネール画像を表示させ、その状態でキーボード15aやマウス15bによる選択操作を受け付けることによって各画像についての選択の有無を入力する。むろん、選択操作に伴って表示を変えたりする場合には適宜画像表示部20mにて表示を変更させるし、選択の結果は他の機能部に受け渡すことになる。また、表示指定部20bは画面上での表示を指定するものであり、GUI操作に応じてウィンドウ領域の大きさなどを変更したときに対応して画像の表示を適宜指定することになる。
ファイル編集部20cは画像データの保存領域を適宜変更する操作などを実行し、検索部20dは画像ファイルと併せて管理されるパラメータに基づいてコメントであるとか日付などによって検索を実行するものである。一括コメント部20eでは複数の画像データに対するコメント付けを一括して処理するものであり、一括整理部20fは画像データやパラメータを一括して同時に処理するものである。
画像処理部20gと画像編集部20hは、画像修整制御部40が主に画像処理の自動実行をするにあたって各種のパラメータを生成するのに対して、実際に画像処理を実行する部分であり、さらに手動にて指定される画像処理も実行する。この処理結果は原則的に仮のデータとして扱われ、実際の処理時にオリジナル画像データに変更を加える指定がなされている場合は元の画像データに反映される。また、表示や処理時間の便宜上から必ずしも元の画像データに基づいて実行する必要はなく、操作中はサムネールの画像データに基づいて画像処理部20gや画像編集部20hが各種の処理を実行する。
画像入力部20jは画像データの記憶領域がファイル編集部20cによって既に登録されている場合に、画像処理や印刷処理の際に同画像データを読み込んでくる処理を行い、また、画像データとして各種のデータフォーマットが存在するのに対応し画像出力部20kは形式を変換して出力するといった処理を実行する。
次に、フィルムデータ管理部30について説明する。図5は、本フィルムデータ管理部30が管理する画像データである画像ファイル30aと、パラメータを含む写真データ30bと、画像データのグループ化において利用するフィルムデータ30cの管理構造をブロック図により示している。ここで、画像データはコンピュータシステム10においてファイルとして扱われることにより、画像ファイルとして示しているし、パラメータはそれぞれの画像データに対応する各種の情報とともに写真データ30bとして示している。また、フィルムデータ30cは画像データをグループ化して管理するための情報であり、図6にはフィルムメタファとして示している。ここで写真データ30bのデータベースは、コンピュータシステム10上における書き換え可能な記憶領域に保存されるものとし、また、複数存在するフィルムメタファに関わらず一定の領域に保存される。むろん、物理的に複数のデータベースとすることは可能であるが、要は必ずしも画像データが現実に記憶されている媒体に形成される必要はないということである。
同図では、画像ファイルの物理的記録形態を同図の左方に示しており、オペレーティングシステム12aによってフォルダ単位で階層構造が形成され、各フォルダの中に画像ファイルを記憶するようになっている。本実施形態における画像データのグループ化は、物理的にはまさにこのフォルダ単位の階層構造を利用しており、このフォルダ単位で情報を付加して管理している。すなわち、フィルムデータ30cを構成する最低限の情報は、任意につけることが可能なフィルム名、このフォルダの物理的配置情報としての実際の記憶領域を示すリンク先、作成した日付、コメント、媒体属性、媒体ラベル、フィルム属性、収容画像ファイル数などである。また、図に示すように各フォルダは管理上においてフィルムのパトローネと同視しており、別の視点からすれば実際の記憶領域を個別に意識することなくパトローネとして同一視してしまうので、エリアス管理にも近くなっている。なお、パトローネには物理的な記憶領域が交換可能な媒体であるか否かを示すマークを表示して利用者に分かりやすくしている。すなわち、画像ファイルがCD−ROMによって供給されているような場合は交換可能であるが、この場合はCD−ROMを交換することによって実際のCD−ROMドライブ13cに装着されていない場合もあり得る。このような場合にそのCD−ROMが装着されていなければ非表示としまうのではなく、フィルムデータ30cとして登録した以上は同データに基づいて表示が行われるし、その場合には交換可能なマークがあることによって操作者はCD−ROMをセットしなければ参照できないことが容易に理解できるようになる。
この例では、交換可能なマークを示しているだけであるが、このようなマークを適宜変更して情報を表示するようにしても良い。例えば、交換可能な記憶領域であるとしてそのCD−ROMが装着されている場合と装着されていない場合とでマークを変えても良い。また、ネットワークで複数人が共有する記憶領域に画像データが保存されている場合には、各人で勝手に書き換えてしまうと収拾がつかなくなるため、ネットワークドライブを表すマークを表示するようにしても良い。むろん、ネットワークドライブであれば書き込み可能であっても書き込み不能の扱いをするようにしても良い。なお、マークを変化させるのではなく、パトローネ自体の形状を変更するようにしても良い。
写真データ30bの具体的構成は、図5および図6に示している。ここで、索引情報はファイル名とファイル日時とファイルサイズと撮影日時とから構成されており、画像ファイルを縮尺したサムネールデータをサムネールとして表示している。コメントは各画像ファイル毎に付すことができるようにしており、表示順序などを表す整理情報や、実際の記憶領域を示す位置情報や、マイク18bなどを介して付された音声情報とともに写真データ30bを構成している。
さらに、写真データ30bは修整情報と特徴情報と色合せ情報も備えている。上述したように本画像データ処理ソフトでは画像データの管理と画像の修整を行なうが、画像の修整によって元の画像データを直に変更してしまうのではなく、これらのパラメータによって修整する指針だけを修整情報として管理し、これに併せて特徴情報や色合わせ情報を管理できるようにしている。図7は修整情報を管理するための具体的な変数宣言例を示しており、トリミングに関する修整情報を表すトリミング開始X座標(m_x1)とトリミング開始Y座標(m_y1)とトリミング終了X座標(m_x2)とトリミング終了Y座標(m_y2)と、回転処理を実行する場合の回転角度(m_nRotation)と、自動画像修整(m_nApf)と、赤成分の強調度(m_nRed)と、緑成分の強調度(m_nGreen)と、青成分の強調度(m_Blue)と、明るさ成分の強調度(m_nBrightness)と、コントラストの強調度(m_nContrast)とから構成されている。
ここで、本画像データ処理ソフトで実行可能な画像処理、特に自動画像修整にについて説明する。自動画像修整において核となるのは図8に示す画像修整制御部40であり、画像特徴抽出部40aが画像データに基づいて画像の特徴を抽出すると、修整情報作成部40bが修整に必要なパラメータを作成し、修整指定部40cは同パラメータを使って上述した画像処理部20gに対して実際の処理を実行させることになる。
図9はこの画像修整制御部40が実行する概略の手続の流れを模式的に示しており、以下にこの流れを参照しつつ自動画像修整処理について説明する。
手順1では画像データを入力する。画像データはオペレーティングシステム12aを介して読み込み、所定のワークエリアに保存する。ただし、既にサムネールデータを作成してある場合には、写真データ30bの中からサムネールデータを読み込んで画像データとする。特徴抽出は画像データの各画素についての集計処理であるため、画素の量に応じて演算時間は変化する。サムネールデータを使用するのはこのような画素の量の圧倒的な差異を考慮したものであり、本来の画像データを使用する場合に比べて処理時間を短くすることができる。なお、画像データ自体は一つのファイルであり、図10に示すように先頭部分に画像のサイズであるとか色数などのプロファイルデータを備えるとともに、その後には個々の画素についてRGB256階調で表現するべく3バイトのエリアが画素数分だけ確保されている。
画像データをワークエリアに読み込んだら、手順2〜4にて図11に示すようにして対象画素を移動させつつ同対象画素の画像データについて加工を行って集計処理を行う。集計処理の内容は画像の特徴量に応じて様々であるが、本実施形態においては、「コントラスト」、「明度」、「カラーバランス」、「彩度」、「シャープネス」の5つの特徴量を得るための集計処理を行う。また、全画素について集計処理を終えたら、手順5では集計結果に基づいて特徴量を算出する。以下、これらの集計処理とともにそれに基づいて導出する特徴量について説明する。
コントラストは画像全体としての輝度の幅を示し、コントラストを修整したいと感じる場合、コントラストの幅を広げたいという要望が主である。ある画像の各画素における輝度の分布をヒストグラムとして集計したものを図12で実線にて示している。実線に示す分布を取る場合、明るい画素の輝度と暗い画素の輝度との差が少ないが、輝度の分布が一点鎖線に示すように広がれば明るい画素の輝度と暗い画素の輝度との差が大きくなり、コントラストの幅が広がることになる。ここで、図13はコントラストを拡大するための輝度変換を示している。変換元の輝度yと変換後の輝度Yとの間において、
Y=ay+b
なる関係で変換させるとすると、変換元の最大輝度Ymaxと最小輝度Yminの画素の差はa>1の場合において変換後において大きくなり、図12に示すように輝度の分布が広がることになる。従って、このようなヒストグラムを作成するとして輝度の最大値から輝度の最小値までの間隔をコントラストの幅として集計処理することが必要である。ただし、この場合はあくまでも輝度の変換であり、画像データが輝度を要素として備えていれば直接に集計が可能であるが、上述したように画像データはRGB256階調で表現されてているので、直接には輝度の値を持っていない。輝度を求めるためにLuv表色空間に色変換する必要があるが、演算量などの問題から得策ではないため、テレビジョンなどの場合に利用されているRGBから輝度を直に求める次式の変換式を利用する。
y=0.30R+0.59G+0.11B
すなわち、対象画素を移動させながら各画素の画像データである3バイトを読み込み、同式に基づいて輝度yを演算する。この場合、輝度yも256階調であらわすものとし、演算された輝度yに対する度数を1つずつ加えていくことになる。なお、白黒への変換はこの輝度を利用すればよく、求められた輝度の階調値をRGBの各成分値に一致させることで実現する。また、セピア調などの単色カラーについては輝度の階調値を求めた後でRGBの成分比に応じてRGBの各成分値を求めればよい。
このようにして輝度分布のヒストグラムを得るのが手順2の画像データ集計処理であり、このヒストグラムに基づいて手順5の特徴量抽出処理では輝度分布の両端を求める。写真画像の輝度分布は図14に示すように概ね山形に表れる。むろん、その位置、形状についてはさまざまである。輝度分布の幅はこの両端をどこに決めるかによって決定されるが、単に裾野が延びて分布数が「0」となる点を両端とすることはできない。裾野部分では分布数が「0」付近で変移する場合があるし、統計的に見れば限りなく「0」に近づきながら推移していくからである。
このため、分布範囲において最も輝度の大きい側と小さい側からある分布割合だけ内側に寄った部分を分布の両端とする。本実施形態においては、同図に示すように、この分布割合を0.5%に設定している。むろん、この割合については、適宜、変更することが可能である。このように、ある分布割合だけ上端と下端をカットすることにより、ノイズなどに起因して生じている白点や黒点を無視することもできる。すなわち、このような処理をしなければ一点でも白点や黒点があればそれが輝度分布の両端となるので、255階調の輝度値であれば、多くの場合において最下端は階調「0」であるし、最上端は階調「255」となるが、上端部分から0.5%の画素数だけ内側に入った部分を端部とすることにより、このようなことが無くなる。そして、実際に得られたヒストグラムに基づいて画素数に対する0.5%を演算し、再現可能な輝度分布における上端の輝度値と下端の輝度値から順番に内側に向かいながらそれぞれの分布数を累積し、0.5%の値となった輝度値が最大輝度Ymaxと最小輝度Yminとなる。
輝度分布の幅Ydifは最大輝度Ymaxと最小輝度Yminの差であり、
Ydif=Ymax−Ymin
となる。
コントラストを拡大する画像処理としては、輝度の分布に応じて傾きaとオフセットbを決定すればよい。例えば、
a=255/(Ymax−Ymin)
b=−a・Yminあるいは255−a・Ymax
とおくとすると、せまい幅を持った輝度分布を再現可能な範囲まで広げることができる。ただし、再現可能な範囲を最大限に利用して輝度分布の拡大を図った場合、ハイライト部分が白く抜けてしまったり、ハイシャドウ部分が黒くつぶれてしまうことが起こる。これを防止するには再現可能な範囲の上端と下端に拡大しない範囲として輝度値で「5」ぐらいを残すようにすればよい。この結果、変換式のパラメータは次式のようになる。
a=245/(Ymax−Ymin)
b=5−a・Yminあるいは250−a・Ymax
そして、この場合にはY<Yminと、Y>Ymaxの範囲においては変換を行わないようにするとよい。
また、このように変換するにあたって、毎回計算する必要はない。輝度の範囲が「0」〜「255」という値をとるとすれば、各輝度値について予め変換結果を予めておき、図15に示すように変換テーブルを形成しておく。ただ、この場合はあくまでも輝度の変換であり、RGB256階調の画像データの適用については別に考える必要がありそうである。しかしながら、実際には、変換前の画像データ(R0,G0,B0 )と変換後の画像データ(R1,G1,B1 )との間には輝度と同じ変換関係を適用可能であり、
R1=aR0+b
G1=aG0+b
B1=aB0+b
なる関係で求めることができるから、結果として図15に示す変換テーブルを利用して変換すればよいことが分かる。
すなわち、手順5にて特徴抽出する作業は上述した最大輝度Ymaxと最小輝度Yminを求める作業が該当するし、手順6の修整情報作成処理ではこれらから輝度分布の幅Ydifを求めつつ変換式のパラメータa,bを求めて変換テーブルを作成する処理が該当する。そして、手順7の修整指定処理ではこのような変換テーブルを指定して変換前の画像データ(R0,G0,B0 )から変換後の画像データ(R1,G1,B1 )を生成させることになる。
次に、明度について説明する。ここでいう画像の特徴量としての明度は画像全体の明暗の指標を意味しており、上述したヒストグラムから求められる分布の中央値(メジアン)Ymedを使用する。従って、この場合における集計処理は手順2にてコントラストのための集計処理と同時に行われる。
一方、手順5にて特徴量を分析する際には明度の理想値であるYmed_targetとの差(Ymed_target−Ymed)を算出すればよい。なお、理想値Ymed_targetの実際の値は「106」を使用するが、固定的なものではない。また、好みを反映して変更できるようにしても良い。
この特徴量を利用して明度を修整する場合は次のようにする。中央値Ymedが理想値Ymed_targetと比較して大きいか小さいかで画像が明るいか否かを評価できる。例えば、中央値Ymedが「85」であるとすれば理想値Ymed_targetの「106」よりも小さいので、第一次的に「暗い」と評価されるし、第二次的に暗さの程度は「106−85」と数値的に表現される。
図16は輝度のヒストグラムを示しているが、実線で示すように輝度分布の山が全体的に暗い側に寄っている場合には波線で示すように全体的に明るい側に山を移動させると良いし、逆に、図17にて実線で示すように輝度分布の山が全体的に明るい側に寄っている場合には波線で示すように全体的に暗い側に山を移動させると良い。このような場合には図13に示すような直線的な輝度の変換を施すのではなく、図18に示すようないわゆるγ曲線を利用した輝度の変換を行えばよい。
γ曲線による補正ではγ<1において全体的に明るくなるし、γ>1において全体的に暗くなる。上の例では中央値Ymedが「21」上がれば理想値Ymed_targetと一致することになるが、γ曲線を利用してぴったりと「21」上げるというのは容易ではない。このため、図19に示すように評価値である(Ymed_target−Ymed)について「5」刻み毎に対応するγの値を設定しておけばよい。この例では評価値の変動量「5」に対応してγの値を「0.05」ずつ変動させているが、両者の対応関係を適宜変更可能であることはいうまでもない。
また、コントラストの修整の場合と同様に自動的にγの値を設定することも可能である。例えば、
γ=Ymed/106
あるいは、
γ=(Ymed/106)**(1/2)
としてγの値を求めるようにしてもよい。むろん、γ曲線による輝度の変換についても図15に示すような変換テーブルを形成しておけばよい。
すなわち、手順5にて特徴抽出する作業は中央値Ymedを求める作業が該当するし、手順6の修整情報作成処理ではこれからγ補正値を求めつつ変換テーブルを作成する処理が該当する。そして、手順7の修整指定処理ではこのような変換テーブルを指定して各画素の変換前の画像データ(R0,G0,B0 )から変換後の画像データ(R1,G1,B1 )を生成させることになる。
次にカラーバランスについて説明する。ここでいうカラーバランスとは画像データを構成するR成分、G成分、B成分の間に一定のアンバランス傾向があるか否かを指すものとする。例えば、写真が赤っぽく見えるとして、それが撮影時の本当の状況を表しているのであれば構わないが、そうではない場合には何らかの悪影響が表れていると言える。ただし、このようなアンバランスは実際のところ本当の状況と比較しなければ分からないとも言えるので、事後的に評価すること自体が不可能であるとも考えられる。
本実施形態において、これを各色毎の度数分布の均一さから評価することにする。撮影時の状況によっては各色成分の度数分布が不均一となることの方が自然な状況もあり得、そのような場合においては色修整すべきではない。しかしながら、結果から逆を辿るとすると、各色成分の度数分布がある程度似ている状況では度数分布が均一となっているべきであろうし、度数分布が似ていなければ均一にすべきでないだろうと判断できる。
このため、手順2の画像データ集計処理においては、後で各色成分毎の度数分布の類似度をチェックするために、各色成分毎のヒストグラムを作成する。このとき、全階調値について度数分布を求めるのではなく、256階調の領域を8〜16分割(n分割)し、各領域に属する度数を集計していく。8分割する場合であれば、図20に示すように、「0〜31」、「32〜63」…「224〜255」という8つの領域について度数分布を求めていく。
一方、全画素を対象として各色成分毎に上述したヒストグラムを作成したら、手順5における特徴量の分析では各色毎に各領域に属する画素数(r1、r2…rn)、(g1、g2…gn)、(b1,b2…bn)(ここではn=8)を成分としてベクトル化する。RGBのそれぞれについて、特徴ベクトルVR,VG,VBを次のように表すとし、
VR=(r1、r2…rn) Σri=1
VG=(g1、g2…gn) Σgi=1
VB=(b1,b2…bn) Σbi=1
これらの特徴ベクトルの相互相関を求める。相互相関は、内積として
corr_rg=(VR・VG)/|VR|・|VG|
corr_gb=(VG・VB)/|VG|・|VB|
corr_br=(VB・VR)/|VB|・|VR|
で表されるが、ベクトルの内積自体は両ベクトルの類似度を表すといえ、その値は「0」〜「1」となる。ここでは、その最小値corr_xに基づいてカラーバランスを評価する。
なお、カラーバランスの修整はn分割した各領域毎に行うようにしても良いが、概略的には各色成分毎に全体的に明るくするか暗くするという対応で対処できるので、γ曲線を利用したRGB値の修整を行えばよい。
すなわち、手順5にて特徴抽出する作業は最小値corr_xを求める作業が該当するし、手順6の修整情報作成処理ではこれに基づいてバランスを修整するためのγ補正値を求めつつ変換テーブルを作成する処理が該当する。そして、手順7の修整指定処理ではこのような変換テーブルを指定して各画素の変換前の画像データ(R0,G0,B0 )から変換後の画像データ(R1,G1,B1 )を生成させることになる。
次に、彩度について説明する。ここでいう彩度は画像全体としての色鮮やかさを指すものとする。例えば、原色のものが色鮮やかに写っているかグレーっぽく写っているかといった評価である。彩度自体はLuv表色空間におけるuv平面内での基準軸からの大きさで表されるものの、上述したように表色空間を変換する演算量は多大であるため、画素の彩度を簡略化して求めることにする。これには彩度の代替値Xとして次のように演算する。
X=|G+B−2×R|
本来的には彩度は、R=G=Bの場合に「0」となり、RGBの単色あるいはいずれか二色の所定割合による混合時において最大値となる。この性質から直に彩度を適切に表すのは可能であるものの、簡略化した上式によっても赤の単色および緑と青の混合色である黄であれば最大値の彩度となり、各成分が均一の場合に「0」となる。また、緑や青の単色についても最大値の半分程度には達している。むろん、
X’=|R+B−2×G|
X”=|G+R−2×B|
という式にも代替可能である。
手順2での画像データ集計処理では、この彩度の代替値Xについてのヒストグラムの分布を求めることになる。この彩度の代替値Xについてのヒストグラムの分布を求めるとすると彩度が最低値「0」〜最大値「511」の範囲で分布するので、概略的には図21に示すような分布となる。
一方、手順5で特徴量を分析する際には、このヒストグラムに基づいて行う。すなわち、集計されたヒストグラムに基づいてこの画像についての彩度指数というものを決定する。この彩度の代替値Xの分布から上位の「16%」が占める範囲を求め、この範囲内での最低の彩度「S」がこの画像の彩度を表すものとする。
この彩度「S」が低ければ彩度強調を望むことになるが、自動修整する場合には次のようにする。
RGB表色空間のように各成分が概略対等な関係にある色相成分の成分値であるときには、R=G=Bであればグレイであって無彩度となる。RGBの各成分における最小値となる成分については各画素の色相に影響を与えることなく単に彩度を低下させているにすぎないと考えれば、各成分における最小値をすべての成分値から減算し、その差分値を拡大することによって彩度を強調できるといえる。いま、画像データの各成分(R,G,B)における青(B)の成分値が最小値であったとすると、この彩度強調パラメータSratio を使用して次のように変換できる。
R’=B+(R−B)×Sratio
G’=B+(G−B)×Sratio
B’=B
この例は無彩度の成分について単純に最小値の成分を他の成分値から減算する手法であるが、無彩度の成分を減算するにあたって他の手法も採用可能である。特に、この変換を行う場合には彩度を強調すると輝度も向上して全体的に明るくなるという傾向がある。従って、各成分値から輝度の相当値を減算した差分値を対象として変換を行うことにする。
彩度強調が、
R’=R+△R
G’=G+△G
B’=B+△B
となるとすると、この加減値△R,△G,△Bは輝度との差分値に基づいて次式のように求める。すなわち、
△R=(R−Y)×Sratio
△G=(G−Y)×Sratio
△B=(B−Y)×Sratio
となり、この結果、
R’=R+(R−Y)×Sratio
G’=G+(G−Y)×Sratio
B’=B+(B−Y)×Sratio
として変換可能となる。なお、輝度の保存は次式から明らかである。
Y’=Y+△Y
△Y=0.30△R+0.59△G+0.11△B
=Sratio{(0.30R+0.59G+0.11B)−Y}
=0
すなわち、変換前後で輝度が保存され、彩度を強調しても全体的に明るくなることはない。また、入力がグレー(R=G=B)のときには、輝度Y=R=G=Bとなるので、加減値△R=△G=△B=0となり、無彩色に色が付くこともない。
ここで、彩度強調パラメータSratio は評価値Psatuが小さくなるときに大きくなればよく、上述した最低の彩度「S」との関係で
S<92なら
S’=−S×(10/92)+50
92≦S<184なら
S’=−S×(10/46)+60
184≦S<230なら
S’=−S×(10/23)+100
230≦Sなら
S’=0
というように彩度強調指数S’を決定し、この彩度指数S’から彩度強調指数Sratio への変換を、
Sratio =(S+100)/100
として求めればよい。この場合、彩度強調指数S=0のときに彩度強調パラメータSratio =1となって彩度強調されない。図22はこの彩度「S」と彩度強調指数S’との関係を示している。
すなわち、手順5にて特徴抽出する作業は彩度「S」を求める作業が該当するし、手順6の修整情報作成処理では彩度指数S’を経て彩度強調指数Sratio を求める処理が該当する。そして、手順7の修整指定処理ではこのような彩度強調指数Sratio を使用しながら各画素の変換前の画像データ(R0,G0,B0 )から輝度を求めつつ変換後の画像データ(R1,G1,B1 )を生成させることになる。
最後に、シャープネスについて説明する。画像の特徴量としてのシャープネスについては以下に述べるエッジ度で評価する。画像データがドットマトリクス状の画素から構成されるものとすると、画像のエッジ部分では隣接する画素間での画像データの差分は大きくなる。この差分は輝度勾配であり、これをエッジ度と呼ぶことにする。図23に示すようなXY直交座標を考察する場合、画像の変化度合いのベクトルはX軸方向成分とY軸方向成分とをそれぞれ求めれば演算可能となる。ドットマトリクス状の画素からなるディジタル画像においては、図24に示すように縦軸方向と横軸方向に画素が隣接しており、その明るさをf(x,y)で表すものとする。この場合、f(x,y)は輝度Y(x,y)であってもよいし、RGBの各輝度であるR(x,y),G(x,y),B(x,y)であってもよい。図24に示すものにおいて、X方向の差分値fxとY方向の差分値fyは、 fx=f(x+1,y)−f(x,y)
fy=f(x,y+1)−f(x,y)
のように表される。従って、これらを成分とするベクトルg(x,y)の大きさDdifは、
Ddif=|g(x,y)|=(fx**2+fy**2)**(1/2)
のように表される。エッジ度はこのDdifで表される。なお、本来、画素は図25に示すように縦横に升目状に配置されており、中央の画素に注目すると八つの隣接画素がある。従って、同様にそれぞれの隣接する画素との画像データの差分をベクトルで表し、このベクトルの和を画像の変化度合いと判断しても良い。さらに、単に横並びのがその間でのみ比較するということも演算量の低減という面では効果がある。
以上のようにして各画素についてエッジ度が求められるとしても、全画素のエッジ度を求めて平均化するだけでは画像のシャープ度合いは求められない。図26は空を飛ぶ飛行機の写真を示しており、背景の空については画像の変化度合いが大きくないことは容易に分かる。このような場合、空の部分をトリミングする状況を想定すると、中央の被写体である飛行機の画像データが変わらないにも関わらず、空の画素が多くなると平均値が下がって画像はシャープでないことになり、空の画素か少なくなると平均値が上がって画像はシャープであることになる。このような場合、本来の被写体である飛行機のシャープさに基づいて画像のシャープさを判断するのが普通であるから、平均化は好適ではないといえる。
このため、全画像のエッジ度を平均化するのではなく、画像の中の輪郭部分がどれくらいシャープであるかを判断すべく、輪郭部分だけのエッジ度を平均化することにする。より具体的には、対象画素を移動させながら手順2にて画像データを集計処理する際に、上述したようにエッジ度を算出した上であるしきい値Th1と比較することにより、その画素がエッジ部分であるか否かを判定し、エッジ部分である場合にのみ、同エッジ度Ddifを積算する(ΣDdif)とともに、エッジ部分の画素数を積算する(ΣEdge_Pixel)。
一方、手順5で特徴抽出する際には、手順2にて積算しておいたエッジ度(ΣDdif)を画素数(ΣEdge_Pixel)で割り、エッジ部分におけるエッジ度の平均値Ddif_aveを算出する。むろん、このエッジ度の平均値Ddif_aveが大きいほどシャープな画像ということになる。エッジ度の平均値Ddif_aveが小さければエッジ強調を望むことになるが、本実施形態においては以下のようにする。まず、エッジ強調度Eenhance をエッジ度の平均値Ddif_aveから求める。一例として、
Eenhance =4×Ddif_ave/100
といった演算式で構わない。
エッジ強調処理自体は図27に示すようなアンシャープマスクを利用する。
エッジ強調度Eenhance を求めたら、全画素について図27に示すようなアンシャープマスクを利用してエッジ強調処理を実行する。強調前の各画素の輝度Yに対して強調後の輝度Y’は、
Y’=Y+Eenhance ・(Y−Yunsharp )
として演算される。ここで、Yunsharp は各画素の画像データに対してアンシャープマスク処理を施したものであり、アンシャープマスクは、中央の「100」の値をマトリクス状の画像データにおける処理対象画素Y(x,y)の重み付けとし、その周縁画素に対して同マスクの升目における数値に対応した重み付けをして積算するのに利用される。図27に示すアンシャープマスクを利用するのであれば、
なる演算式に基づいて積算する。同式において、「396」とあるは重み付け係数の合計値である。また、Mijはアンシャープマスクの升目に記載されている重み係数であり、Y(x,y)は各画素の画像データであり、ijについてはアンシャープマスクにおける横列と縦列の座標値で示している。
アンシャープマスクを利用して演算されるエッジ強調演算の意味するところは次のようになる。Yunsharp (x,y)は注目画素に対して周縁画素の重み付けを低くして加算したものであるから、いわゆる「なまった(アンシャープ)」画像データとしていることになる。このようにしてなまらせたものはいわゆるローパスフィルタをかけたものと同様の意味あいを持つ。従って、「Y(x,y)−Yunsharp (x,y)」とは本来の全成分から低周波成分を引いたことになってハイパスフィルタをかけたものと同様の意味あいを持つ。そして、ハイパスフィルタを通過したこの高周波成分に対してエッジ強調度Eenhance を乗算して「Y(x,y)」に加えれば同エッジ強調度Eenhance に比例して高周波成分を増したことになり、エッジが強調される結果となる。
なお、エッジの強調度合いは、アンシャープマスクの大きさによっても変化するため、エッジ強調度Eenhance をクラス分けするとともに対応するサイズのアンシャープマスクを用意しておき、対応するサイズのアンシャープマスクを利用するようにしても良い。また、エッジ強調が必要になるのは当然のことながら画像のエッジ部分であるから、上述したように隣接する画素同士の間で画像データが大きく異なる場所においてのみ演算するようにしてもよい。このようにすれば、殆どのエッジ部分でない画像データ部分でアンシャープマスクの演算を行う必要がなくなり、処理が激減する。
以上、シャープネスについてまとめると、手順5にて特徴抽出する作業はエッジ度の平均値Ddif_aveを求める作業が該当するし、手順6の修整情報作成処理ではエッジ強調度Eenhance を求める処理が該当する。そして、手順7の修整指定処理ではこのようなエッジ強調度Eenhance を使用しながら各画素の変換前の画像データ(R0,G0,B0 )から輝度強調された変換後の画像データ(R1,G1,B1 )を生成させることになる。
以上が本実施形態における画像修整制御部40における処理を概略的に説明したものである。ただ、同様の修整処理であっても目標値を変えることによって修整結果が変化する。従って、スタンダードな自動画像修整処理の他、色を記憶色に近づけて「きれい」な感じにする自動画像修整処理や、シャープネス強調や彩度強調を強めにしたりする「DPE」調の自動画像修整処理といったものを選択できるようにしておいても良い。記憶色に合わせる自動画像修整では、標準値としてユーザーの好みを設定できるようにしておくことにより、各人が「きれい」と感じるような自動画像修整を行えるようにすることもできる。
この画像修整制御部40はいわゆる画像修整エンジンとして利用され、本画像データ処理ソフトにおいてはかかる画像修整エンジンを使用しつつ図28〜図33のフローチャートに従ってメイン制御部60が画像修整処理を総括的に制御している。なお、JPEG方式データフォーマットは、書き換えを行う都度、画質が劣化してしまう。これはJPEG特有の8×8のブロックを基準とする処理のゆえであるが、このブロックに起因する歪みの低減処理を合わせて行っている。より具体的には、平滑化処理のフィルタを適用しており、ただしエッジ部分については平滑化しない手法である。このようなエッジ保存平滑化処理を弱めに架けることにより、エッジの箇所は強調される一方、8×8のブロック歪みやノイズについては平滑化されて滑らかになる。そして、折角、8×8ブロック歪みの低減をしても、JPEGなど劣化する方式で保存しては再度歪んでしまうし、BMP(ビットマップ)などの劣化しない方式では記録サイズが増大してしまう。一方、本実施形態のようにパラメータを管理する方式においては、表示や印刷という出力のときに低減処理を行うため、ベストな画質での画像表現が可能となっている。
このメイン制御部60によって行われる一連の画像データ管理処理として同時プリント処理がある。図34はこの同時プリント処理における画面表示を示している。この場合、メイン制御部60は共通機能部20の表示指定部20bに対して適宜指令を出力してディスプレイ17a上に同画面を表示させつつ、キーボード15aやマウス15bの操作入力を受け付けることになる。
この同時プリント処理画面においては、画面上の左寄り部分が操作表示エリアとなっており、ここには一連のデータ処理の流れに沿ってタブが表示されている。この例では「写真の入力」、「写真の修整」、「プリント指定」、「印刷」というタブが表示され、それぞれの間に下向きの「△」マークを表示している。むろん、データ処理は「写真の入力」処理、「写真の修整」処理、「プリント指定」処理、「印刷」処理という順序を経て、所望の画像データを綺麗に印刷できるようになる。従来でも、同様の処理を実行することは当然に可能であったのだが、その場合には自分自身で手続の流れを想定して作業を進めていかなければならない。
すなわち、1:ファイルメニューの中から画像データをオープンし、2:ツールメニューの中から画像修整操作を指定して必要なパレットなどを表示させつつ所望の修整を行った後で保存し、3:ファイルメニューの中の印刷レイアウトで印刷したいフォーマットを指定し、4:ファイルメニューの中の印刷プレビューで確認し、5:最後にファイルメニューの中の印刷を実行する。むろん、複数の画像データを印刷したい場合には、この処理の中でファイルメニューの中から印刷対象を決定するという作業が必要になる。
これに対して、デジタルスチルカメラ11bで撮影した写真を印刷しようとするのは通常の写真撮影の場合と比較するとDPEにて同時プリントを指定することに対応するわけであり、一連のデータ処理を同時プリントの作業に対応させて進行させるようにし、アプリケーションに精通していなくても一連のデータ処理を実行可能となる。
図34の同時プリント処理画面では「写真の入力」という表示をしているが、実質的にはフィルムデータ管理部30による画像データ管理を行うことになる。表示エリアの内の左寄り部分は操作表示エリアdp1となっているが、残りの表示エリアは主表示エリアdp2となり、さらにそのうちの左寄り部分が画像データをグループ化して表示するためのグループ表示領域dp3となっており、残りの部分はあるグループが選択された場合にそのグループに属する画像データをサムネールで表示するための画像表示領域dp4となっている。
このグループ表示領域dp3は上述したようなフォルダ単位に対応したフィルムメタファを表示するための領域であり、フィルムのパトローネを枠として表示しつつ、その中にフィルム名とコメントと日付と収容画像ファイル数を表示している。むろん、各フィルムメタファのプロパティを表示させれば、フィルム名、リンク先、日付、コメント、媒体属性、媒体ラベル、フィルム属性、収容画像ファイル数といった全ての情報を表示することになる。また、グループ表示領域dp3はGUIを使用して適宜表示領域を増減させることができ、表示領域に表示しきれなくなればスクロール表示を付加したり、縮小表示するようになる。むろん、表示された複数のフィルムメタファの内のいずれか一つを選択操作することにより、画像表示領域dp4には選択されたフィルムメタファに対応するフォルダ内に保存された画像ファイル30aがサムネール表示されることになる。
本実施形態においては、オペレーティングシステム12aが採用しているフォルダの階層構造を利用して画像データの管理を行っているため、操作者がコンピュータシステム10を直に操作してフォルダ内に画像ファイル30aを収容することも可能であり、この場合にはフォルダ内の画像ファイル30aの有無と写真データ30bとにずれが生じる場合があるが、この場合にはフォルダ内の画像ファイル30aの有無を優先して写真データ30bを適宜増減させることにする。
この意味でもフィルムメタファに対応するフォルダ内に存在する画像ファイル30aに基づいて対応する写真データ30bがあるか否かを判断し、写真データ30bがあればそのサムネールデータを使用して表示を行うし、写真データ30bがなければサムネール作成部20iにてサムネールデータを作成後、表示を行う。写真自体は縦長あるいは横長であり、一つのサムネール表示領域は両方を収容可能な正方形であるとともにその枠外には連番と実際のファイル名を表示している。
なお、同時プリントを選択する場合は、既にデータ管理を行っているものである場合のみならず、撮影したばかりの画像データを取り込んで印刷にかけるときもあるし、あらかじめ画像データ自体は一定の記憶領域に取り込んであって新たにデータ管理を開始する場合とが考えられる。撮影したばかりの画像データを取り込む手法は、例えば、デジタルスチルカメラ11bからケーブル接続して取り込む場合であるとか、所定の交換可能な記録媒体を利用する場合であるとかが考えらえる。いずれにおいても、図34に示す画面において主表示エリアの上部にコマンドボタンとして用意されている「新しいフィルム」を実行する。すると、図35に示すように「いつもの入力」と「入力方法を選択」という二つのコマンドボタンを実行可能となるとともに、併せて「入力の設定」というコマンドボタンを実行可能となる。一般の操作者は単一のデジタルスチルカメラ11bを持っているとすると画像データの取り込みは一定であると考えられ、あらかじめ「入力の設定」で選択しておいた画像データの転送手法を実行することになる。むろん、複数のデジタルスチルカメラ11bを所有している場合であるとか、たまたま別の手法で取り込む必要がある場合もあるから「入力方法を選択」のコマンドボタンを実行させれば取り込み可能な複数の手法を表示して選択することになる。なお、これらの場合において外部アプリケーションを実行させる必要がある場合もあるが、これらは入力の設定にて設定しておくことによって適宜実行される。なお、入力の指定方法などは適宜変更可能であることはいうまでもない。
このような状態で、操作者はグループ表示領域に表示されるパトローネ内の表示を見てグループを判断しつつその画像データを画像表示領域に表示させ、さらに印刷対象としたい画像データを選択する。この選択操作は画像選択部20aによって受け付けられる。選択された画像データについてはそのサムネール表示領域の枠部分の色を変えて表示することにより、選択の有無が容易に判断できる。そして、選択結果は以後の「写真の修整」はもとより、「プリント指定」を経て「印刷」の処理での出力対象として反映されることになる。なお、これらの場合に各処理で参照されるのは物理的配置情報であり、選択対象とした画像データを仮領域に移動させて実際の処理を行うわけではない。
「写真の入力」において印刷したい画像データを選択したとして、操作表示エリアでの表示に依れば次の処理が「写真の修整」であることが一目瞭然である。この「写真の修整」では選択された画像データだけについて画像修整を実行することができる。図36は自動画像修整を行う場合の主表示エリアでの表示を示している。同図には選択された画像データについて修整前の画像をサムネールで上段に表示し、上述した自動修整を施した修整後の画像をサムネールで下段に表示している。操作者は両者を見て比較し、どちらが良いか選択する。むろん、選択は好みの側のサムネールをマウス15bでクリックすることにより行え、クリックした側については表示指定部20bが枠部分を反転表示するなどして判別できるようにする。なお、デフォルトは修整前を選択状態としておき、マウスでクリックした側についてだけ修整後のものを選択状態としても良いし、殆どの場合は画質を修整されたものについて選択されるであろうとの想定のもとでデフォルトを修整後のものを選択状態とするようにしても良い。
この場面において、最下部には「実行」のコマンドボタンと、「キャンセル」のコマンドボタンが用意されており、「実行」のコマンドボタンをマウスでクリックすると、各画像データごとに用意されている写真データ30bの修整情報が更新される。図7に示すように自動画像修整(m_nApf)の管理パラメータが用意されており、修整後の画像データを選択して「実行」コマンドボタンをクリックしたときには同自動画像修整(m_nApf)の管理パラメータにフラグをセットする。すなわち、修整後の画像データを選択するとしても、この元の画像データに置き換えて修整後の画像データを上書きしてしまうのではなく、単に管理パラメータのフラグをセットするにすぎない。しかし、以後の処理においてはこの管理パラメータを参照し、本画像データについては自動修整された画像データについて処理を実行すべきものと判断できるようになる。むろん、その際には画像データを読み込み、画像修整制御部40によって自動画像修整しなければならない場合もあるが、写真データ30b内のサムネールデータについては修整後の画像データに基づくサムネールデータに更新しておき、表示程度であればこのサムネールデータを表示するだけでも良い。なお、画面下には「オリジナルデータに反映させる」というチェックボックスを用意してあり、このチェックボックスをチェックしておいたときには修整後の画像データで元の画像データを上書きする。
この例では、自動画像修整を選択的に実施するようにしているものの、かかる機能を利用しない手はなく、特に操作の未熟なものにおいてはかかる機能があっても選択操作を知りえないという問題もある。従って、写真の入力時にデフォルトで自動画像修整を行なってしまい、写真の修整という処理を表さないようにすることも便利である。
図37は、そのような場合の画面表示の一例を示している。同図に示すものでは、操作として「写真の入力」の前に「フィルムの選択」という処理を加えるとともに、「写真の入力」の後は「プリント指定」の処理を実行するようにしている。図34に示すもののように「写真の入力」の処理で新しいフィルムを選択できるようにしつつ、写真を選択するようにしても良いが、図37に示すものでは最初に「フィルムの選択」の画面表示を行うことにより、パトローネ単位での写真データの選択であるとか新しいフィルムの選択を先に実行して分かりやすくしている。また、この画面表示では処理を進めたり戻したりするための指示を行うために画面右寄り部分の上段に「前のステップ」と「次のステップ」というコマンドボタンを用意し、「前のステップ」を実行させると処理を戻し、「次のステップ」を実行させると処理を先に進めるようにしている。さらに、画面上段部分には各段階の処理の簡単な説明を表示できるようにしている。例えば、「フィルム選択」の段階では「フィルムを選んで次に進んで下さい。新しいフィルムは『フィルムの追加』で作れます」と表示している。
一方、手動画像修整を選択することも可能であり、修整度合いをGUIを利用して指示することになる。すなわち、GUI表示をマウス15bで操作して手動修整の結果を反映させる。本実施形態においては、画像処理部20gにおいて明るさとコントラストについて段階的な強調処理を実行可能で、その前提のもとに各強調程度を表すパラメータを用意してあり、選択された修整結果を表すパラメータを明るさ成分の強調度(m_nBrightness)の管理パラメータと、コントラストの強調度(m_nContrast)の管理パラメータとに反映させるようにしている。
手動画像修整は、明るさとコントラストに限られるものではなく、赤成分と緑成分と青成分とにおいてそれぞれ強調処理を実行可能であり、それぞれの強調程度を表すパラメータが赤成分の強調度(m_nRed)の管理パラメータと、緑成分の強調度(m_nGreen)の管理パラメータと、青成分の強調度(m_Blue)の管理パラメータとにそれぞれ反映されるようになっている。
画像修整は広い意味で画像データの表示に反映される各種の処理を含むものであり、広義の意味で画像のトリミングや回転も含めている。画像データを選択した状態でトリミングを実行させると図38に示すように現時点での管理パラメータに基づく画像データを所定の大きさの枠内に表示する。ここで、マウス15bを操作してトリミング開始位置とトリミング終了位置を指定し、「実行」コマンドボタンをクリックすると開始位置と終了位置を対角とする矩形領域以外を取り除いて表示する。むろん、この場合に元の画像データの一部を削除するわけではなく、トリミング開始X座標(m_x1)とトリミング開始Y座標(m_y1)とトリミング終了X座標(m_x2)とトリミング終了Y座標(m_y2)の管理パラメータに座標値を設定するだけであり、これに基づいてサムネール作成部20iが新たにサムネールを作成し、写真データ30b内においてのみ更新する。
一方、画面の回転も広い意味で画像修整と呼び、カメラを横にして写した縦型の写真を表示上でも縦長とする場合に利用する。図39はこのような回転処理の場合の主表示エリアの表示画面を示しており、左上部分に元の画像データをサムネール表示するとともに、その下に90度毎の三つの回転角度と、任意の回転角度を選択するための操作入力ボタンを用意してある。また、右中央部部分には選択された回転角度だけ回転させたサムネールを表示できるようになっている。むろん、選択された回転角度は回転角度(m_nRotation)の管理パラメータにセットされる。
図40と図41はこれらの画像修整を指定する際のメニュー操作を示している。図40は自動画像修整を行う場合のメニュー操作例であり、メニューバー上で画像修整をクリックするとドロップダウンメニューが表示され、その中で自動画像修整を選択すると、更に詳細なオプションが表示される。むろん、このときに「きれい」をクリックすれば自動画像修整を「きれい」のオプションで起動させることになる。この場合、選択されている画像データの全てについて図36に示すように表示される。また、図41は手動画像修整を行う場合のメニュー操作例であり、画像修整をクリックしつつドロップダウンメニューの手動画像修整を選択すると、「明るさ・コントラスト」についての修整か「色強調」の修整かを選択可能となる。手動画像修整については自動画像修整を実行しても未だ改善されないようなものについて個別的に実行することが多いと考えられ、手動画像修整の対象とする画像データを選択しておいた上で起動した場合にのみこれらを実行できるようにしておく。
この他、トリミングであるとか回転であるとか白黒変換やセピア変換についても画像データを選択しておいた上でこのドロップダウンメニューから画像処理を選択して実行させることになる。なお、白黒変換やセピア調変換は個別に行うものではあっても変換結果は画一的であり、手動画像修整のように操作者の主観で調整しなければならないものではない。従って、実際には白黒変換やセピア調変換については自動画像修整(m_nApf)の管理パラメータをセットすることにしている。
これまでは、同時プリントの処理を選択したときに画像データに対して各種の修整を行っていく過程でパラメータがセットされていく状況を説明した。次に、実際にこのような操作を実現するためのコンピュータシステム10内での処理について説明する。
図28〜図31は各処理をフローチャートにより示している。図28は自動画像修整を実行する場合の処理を示しており、自動画像修整を実行する画像データを読み込む際、ステップ100にて写真データ30bのデータベース構造を参照し、修整情報を読み取る。この修整情報は、上述した各種のパラメータを意味しており、これらのパラメータによって自動画像修整や手動画像修整を実行すべき旨の指定があれば以下の自動画像修整は行うことなく本処理を終了する。これは自動画像修整を重ねて実行する意味がないことと、手動画像修整によって好みが反映されている以上はこれを自動的に修整することはできないからである。
次に、ステップ110にて画像データを読み込み、ステップ115にて画像の特徴を抽出し、ステップ120にて特徴情報の保存を行い、ステップ125にて自動修整の修整情報を作成し、ステップ130にて自動修整の画像処理を実行する。むろん、これらは図9にて説明したような手順1〜手順6に該当する。一方、トリミング開始X座標(m_x1)とトリミング開始Y座標(m_y1)とトリミング終了X座標(m_x2)とトリミング終了Y座標(m_y2)の管理パラメータにトリミングの位置情報が設定されている場合にはステップ135の判断を経てステップ140にてトリミングする画像処理を実行するし、回転角度(m_nRotation)の管理パラメータに回転の修整情報が設定されている場合にはステップ145の判断を経てステップ150にて画像を回転させる回転の画像処理を実行することになる。
以上の処理を経ることにより自動画像修整後の画像を得ることができるようになるため、ステップ155では図36に示すように修整前と修整後のサムネールを表示するとともに、この自動画像修整処理の結果を採用するか否かの入力を待機することになる。すなわち、自動画像修整後のものの方が望ましければそれを選択状態とし、「実行」コマンドボタンをクリックする。この場合、ステップ170では「オリジナルデータに反映」というチェックボックスにおける選択状況を取り込み、チェックしてあると判断するとステップ175にて画像データを上書き保存することになる。
オリジナルを書き換える場合には修整情報を参照することは必要なくなり、書き換えない場合にのみステップ180にて修整情報を保存する。一方、「標準」の画像自動処理では物足りないような場合には、図40に示すように「きれい」だとか「DPE調」などを選択したときには当該設定に応じた自動画像修整を実行させるべく、予めステップステップ165にて自動画像処理の動作条件値を変更し、ステップ115にて上述した処理を繰り返す。なお、「キャンセル」のコマンドボタンをクリックされたときには「中止」と判断して本処理を終了する。
むろん、自動画像修整はこれ以外にも様々な条件に対応する事が可能である。従って、予め用意してある「DPE調」などの選択以外にも「この辺りをもっと明るく...」とか「全体をもっと黄色に」といったユーザの指定に応じて上記動作条件値を変更し、上述した処理を繰り返すようにすることも可能である。この動作条件値はステップ165にて後発的に設定するばかりではなく、ステップ125にて最初に自動画像修整の修整情報を作成する時点でも当然に反映されている。
次に、手動画像修整を実行する場合の処理を説明する。図29は手動画像修整の処理を示しており、手動画像修整を実行されたときには、処理対象となっている画像データを読み込む前にステップ200にて修整情報を読み込み、続いてステップ205にて同画像データを読み込む。続いてステップ210にて自動画像修整(m_nApf)の管理パラメータを参照し、同管理パラメータが設定されている場合にはステップ210の判断を経てステップ215にて自動画像修整の画像処理を実行する。
この後、ステップ220では、既に設定されている手動画像修整についての管理パラメータを読み込んで指定どおりの画像処理を実行し、その後でトリミングについての処理と回転についての処理をそれぞれ管理パラメータに基づいてステップ225〜240にて実行する。
以上の処理を経ることにより既に設定されている手動画像調整後の画像を得ることができるようになるため、ステップ245で上述したようにしてさらに手動調整の操作を実行すればステップ255にて修整情報を変更し、ステップ220〜240の処理を経て画像修整を実行する。
また、「実行」のコマンドボタンをクリックされたら「確定」を意味するものと判断し、「オリジナルデータに反映」のチェックボックスにおける選択状況に応じてステップ265にて元の画像データを書き換えたりステップ270にて最終的な修整情報を表す管理パラメータを書き換えたりすることになる。なお、「キャンセル」のコマンドボタンをクリックされたときには「中止」と判断して本処理を終了する。
次に、トリミングを実行する場合の処理を説明する。図30はトリミングの処理を示しており、処理対象となっている画像データを読み込む前にステップ300にて修整情報を読み込み、続いてステップ305にて同画像データを読み込む。続いてステップ310にて自動画像修整(m_nApf)の管理パラメータを参照し、同管理パラメータが設定されている場合にはステップ315にて自動画像修整の画像処理を実行する。また、ステップ320にて既に設定されている手動画像修整についての各種の管理パラメータを参照し、それぞれ管理パラメータが設定されている場合にはステップ325にて対応する画像処理を実行する。
この後、ステップ330では既に設定されているトリミングについての管理パラメータを参照し、ステップ335にてトリミングの画像処理を実行するし、ステップ340では既に設定されている回転についての管理パラメータを参照し、ステップ345にて回転の画像処理を実行する。
以上の処理を経ることにより既に設定されている全ての画像修整後の画像を得ることができるようになるため、ステップ355では図38に示す画面表示でトリミングの操作を受け付け、新たにトリミングの操作が行われた場合にはステップ360にて修整情報を変更し、ステップ335の処理を経て画像修整を実行する。なお、この場合はステップ340にて回転についての管理パラメータを参照するが、回転については重複するか否かを判断し、重複して実行するわけではない。
この場合も、「実行」のコマンドボタンをクリックされたら「確定」を意味するものと判断し、「オリジナルデータに反映」のチェックボックスにおける選択状況に応じてステップ365にて元の画像データを書き換えたり、ステップ370にて最終的な修整情報を表す管理パラメータを書き換えたりすることになる。なお、「キャンセル」のコマンドボタンをクリックされたときには「中止」と判断して本処理を終了する。
最後に、回転を実行する場合の処理を説明する。図31は回転の処理を示しており、処理対象となっている画像データを読み込む前にステップ400にて修整情報を読み込み、続いてステップ405にて同画像データを読み込む。続いてステップ410にて自動画像修整(m_nApf)の管理パラメータを参照し、同管理パラメータが設定されている場合にはステップ415にて自動画像修整の画像処理を実行する。また、ステップ420にて既に設定されている手動画像修整についての各種の管理パラメータを参照し、それぞれ管理パラメータが設定されている場合にはステップ425にて対応する画像処理を実行する。
この後、ステップ430では既に設定されているトリミングについての管理パラメータを参照し、ステップ435にてトリミングの画像処理を実行するし、ステップ440では既に設定されている回転角度(m_nRotation)についての管理パラメータを参照し、ステップ445にて回転の画像処理を実行する。
以上の処理を経ることにより既に設定されている全ての画像修整後の画像を得ることができるようになるため、ステップ455では図39に示す画面表示で回転の操作を受け付け、新たに回転の操作が行われた場合にはステップ460にて修整情報を変更し、ステップ445の処理を経て画像修整を実行する。
この場合も、「実行」のコマンドボタンをクリックされたら「確定」を意味するものと判断し、「オリジナルデータに反映」のチェックボックスにおける選択状況に応じてステップ465にて元の画像データを書き換えたり、ステップ470にて最終的な修整情報を表す回転角度(m_nRotation)の管理パラメータを書き換えたりすることになる。なお、「キャンセル」のコマンドボタンをクリックされたときには「中止」と判断して本処理を終了する。
このようにして管理パラメータを利用する一つのメリットとして元の画像データに変更を加える必要が無くなることがあげられ、元の画像データを活かすためには管理パラメータを修整する必要が生じてくる。
図40や図41に示すようにファイルメニューの画像修整を選択した際に表示されるドロップダウンメニューには、最下段に画像修整取消のコマンドが用意されており、同コマンドを選択して実行させると図32のフローチャートに従って処理が実行される。
この場合も画像データを選択した状態で画像修整取消を実行させるものとし、ステップ500において当該画像データについての写真データ30bの修整情報を読み込み、ステップ505において図42に示す操作メニューを主表示エリアに表示して操作入力を待機する。この操作メニューでは取消対象として「自動画像修整」、「手動画像調整」、「回転」、「トリミング」、「白黒」、「セピア調」といった取消対象の項目とともにそれぞれの項目の前にチェックボックスを表示している。ここで、操作者は取り消したい画像修整項目の前のチェックボックスをマウス15bでクリックすることによりチェックマークがトグル表示されるとともに、内部的にはそれぞれのチェックマークの有無をフラグで表して記憶する。また、下段には「実行」コマンドボタンと「キャンセル」コマンドボタンとを用意してあり、操作者は必要なチェックボックスをチェックしたら「実行」のコマンドボタンをクリックする。
すると、ステップ510以下において各チェックボックスにチェックマークが付されているか否かを判断しながら対応する修整情報を削除していく。むろん、ここでいう修整情報の削除とは管理パラメータの修整に他ならず、元の画像データを加工するようなことは一切不要である。具体的に説明していくと、ステップ510では「自動画像修整」の項目にチェックマークが付されているか否かを判断し、付されていればステップ515にて「自動画像修整」の修整情報を削除する。次に、ステップ520では「白黒」の項目にチェックマークが付されているか否かを判断し、付されていればステップ525にて「白黒」の修整情報を削除する。次に、ステップ530では「セピア調」の項目にチェックマークが付されているか否かを判断し、付されていればステップ535にて「セピア調」の修整情報を削除する。次に、ステップ540では「手動画像調整」の項目にチェックマークが付されているか否かを判断し、付されていればステップ545にて「手動画像調整」の修整情報を削除する。手動画像調整には明度やコントラストや色強調といったものが含まれ、この例では全部を取り消すようにしているが、それらを個別に取り消せるようにしても良い。
次に、ステップ550では「トリミング」の項目にチェックマークが付されているか否かを判断し、付されていればステップ555にて「トリミング」の修整情報を削除する。次に、ステップ560では「回転」の項目にチェックマークが付されているか否かを判断し、付されていればステップ565にて「回転」の修整情報を削除する。
以上の結果を経ていくつかの修整情報が削除された状態でステップ570ではその修整情報を保存する。ここでいう保存作業は、写真データ30bの更新を意味し、図5に示す写真データ30bのデータベース構造にアクセスして最新の修整情報に更新する。なお、図42に示す操作メニューで「キャンセル」のコマンドボタンをクリックすると、内部的には全てのチェックマークを削除して以上の処理を実行するため、結局は何も修整情報を削除することなく本処理を終了することになる。なお、この例では一旦作成した修整情報を削除することによって元に戻す手法を採用しているが、修整情報自体に日時の情報を付加することにより一つの画像データについて時系列に対応した複数の修整情報を管理するようにしてもよい。このようにすれば、単に修整情報を削除することによって元に戻すだけでなく、任意の段階の修整情報まで遡って修整情報を削除することも可能であり、途中の段階で良好だった修整結果を復元するといったことも可能となる。
これまで、各画像データに対応して用意されている管理パラメータを設定し、あるいは取り消す作業について説明したが、この管理パラメータを利用しつつ、実際に修整された画像データを利用できるようにする処理について図33のフローチャートを参照しながら説明する。
修整された画像データを利用する場面は、表示指定部20bによる指示に従ってサムネール作成部20iがサムネールを更新して画面表示する場合であるとか、画像出力部20kによって画像データのデータフォーマットの形式を変換して出力する場合であるとか、後述するようにDPE印刷制御部50によって印刷を実行する場合にその元の印刷データを作成する場合などである。従って、それぞれの場合において微細な処理の相違はあるものの、概ね図33のフローチャートと一致している。
ステップ600で対象となる画像データの修整情報を読み込むとともに、ステップ605で画像データを読み込み、以下の処理において修整情報に従いながら同画像データに基づいて画像修整を行っていき、この画像データを書き換えることなく新たな画像データを作成していく。ステップ610では自動画像修整の修整情報があるか判断し、ある場合にはステップ615にて自動画像修整を行なう。この場合、自動画像修整(m_nApf)の管理パラメータには単に自動画像修整を行うという情報だけではなく、「標準」、「きれい」、「DPE調」といったどの自動画像修整を行うのかを判断して処理を進める。また、白黒やセピア調への変換は修整結果が1通りにしか過ぎないことからこの自動画像修整の管理パラメータで表せるようにしており、同時あるいは択一的に実施する。
続いてステップ620では手動調整の修整情報があるか否かを判断し、あればステップ625にて手動調整の画像処理を実行する。手動調整の修整情報は上述したように、明るさ成分の強調度(m_nBrightness)と、コントラストの強調度(m_nContrast)と、赤成分の強調度(m_nRed)と、緑成分の強調度(m_nGreen)と、青成分の強調度(m_Blue)とから構成されており、いずれか一つでも修整情報があれば対応する画像処理を実行するし、明るさとコントラストについての修整情報と、色強調の修整情報とがある場合には、前者についての修整を行った上で後者の修整を行うことにする。むろん、かかる修整順序を反映した結果が得られる場合には一度の修整で実行することも可能である。
この後、ステップ630ではトリミングの修整情報があるか判断し、ある場合にはステップ635にてトリミングの画像処理を実行する。トリミングの画像処理では、トリミング開始X座標(m_x1)とトリミング開始Y座標(m_y1)とトリミング終了X座標(m_x2)とトリミング終了Y座標(m_y2)に囲まれるエリアを残して周囲の画像データを削除することになる。
また、ステップ640では回転の修整情報があるか判断し、ある場合にはステップ645にて回転の画像処理を実行する。回転の画像処理では、回転角度(m_nRotation)の管理パラメータに基づいて回転角度を参照し、画像データを回転させる処理を実行することになる。
以上の画像処理は最初に元画像データをワークエリアに保存し直した上、そのワークエリア上の画像データに変更を加えていく。従って、元画像データには変更は加えられない。
以上は、操作者の選択操作に応じて実行されたりされなかったりするオプション的な画像処理であるが、ステップ650とステップ655ではハードウェア環境の相違に基づいて必須の画像処理を実行している。ステップ650では出力機器に応じた色再現の画像処理を実行する。カラー出力の再現機器では基準とのずれがあるのは否めない。すなわち、同じ画像データを入力しながら出力結果が相違することは多々ある。また、このずれを画一化して画像データと出力結果とが必ず標準状態と一致することは単純に費用対コストの面でも無理な話であり、それよりはずれを見越して修整するための色合わせ情報を利用するのが得策である。
上述した画像データの場合であれば、撮影した側での色ずれ情報と出力する側での色ずれ情報があれば出力結果において大きな色ずれは発生しないと言える。本実施形態においては、前者の色ずれ情報を色合わせ情報として写真データ30bのデータベース構造内で管理するとともに、本コンピュータシステム10とカラープリンタ17bとにおいて生じる色ずれ情報として設定情報内で管理し、ステップ650において両者の色ずれ情報に基づいてワークエリア上の画像データを修整する。
また、ステップ655では出力機器に応じた解像度の画像処理を実行するものであり、画像データの解像度に対して出力する際の解像度とを対比して対応する解像度変換を行う。例えば、カラーディスプレイ17aでの表示が70dpiであってその大きさ通りに印刷しようとする場合、カラープリンタ17bの解像度が720dpiであるとすると、縦横方向に10倍の解像度変換が必要になる。
図34に示す同時プリントの処理の説明に戻ると、写真の修整の次に行われるのは「プリント指定」の処理である。既に、「写真の入力」と「写真の修整」を経ており、印刷したい画像データの選択と、それに施すべき画像処理が選択されている。この「プリント指定」では選択されている画像データをどのようなフォーマットで印刷するかを指定する。
図43は「プリント指定」での主表示エリアでの表示を示しており、上段部分には横方向にスクロール可能な表示エリアを配してレイアウトのパターンを表示可能となっている。同図においては、「4枚ずつのレイアウト」、「アルバム印刷」、「シール印刷」のレイアウトが表示されている。むろん、これ以外にもレイアウトのパターンを実装することは可能である。また、オプションとして、切断する際の位置の目安となるトンボを印刷したり、日付を印刷したり、タイトルを印刷させるのを選択できるようにチェックボックスを設けている。さらに、用紙については「A4」、「B5」、「シール」などに対応しており、これらについてはいずれかだけを排他的に選択できるラジオボタンを設けてある。
印刷する際には、カラープリンタ17bの機種に応じて印刷データを生成させる必要があるから、下段左方にはプリンタ装置の選択表示エリアを設けてある。ここでプリンタ装置を選択することにより、それぞれに対応した設定情報が読み出され、上述した色ずれを修整したり、出力解像度を一致させることになる。
レイアウトの中には「アルバム印刷」のレイアウトが用意されており、「アルバム詳細」のコマンドボタンをクリックすると主表示エリアには図44に示す操作画面が表示される。この表示画面においても上段部分には横方向にスクロール可能な表示エリアを配してアルバムのパターンを表示可能となっており、この例ではA4用紙を横二列縦四段に配して市松様に画像を印刷するものと、左側半分に縦四段に配して画像を印刷するものと、上下に二段に分けて画像を印刷するものとを示している。また、アルバム印刷用のオプションとして、コメントを印刷したり、日付を印刷したり、ページタイトルを印刷させるのを選択できるようにチェックボックスを設けてあるとともに、アルバム印刷においては日をおいて順次印刷していくことから通しのページ番号を印刷できるようにページ番号の指定覧も設けてある。なお、このページ番号は前回のアルバム印刷の後続ページ番号を自動的にセットするようにしても良い。そして、この表示通りで良ければ「OK」のコマンドボタンをクリックすればよいし、気に入らなければ「キャンセル」のコマンドボタンをクリックすればよい。
図34に示す同時プリントの最後の処理は「印刷」であるが、この主表示エリアには図45に示すように現在指定されているプリンタ装置の機種と、印刷する用紙のサイズと、必要な枚数を含めて確認用のメッセージを表示し、さらに印刷を開始させるための「実行」のコマンドボタンと、「キャンセル」のコマンドボタンを用意してある。むろん、この状態で「実行」のコマンドボタンをクリックすれば印刷が開始される。カラープリンタ17bによっては印刷に時間を要することが少なくないため、予め指定しておくべき操作を全て完了した上でこの「実行」ボタンをクリックすれば風呂上がりには印刷を全て完了させておくということが容易になる。
ところで、図46はこのような「プリント指定」と「印刷」の処理を実行するDPE印刷制御部50の具体的構成を示している。印刷画像指定部50aは上述したようにして選択された画像データの指定を受け継ぐものであり、フレーム指定部50bとレイアウト指定部50cとによって「プリント指定」の処理を実行し、プリント指定部50dによる制御の下で印刷スタイル作成部50eと印刷画像処理部50fとで実際の印刷データを生成する。一般に画像データはRGBの多階調表示で表されている反面、印刷はCMYKの二階調表示が多い。このため、印刷画像処理部50fは上述した指定に応じた画像処理を実行させた上でRGB→CMYKの色空間の変更ととともに多階調→二階調の階調変換処理も併せて実行する。
なお、一つの画像データに対して複数の修整情報を時系列的に保存するようにする場合、修整の削除を行う際には履歴を表示し、一つ一つ遡って削除するようにしていけばよい。むろん、事例列的な修整データがある場合には最古のものから順番に画像処理を施していって利用したい画像データを再現することになる。また、修整を追加したい場合には新たに修整情報を生成し、以前の修整情報を残したまま保存する。
<第二の実施例>
一方、図47は上述したフォルダ単位の階層構造をより具体的に示したものである。まず、フィルムデータ30cについては、この画像データ処理装置の主要プログラムが格納される「main」フォルダ31のデータベースファイルai_dpe.db0として保存されている。主要プログラムと同一フォルダであるので、どのパトローネがどのフォルダに対応するかは核となる重要な情報であり、ユーザーの任意の指定によって場所を変えてしまうことにより、結果的に散逸してしまうことを防止する。次に、CD−ROM13c−1等の交換可能な記憶領域に保存された画像ファイル30aについては、パトローネ単位で写真データ30bを管理するものとして、この写真データ30bを「main」フォルダ31の中に形成した「removable」フォルダ32にデータベースファイルphoto1.db1,photo1.db2,photo2.db1,photo2.db2として保存している。ここで、一つのパトローネに対してphoto1,photo2という名称が付されつつ、それぞれに拡張子db1,db2が付された二つのファイルを生成している。この二つのデータベースファイルのうち、拡張子がdb2となっているものが写真データ30bにおけるサムネールの専用のファイルであり、拡張子がdb1となっているファイルに残りの写真データ30bが格納されている。従って、この例では一組のデータベースファイルphoto1.db1,photo1.db2で写真データ30bを構成している。
一方、画像ファイル30aをハードディスク13b上に保存する場合は「main」フォルダ31の中に形成した「films」フォルダ33内に保存される。ここで、「films」フォルダ33の中にはさらにパトローネごとに一つずつのフォルダが形成され、パトローネの名称として「海水浴」を設定したときには「海水浴」フォルダ34となるし、パトローネの名称として「ハイキング」を設定したときには「ハイキング」フォルダ35となる。そして、それぞれのフォルダ内には写真データ30bとしてデータベースファイルai_dpe.db1,ai_dpe.db2が作成されるとともに、個別の画像ファイル30aがユニークな名称で保存されている。二つのデータベースファイルは先ほどと同様に拡張子がdb2のものにサムネールデータが保存され、拡張子がdb1のものに残りの写真データが保存されている。また、このデータベースファイルは同じディレクトリに保存される画像ファイル30aだけの情報が格納されている。むろん、「ハイキング」フォルダ35についても全く同様である。
また、処理の都合上、一時的に分離不明なものを保存しておくパトローネがあると便利であり、「その他」という名称のパトローネを用意してある。そして、この「その他」のパトローネに分類される画像ファイル30aは「films」フォルダ33の直下に上述した「海水浴」フォルダ34や「ハイキング」フォルダ35と同列で保存されている。ここでも当該ディレクトリに存在する画像ファイルを対象としたデータベースファイルai_dpe.db1,ai_dpe.db2が作成されている。
このように画像ファイル30aの存在場所は、交換可能な記録媒体上かハードディスク13bとなり、それぞれパトローネ単位で管理され、その存在場所は「main」フォルダ31のデータベースファイルai_dpe.db0で集中管理されている。そして、データベースファイルai_dpe.db0内でリンク先としてその情報が格納されている。リンク先がハードディスク13b上であれば画像ファイル30aは写真データ30bとともに一つのディレクトリが確保されて保存されるし、交換可能な記録媒体上であれば写真データ30bだけを一つのディレクトリに集中して保存している。なお、写真データ30bと画像ファイル30aとが同じディレクトリにない場合、すなわち交換可能な記録媒体上にある場合には写真データ30bであるデータベースファイルphoto1.db1,photo1.db2のファイル名もフィルムデータ30cに保存されている。これは、複数のパトローネの写真データ30bが一つのディレクトリ上に保存されることになるためである。これに対して写真データ30bと画像ファイル30aとが同じディレクトリにある場合、写真データ30bであるai_dpe.db1,ai_dpe.db2の名称は特に重要ではない。これは、パトローネごとに一つのディレクトリが確保され、その中には一組のデータベースファイルai_dpe.db1,ai_dpe.db2しか存在しないためである。むろん、ディレクトリの名称がパトローネの名称に対応するため、パトローネの名称でその所在も特定される。
ところで、画像ファイル30aと写真データ30bをリンクさせる手法は様々である。上の例では複数の画像ファイル30aに対して一組のデータベースファイルを形成するようにしているが、ファイル単位で分散させることも可能である。図48は一つの画像ファイル「0616000x.jpg」に対して上述した修整情報や特徴情報や色合せ情報等を含む一つのアトリビュートファイル「0616000x.ATB」を写真データ30bとして生成している。この場合、一つのパトローネに対して一つのディレクトリを生成し、各ディレクトリに画像ファイル30a群とアトリビュートファイル30d群とが保存される。画像ファイル30aを扱うに際しては、まず、各ディレクトリ内のアトリビュートファイル30dと画像ファイル30aとが一対一で対応しているか判断し、一致していればアトリビュートファイル30d内のサムネールデータを使用して簡易的な表示や各種の操作の処理を実行する。この場合、フィルムデータ30cに書き込まれたディレクトリの存在場所と各画像ファイル30aの名称とによってアトリビュートファイル30dが特定されるので、これらの情報が画像ファイル30aと修整情報とのリンクの情報を構成する。
また、データベースファイルを生成しない他の一例として、画像ファイル30aと写真データ30bを一体化したファイルを生成することも可能である。図49(a)はその場合のディレクトリ構造の一例を示しており、一つの画像ファイル「0616000x.jpg」の存在を前提として写真データ30bを含めた一つのファイル「0616000x.PHT」を生成している。この場合は、画像ファイル30aが存在することを前提として写真データ30bを付属させるような対応であるため、別ファイルとした場合のように対応が不一致となることはない。
また、修整処理のバージョンアップが予見されるし、その他予見できない変更に対応するためにも予備の情報が必要となる。図49(b)には修整処理のバージョンアップに対応して画像修整エンジンのバージョンを示す情報を含める例を示している。ここでは、画像ファイル「xxxx.jpg」と写真データ「xxxx.ATB」に加えて画像修整エンジンのバージョンを示す情報ファイル「xxxx.ENG」とを一体化して一つの統合されたファイル「xxxx.PHT」を生成している。
このようなフォルダ構造を採用した場合の具体的な処理を図50に示している。上述したように、通常の修整処理結果はサムネールにのみ反映させておき、オリジナルの画像ファイル30aには修整を加えていない。従って、等倍表示や拡大表示の場合、あるいは印刷の場合に、実際の画像ファイル30aに修整処理を加える必要がある。むろん、修整結果は、一時的なワークの画像データ30aである。
以上のようなファイル構成を前提として図50のワーク画像ファイル生成処理について説明する。図34の同時プリント処理を実行しているときには、その途中で修整結果をチェックするために画像ファイルを等倍あるいは拡大して表示する必要が生じる。また、最終的に印刷を実行する場合には修整結果を反映させた画像ファイルが必要である。図50に示すワーク画像ファイル生成処理では、このような場合にワークの画像ファイルを生成する処理である。
なお、この処理は一つのモジュールなどとして実現され、当該モジュールを呼び出すにあたってはあるパトローネが選択されている下で画像ファイルが指定されているものとする。従って、図51に示すようにパトローネの選択情報は変数PATRONEに、また、各パトローネ内に保持されている画像ファイル30aのそれぞれについて選択の有無を示す変数f_PICTが用意されている。この変数f_PICTについては、1000バイトの文字領域であるが、各バイトが一枚の画像ファイル30aごとの選択情報となっており、都合1000枚の画像ファイル30aの選択の有無を指定できるようになっている。そして、引数を与えて任意の場所の1バイトを参照でき、その情報で各画像ファイル30aの選択の有無を判定するものとする。
まず、ステップ700では変数PATRONEから選択されているパトローネのフィルムデータ30cを「main」フォルダ31のデータベースファイルai_dpe.db0で参照する。該当するフィルムデータ30cには当該パトローネについて媒体属性とリンク先が含まれている。従って、ステップ700ではこのリンク先を取得し、ステップ705では媒体属性から交換可能な記録媒体、すなわちリムーバブルであるか否かを判断して処理を分岐させる。リムーバブルの場合は、まず、ステップ707にて対応すべきリムーバブル記録媒体を装填する。具体的には、リムーバブル記録媒体のリンク先であるパス名や媒体ラベルを取得し、ユーザーに示して所定のドライブにセットを促し、セットされたらそれが正しいかどうかを確認して間違っていたらやり直させる。これが完了したら、ステップ710にて「removable」フォルダ32内で対応するデータベースファイルを参照する。データベースファイルphoto1.db1,photo1.db2であれば、変数f_PICTにおける指定情報に基づいて指定された各画像ファイルの修整情報を当該データベースファイルから取得する。
また、媒体属性に基づいてリムーバブルでない場合には、ステップ715にてパトローネの名称が付されたフォルダをfilmsフォルダ33内で探し、該当するフォルダ内のデータベースファイルai_dpe.db1,ai_dpe.db2を参照する。そして、変数f_PICTにおける指定情報に基づいて指定された各画像ファイルの修整情報を当該データベースファイルから取得する。
このようにして画像ファイル30aの所在とともにこれに対応する修整情報などを取得できるため、ステップ720では指定された修整情報に基づいて対応する画像修整エンジンにて修整処理を実行させ、さらにステップ725で本来の当該・拡大表示あるいは印刷処理を実行させる。なお、ステップ725については当該モジュールの中から実行しても良いし、一度処理を上位のモジュールに戻して実行させるようにしても構わない。
一方、パトローネが選択された状態で画像表示領域dp4にサムネール画像を表示させることになるが、この場合は図52に示すサムネール表示処理を実行する。この場合も、まずステップ730にて変数PATRONEに基づいて選択されているパトローネのフィルムデータ30cを「main」フォルダ31のデータベースファイルai_dpe.db0で参照し、該当するフィルムデータ30cの中から当該パトローネについての媒体属性とリンク先を取得する。そして、媒体属性から交換可能な記録媒体、すなわちリムーバブルであるか否かを判断し、リムーバブルの場合は、ステップ740にて「removable」フォルダ32内のデータベースファイルphoto1.db2からサムネールデータを取得する。また、媒体属性に基づいてリムーバブルでない場合には、ステップ745にてパトローネの名称が付されたフォルダをfilmsフォルダ33内で探し、該当するフォルダ内のデータベースファイルai_dpe.db2からサムネールデータを取得する。そして、ステップ750では取得されたサムネールデータを画像表示領域dp4に表示する。
次に、画像処理の順序を任意に変更可能とする処理について説明する。図53はこの場合の写真データ30bにおける修整情報の内容を示している。処理の内容は、最左欄に示すように「自動画像修整」、「明るさ」、「コントラスト」、「赤(強調)」、「緑(強調)」、「青(強調)」である。また、各各処理ごとに、設定すべき個別の指定情報は最上覧に示すように「修整エンジンのバージョン」、「順番(実行順序情報)」、「処理強さ」となっている。
ここで、「自動画像修整」は各処理内容の実行順序が固定であるので、選択しない場合にのみ他の処理同士の間で順番が有効となる。 同図(a)は自動画像修整の順番に「1」を設定してあり、他の処理は「0」であって選択していないことを意味する。これに対して同図(b)は自動画像修整の順番は「0」であって選択されていない。そして、他の処理は「1」〜「5」という順番が設定されている。
図54はこのような処理の順番が付されている場合に画像の修整処理を実行させるフローチャートを示している。まず、ステップ760では処理順序別のソートを実行する。上述したように、処理を選択していない場合には「0」を付すので昇順ソートの結果、選択しない処理が先頭に来る。ステップ765では順番の欄に「0」が付されて先頭に並べられた処理を排除する。例えば、図53(a)に示すものであれば自動画像処理だけが残るし、同図(b)に示すものであれば自動画像処理だけが排除され、処理対象のものとして赤強調、緑強調、青強調、明るさ、コントラストの順に並ぶ。
ステップ770はループの終了判断であって処理すべきものがなくなったらこの修整処理を終了させ、処理すべきものがあればステップ775とステップ780にて処理を実行させる。ステップ775は最優先の処理の処理エンジンに画像データと処理強さのパラメータを引き渡して修整処理を実行させる。最優先の処理は、ソートされて先頭に並べ替えられた処理であり、図53(b)の例であれば最初は赤強調の処理である。
この処理の後、ステップ780では未処理のものを繰り上げる。最初、赤強調の処理が最優先の処理であり、その処理を終了したら赤強調の処理を排除して二番目の青強調を最優先の処理とし、以下同様に繰り上げる。このような繰り上げの処理によって最後の処理が終了するまで順番通りに処理が実行され、最後に実行すべき処理がなくなってループ処理を終了する。
図55はステップ775の処理を観念的に示している。画像修整制御部40はいわゆる画像修整エンジンとして利用されることを前提に複数の画像修整エンジンを内蔵している。同図に示すものでは、自動画像修整の修整エンジンとしてバージョン1(41)とバージョン2(42)があり、明るさ修整の修整エンジンとして同様にバージョン1(43)とバージョン2(44)があり、コントラスト修整の修整エンジンとしてバージョン1(45)があり、その他、これと同様に備えられている。ステップ775では同図にて作法に示すように処理エンジンとバージョンと画像データと処理強さをパラメータとして画像修整制御部40に指定すると、同画像修整制御部40は指定されたとおりの画像修整を画像データに実行して修整画像データを出力する。
すなわち、同画像修整制御部40ではパラメータの内容に応じた修整エンジン41〜45…が選択され、これにパラメータを与えて画像修整を実行する。むろん、画像修整制御部40自体は多数のモジュールの集合体のように構成され、分岐処理を経て特定の修整エンジンのモジュールが実行される。
このように修整情報の一つのパラメータとして順番の要素を設定しておき、ソートを実行させることによって不要な処理を実行することなく、望むとおりの順番で修整処理を実行させることができる。
一方、「自動画像修整」、「明るさ」、「コントラスト」、「赤(強調)」、「緑(強調)」、「青(強調)」というそれぞれの処理はグループ化して使い分けることもできる。例えば、「自動画像修整」だけの第1グループと、「明るさ」と「コントラスト」の第2グループと、「赤(強調)」と「緑(強調)」と「青(強調)」の第3グループというように三つのグループ化を行うことができる。第1グループは独自に特徴抽出処理と修整情報作成処理と修整指定処理が必要であり、一連の処理として実現されなければならない。また、第2グループは処理の内容として輝度の変換を主眼としており、共通性がある。さらに、第3グループは各色成分の強調処理であって処理内容は共通である。
従って、CPUの処理能力が高い場合であるなど、実行環境に余裕があればすべてのグループの指定を実行可能としつつも、実行環境次第で第3グループは実現可能であるが、第1グループと第2グループは実現できないようにするということが可能である。これは環境設定などで第1〜第3グループの実行可否を定めておき、画像修整制御部40の実行可否判定部46にて実行可否情報に基づいて各修整エンジン41〜45…の実行可否を参照する。そして、実行可能なグループの処理については修整エンジンを実行させるものの、実行不能なグループの処理については修整エンジンに実行させることなく処理を完了したものと同様にして終了させる。
ところで、これまでは写真データ30bが一組のものを主に説明してきたが、上述した履歴情報のように複数の組を有する構成とすることも可能である。図56はこのような修整情報の組を複数組持つ場合の写真データ30bの内容の一例を示している。内容的には図53(a)(b)に示すものを複数組備えている。
各組を1グループと呼ぶものとすると、図57は写真データ30bが複数グループを備える場合の処理を示すフローチャートである。まず、これまでは修整の指定を一つしか備えていないため、複数グループとして保存する必要がある。
ステップ800にて修整の対象とする画像データを選択したら、ステップ805では具体的に実行させるべき修整を指示し、ステップ810にて指示した修整を実行させる。むろん、ステップ810の画像修整はもとの画像ファイル30aを表すサムネールデータに対して実行させる。また、以上の指示の与え方については上述したものと同様である。
次に、ステップ815ではステップ805で与えた修整指示を保存するか否かをユーザーに問合せる。問い合わせはGUIを使用してディスプレイ17a上に表示させ、マウス15bあるいはキーボード15aで応答せしめる。保存する場合はステップ820にて保存グループの指定を入力させる。予め5つの保存グループを選択できるようにしておき、そのいずれかをGUIを介して入力せしめる。むろん、保存グループの数は任意であるし、上限を一定に決めることなく順番に追加することも可能である。
保存グループが決定されたらステップ830で修整情報を書き込む。予めグループの数を決めておくときの一態様として、各グループに所定の場合を対応させるようにしても良い。例えば、グループ1はスライドショーの場合の修整処理であり、グループ2は印刷の場合の修整処理であるという具合である。また、各グループを選択するときにそのグループがスライドショーの場合のものであるとか印刷の場合のものであるというように個別に指定を加えられるようにしても良い。ステップ825はこのようにグループとそれを実行する条件を対応させる処理を表しており、必須のものではない。
修整情報を書き込んだら、ステップ840ではサムネールデータも書き込む。サムネールデータは各グループごとに必要であり、上述した写真データ30bのデータベースファイルで拡張子がdb2のものに書き加える。
以上のようにして複数のグループが登録されている場合の修整処理を図58に示している。ここでは、図54に示す修整処理の前提として、ステップ850にて複数グループの修整情報が保存されているか否かを判定し、複数グループがある場合にのみステップ855にていずれかのグループを選択させる。また、複数のグループがなければ存在するグループをステップ860にてデフォルト指定する。ステップ855あるいはステップ860にて一つのグループが修整情報として指定されるので、以下は図57に示すステップ800以下の処理を実行する。
なお、この例ではパラメータ全体を複数セット用意しておいていずれかの組を選択している。しかし、必ずしも全体を複数セット用意するのではなく、一部の画像処理について複数の処理パターン用意しておくことも当然に可能である。例えば、図53や図56に示すものにおいて処理強度の欄を複数用意しておき、ステップ820にて保存グループを指定するのと同様にして設定する欄を指定する。また、読み出すときにはステップ850にて複数の欄に複数の値が設定されていればステップ855にて読み出す設定を選択させる。
一方、上述したようにグループにそれを実行する条件を付して保存することがある。この場合は図59に示すフローチャートに従って修整処理を実行する。すなわち、ステップ870にて複数グループがあるか否かを判断し、複数グループがあればステップ875にて現在の環境を取得する。この環境とは、上述したような条件に対応する。すなわち、現在、スライドショーを実行しているのか印刷処理を実行しているのかを所定の変数あるいはフラグを参照して判断する。参照する変数はどのようなものでもよく、一例としてグローバルな変数JOKEN というものを設定しておいてもよい。現在の条件を取得したら、ステップ880にてこの条件に対応するグループを選択する。以下は、図57に示すステップ800以下の処理を実行する。
このようにしておくと、修整処理を実行したときにその実行条件を設定しておくと、表示や印刷などの処理が起動されたときに自動的にその環境を判断し、予めその環境のために修整処理を設定してあれば自動的に該当する修整処理が行われる。例えば、スライドショーであると画像の修整中に本来の表示間隔を過ぎてしまうことのないようにする必要がある。従って、処理時間の短縮が望まれ、処理の簡素化が必須となる。これに対して印刷の場合は時間がかかってもきれいな画質を望むので、望みどおりの修整処理を実行させても構わない。
このような背景からスライドショーの場合は自動画像修整ではなく、比較的処理の簡易な明るさとコントラストだけを修整するグループを登録しておき、印刷の場合は自動画像修整を実行するようにグループとして登録しておくということが有効である。
次に、図60はこのような複数のグループを使用して履歴に利用する場合のフローチャートを示している。ステップ900〜ステップ910は上述したステップ800〜810の場合と同様に所定の画像データを選択して修整を実行させる。この後、ステップ915で修整指示を保存するか否かを選択させ、保存する場合にはステップ920にて最新修整情報のグループを追加する。例えば、既存のグループが3つであれば4つ目のグループとして保存する。また、このときに修整日時などを情報の一つとして加えておいても良い。そして、ステップ925ではステップ840等と同様に対応するサムネールデータを所定のデータベースファイルに追加する。
履歴である以上、過去の修整の上に新たな修整が実行されなければならない。図61は履歴の修整情報がある場合の修整処理のフローチャートを示している。まず、ステップ930ではグループの実行順にソートを実行する。通常は番号の大きいグループの方が新しい修整情報であり、必須ではない。しかし、仕様の変更もあり得るし、上述したように修整日時の情報を保存している場合もあるので、ソートを実行できるようにしておく意味がある。
ソートが終わればステップ935にてグループ数を変数g_totalにセットし、ステップ940にてループポインタiに「1」をセットする。そして、ステップ945ではループポインタiで示されるグループiの修整情報に基づいて修整処理を実行する。ループポインタiはステップ950にて「1」ずつ追加されていくので、グループ番号の小さい順に修整処理が実行されることになり、古い順に履歴が再現されることになる。そして、ステップ955ではループポインタiが既存のグループ数を越えていないか判断し、グループ数を越えていない限りは未処理の修整処理があるものとしてループを繰り返す。
一方、これまでは修整処理として画像データの一部に対してのみ実行することを前提としていないが、むろん全体に対して実行される場合のみならず、一部に対して実行されるようにすることも可能である。ここで一部とは画像の一部の領域の場合もあり得るし、複数のレイヤから構成されていれば一部のレイヤだけということもあり得る。
図62はこのような修整領域を指定して画像修整を実現する場合のフローチャートを示している。ステップ960で処理の対象となる画像データを選択したら、ステップ965で修整領域を指定してステップ970で修整指示を与え、ステップ975にて画像を修整する。領域の指定と修整の内容は適宜試行錯誤を繰り返すことが多いから、ステップ965〜ステップ975の処理の順番は相対的な実行順序を表しているに過ぎない。
ステップ980にて修整指示を保存するか問い合わせ、保存するのであればステップ985にて領域の情報とともに修整指示を修整情報として保存する。
ただ、このようにして保存される修整領域は修整エンジンにとって一つのパラメータに過ぎないといえる。従って、図55に示すように修整エンジンの側で領域やレイヤに対応して部分的に修整を加え、修整画像データとして出力する。
修整領域の指定を具体的な特定領域を指定して行なう場合、例えば、矩形領域であれば二つの対角コーナーの座標値を指示したり、あるいはオブジェクトごとに指示したり、任意の曲線で所望の領域を指示するといったことが可能である。また、全体の中央領域とか、上半分とか、下半分といった指定でも構わない。
一方、画像の色を指定して画像処理を対応づけることも可能である。例えば、明るさの影響受けにくい色度を指定して画像処理を対応づけることもできる。肌色の領域であればオブジェクトは人間の顔であることが殆どであると考えられ、人間の顔であればシャープにするよりもややぼかし気味の方が美しく見える。従って、領域情報の代わりに肌色の色度を指定し、修正指示としてシャープネスを減らす(ぼかす)指示を与える。そして、修整エンジンの側では処理対象画素の色度を識別し、対象となる色度であれば指示された処理強度のアンシャープ化を実施する。
色度毎の他の例として、青空の色度を指定してアンシャープにさせることも好適である。また、夕焼けを考慮して赤みを強調する処理を指定することも好適である。
ここで、各画素の画像データが(R,G,B)で表されるとすると、色度は、
r=R/(R+G+B)
b=B/(R+G+B)
として表される。色度は人の肌が暗く写っているときも明るく写っているときもでもあまり影響を受けず、一定の分布を示し、より具体的には、
0.33<r<0.51
|0.74r+b−0.57|<0.1
という関係式で判断できる。そして、各画素についてこの条件があてはめられれば肌色領域に属するものといえる。これが青空であると、肌色の場合よりも変動幅が大きいことを考慮して、
0.17<r<0.30
|1.11r+b−0.70|<0.2
なる関係式が成立していればよい。
このように画素の位置、画素の色などの画素の状況に応じて最適な画像処理を実施できるようにするため、画素の状況に対応したパラメータを関連付けて保存しておき、このパラメータを取得したときには画素の状況に対応した画像処理を実施して画像を再現する。
このように、画像データをフィルムメタファとして管理されるフォルダに収容しつつ、各画像データに対応した写真データ30bのデータベースを用意しておき、所望の画像データについて所望の画像処理を選択すると、この選択した画像処理を上記データベース構造における修整情報として更新するようにし、実際に表示したり出力したり印刷する必要が生じたときには元の画像データを残したままワークエリア上でのみ修整情報を参照して各種の画像処理を実行するようにしたため、オリジナルとしての画像データを残したまま容易に画像修整などを実施することが可能となる。