以下、図面を参照して本発明を実施するための形態について説明する。
(第一の実施形態)
図1は、本発明の第一の実施形態による画像処理装置10の外観を例示する図である。画像処理装置10は、例えば、タブレット端末によって構成される。タブレット端末は、オペレーションシステム(OS)と呼ばれる基本プログラムを実行した上で、画像を加工するアプリケーションプログラム(以下、画像処理プログラムと呼ぶ)を実行することにより、画像処理装置10として動作する。
図1において、画像処理装置10の正面に表示・入力部20が設けられる。表示・入力部20は、画像やアイコン25などを表示する表示機能と、ユーザによる接触操作を受け付ける入力機能と、を兼ね備えたタッチパネル液晶ディスプレイによって構成される。
表示・入力部20は画像処理装置10の前面を覆うように設けられており、表示面が操作面を兼ねる。表示・入力部20は、ユーザの指で接触操作されると、接触部の静電容量の変化に基づいて、接触操作されたこと、および接触位置を示す位置検出信号を出力する。なお、抵抗膜方式、電磁誘導方式などによって、接触操作されたこと、および接触位置を示す位置検出信号を出力してもよい。
画像処理装置10は、表示・入力部20に表示するアイコン25に対応づけられているプログラムを起動させることにより、画像加工機能、メール機能や通信機能など、起動プログラムによって実現される機能を発揮する。なお、図1に例示する表示・入力部20の表示例は、いわゆるホーム画面の例である。
図2は、図1の画像処理装置10の要部構成を例示するブロック図である。図2において、画像処理装置10は、表示・入力部20と、制御部30と、通信部15とを有する。
<表示・入力部20>
表示・入力部20は、位置検出部21と、表示部22とを有する。位置検出部21は、指による接触位置を示す位置検出信号と、表示制御部32が有する表示情報(表示・入力部20の表示部22のどこに、何を表示させているかを示す情報)とに基づいて、表示・入力部20の画面上の対象(画像やアイコン25等)を特定する。表示部22は、表示制御部32からの表示制御信号に基づいて、画像やアイコン25などを表示する。
<制御部30>
制御部30は、プログラム実行部31と、表示制御部32と、通信制御部33と、不揮発性メモリ34とを含み、画像処理装置10内の各部の動作を制御する。プログラム実行部31は、上記アイコン25に対応づけられており、上記位置検出部21によって特定されたアイコン25に対応するプログラムを実行する。表示制御部32は、上記表示部22に、画像やアイコン25などを表示させる。通信制御部33は、通信部15による外部機器との通信を制御する。不揮発性メモリ34は、プログラムや画像、後述するデータベースを格納する。
<通信部15>
通信部15は、通信制御部33からの指示に応じて無線通信を行う。通信部15は、例えば、無線LAN(Local Area Network)のアクセスポイントを介した通信が可能に構成されている。画像処理装置10で加工する画像は、通信部15を介して外部機器から取得してもよいし、画像処理装置10が備える不図示のカメラユニットで撮影してもよい。また、プログラム実行部31が実行するアプリケーションプログラムは、通信部15を介して外部機器から取得する。
<画像加工の進め方設定>
プログラム実行部31が実行する画像処理プログラムを説明する前に、「画像加工の進め方設定」について説明する。本実施形態では、次の3通りの画像加工の進め方の中から選ばれた1つの画像加工の進め方に基づいて、画像に対する加工を行う。このため、画像処理プログラムを起動する前、あるいは起動後に、「画像加工の進め方設定」操作によって1つの画像加工の進め方が決められる。一旦決められた画像加工の進め方は、不揮発性メモリ34に保存されるため、プログラム実行部31は、「画像加工の進め方設定」操作によって変更されない限り前回と同様の画像加工の進め方を選ぶ。
1.画像サンプルを選んで加工設定を行う
2.直感メニューを開いて加工設定を行う
3.ユーザ別メニューを開いて加工設定を行う
上記3つの画像加工の進め方の中から1つの画像加工の進め方を選ぶ処理は、画像処理装置10の「設定」メニューの中で行われる。プログラム実行部31は、例えば、表示・入力部20の表示部22に表示されている「設定」アイコン25Bが位置検出部21によって特定されると、設定処理を起動して図3に例示する「画像加工の進め方設定」表示を表示部22に表示させる。ユーザは、選びたい項目のチェックボックスをタップ操作することにより、例えば、「画像サンプルを選んで加工設定を行う」のチェックボックスにチェックを入れる。
<画像サンプルを選んで加工設定を行う場合>
「画像サンプルを選んで加工設定を行う」が選ばれた場合にプログラム実行部31が実行する画像加工の進め方を説明する。「画像サンプルを選んで加工設定を行う」場合は、先ず、ユーザに加工の見本となる画像(以降、フィルタ画像と呼ぶ)を選んでもらう。次に、プログラム実行部31が、選ばれたフィルタ画像の全体に基づいて、フィルタ画像の特徴を分析する。そして、プログラム実行部31は、画像加工の対象とする画像についても同様に、加工対象画像の全体に基づいて特徴を分析する。その上で、プログラム実行部31が、これら2つの画像(フィルタ画像と加工対象画像)間で画像全体の特徴を近似させるように、加工対象画像に対して画像加工処理を行う。例えば、プログラム実行部31は、フィルタ画像および加工対象画像それぞれに施されている画像処理の各種調整用パラメータや、これらの画像が撮影された際に用いられた撮影用パラメータの特徴を分析する。そして、フィルタ画像および加工対象画像間で画像全体におけるパラメータの特徴を近似させる画像処理加工を、加工対象画像に対して行う。
プログラム実行部31は、例えば、画像の明るさ、コントラスト、シャープネス、彩度、および色相をパラメータとし、これらパラメータごとに特徴量を算出することによって特徴分析を行う。プログラム実行部31はさらに、撮影時の撮影条件(例えば、ホワイトバランス、露出値、絞り値、シャッタースピードなど)をパラメータとし、パラメータごとに特徴量を抽出することによって特徴分析を行う。撮影時の撮影条件は、画像(フィルタ画像または加工対象画像)に関連付けられて記録されている撮影情報を読み出して用いる。そして、プログラム実行部31は、分析した特徴に基づき、加工対象画像の特徴をフィルタ画像の特徴へ近づける処理を行うことで、両画像間で特徴を近似させる。各パラメータについて行う処理を以下に例示する。
−明るさ−
プログラム実行部31は、明るさの特徴量として輝度平均値を算出する。プログラム実行部31は、フィルタ画像と加工対象画像について、それぞれ各画素値から輝度の平均を求め、フィルタ画像と加工対象画像との間で、平均値が同等(両者の差が所定範囲内)となるように調整する。なお、輝度の平均値の代わりに、最頻値や中央値が同等になるように調整してもよい。調整方法としては、ゲインを変えたり、オフセットを与えたり、γ補正を行うなどの方法を用いる。
−コントラスト−
プログラム実行部31は、コントラストの特徴量としてヒストグラムを求める。プログラム実行部31は、フィルタ画像と加工対象画像において、それぞれ各画素値のヒストグラムを作成し、その分布形状を近似させるように調整する。例えば、ヒストグラムのピークとなる画素値を一致させたり、暗部/明部の割合を一致させたりして、両者の分布形状を近づける。調整方法としては、コントラストに影響を与えるように、ゲインを変えたり、LUT(ルックアップテーブル)を変えたり、γ補正を行うなどの方法を用いる。
−シャープネス−
プログラム実行部31は、シャープネスの特徴量として微分値や周波数変換値を算出する。プログラム実行部31は、フィルタ画像と加工対象画像について、主として画像の輪郭のシャープさを近似させる。例えば、それぞれの画像内の微分値や、それぞれの画像で周波数変換を行った結果の係数分布が近似するように、USM(アン・シャープネス・マスク)処理を行うなどの方法を用いて調整する。なお、画像の全体にわたって微分や周波数変換を行ってもよいが、画像の輪郭部分を抽出し、抽出部分に着目して微分や周波数変換処理を行うようにしてもよい。
−彩度−
プログラム実行部31は、彩度の特徴量として彩度の最大値および平均値を算出する。プログラム実行部31は、フィルタ画像と加工対象画像について、それぞれ画面内の彩度の最大値および平均値を算出し、それらが同等(両者の差が所定範囲内)となるように調整する。調整方法としては、ゲインを変えたり、LUT(ルックアップテーブル)を変えたりする方法を用いる。
−色相−
プログラム実行部31は、色相の特徴量として色相分布を算出する。プログラム実行部31は、フィルタ画像と加工対象画像について、それぞれの色相の分布を求め、フィルタ画像と加工対象画像との間で色相の偏りを合わせるように調整する。調整方法としては、例えばフィルタ画像が特定色相に偏っている場合に、加工対象画像の色相を同じように偏らせるように、Mtx(マトリクス)演算のマトリクスを変えたり、LUT(ルックアップテーブル)を変えたりする方法を用いる。なお、色相の偏りを合わせる他に、色相分布の重心や中心を求め、これらを一致させるようにしてもよい。
−ホワイトバランス−
プログラム実行部31は、ホワイトバランスの情報を抽出する。プログラム実行部31は、フィルタ画像と加工対象画像それぞれについて、撮影時または撮影後に調整されたホワイトバランスの情報を読み出す。プログラム実行部31は、フィルタ画像と加工対象画像との間でホワイトバランスを合わせるように調整する。このとき、フィルタ画像と加工対象画像との間で、画像全体の色温度が近似するように調整してもよいし、画像の一部(例えば人物の顔)が近似するように調整してもよい。
−露出値−
プログラム実行部31は、露出値の情報を抽出する。プログラム実行部31は、フィルタ画像と加工対象画像それぞれについて、撮影時の露出値の情報を読み出す。プログラム実行部31は、フィルタ画像と加工対象画像との間で露出が近似する(合わせる)ように調整する。このとき、フィルタ画像と加工対象画像との間で、それぞれ画像全体の露出値が近似するように調整してもよいし、画像の一部の露出値が近似するように調整してもよい。
−絞り値−
プログラム実行部31は、絞り値の情報を抽出する。プログラム実行部31は、フィルタ画像と加工対象画像それぞれについて、撮影時の絞り値の情報を読み出す。プログラム実行部31は、フィルタ画像と加工対象画像との間で絞り値が近似する(合わせる)ように調整する。例えば、フィルタ画像の絞り値が加工対象画像の絞り値よりも小さかった場合、加工対象画像の主要被写体以外の背景画像をぼかす(コントラストやシャープネスを下げる)画像処理を行う。フィルタ画像の絞り値が加工対象画像の絞り値よりも大きかった場合、加工対象画像の主要被写体以外の背景画像をくっきりさせる(コントラストやシャープネスを上げる)画像処理を行う。
―シャッタースピード―
プログラム実行部31は、シャッタースピードの情報を抽出する。フィルタ画像と加工対象画像それぞれについて、撮影時のシャッタースピードの情報を読み出す。プログラム実行部31は、フィルタ画像と加工対象画像との間でシャッタースピードが近似する(合わせる)ように調整する。例えば、フィルタ画像のシャッタースピードが加工対象画像のシャッタースピードよりも遅かった場合、加工対象画像の明るさを上げる、またはシャープネスを下げる画像処理を行う。フィルタ画像のシャッタースピードが加工対象画像のシャッタースピードよりも速かった場合、加工対象画像の明るさを下げる、またはシャープネスを上げる画像処理を行う 。
プログラム実行部31は、フィルタ画像に基づく上記全ての特徴量の算出を、フィルタ画像がユーザによって選ばれた段階で行い、算出結果を参照元パラメータとして不図示のメモリに登録しておく。算出結果を不揮発性メモリ34に保存しておくと、将来同じフィルタ画像を選ぶ場合において算出結果を再利用できるので、特徴量算出をその都度行う場合に比べて、処理負担を軽減させることができる。
なお、フィルタ画像に基づく全ての特徴量の算出をフィルタ画像がユーザによって選ばれた段階で行う代わりに、後述する「参考とするパラメータ」が選択された段階で、そのパラメータに対応する特徴量のみを算出するようにしてもよい。
プログラム実行部31は、加工対象画像に基づく特徴量の算出を、加工対象画像が指定された段階で行う。そして、加工対象画像に基づく特徴量を算出してから、加工対象画像をフィルタ画像の特徴に近づけるべく、上述した調整処理を開始する。
もっとも、フィルタ画像、後述する「参考とするパラメータ」、および加工対象画像の全てが設定(指定)された段階で、必要なパラメータに対応する特徴量の算出、および調整処理を開始させるようにしても構わない。
<ユーザインターフェイスの説明>
画像処理プログラムによる具体的なユーザインターフェイスについて、表示・入力部20の表示部22に表示される表示画面を例示して説明する。図4は、「画像サンプルを選んで加工設定を行う」場合において、画像処理プログラムの起動時にプログラム実行部31が表示部22に表示させる初期画面を例示する図である。図4において、表示画面は、フィルタ画像および加工対象画像の候補にする画像に対応するサムネイル画像を一覧表示する一覧表示部aと、選ばれたフィルタ画像を示すアイコンを表示するフィルタ表示部bと、加工後の画像に対応するサムネイル画像を一覧表示する一覧表示部cと、に分割される。ここで、一覧表示部a、フィルタ表示部b、および一覧表示部cの大きさ(表示エリア)は、ユーザ操作によって適宜変更可能に構成される。アイコンや表示エリア等の大きさの変更は、指だけでなく、例えばマウスやスタイラスペン等のポインティングデバイスを用いて変更するようにしてもよい。
一覧表示部aは、加工前の画像に対応するサムネイルa1、サムネイルa2、およびサムネイルa3を表示するエリアである。一覧表示部aには、上記サムネイル画像に加えて、サムネイル画像をスクロールするためのアイコン11、12が表示される。サムネイル画像のスクロールは、アイコン11、12に対するタップ操作の他に、一覧表示部aに対するスワイプ操作でも可能である。なお、アイコン11、12の代わりにスクロールバーを表示させてもよい。
フィルタ表示部bは、フィルタ画像のシンボルとしてアイコンfを表示するエリアである。アイコンfには窓dが設けられており、フィルタ画像が選ばれると、選ばれたフィルタ画像に対応するサムネイル画像が、窓dに表示される。フィルタ画像が選ばれる前は、窓dにはブランク表示がなされる。アイコンfには名称が付与される。初期名称は「新しいフィルタ」であるが、ユーザ操作によって名称を変更することができる。一覧表示部cは、加工後の画像に対応するサムネイル画像を表示するエリアである。図4の場合、画像加工が行われる前であるので、一覧表示部c内はブランク表示である。
<フィルタ画像を選ぶ>
ユーザは、フィルタ画像(加工の見本となる画像)としてサムネイルa1に対応する画像を選ぶ場合、図5に例示するように、一覧表示部aからフィルタ表示部bへサムネイルa1をドラッグ操作する。プログラム実行部31は、図6に例示するように、サムネイルa1をアイコンf1の窓dに表示させるとともに、選ばれたフィルタ画像に基づいてパラメータ分析(すなわち特徴量の算出)を行う。なお、サムネイルa1に対応する画像がフィルタ画像であることを示すため、アイコンfをアイコンf1と図示する。
図7は、ユーザ操作によって変更されたアイコンf1の新しい名称「被写体くっきり」を例示する図である。このように、アイコンf1の名称を、加工内容を示す名称へ変更可能にしたので、専門的な知識を持たないユーザにも、画像処理装置10が扱いやすくなる。
<加工対象画像を選ぶ>
ユーザは、加工対象画像としてサムネイルa2に対応する画像を選ぶ場合、図8に例示するように、一覧表示部aからフィルタ表示部bへサムネイルa2をドラッグ操作する。プログラム実行部31は、選ばれた加工対象画像に基づいてパラメータ分析(すなわち特徴量の算出)を行う。プログラム実行部31はさらに、加工対象画像とフィルタ画像との間でパラメータの特徴を近似させるように加工対象画像に対するパラメータを補正し、補正後のパラメータにより加工対象画像に対して画像加工を行う。
プログラム実行部31は、加工後の画像を加工前の画像が格納されているメモリ領域と同じメモリ領域、またはユーザ操作により指定されたメモリ領域に保存する。プログラム実行部31は、図9に例示するように、加工後の画像に対応するサムネイルc2(f1)を一覧表示部cに表示させる。なお、サムネイルa2に対応する画像に対し、アイコンf1に係る加工内容で加工したことを示すため、サムネイルの符号をc2(f1)とする。
<複数の加工対象画像を選ぶ>
加工対象画像を複数選んでもよい。ユーザは、加工対象画像としてサムネイルa2に対応する画像と、サムネイルa3に対応する画像とを選ぶ場合、図10に例示するように、一覧表示部aからフィルタ表示部bへサムネイルa2およびサムネイルa3をドラッグ操作する。プログラム実行部31は、選ばれた複数の加工対象画像に基づいて、それぞれパラメータ分析(すなわち特徴量の算出)を行う。
プログラム実行部31はさらに、複数の加工対象画像に対し、フィルタ画像との間でパラメータの特徴を近似させるように複数の加工対象画像に対するパラメータをそれぞれ補正し、補正後のパラメータによりそれぞれの加工対象画像に画像加工を行う。そして図11に例示するように、加工後の画像に対応するサムネイルc2(f1)およびサムネイルc3(f1)を、それぞれ一覧表示部cに表示させる。
<一部のパラメータのみを画像加工に反映させる>
プログラム実行部31は通常、フィルタ画像に基づいて上述したパラメータ(画像の明るさ、コントラスト、シャープネス、彩度、および色相)の全てについて特徴量を算出し、画像加工に反映させる。本実施形態では、全てのパラメータを画像加工に反映させる代わりに、フィルタ画像に基づく一部のパラメータのみを画像加工に反映させることができる。
プログラム実行部31は、図12に例示するように、フィルタ表示部bに表示している「詳細」ボタン16がタップ操作されると、図13に例示するパラメータ選択ウィンドウ23を表示させる。パラメータ選択ウィンドウ23において、ユーザは、「参考とするパラメータ」として選びたいパラメータのチェックボックスをタップ操作する。例えば、「コントラスト」のチェックボックスのみがチェックされた場合のプログラム実行部31は、加工対象画像とフィルタ画像との間で、チェックされたパラメータ「コントラスト」のみの特徴を近似させるように加工対象画像に対するパラメータ「コントラスト」を補正し、補正後のパラメータ「コントラスト」により加工対象画像に対して画像加工を行うとともに、加工後の画像に対応するサムネイルを一覧表示部cに表示させる。
<異なるフィルタ画像に基づくパラメータを画像加工に反映させる>
フィルタ画像を複数選んでもよい。ユーザは、フィルタ画像(加工の見本となる画像)としてサムネイルa1以外の他のサムネイル画像に対応する画像を選ぶ場合、一覧表示部a(図5)からフィルタ表示部bへサムネイルa1以外の他のサムネイル画像をドラッグ操作する。プログラム実行部31は、選ばれたフィルタ画像に基づいてパラメータ分析(すなわち特徴量の算出)を行い、新たなアイコンfをフィルタ表示部bに表示させる。
(フィルタ表示部bの中に1つのアイコンfのみを表示する場合)
プログラム実行部31は、図14に例示するように、アイコンf1とともに、アイコンf1をスクロールするためのアイコン17をフィルタ表示部bに表示させる。スクロールにより、アイコンf1以外の他のアイコンfをフィルタ表示部bに表示させることができる。図15および図16は、それぞれ、スクロール後のアイコンfp、アイコンfsを例示する図である。アイコンfのスクロールは、アイコン17、アイコン18に対するタップ操作の他に、フィルタ表示部bに対するスワイプ操作でも可能である。なお、アイコン17、アイコン18の代わりにスクロールバーを表示させてもよい。
図15において、ユーザ操作によって変更された名称「スポーツ撮影」が付与されたアイコンfpが表示されている。図16において、ユーザ操作によって変更された名称「空が背景」が付与されたアイコンfsが表示されている。
(フィルタ表示部bの中に複数のアイコンfを表示する場合)
プログラム実行部31は、ユーザがピンチイン操作を行うと、アイコンfの表示サイズを小さく変更し、フィルタ表示部bに複数のアイコンfを表示させる。図17は、アイコンf1と、アイコンfpと、アイコンfsとをフィルタ表示部bに表示させた例である。
1つの加工対象画像に対して異なる加工を同時に行ってもよい。ユーザは、図17に例示するように、フィルタ表示部bの中に複数のアイコンf1、アイコンfp、アイコンfsが表示されている場合において、加工対象画像としてサムネイルa3に対応する画像を一覧表示部aからフィルタ表示部bへドラッグ操作する。プログラム実行部31は、選ばれた加工対象画像に基づいて、パラメータ分析(すなわち特徴量の算出)を行う。
プログラム実行部31はさらに、加工対象画像に対し、アイコンf1、アイコンfp、アイコンfsに対応する3つのフィルタ画像との間でパラメータの特徴を近似させるように加工対象画像に対するパラメータを3通りに補正し、これら補正後のパラメータにより加工対象画像に対して3通りの画像加工を行うとともに、図18に例示するように、加工後の画像に対応するサムネイルc2(f1)、c2(fp)およびc2(fs)を、それぞれ一覧表示部cに表示させる。
図18において、サムネイルa3に対応する画像に対し、アイコンf1に係る加工内容で加工した画像に対応するサムネイルの符号をc3(f1)とする。また、サムネイルa3に対応する画像に対し、アイコンfpに係る加工内容で加工した画像に対応するサムネイルの符号をc3(fp)とする。さらに、サムネイルa3に対応する画像に対し、アイコンfsに係る加工内容で加工した画像に対応するサムネイルの符号をc3(fs)とする。
以上の説明では、フィルタ画像(加工の見本となる画像)を先に選び(例えば一覧表示部aからフィルタ表示部bへサムネイルa1をドラッグし)、その後に加工対象画像を選ぶ(例えば一覧表示部aからフィルタ表示部bへサムネイルa2をドラッグ操作する)例を説明した。この代わりに、先に加工対象画像を選び(例えば一覧表示部aから一覧表示部cへサムネイルa2をドラッグし)、その後にフィルタ画像(加工の見本となる画像)を選ぶ(例えば一覧表示部aからフィルタ表示部bへサムネイルa1をドラッグ操作する)ようにしてもよい。
この場合のプログラム実行部31は、先に一覧表示部cへドラッグされた加工対象画像に対応するサムネイルa2を、フィルタ画像(加工の見本となる画像)が選ばれるまでそのまま表示させておく。なお、加工対象画像に基づく特徴量の算出は、サムネイルa2がドラッグされた段階で行ってもよい。そして、フィルタ画像(加工の見本となる画像)が選ばれた段階(すなわち一覧表示部aからフィルタ表示部bへサムネイルa1がドラッグされた段階)で、フィルタ画像(加工の見本となる画像)に基づく特徴量を算出する。
プログラム実行部31は、加工対象画像の特徴をフィルタ画像(加工の見本となる画像)の特徴に近づけるべく、加工対象画像に対して画像加工を行う。そして、一覧表示部cにおいて、表示中のサムネイルa2に置き換えて加工後の画像に対応するサムネイルc2(f1)を表示させる。
なお、先に加工対象画像を選び、後からフィルタ画像(加工の見本となる画像)を選ぶ場合でも、加工対象画像を複数選んだり、フィルタ画像(加工の見本となる画像)を複数選んだりすることが可能である。
以上の説明では、画像処理装置10をタブレット端末で構成する例を説明したが、タブレット端末の代わりにフォトビューワやパーソナルコンピュータで画像処理装置10を構成してもよい。また、高機能携帯電話機(スマートフォンなど)によって画像処理装置10を構成してもよい。アイコンや表示エリア等の大きさの変更は、指だけでなく、例えばマウスやスタイラスペン等のポインティングデバイスを用いて変更するようにしてもよい。以下で説明を行う画像処理装置10についても同様である。
表示部22における一覧表示部a、フィルタ表示部b、一覧表示部cの配置は、表示部22の表示エリアの縦横比や表示面積により、適宜変更して構わない。図19は、携帯電話機の縦長表示画面における配置を例図する図であり、図20は、フォトビューワの横長表示画面における配置を例示する図である。
<フローチャートの説明>
「画像サンプルを選んで加工設定を行う」場合にプログラム実行部31が実行する処理の流れについて図21に例示するフローチャートを参照して説明する。プログラム実行部31は、図3の設定画面において「画像サンプルを選んで加工設定を行う」がチェックされた状態で「OK」ボタン26がタップ操作されると、図21による処理を開始させる。
図21のステップS10において、プログラム実行部31は、画像を読み込んでステップS20へ進む。画像は、上述したように、通信部15を介して外部機器から取得した画像、または不図示のカメラユニットで撮影した画像である。ステップS20において、プログラム実行部31は、読み込んだ画像のデータに基づいて、縮小画像(サムネイル)を表示部22の一覧表示部aに表示させてステップS30へ進む。
ステップS30において、プログラム実行部31は、フィルタ表示部bの中でフィルタ画像が選ばれる前のアイコンf(すなわち空きアイコン)に縮小画像(サムネイル)がドラッグされたか否かを判定する。プログラム実行部31は、縮小画像(サムネイル)がドラッグされた場合にステップS30を肯定判定してステップS40へ進み、縮小画像(サムネイル)がドラッグされない場合には、ステップS30を否定判定してステップS90へ進む。
プログラム実行部31は、空きアイコンfにドラッグされた縮小画像(サムネイル)に対応する画像をフィルタ画像として扱う。ステップS40において、プログラム実行部31は、ドラッグされた縮小画像(サムネイル)に対応するフィルタ画像に基づいてパラメータ分析(すなわち特徴量の算出)を行い、分析結果を加工情報としてステップS50へ進む。
プログラム実行部31は、ステップS50において、加工情報に対応するフィルタアイコンfをフィルタ表示部bに表示させてステップS60へ進む。ステップS60において、プログラム実行部31は、フィルタ表示部bの中でフィルタアイコンfに縮小画像(サムネイル)がドラッグされたか否かを判定する。プログラム実行部31は、縮小画像(サムネイル)がドラッグされた場合にステップS60を肯定判定してステップS65へ進み、縮小画像(サムネイル)がドラッグされない場合には、ステップS60を否定判定してステップS90へ進む。
プログラム実行部31は、フィルタアイコンfにドラッグされた縮小画像(サムネイル)に対応する画像を加工対象画像として扱う。ステップS65において、プログラム実行部31は、ドラッグされた縮小画像(サムネイル)に対応する加工対象画像に基づいてパラメータ分析(すなわち特徴量の算出)を行い、ステップS70へ進む。ステップS70において、プログラム実行部31は、加工対象画像とフィルタ画像との間でパラメータの特徴を近似させるように加工対象画像に対して画像加工を行う。
ステップS80において、プログラム実行部31は、加工後の画像を保存するとともに、その縮小画像(サムネイル)を一覧表示部cに表示させてステップS90へ進む。ステップS90において、プログラム実行部31は、終了か否かを判定する。プログラム実行部31は、終了操作が行われた場合にステップS90を肯定判定して図21による処理を終了する。プログラム実行部31は、終了操作が行われない場合はステップS90を否定判定してステップS20へ戻る。ステップS20へ戻る場合は、上述した処理を繰り返す。
以上説明した「画像サンプルを選んで加工設定を行う」実施形態によれば、次の作用効果が得られる。
(1)フィルタ画像および加工対象画像のパラメータの特徴量をそれぞれ解析する解析処理(S40、S65)と、加工対象画像についての特徴量をフィルタ画像についての特徴量へ近づけるように、加工対象画像に対するパラメータを補正する加工情報補正処理(S70)と、補正後のパラメータに基づいて、加工対象画像に対して加工を行う画像加工処理(S70)と、をプログラム実行部31に実行させるようにした。これにより、画像加工処理のための操作が簡単なユーザインターフェイスを提供できる。すなわち、加工対象画像と、その加工後のお手本となるフィルタ画像とがあれば、画像加工に関する知識を持たないユーザであっても、簡単に自分の目標とする画像に近づけるような画像加工処理を行うことが可能となる。
(2)フィルタ画像に基づくサムネイル画像および加工対象画像に基づくサムネイル画像を表示部22にそれぞれ表示させる表示処理(S20)を実行させ、解析処理(S40、S65)は、それぞれサムネイルが表示部22のフィルタ表示部bに表示される場合に、サムネイルに対応するフィルタ画像またはサムネイルに対応する加工対象画像のパラメータの特徴量を解析するようにした。例えば、表示画面上のフィルタ表示部bへサムネイル画像をドラッグ操作するだけで特徴量の解析を開始するので、画像加工処理のための操作が簡単なユーザインターフェイスを提供できる。
(3)解析処理(S40、S65)は、画像のパラメータごとに特徴量を解析し、加工情報補正処理(S50)は、複数のパラメータごとに加工対象画像に対するパラメータを補正するようにした。これにより、複数の画像加工のそれぞれで、手本となる画像に近づけるような画像加工処理を行える。
(4)加工情報補正処理(S50)は、複数の画像加工のパラメータのうち指示されたパラメータに対応させてパラメータを補正するので、複数の画像加工のうち必要な画像加工のみについて、手本となる画像に近づけるような画像加工処理を行える。
(5)フィルタ画像は複数存在し、表示処理(S20)は、複数のフィルタ画像に基づく複数のサムネイル画像を表示部22にそれぞれ表示させ、解析処理(S40、S65)は、複数のサムネイル画像が表示部22のフィルタ表示部bに表示されると、対応する複数のフィルタ画像それぞれのパラメータの特徴量を解析し、加工情報補正処理(S50)は、加工対象画像についての特徴量を、複数のフィルタ画像におけるそれぞれの特徴量へ近づけるように、加工対象画像に対する複数通りのパラメータ補正を行い、画像加工処理(S70)は、複数通りのパラメータ補正に基づいて、加工対象画像に対して複数通りの加工処理を行う。これにより、手本となる画像が複数ある場合に、それぞれの手本画像に近づけるような画像加工処理を行える。
(6)加工対象画像は複数存在し、表示処理(S20)は、複数の加工対象画像に基づく複数のサムネイル画像を表示部22にそれぞれ表示させ、解析処理(S40、S65)は、複数のサムネイル画像が表示部22のフィルタ表示部bに表示されると、対応する複数の加工対象画像それぞれの特徴量を解析し、加工情報補正処理(S50)は、複数の加工対象画像についての特徴量を、フィルタ画像における特徴量へそれぞれ近づけるように、複数の加工対象画像に対するパラメータ補正をそれぞれ行い、画像加工処理(S70)は、複数のパラメータ補正に基づいて、複数の加工対象画像に対してそれぞれ加工処理を行う。これにより、加工対象画像が複数ある場合に、それぞれを手本画像に近づけるような画像加工処理を行える。
<直感メニューを開いて加工設定を行う場合>
「直感メニューを開いて加工設定を行う」が選ばれた場合にプログラム実行部31が実行する画像加工の進め方を説明する。「直感メニューを開いて加工設定を行う」場合は、先ず、ユーザに加工の目的を選んでもらう。このため、加工の目的を直感的でわかりやすい表現で提示する。例えば、後述のように、「明るさを変える」「色を変える」「くっきりさせる」「サイズを変える」「ノイズをとる」「タイムトラベル」といったように、加工の目的を直感的でわかりやすい表現で提示する。次に、プログラム実行部31が、選ばれた項目(加工目的)に応じて、実際に施す画像処理の各種調整項目をサブメニューとして提示し、ユーザに選んでもらう。そして、プログラム実行部31は、選ばれた調整項目ついて、パラメータ調整用スケールとスライダを表示し、ユーザ操作を受け付ける。プログラム実行部31は、画像加工の対象とする画像に対し、ユーザ操作に基づくパラメータを用いて画像加工処理を行う。
<ユーザインターフェイスの説明>
画像処理プログラムによる具体的なユーザインターフェイスについて、表示・入力部20の表示部22に表示される表示画面を例示して説明する。図22は、「直感メニューを開いて加工設定を行う」場合において、画像処理プログラムの起動時にプログラム実行部31が表示部22に表示させる初期画面を例示する図である。図22において、表示画面は、加工対象画像に対応する縮小画像51と、処理項目ウィンドウ52とを表示する。ここで、縮小画像51および処理項目ウィンドウ52の大きさ(表示エリア)は、ユーザ操作によって適宜変更可能に構成される。表示エリア等の大きさの変更は、例えば、指や、マウス、スタイラスペン等のポインティングデバイスを用いたユーザ操作によって変更される。
<処理項目ウィンドウ>
処理項目ウィンドウ52は、画像加工の目的を直感的にわかりやすく提示するメインメニュー52Aと、メインメニュー52Aにおいて選択されている項目に対応するサブメニュー52Bとで構成される。メインメニュー52Aには、画像に対してどのような目的の加工を行うかを分類する言葉が表示される。例えば、「明るさを変える」、「色を変える」、「くっきりさせる」、「サイズを変える」、…のように、加工目的によって項目が分けられる。
サブメニュー52Bには、メインメニュー52Aにおいて選択されている項目(加工目的)に対応する画像加工の調整項目が表示される。例えば、画像の「明るさを変える」場合には、「露出補正」、「ヒストグラム補正」、「トーンカーブ補正」など、「明るさを変える」場合において一般に用いられる調整項目が自動的に並べて表示される。
プログラム実行部31は、メインメニュー52Aにおいて項目がタップ操作された項目を選択する。プログラム実行部31は、選択項目が変わると、処理項目ウィンドウ52におけるサブメニュー52Bの項目を入れ替えて表示させる図37(a)は、「色を変える」に対応するサブメニュー52Bを含む処理項目ウィンドウ52を例示する図である図37(b)は、「くっきりさせる」に対応するサブメニュー52Bを含む処理項目ウィンドウ52を例示する図である。
プログラム実行部31は、サブメニュー52Bにおいてタップ操作された調整項目を選択する。プログラム実行部31は、選択した調整項目に対応するパラメータ調整用スケールとスライダを表示するウィンドウ53を表示部22に表示させる。図24は、「コントラスト補正」の場合のパラメータ調整用スケールとスライダを表示するウィンドウ53を例示する図である。パラメータ調整は、パラメータ調整用スケールとスライダを用いて行ってもよいし、パラメータを増減させる操作ができるものであれば何でもよい。例えば、調整値を直接入力してもよい。
プログラム実行部31は、ユーザによってノブ53aの位置が変更操作され、「OK」ボタン53bがタップ操作されると、ノブ53aの位置に応じて対応するパラメータを増減させる。これにより、プログラム実行部31は、加工対象画像に対して上記パラメータ増減を反映させた画像加工を施し、加工後の画像を加工前の画像が格納されているメモリ領域と同じメモリ領域、またはユーザ操作により指定されたメモリ領域に保存する。プログラム実行部31はさらに、縮小画像51を加工後の画像に対応する縮小画像に置き換えて表示させる。
<効果分類ウィンドウ>
図25は、画像加工後の表示部22の表示画面を例示する図である。プログラム実行部31は、ある調整項目について画像加工した際に、その加工が画像に対してどのような効果をもたらすのかをグループに分類し、効果分類ウィンドウ55として表示させる。効果分類ウィンドウ55を表示させることにより、ユーザにとって、加工が画像に対してどんな影響を与えているのかをイメージしやすくする。
効果分類ウィンドウ55における効果の分類は、画像加工について専門的な知識をもっていないユーザにも分かりやすくするため、「くっきりさせる」、「はなやかにする」、「落ち着いた」、「色を変える」などといった、具体的な効果をイメージしやすいものとする。そして、効果に対応させて、ウィンドウ53からパラメータを変更した調整項目を表示させる。図25によれば、画像加工によって「くっきりさせる」および「色を変える」効果が得られたことが示されている。また、「くっきりさせる」効果に寄与したのは、「コントラスト強調」、「輪郭強調」、および「ヒストグラム補正」のパラメータ調整であることが示されている。
<異なるグループに表示する>
プログラム実行部31は、パラメータを変更した調整項目が同じ場合であっても、その効果が異なる場合は別のグループに分類する。例えば、「露出補正」のパラメータ調整をプラス方向へ行った場合は、効果として「はなやかにする」に分類し、「露出補正」のパラメータ調整が「はなやかにする」効果に寄与したことを示す。これとは逆に、「露出補正」のパラメータ調整をマイナス方向へ行った場合は、効果として「落ち着いた」に分類し、「露出補正」のパラメータ調整が「落ちついた」という効果に寄与したことを示す。「露出補正」のパラメータ調整をプラス方向へ行った場合と、「露出補正」のパラメータ調整をマイナス方向へ行った場合とを区別するために、異なるグループ間(例えば「はなやかにする」と「落ち着いた」)で「露出補正」のパラメータ調整をプラス方向あるいはマイナスの方向どちらへ行ったかを文字や記号等を用いて表示してもよい。
<異なる名称(呼び名)で表示する>
プログラム実行部31はさらに、効果分類ウィンドウ55において分類する効果の名称を、加工対象画像に応じて変化させる。例えば、「色を変える」における「色」を、加工対象画像がポートレート撮影画像の場合や風景撮影画像の場合に変化させる。具体的には、人物が主要被写体である可能性が高いポートレート撮影画像の場合、「色」を「人肌の印象」と置き換え、「人肌の印象を変える」という効果の名称にする。また、風景が主要被写体である可能性が高い風景撮影画像の場合、「色」を「光の色」と置き換え、「光の色を変える」という効果の名称にする。プログラム実行部31は、加工対象画像がポートレート撮影モードにおいて撮影されている場合にポートレート撮影画像と判定し、加工対象画像が風景撮影モードにおいて撮影されている場合に風景撮影画像と判定する。加工対象画像がどの撮影モードにおいて撮影されているかは、例えば、その画像のタグ情報に基づいて判別する。なお、プログラム実行部31は、加工対象画像の主要被写体を、撮影モードによって判定してもよいし、被写体認識(例えば、顔認識や物体認識)によって判定してもよい。
効果分類ウィンドウ55において分類する効果の名称を、加工対象画像に応じて変化させる代わりに、加工対象画像のタグ情報から推定されるユーザの(撮影や画像加工における)スキルに応じて変化させてもよい。プログラム実行部31は、例えば、加工対象画像がフルオートモードにおいて撮影されている場合に、そのユーザは初心者であると推定する。また、プログラム実行部31は、加工対象画像が風景撮影モードにおいて撮影されている場合であって、公知のシーン解析処理に基づいてその画像が風景と判断される場合や、加工対象画像がポートレート撮影モードにおいて撮影されている場合であって、公知の顔検出処理に基づいてその画像が人物の顔と判断される場合には、そのユーザは、初心者より画像加工に対する知識を持っている中級者であると推定する。プログラム実行部31はさらに、加工対象画像がマニュアルモードにおいて撮影されている場合であれば、そのユーザは、画像加工に対する専門的な知識を持っている上級者であると推定する。
そして、プログラム実行部31は、初心者ユーザであると推定した場合に分かりやすい名称を用いて必要最小限の項目のみを提示する。例えば、上述した「くっきりさせる」や「色を変える」や「明るさを変える」という効果の名称にする。これに対し、プログラム実行部31は、上級者とユーザであると推定した場合は画像処理分野で一般に用いられる用語を用いて提示する。例えば、「くっきりさせる」の代わりに「シャープにする」または「メリハリをつける」としたり、「色を変える」の代わりに「色相を変える」という効果の名称にしたりする。中級者ユーザであると推定した場合には、初心者向けの項目に対して使用頻度の高い項目を加えて提示するなど、ユーザのスキルに応じて表示を切り替えることで、使いやすい表示を提供できる。
なお、効果分類ウィンドウ55における効果の分類は、処理項目ウィンドウ52における加工目的の分類と必ずしも一致させなくてもよい。また、分類の名称に使用する言葉は、効果分類ウィンドウ55と処理項目ウィンドウ52との間において同じであってもよいし、異なっていても構わない。
例えば、当初処理項目ウィンドウ52のメインメニュー52Aにおいて加工目的「明るさを変える」を選び、サブメニュー52Bにおいて「露出補正」のパラメータ調整をプラス側へ行った場合、効果分類ウィンドウ55における効果として、例えば「明るくする」または「はなやかにする」と分類する。
一方、ポートレート撮影画像を対象に、処理項目ウィンドウ52のメインメニュー52Aにおいて「人肌の印象を変える」を選び、サブメニュー52Bにおいて「色相補正」のパラメータ調整を行った場合は、効果分類ウィンドウ55における効果として、処理項目ウィンドウ52の場合と同じ「人肌の印象を変える」と分類する。
以上説明したように、ある調整項目についてパラメータ調整を行った場合に、その調整項目が画像加工においてどのような効果として寄与しているかを提示することにより、ユーザに対し、パラメータ調整によって得られる結果(効果)をわかりやすく知らせることができる。さらに、効果を得るために行った調整項目について、ユーザにわかりやすく知らせることができる。これにより、ユーザによる無駄なパラメータ調整を防ぐことが可能となる。
プログラム実行部31は、ある調整項目についてパラメータ調整が行われた場合に、そのパラメータ調整と典型的に組み合わされる他の処理を提示することで、ユーザ操作をサポートする。具体的には、効果として「くっきりさせる」、および「はなやかにする」ためにパラメータ調整が複数項目(例えばコントラスト強調と彩度強調)行われた場合や、効果として「明るくする」ためのパラメータ調整(例えば輪郭強調、露出補正など)がプラス方向へ所定値以上行われた場合において、ノイズリダクション処理を提示する。
プログラム実行部31は、図26に例示するポップアップウィンドウ56を表示部22に表示させることにより、ユーザにノイズリダクション処理を提案する。一般に、「くっきりさせる」効果や「明るくする」効果を得るための画像加工はノイズの増加を招く要因となりやすい。このため、ノイズ増加を招きやすい画像加工と典型的に組み合わされる他の処理(本例ではノイズリダクション処理)をポップアップ提示することで、最終的にバランスが取れた画像加工を行えるように、ユーザをサポートできる。
<フローチャートの説明>
「直感メニューを開いて加工設定を行う」場合にプログラム実行部31が実行する処理の流れについて、図27〜図29に例示するフローチャートを参照して説明する。プログラム実行部31は、図3の設定画面において「直感メニューを開いて加工設定を行う」がチェックされた状態で「OK」ボタン26がタップ操作されると、図27による処理を開始させる。
図27のステップS101において、プログラム実行部31は、加工対象画像を読み込んでステップS102へ進む。ステップS102において、プログラム実行部31は、加工対象画像に関連づけられているタグ情報を取得してステップS103へ進む。ステップS103において、プログラム実行部31は、加工対象画像に対する画像解析を行ってステップS104へ進む。画像解析は、上記シーン解析および顔検出を含む。
ステップS104において、プログラム実行部31は、画像解析結果やタグ情報に基づいて、上記効果分類ウィンドウ55における分類方法(例えば、「くっきりさせる」、「はなやかにする」、「落ち着いた」、「色を変える」、…など平易な言葉で表す)を決定してステップS105へ進む。
ステップS105において、プログラム実行部31は、ユーザ操作に基づくパラメータを用いて、上述したように選ばれた調整項目について画像加工処理を行ってステップS106へ進む。ステップS106において、プログラム実行部31は、画像加工処理が終了か否かを判定する。プログラム実行部31は、処理項目ウィンドウ52において他の調整項目が選ばれた場合にステップS106を否定判定してステップS105へ戻る。プログラム実行部31は、処理項目ウィンドウ52において他の調整項目が選ばれない場合には、ステップS106を肯定判定してステップS107へ進む。
ステップS107において、プログラム実行部31は、画像加工処理後の画像をメモリに保存または不図示のプリンタ装置で印刷するなどの終了処理を行って図27による処理を終了する。
画像加工処理時にプログラム実行部31が実行する処理の流れについて、図28に例示するフローチャートを参照して説明する。図28のステップS201において、プログラム実行部31は、処理項目ウィンドウ52を表示部22に表示させて、加工目的および調整項目の選択操作を受け付けてステップS202へ進む。
ステップS202において、プログラム実行部31は、ユーザ操作に基づいて選ばれた調整項目について、上記パラメータ増減を反映させた画像加工処理を行ってステップS203へ進む。ステップS203において、プログラム実行部31は、加工後の画像をメモリに保存するとともに、縮小画像51を加工後の画像に対応する縮小画像に置き換えて表示させる。
ステップS204において、プログラム実行部31は、効果分類表示をするか否かを判定する。プログラム実行部31は、効果分類ウィンドウ55を表示する場合にステップS204を肯定判定してステップS205へ進み、効果分類ウィンドウ55を表示しない場合には、ステップS204を否定判定して図28による処理を終了する。効果分類ウィンドウ55を表示する/しないの設定は、あらかじめ画像処理装置10の「設定」メニューの中で行われる。
ステップS205において、プログラム実行部31は、図25に例示したように、効果分類ウィンドウ55を表示部22に表示させて図28による処理を終了する。
効果分類表示処理時にプログラム実行部31が実行する処理の流れについて、図29に例示するフローチャートを参照して説明する。図29のステップS301において、プログラム実行部31は、ステップS104で決定した分類方法に基づいて、効果分類ウィンドウ55において分類する効果の名称を決定してステップS303へ進む。上述したように、効果の名称は、加工対象画像やユーザのスキルに応じて異ならせる。
ステップS302において、プログラム実行部31は、分類した効果の名称の表示を指示してステップS303へ進む。ステップS03において、プログラム実行部31は、分類した果に対応する調整項目の表示を指示してステップS304へ進む。これにより、効果分類ウィンドウ55が表示される。
ステップS304において、プログラム実行部31は、他の処理を提示するか否かを判定する。本実施形態では、上述したように、ある効果を得るために所定数以上の複数の調整項目においてパラメータが増減された場合、もしく所定の調整項目においてパラメータが所定値以上増減された場合に、加工による画質劣化を抑えるための処理を提示する。プログラム実行部31は、他の処理の提示が必要と判断した場合にステップS304を肯定判定してステップS305へ進み、他の処理の提示が不要と判断した場合には、ステップS304を否定判定して図29による処理を終了する。
ステップS305において、プログラム実行部31は、図26に例示したポップアップウィンドウ56を表示部22に表示させて、図29による処理を終了する。ポップアップアップウィンドウ56の例では、ユーザに対してノイズリダクション処理が提案される。
なお、ステップS304の判定処理においては、ある効果を得るためにパラメータが増減された調整項目の数の他に、パラメータ増減量や画質劣化の副作用を含めた点数化を行い、この点数が所定の判定閾値を超えるか否かに基づいて他の処理を提示するか否かを判断するようにしてもよい。ここで、トーンカーブ補正の場合は、パラメータ増減量というよりも、γ曲線の最大の傾きが大きくなるほど点数を大きくする。
また、ある効果(例えば「くっきりさせる」)に対して複数の調整項目(例えばコントラスト補正および輪郭強調)のパラメータ調整が行われた場合において、複数の調整項目の間で補正方向が同じ(どちらもくっきりさせる方向)である場合は双方の点数をプラスとし、補正方向が逆(一方がくっきりさせる方向で、他方が曖昧にする方向)である場合はぼかす方向の点数をマイナスとする。そして、「くっきりさせる」において合計点数が判定閾値を超える場合はノイズの増加が見込まれるため、ノイズリダクション処理を推奨する。
上述した処理項目ウィンドウ52の表示においても、効果分類ウィンドウ55の表示と同様に、加工対象画像のタグ情報に基づいて変化させてもよい。すなわち、初心者ユーザにはよりわかりやすい言葉を用い、上級者ユーザには専門的な言葉を用いて表示する。
以上説明した「直感メニューを開いて加工設定を行う」実施形態によれば、次の作用効果が得られる。
(1)画像の加工目的を表すメインメニュー52Aを表示する目的表示処理(S201)と、表示した情報のうち指示された情報に対応するサブメニュー52Bをさらに表示する加工表示処理(S201)と、表示した情報に対応するウィンドウ53をさらに表示する調整表示処理(S201)と、ウィンドウ53に対する変更操作に基づいて、加工対象画像に対して加工を行う画像加工処理(S202)と、をプログラム実行部31に実行させるようにした。これにより、画像処理のための操作がわかりやすいユーザインターフェイスを提供できる。
(2)加工対象画像のタグ情報を読み込む処理(S102)と、タグ情報に基づいて、目的表示処理で表示するメインメニュー52Aを平易な言葉に置き換える置換処理(S104)と、をプログラム実行部31に実行させるようにしたので、加工対象画像のタグ情報を使ってわかりやすいユーザインターフェイスを提供できる。
(3)タグ情報は、加工対象画像が撮影された撮影モードを示す情報を含み、置換処理(S104)は、撮影モードに基づいてメインメニュー52Aを平易な言葉に置き換えるようにしたので、加工対象画像の撮影モード情報を使ってわかりやすいユーザインターフェイスを提供できる。
(4)画像加工処理において変更した加工のパラメータを、加工による効果を表す言葉で分類して効果分類ウィンドウ65を表示する効果表示処理(S302−S303)を、プログラム実行部31に実行させるようにしたので、画像処理の効果がわかりやすいユーザインターフェイスを提供できる。
(5)分類された加工のパラメータの数が所定数に達した場合、または分類されたパラメータにあらかじめ付されている点数の合計が所定点数に達した場合に、あらかじめ定めた所定の加工を勧める推奨表示処理(S305)を、プログラム実行部31に実行させるようにしたので、必要な加工がわかりやすいユーザインターフェイスを提供できる。
<ユーザ別メニューを開いて加工設定を行う場合>
「ユーザ別メニューを開いて加工設定を行う」が選ばれた場合にプログラム実行部31が実行する画像加工の進め方を説明する。「ユーザ別メニューを開いて加工設定を行う」場合は、先ず、ユーザにログイン操作をしてもらう。ユーザごとの使用履歴に基づくユーザ別メニューによって加工処理内容を提示するためである。次に、プログラム実行部31は、ユーザによるメニュー選択操作に応じて、実際に施す画像処理の各種調整項目をサブメニューとして提示し、ユーザに選んでもらう。そして、プログラム実行部31は、選ばれた調整項目ついて、パラメータ調整用スケールとスライダを表示し、ユーザ操作を受け付ける。プログラム実行部31は、画像加工の対象とする画像に対し、ユーザ操作に基づくパラメータを用いて画像加工処理を行う。
<ユーザインターフェイスの説明>
画像処理プログラムによる具体的なユーザインターフェイスについて、表示・入力部20の表示部22に表示される表示画面を例示して説明する。図30は、「ユーザ別メニューを開いて加工設定を行う」場合において、プログラム実行部31が表示部22に表示させるユーザ別メニュー画面を例示する図である。図30において、表示画面は、加工対象画像に対応する縮小画像61と、ユーザ別メニュー62とを表示する。
ユーザ別メニューは、例えば「明るさを変える」、「色を変える」、「くっきりさせる」など加工内容を表示するメイン表示621と、メイン表示621に対応する調整項目を表示するサブ表示622〜624とで構成される。サブ表示の数は、メイン表示621に対して1つの場合、2つの場合、3つの場合、それ以上の場合もある。図30の例では、「明るさを変える」メイン表示621に対して3つのサブ表示622〜624を有し、「色を変える」メイン表示621に対して2つのサブ表示622〜623を有し、「くっきりさせる」メイン表示621に対して3つのサブ表示622〜624を有する。
プログラム実行部31は、サブ表示622〜624のうちタップ操作された調整項目(例えばコントラスト補正)を選択する。プログラム実行部31は、図24の場合と同様に、選択した調整項目に対応するパラメータ調整用スケールとスライダを表示するウィンドウ53を表示部22に表示させる。プログラム実行部31は、ユーザによってノブ53aの位置が変更操作され、「OK」ボタン53bがタップ操作されると、ノブ53aの位置に応じて対応するパラメータを増減させる。これにより、プログラム実行部31は、加工対象画像に対して上記パラメータ増減を反映させた画像加工を施し、加工後の画像を加工前の画像が格納されているメモリ領域と同じメモリ領域、またはユーザ操作により指定されたメモリ領域に保存する。プログラム実行部31はさらに、縮小画像61を加工後の画像に対応する縮小画像に置き換えて表示させる。
<一般的な画面表示との比較>
図31は、画像処理装置として一般に用いられている表示画面を例示する図である。図31において、画面上部に上位階層表示73Aとして、プルダウンメニュー1〜プルダウンメニュー6が並べて表示されている。縮小画像71の隣には、下位階層表示73Bとしてプルダウンメニューに対応するメニュー1〜メニュー7が表示される。いずれかのプルダウンメニューがタップ操作された場合、対応する下位階層メニュー1〜メニュー7に表示が切り替わる。メニュー1〜メニュー7のそれぞれには、サブメニュー1〜サブメニュー6が設けられている。
図31の例では、プルダウンメニュー3の下位階層メニュー1〜メニュー7が下位階層表示73Bとして表示される。ここで、表示部22の表示範囲に下位階層表示73Bの全てが収まらないので、下位階層表示73Bをスクロールするためのアイコン73Cが表示される。
図31に例示した表示画面の場合、上位階層表示73Aと下位階層表示73Bの両方を表示するために表示部22の画面使用率が高まり、縮小画像71の表示範囲が狭くなりやすい。また、ユーザは、プルダウンメニュー→メニュー→サブメニューと決まった操作手順を繰り返し行う必要がある。すなわち、加工対象画像に対して異なる調整項目(サブメニュー)のパラメータ調整をするごとに、一旦上位階層表示73Aのプルダウンメニューへ戻って下位階層表示73Bを切り替えてから、再度サブメニュー操作を行う必要があった。
例えば、プルダウンメニューが6つに分けられ、1つのプルダウンメニューの下にメニューが7つ設けられ、各メニューにおいてそれぞれサブメニューが6つ設けられていると仮定すると、最大で6×7×6=252のサブメニューが存在する。毎回上位階層表示73Aのプルダウンメニューへ戻る操作は、252個のサブメニューを全て使う場合の手法としては有効であるが、極めて煩わしい。
ところで、画像処理装置10のユーザの多くは、自身が好む画像へ加工するために、専ら特定の調整項目についてのみ画像加工を行うことが多い。すなわち、画像処理装置10が備える全てのサブメニュー(調整項目)が使用されることは極めて希で、毎回同じような加工目的(メニュー)で、同じ調整項目(サブメニュー)が選ばれる。発明者は、この点に着目している。
そこで、本実施形態のプログラム実行部31は、ユーザごとの使用履歴に基づいてユーザ別メニューを生成する。例えば、直近に使用されたサブメニューのうち使用頻度が高い(例えば10回以上使用)サブメニューをプルダウンメニュー別にまとめて、ユーザ別メニューを生成する。図32(c)は、従来例(図31)における252個のサブメニューから使用頻度の高いサブメニューを抽出し、プルダウンメニュー別に並べたユーザ別メニュー62Aを例示する図である。つまり、使用頻度が高い10個のサブメニューに表示を制限している。
図32(c)によれば、ユーザ別メニュー62Aは、使用頻度が高い10個のサブメニューを有しており、プルダウンメニューごとにまとめて表示されている。ユーザ別メニュー62Aは、通常、図32(a)のユーザ別メニュー画面において縮小画像61の隣に表示される。しかしながら、表示部22の表示範囲にユーザ別メニュー62Aの全てが収まらない場合、ユーザ別メニュー62A1とともに、ユーザ別メニュー62Aをスクロールするためのアイコン63が表示される。
図32(b)は、スクロールされたユーザ別メニュー62A2を表示するユーザ別メニュー画面を例示する図である。アイコン63は、ユーザ別メニュー62A2をスクロールするために設けられる。なお、図32(a)および図32(b)において、ユーザ別メニュー62Aのスクロールは、アイコン63に対するタップ操作の他に、スワイプ操作でも可能である。図30におけるユーザ別メニュー62は、図32(a)〜図32(c)のユーザ別メニュー62Aを、実際のプルダウンメニューの名称や調整項目の名称を用いて表したものに相当する。なお、プルダウンメニューの名称およびメインメニューの名称のうち一方の名称表示は、省略しても構わない。
<フローチャートの説明>
「ユーザ別メニューを開いて加工設定を行う」場合にプログラム実行部31が実行する処理の流れについて、図33〜図34に例示するフローチャートを参照して説明する。プログラム実行部31は、図3の設定画面において「ユーザ別メニューを開いて加工設定を行う」がチェックされた状態で「OK」ボタン26がタップ操作されると、図33による処理を開始させる。
図33のステップS410において、プログラム実行部31は、表示部22にログイン画面を表示させてステップS420へ進む。ログイン情報に基づいてユーザを判別し、ログインユーザごとにメニューを使い分けるためである。プログラム実行部31は、ステップS420においてログイン操作を受け付ける。ユーザは、あらかじめ登録したユーザIDおよびパスワードを入力するか、新規登録を行う。
ステップS430において、プログラム実行部31は登録情報の有無を判定する。プログラム実行部31は、不揮発性メモリ34にあらかじめ設けられているデータベースの中にログインユーザの情報が存在する場合は、ステップS430を肯定判定してステップS440へ進む。プログラム実行部31は、上記データベースにログインユーザの情報が存在しない場合は、ステップS430を否定判定してステップS510へ進む。
ステップS440において、プログラム実行部31は、上記データベースからログインユーザの作業履歴情報を読み出してステップS450へ進む。ステップS450において、プログラム実行部31は、作業履歴情報に基づいてユーザ別メニュー62A(図32(c))を決定し、表示部22に表示させてステップS460へ進む(図32(a)、図32(b))。
ステップS460において、プログラム実行部31は、加工対象画像を読み込んでステップS470へ進む。ステップS470において、プログラム実行部31は、ユーザ別メニュー62Aの中からユーザによるタップ操作で選ばれた調整項目について画像加工処理を行ってステップS480へ進む。ステップS480において、プログラム実行部31は、画像加工処理が終了か否かを判定する。プログラム実行部31は、ユーザ別メニュー62Aにおいて他のサブメニュー(調整項目)が選ばれた場合にステップS480を否定判定してステップS470へ戻る。プログラム実行部31は、ユーザ別メニュー62Aにおいて他のサブメニュー(調整項目)が選ばれない場合には、ステップS480を肯定判定してステップS490へ進む。
ステップS490において、プログラム実行部31は、画像加工処理後の画像をメモリに保存または不図示のプリンタ装置で印刷するなどの終了処理を行ってステップS500へ進む。ステップS500において、プログラム実行部31は、画像処理加工処理において保存していた作業履歴情報をユーザ情報に加えるようにデータベースを更新し、図33による処理を終了する。データベースの更新については、最近の作業内容と過去の作業内容との間で履歴情報に重みを付けてもよい。また、データベースを更新した際に、その旨をメッセージで表示部22に表示させてもよい。
上述したステップ430を否定判定して進むステップS510において、プログラム実行部31は、新規登録処理を行ってユーザ情報をデータベースに記録し、ステップS520へ進む。ステップS520において、プログラム実行部31は、登録されたユーザ情報(年齢、画像処理経験など)に応じて、対応するテンプレートメニュー(例えば初心者向けメニュー、中級者向けメニュー、上級者メニューとして、あらかじめメニュー数が異なる推奨メニューがデータベースに格納されている)をデータベースから読み出し、表示部22に表示させてステップS460へ進む。なお、プルダウンメニューの名称や調整項目の名称は、ユーザ層に応じて変更させてもよい。具体的には、上述した「直感メニューを開いて加工設定を行う」場合と同様に、初心者ユーザにはわかりやすい名称を用い、上級者ユーザには専門的な名称を用いてメニューを表示する。
画像加工処理時にプログラム実行部31が実行する処理の流れについて、図34に例示するフローチャートを参照して説明する。図34のステップS471において、プログラム実行部31は、ユーザ別メニュー62Aにてサブメニュー(調整項目)の選択操作を受け付けてステップS472へ進む。
ステップS472において、プログラム実行部31は、ユーザ操作に基づいて選ばれたサブメニュー(調整項目)について、画像加工処理を行ってステップS473へ進む。ステップS473において、プログラム実行部31は、加工後の画像をメモリに保存するとともに、縮小画像61を加工後の画像に対応する縮小画像に置き換えて表示させる。ステップS474において、プログラム実行部31は、画像加工を行ったサブメニュー(調整項目)や対応するパラメータの調整量などを、作業履歴情報としてメモリに一時保存して図34による処理を終了する。作業履歴情報には、サブメニューやパラメータ調整量の他に、作業日や作業回数、画像カテゴリごとの作業手順などを含めてもよい。
上述したデータベースを更新するログアウト時において、ユーザ別メニュー62Aを更新する旨のメッセージを表示部22に表示させ、ユーザ操作による更新許可を求めてもよい。そのとき、更新前のユーザ別メニュー62Aと更新しようとするユーザ別メニュー62Aとの間で相違する点を点滅表示させるなどして、差分を明示的に知らせるようにしてもよい。
以上説明した「ユーザ別メニューを開いて加工設定を行う」実施形態によれば、次の作用効果が得られる。
(1)使用ユーザを判別するユーザ判別処理(S20)と、画像加工のための複数のメインメニュー52A、複数のメインメニュー52Aごとに分類される複数のサブメニュー52Bからなるメニュー体系の中から、使用されたサブメニュー52Bの履歴情報を使用ユーザごとに保存する保存処理(S500)と、保存処理(S500)によって保存されている使用ユーザの履歴情報に基づいて、メニュー体系から使用ユーザへ提示するサブメニュー52Bの数を制限する制限処理(S450)と、制限処理(S450)による制限後のサブメニュー62A、62Bを表示部22に表示させるメニュー表示処理(S450)と、プログラム実行部31実行させるようにした。これにより、ユーザにとって作業効率の良いユーザインターフェイスを提供できる。また、メニュー提示のための表示部22の画面使用率を抑えられるから、縮小画像61の表示範囲を広く確保できる。
(2)制限処理(S450)は、メニュー体系に含まれるサブメニュー52Bのうち、使用ユーザによる直近の使用回数が所定数を超えるサブメニュー52Bを提示メニューとするようにしたので、使用頻度の低いサブメニューの表示を適切に抑えることができる。
(3)制限処理(S520)は、履歴情報を保存していない新規使用ユーザに対し、あらかじめ定めたテンプレートメニューを提示メニューとするようにした。例えば、メニュー体系から新規使用ユーザへ提示するメニューを制限したテンプレートメニューを設けておく場合に、新規使用ユーザにとって作業効率の良いユーザインターフェイスを提供できる。
(4)制限処理(S520)は、新規使用ユーザから登録される情報に応じて異なるサブメニュー数のテンプレートメニューを提示メニューとするので、新規使用ユーザの登録情報に応じたテンプレートメニューを提供できる。
(変形例1)
上述した「直感メニューを開いて加工設定を行う」が選ばれた場合において、ある調整項目についてパラメータを増減させた画像加工が、その画像に対してどの程度の影響を与えているかを示す「影響度」を表示するようにしてもよい。「影響度」は、単純に加工処理によって画面全体の画素値がどの程度変化したかを示す積分値から求めることができる。また、各調整項目によって、例えば効果として「くっきりさせる」グループであれば、輝度レベルの変化量から求めることができる。さらにまた、効果として「色を変える」グループであれば、色相、彩度の変化量から求めることができる。そして、画面において、変化量が大きいほど画素を黒(または白)で表し、変化量が小さいほど画素を白(または黒)で表わすことにより、「影響度」をモノトーン画像で表すことができる。
例えば、図35〜図37に例示する効果分類ウィンドウ55Bにおいて、ユーザが調整項目表示を選択する(タップまたはポイントする)と、プログラム実行部31が効果分類ウィンドウ55Bにおいて選択された調整項目における「影響度」をモノトーン画像で表示させる。ここで、図35〜図37は、図1において例示した表示画面の中でいわゆる「壁紙」として用いた画像を加工対象画像としている。図35によれば、「コントラスト強調」前後の差分画像が「影響度」として表示されるので、「コントラスト強調」が画像のどの部分にどの程度変化を与えているかを、ユーザに対して視覚的に分かりやすく知らせることができる。
図36によれば、「輪郭強調」前後の差分画像が「影響度」として表示されるので、「輪郭強調」が画像のどの部分にどの程度変化を与えているかを、ユーザに対して視覚的に分かりやすく知らせることができる。
図37によれば、「ホワイトバランス変更」前後の差分画像が「影響度」として表示されるので、「ホワイトバランス変更」が画像のどの部分にどの程度変化を与えているかを、ユーザに対して視覚的に分かりやすく知らせることができる。
なお、図35〜図37に例示したように、「影響度」を示すモノトーン画像を効果分類ウィンドウ55Bに小さく表示する代わりに、縮小画像51と並べて大きく表示させてもよい。
変形例1によれば、分類されたパラメータによる加工の影響度を示す影響度表示をプログラム実行部31に実行させるようにしたので、そのパラメータに基づく画像加工が画像のどの部分にどの程度変化を与えているかを、ユーザに対して視覚的に分かりやすく知らせることができる。
(変形例2)
上述した「ユーザ別メニューを開いて加工設定を行う」が選ばれた場合において、ユーザ別メニュー62の他に、ユーザ別ウィンドウをユーザ別に設けて表示部22に表示させてもよい。ユーザ別ウィンドウには、例えばそのユーザによって取得された画像のサムネイル画像を一覧表示する。ユーザ別ウィンドウにサムネイル画像を一覧表示することで、ユーザは、サムネイル画像の一覧表示を見ながら加工対象画像の読み込み操作を行う(ステップS460)ことが可能になる。
(変形例3)
上述した「ユーザ別メニューを開いて加工設定を行う」が選ばれた場合において、ユーザ別メニュー62Aの一部を順番に表示させるようにしてもよい。図38は、変形例3におけるユーザ別メニューの表示画面を例示する図である。プログラム実行部31は、ユーザ別メニュー62Aの一部を使用頻度が高いものから順番に選び、選んだメニュー62A3をプルダウンメニュー別に表示部22に表示させる。
プログラム実行部31は、表示部22で表示中のメニュー62A3の中からユーザによるタップ操作で選ばれた調整項目について画像加工処理を行う。プログラム実行部31は、画像加工処理を行うと、次の順番のメニュー62A3を表示部22に表示させる。なお、ユーザは、表示されているメニュー62A3に対応する画像加工をしないときは、表示中のメニュー62A3を画面外へスライドさせるようにスワイプ操作する。プログラム実行部31は、スワイプ操作された場合にも、次の順番のメニューを62A3表示部22に表示させる。
ユーザ別メニュー62Aの中に、画像加工用のサブメニューだけでなく、ファイル操作用のサブメニューや、印刷用のサブメニューを含めてもよい。例えば、画像ファイルを開くためのサブメニューを1番目とし、画像ファイルを閉じるためのサブメニューを最後とする。印刷用のサブメニューでは、出力先プリンタを選んだり、出力先プリンタに対する印刷設定を行ったりする。
変形例3によれば、メニュー表示処理(S450)は、提示メニューを順番に切替えて表示部22に表示させるので、操作順を提示する操作ガイドとしても有効である。また、メニュー提示のための画面使用率を抑えられるから、縮小画像61の表示範囲を広く確保できる。
さらに、変形例3によれば、提示メニューをメインメニュー52Aごとに切替えて表示部22に表示させるので、関連性のあるサブメニューをまとめて提示できる。
(第二の実施形態)
第一の実施形態では、「画像サンプルを選んで加工設定を行う」が選ばれた場合において、プログラム実行部31が、フィルタ画像および加工対象画像のそれぞれについて、画像全体のパラメータ(画像全体に施されている画像処理の各種調整用パラメータや、撮影時の撮影用パラメータ)の特徴を分析し、フィルタ画像と加工対象画像との間でパラメータの特徴を近似させるように加工対象画像に対するパラメータを補正し、補正後のパラメータにより加工対象画像の全体に対して画像加工処理を行った。この代わりに、第二の実施形態では、画像の一部のパラメータの特徴を分析したり、加工対象画像の一部に対してパラメータの特徴を近似させるよう加工対象画像に対するパラメータを補正したりする構成とする。さらに、補正後のパラメータにより加工対象画像の一部、または全体に対して画像加工処理を行えるように構成する。
<ユーザインターフェイスの説明>
第二の実施形態において、「画像サンプルを選んで加工設定を行う」が選ばれた場合の画像処理プログラムによる具体的なユーザインターフェイスについて、表示・入力部20の表示部22に表示される表示画面を例示して説明する。図39は、「画像サンプルを選んで加工設定を行う」場合にプログラム実行部31が表示部22に表示させる初期画面を例示する図である。
図39において、表示画面は、加工前の画像に対応するサムネイル画像を一覧表示する一覧表示部aと、画像の一部領域を指定したり、加工結果を確認したりするための作業エリア表示部Bxと、フィルタ画像(加工の見本となる画像)を一覧表示するフィルタ一覧表示部Cxと、に分割される。ここで、一覧表示部a、作業エリア表示部Bx、およびフィルタ一覧表示部Cxの大きさ(表示エリア)は、ユーザ操作によって適宜変更可能に構成される。また、一覧表示部aおよびフィルタ一覧表示部Cxは、それぞれ左右方向へのスワイプ操作によって非表示にすることができる。例えば、フィルタ一覧表示部Cxを右方向へスワイプ操作すると、フィルタ一覧表示部Cxを非表示にして作業エリア表示部Bxを広げて表示する。サムネイル画像、作業エリア、表示エリア等の大きさの変更は、例えば、指や、マウスやスタイラスペン等のポインティングデバイスを用いたユーザ操作によって変更される。
一覧表示部aは、加工前の画像に対応するサムネイルa1、サムネイルa2、およびサムネイルa3を表示するエリアである。一覧表示部aにサムネイル画像をスクロールするためのアイコン11、12が表示される点は、上記実施形態と同様である。サムネイル画像のスクロールは、アイコン11、12に対するタップ操作の他に、一覧表示部aに対する上下方向へのスワイプ操作でも可能である。
作業エリア表示部Bxは、フィルタ画像(加工の見本となる画像)において画像処理パラメータの特徴を分析する特徴分析範囲を指定する際に使用される。また、作業エリア表示部Bxは、加工対象画像における特徴分析範囲を指定する際にも使用される。さらにまた、作業エリア表示部Bxは、画像加工結果の確認にも使用される。
フィルタ一覧表示部Cxは、登録されたフィルタ画像(加工の見本となる画像)に対応するサムネイル画像を表示するエリアである。図39の場合、登録が行われる前のフィルタ一覧表示部Cx内はブランク表示である。
<フィルタ画像、および特徴分析範囲を選ぶ>
ユーザは、フィルタ画像(加工の見本となる画像)としてサムネイルa1に対応する画像を選ぶ場合、一覧表示部aにおいてサムネイルa1をタップ操作する。プログラム実行部31は、図40に例示するように、フィルタ一覧表示部Cxを非表示にし、広げた作業エリア表示部Bxにサムネイルa1より大きな画像B1を表示させる。プログラム実行部31は、図41に例示するように、作業エリア表示部Bxにおいて特徴分析範囲dを指定するドラッグ操作を受け付ける。
プログラム実行部31は、サムネイルa1に対応する画像B1のうち、作業エリア表示部Bxにおいて指定された領域dを特徴分析範囲とし、この特徴分析範囲dに基づいてパラメータ分析(すなわち特徴量の算出)を行う。
プログラム実行部31は、作業エリア表示部Bx内に表示する「参照元」ボタン14がタップ操作された段階で、特徴分析範囲dに基づく上記全ての特徴量の算出を行い、算出結果を参照元パラメータとして不図示のメモリに登録する。プログラム実行部31はさらに、図42に例示するように、一覧表示部aを非表示にするとともにフィルタ一覧表示部Cxを表示させる。そして、選ばれたフィルタ画像(本説明ではサムネイルa1に対応する画像)のうち特徴分析範囲dに相当する画像のサムネイルc1をフィルタ一覧表示部Cxに表示させる。なお、サムネイルa1に対応する画像に基づいて特徴量が登録されたことを示すため、サムネイルc1として図示する。後述する図50や図61〜図63等に示すように、複数のフィルタ画像(特徴量)の登録が可能である。
上記特徴量の算出結果を不揮発性メモリ34に保存しておくと、将来同じフィルタ画像を選ぶ場合において算出結果を再利用できるので、特徴量算出をその都度行う場合に比べて、処理負担を軽減させることができる。
なお、上述した実施形態と同様に、「参考とするパラメータ」としてユーザによって選ばれたパラメータのみについて特徴量を算出するようにしてもよい。すなわち、特徴分析範囲dにおいて、明るさ、コントラスト、色相などのパラメータのうち、チェックされたパラメータについてのみ特徴量を算出して登録する。
<加工対象画像、および特徴分析範囲を選ぶ>
ユーザは、加工対象画像としてサムネイルa2に対応する画像を選ぶ場合、一覧表示部aを表示させた状態でサムネイルa2をタップ操作する。プログラム実行部31は、図43に例示するように、フィルタ一覧表示部Cxを非表示にし、広げた作業エリア表示部Bxにサムネイルa2より大きな画像B2を表示させる。プログラム実行部31は、図44に例示するように、作業エリア表示部Bxにおいて、画像の加工対象範囲となる特徴分析範囲eを指定するドラッグ操作を受け付ける。
プログラム実行部31は、サムネイルa2に対応する画像B2のうち、作業エリア表示部Bxにおいて指定された領域eを特徴分析範囲とし、この特徴分析範囲eに基づいてパラメータ分析(すなわち特徴量の算出)を行う。プログラム実行部31は、特徴分析範囲eに基づく上記全ての特徴量の算出を、ユーザによって特徴分析範囲eが指定された段階で行う。
プログラム実行部31は、作業エリア表示部Bx内に表示する「適用」ボタン13がタップ操作されると、図45に例示するように、一覧表示部aを非表示にするとともにフィルタ一覧表示部Cxを表示させる。さらに、登録されているサムネイルc1がフィルタ一覧表示部Cxにおいてタップ操作されると、加工対象画像(特徴分析範囲e)とフィルタ画像(特徴分析範囲d)との間でパラメータの特徴を近似させるように加工対象画像に対するパラメータを補正し、補正後のパラメータにより加工対象画像の一部(特徴分析範囲e)に対して画像加工を行う。
プログラム実行部31は、作業エリア表示部Bxにおいて表示する画像B2のうち、特徴分析範囲e内を加工後の画像に対応する画像に置き換えて表示させる。
ここで、特徴分析範囲dの形状と、特徴分析範囲eの形状とが異なっていてもよく、それぞれが任意の形状(円形、多角形、複数の図形の組み合わせ等)に指定されていて構わない。図46は、矩形形状の特徴分析範囲eの代わりに指定された楕円形状の特徴分析範囲exを例示する図である。図47は、複数の楕円形状を組み合わせた特徴分析範囲eyを例示する図である。また、図48は、任意形状で、複数に分離されている特徴分析範囲ezを例示する図である。また、ユーザが、指で画像B2上をなぞることで、指が触れた範囲を特徴分析範囲eとして指定できるようにしてもよい。同様に、ユーザが、図41で示される矩形形状の特徴分析範囲の代わりに、特徴分析範囲dの形状を任意の形状(円形状、多角形、複数の図形の組み合わせ等)に指定できるようにしてもよい。また、ユーザが、指で画像B1上をなぞることで、指が触れた範囲を特徴分析範囲dとして指定できるようにしてもよい。
また、ユーザが筆で色を塗るような操作によって特徴分析範囲eを指定できるようにしてもよい。例えば、ユーザは、登録されているサムネイルc1をあたかもパレット(フィルタ一覧表示部Cx)に出された絵の具のように扱い、サムネイルc1をタップした指で絵の具を塗るかのように、作業エリア表示部Bxに表示されている画像B2上をなぞる。プログラム実行部31は、図49に例示するように、指が触れた範囲を特徴分析範囲e1とする。
さらにまた、特徴分析範囲eを複数に分離して指定する場合において、異なるフィルタ画像(加工の見本となる画像)に対応させてもよい。図50は、複数の特徴分析範囲e1およびe3に対して、それぞれ異なる画像加工を行う場面を説明する図である。ユーザは、登録されているサムネイルc1をタップした指で絵の具を塗るかのように、作業エリア表示部Bxに表示されている画像B2上をなぞって特徴分析範囲e1を指定する。また、ユーザは、登録されているサムネイルc3をタップした指で絵の具を塗るかのように、作業エリア表示部Bxに表示されている画像B2上をなぞって特徴分析範囲e3を指定する。
プログラム実行部31は、作業エリア表示部Bx内に表示する「適用」ボタン13がタップ操作されると、サムネイルc1に対応する特徴分析範囲dと画像B2に対応する特徴分析範囲e1との間、およびサムネイルc3に対応する特徴分析範囲dと画像B2に対応する特徴分析範囲e3との間で、それぞれパラメータの特徴を近似させるように加工対象画像に対するパラメータを2通りに補正し、これら補正後のパラメータにより加工対象画像の全体に対して2通りの画像加工処理を行う。そして、作業エリア表示部Bxにおいて表示する画像B2のうち、特徴分析範囲e1および特徴分析範囲e3内を、それぞれ加工後の画像に対応する画像に置き換えて表示させる。
また、画像B2において特徴分析範囲eを指定する際にスタンプツールを用いるようにしてもよい。図51は、スタンプツールを用いる例を説明する図である。図51において、スタンプツール表示部kに複数形状のスタンプツールsが表示される。ユーザは、登録されているサムネイルc1をあたかもスタンプ台(フィルタ一覧表示部Cx)のように扱い、作業エリア表示部Bxに表示されている画像B2上に特徴分析範囲esを指定する。例えば星形形状のスタンプツールsをタップした指でサムネイルc1をタップし、さらに画像B2上をタップすると、画像B2上に星形形状に特徴分析範囲esが指定される。次に、三角形状のスタンプツールsをタップした指でサムネイルc1をタップし、さらに画像B2上をタップすると、画像B2上に三角形状に特徴分析範囲esが指定される。
なお、画像B2上に複数の特徴分析範囲esを指定する場合において、複数のサムネイルc1およびc3が登録されている場合には、複数の特徴分析範囲esに異なるフィルタ画像(加工の見本となる画像)を対応させてもよい。これにより、例えば画像B2に対応する画像に対して星形形状の特徴分析範囲esと三角形状の特徴分析範囲esのそれぞれで2通りの画像加工を行うとともに、作業エリア表示部Bxにおいて表示する画像B2のうち、星形形状の特徴分析範囲esおよび三角形状の特徴分析範囲es内に、それぞれ加工後の画像に対応する画像に置き換えて表示できる。
<加工対象画像において特徴分析範囲を選ばない場合>
プログラム実行部31は、図43において、作業エリア表示部Bxにおいて表示する加工対象画像において特徴分析範囲eの指定が行われずに、作業エリア表示部Bx内に表示する「適用」ボタン13がタップ操作されると、一覧表示部aを非表示にするとともにフィルタ一覧表示部Cxを表示させる。そして、図52に例示するように、登録されているサムネイルc1がフィルタ一覧表示部Cxにおいてタップ操作されると、加工対象画像の全体を特徴分析範囲eとして扱い、加工対象画像の全体とフィルタ画像(特徴分析範囲d)との間でパラメータの特徴を近似させるように加工対象画像に対するパラメータを補正し、補正後のパラメータにより加工対象画像の全体に対して画像加工を行う。この場合のプログラム実行部31は、加工対象画像の全体に基づく特徴量の算出を、ユーザによって「適用」ボタン13がタップ操作された段階で行う。
<加工対象画像の一部とフィルタ画像(特徴分析範囲d)との間でパラメータの特徴を近似させるように、加工対象画像の全体に対して画像加工を行う場合>
プログラム実行部31は、図53に例示するように、作業エリア表示部Bxにおいて特徴分析範囲eを指定するドラッグ操作を受け付ける。プログラム実行部31は、サムネイルa4に対応する画像B4のうち、作業エリア表示部Bxにおいて指定された領域eを特徴分析範囲とし、この特徴分析範囲eに基づいてパラメータ分析(すなわち特徴量の算出)を行う。プログラム実行部31は、特徴分析範囲eに基づく特徴量の算出を、ユーザによって特徴分析範囲eが指定された段階で行う。
プログラム実行部31は、作業エリア表示部Bx内に表示する「適用」ボタン13がタップ操作されると、図54に例示するように、一覧表示部aを非表示にするとともにフィルタ一覧表示部Cxを表示させる。さらに、登録されているサムネイルc1がフィルタ一覧表示部Cxにおいてタップ操作されると、特徴分析範囲eとフィルタ画像(特徴分析範囲d)との間でパラメータの特徴を近似させるように加工対象画像に対するパラメータを補正し、補正後のパラメータにより加工対象画像の全体に対して画像加工を行う。
プログラム実行部31は、作業エリア表示部Bxにおいて表示する画像B4を、加工後の画像に対応する画像に置き換えて表示させる。図54によれば、特徴分析範囲eに対して行う加工と同じ加工を画像全体に対して行うことで、特徴分析範囲eとそれ以外の領域との境界をなくすことができる。
図55〜図57を参照して、画像の一部を補正する場面を説明する。図55において、ユーザは、加工対象画像としてサムネイルa5に対応する画像を選ぶ場合、一覧表示部aを表示させた状態でサムネイルa5をタップ操作する。プログラム実行部31は、作業エリア表示部Bxにサムネイルa5より大きな画像B5を表示させる。図55によれば、右側被写体が明るすぎる。ユーザは、画像の加工対象範囲となる特徴分析範囲eとして、明るすぎる右側被写体を指定する操作を行う。プログラム実行部31は、作業エリア表示部Bxにおいて特徴分析範囲eを指定する操作を受け付ける。プログラム実行部31は、作業エリア表示部Bx内に表示する「適用」ボタン13がタップ操作されると、図56に例示するように、一覧表示部aを非表示にするとともにフィルタ一覧表示部Cxを表示させる。
プログラム実行部31は、サムネイルa5に対応する画像B5のうち、作業エリア表示部Bxにおいて指定された領域eを特徴分析範囲とし、この特徴分析範囲eに基づいてパラメータ分析(すなわち特徴量の算出)を行う。プログラム実行部31は、特徴分析範囲eに基づく特徴量の算出を、ユーザによって特徴分析範囲eが指定された段階で行う。
プログラム実行部31は、登録されているサムネイルc1がフィルタ一覧表示部Cxにおいてタップ操作されると、特徴分析範囲eとフィルタ画像(特徴分析範囲d)との間でパラメータの特徴を近似させるように加工対象画像に対するパラメータを補正し、補正後のパラメータにより加工対象画像の全体に対して画像加工を行う。図57によれば、補正したい領域を特徴分析範囲eとして指定することで、画像B5のうち補正したい領域のみを適正な明るさに加工することができる。
<加工対象画像の一部を画像加工する場合に境界をぼかす>
例えば、図58に例示するように、サムネイルa2に対応する画像B2のうち、作業エリア表示部Bxにおいて指定された領域eを特徴分析範囲とする場合、プログラム実行部31は、加工対象画像(特徴分析範囲e)とフィルタ画像(特徴分析範囲d)との間でパラメータの特徴を近似させるように加工対象画像に対するパラメータを補正し、補正後のパラメータにより加工対象画像の特徴分析範囲eに対して画像加工を行う。このとき、プログラム実行部31は、特徴分析範囲eの境界をぼかすように特徴分析範囲eの外側において加工の強度を徐々に弱くする。図59によれば、境界をぼかすように加工することで、特徴分析範囲eとそれ以外の領域との境界を目立ちにくくすることができる。
ぼかし方の一例としては、図60に例示するように、画像加工済み画像を画像加工前の画像の上に重ね、特徴分析範囲e内の画像加工済み画像を不透明度100% とし、特徴分析範囲eの境界からぼかし範囲gまでの間で、不透明度を0%(画像加工前の画像が完全に見える)にするよう透明度を徐々に変化させる方法がある。
<複数のフィルタ画像、および特徴分析範囲を選ぶ>
ユーザは、図61において、2枚目以降のフィルタ画像(加工の見本となる画像)としてサムネイルa3に対応する画像を選ぶ場合、一覧表示部aにおいてサムネイルa3をタップ操作する。プログラム実行部31は、サムネイルa3に対応する画像B3のうち、作業エリア表示部Bxにおいて指定された領域hを特徴分析範囲とし、この特徴分析範囲hに基づいてパラメータ分析(すなわち特徴量の算出)を行う。プログラム実行部31は、作業エリア表示部Bx内に表示する「参照元」ボタン14がタップ操作された段階で、特徴分析範囲hに基づく特徴量の算出を行い、算出結果を参照元パラメータとして不図示のメモリに登録する。
プログラム実行部31は、選ばれたフィルタ画像(本説明ではサムネイルa3に対応する画像)のうち特徴分析範囲hに相当する画像のサムネイルc3をフィルタ一覧表示部Cxに表示させる(図62)。なお、サムネイルa3に対応する画像に基づいて特徴量が登録されたことを示すため、サムネイルc3として図示する。
複数に分離した特徴分析範囲ez1およびez3が指定されている場合において、プログラム実行部31は、図50の場合と異なる手法で、特徴分析範囲ez1およびez2に対して異なるフィルタ画像(加工の見本となる画像)を対応させる。図63は、複数の特徴分析範囲ez1およびez3に対してそれぞれ異なる画像加工を行う場面を説明する図である。ユーザは、例えばフィルタ一覧表示部Cxにおいて登録されているサムネイルc1をタップし、次に作業エリア表示部Bxにおいて特徴分析範囲ez1をタップする。ユーザはさらに、フィルタ一覧表示部Cxにおいて登録されているサムネイルc3をタップし、次に作業エリア表示部Bxにおいて特徴分析範囲ez3をタップする。
プログラム実行部31は、作業エリア表示部Bx内に表示する「適用」ボタン13がタップ操作されると、サムネイルc1に対応する特徴分析範囲dと画像B2に対応する特徴分析範囲ez1との間、およびサムネイルc3に対応する特徴分析範囲hと画像B2に対応する特徴分析範囲ez3との間で、それぞれパラメータの特徴を近似させるように加工対象画像に対するパラメータを2通りに補正し、これら補正後のパラメータにより加工対象画像の特徴分析範囲ez1、特徴分析範囲ez3に対してそれぞれ画像加工処理を行う。そして、作業エリア表示部Bxにおいて表示する画像B2のうち、特徴分析範囲ez1および特徴分析範囲ez3内を、それぞれ加工後の画像に対応する画像に置き換えて表示させる。
上述したように、作業エリア表示部Bxにおいて特徴分析範囲ez1、特徴分析範囲ez3を指定した後、それぞれにパラメータの特徴を対応させるサムネイルc1、c3を指定してもよいし、特徴分析範囲ez1または特徴分析範囲ez3を指定するごとに、パラメータの特徴を対応させるサムネイルc1またはc3を指定してもよい。また、先にサムネイルc1またはc3を指定した後に、パラメータの特徴を対応させる特徴分析範囲ez1または特徴分析範囲ez3を指定してもよい。
<加工対象画像において複数の特徴分析範囲が近接または接触している場合>
プログラム実行部31は、図64に例示するように、作業エリア表示部Bxにおいて特徴分析範囲ez1と特徴分析範囲ez3とが接する場合、両者の間に境界線を設ける。そして、境界線を境として、加工対象画像の特徴分析範囲ez1と特徴分析範囲ezとの間で画像加工処理を明確に分ける。
なお、境界線を境として、加工対象画像の特徴分析範囲ez1と特徴分析範囲ez3との間で画像加工処理を明確に分ける代わりに、図65に例示するように、境界線を挟む画像加工処理を徐々に変化させて境界線をぼかしてもよい。
そして、境界線の位置や画像加工処理を徐々に変化させる範囲は、作業エリア表示部Bxにおいて表示する画像B2をユーザが指でなぞって調整できるようにしてもよい。
また、作業エリア表示部Bxにおいて複数の特徴分析範囲ez1および特徴分析範囲ez3を指定する場合において、特徴分析範囲ez1およびez3の境界をぼかすように画像加工の強度を徐々に弱くしてもよい。図66によれば、特徴分析範囲ez1および特徴分析範囲ez3においてそれぞれ境界をぼかすように加工することで、特徴分析範囲ez1、ez3とそれ以外の領域との境界を目立ちにくくすることができる。
さらにまた、作業エリア表示部Bxにおいて円形状の特徴分析範囲を指定する場合において、その中心座標を指定して行うようにしてもよい。プログラム実行部31は、指定された座標位置から所定距離の範囲を特徴分析範囲とする。図67は、中心座標O1および中心座標O2に基づいて指定した2つの円形状の特徴分析範囲を例示する図である。
2つの円形状の特徴分析範囲が接する場合は、図64または図65の場合と同様に2つの特徴分析範囲の間に境界線を設け、境界線を境として画像加工処理を明確に分けたり、境界線をぼかすように境界線を挟む画像加工処理を徐々に変化させたりしてもよい。図68は、2つの円形状特徴分析範囲の間の境界線を境として、画像加工処理を分けた場合を例示する図である。
<画像加工前と、画像加工後の比較表示>
以上の説明では、作業エリア表示部Bxにおいて「適用」ボタン13がタップ操作されると、画像加工後の画像を作業エリア表示部Bxに表示する例を説明した。この代わりに、図69〜図71に例示するように、画像加工前の画像と画像加工後の画像を見比べできるように表示をしてもよい。
図69は、作業エリア表示部Bxにおいて画像加工(適用)前の画像と画像加工(適用)後の画像を並べて表示する場合を例示する図である。複数のパラメータについて補正を行って画像加工を行う場合、画像加工(適用)前の画像として、全てのパラメータに対する補正をOFF(キャンセル)した画像を表示してもよいし、一部のパラメータに対する補正のみをOFF(キャンセル)した画像を表示してもよい。
図70および図71は、作業エリア表示部Bxにおいて画像加工(適用)前の画像と画像加工(適用)後の画像とをレイヤー構造にした例である。プログラム実行部31は、「切替」ボタン19がタップ操作されるたびに、レイヤーを切り替える。これにより、ユーザは、画像加工(適用)前の画像と画像加工(適用)後の画像とを見比べることができる。なお、レイヤー構造が分かりやすいように画像を斜めにずらして配置しているが、より見比べやすいよう同じ位置に画像を重ねて配置してもよい。
<補正パラメータを適用して画像加工した範囲の表示>
図72および図73は、作業エリア表示部Bxにおいて画像加工(適用)後の画像と画像加工範囲を示す表示とをレイヤー構造にした例である。プログラム実行部31は、「切替」ボタン19がタップ操作されるたびに、レイヤーを切り替える。これにより、ユーザは、画像加工(適用)後の画像と画像加工範囲、補正の種別とを見比べることができる。フィルタ一覧表示部Cxにおいて、サムネイルc1に対してパラメータの特徴を対応させる補正を「補正1」とし、サムネイルc3に対してパラメータの特徴を対応させる補正を「補正2」と表示した。なお、レイヤー構造が分かりやすいように画像を斜めにずらして配置しているが、より見比べやすいよう同じ位置に画像を重ねて配置してもよい。
図74および図75は、作業エリア表示部Bxにおいて画像加工(適用)後の画像と画像加工範囲を示す表示とに、グレースケール加工や半透過加工を組み合わせてレイヤー構造にした例である。プログラム実行部31は、「切替」ボタン19がタップ操作されるたびに、レイヤーを切り替える。図74の例では、画像加工(適用)後の画像の上から、画像加工範囲を示す表示を半透過で重ねる。左側被写体の部分に「補正1」を対応させ、右側被写体の部分に「補正2」を対応させる例を示す。
図75の例では、画像加工(適用)後の画像において加工範囲に対応する部分の彩色を残し、加工範囲以外の部分をグレー表示する。これにより、ユーザは、画像加工(適用)後の画像と、画像加工範囲、補正種別とを見比べることができる。なお、レイヤー構造が分かりやすいように画像を斜めにずらして配置しているが、より見比べやすいよう同じ位置に画像を重ねて配置してもよい。
<フローチャートの説明>
第二の実施形態においてプログラム実行部31が実行する処理の流れについて図76に例示するフローチャートを参照して説明する。プログラム実行部31は、図3の設定画面において「画像サンプルを選んで加工設定を行う」がチェックされた状態で「OK」ボタン26がタップ操作されると、図76による処理を開始させる。
図76のステップS110において、プログラム実行部31は、画像を読み込んでステップS120へ進む。画像は、上述したように、通信部15を介して外部機器から取得した画像、または不図示のカメラユニットで撮影した画像である。ステップS120において、プログラム実行部31は、読み込んだ画像のデータに基づいて、縮小画像(サムネイル)を表示部22の一覧表示部aに表示させてステップS130へ進む。
ステップS130において、プログラム実行部31は、一覧表示部aに表示する縮小画像(サムネイル)からフィルタ画像が選ばれ、参照元ボタン14がタップ操作されたか否かを判定する。プログラム実行部31は、選ばれた画像を作業エリア表示部Bxに表示し、特徴分析範囲の指定操作を受け付ける。そして、参照元ボタン14がタップ操作された場合にステップS130を肯定判定してステップS140へ進み、参照元ボタン14がタップ操作されない場合には、ステップS130を否定判定してステップS190へ進む。
ステップS140において、プログラム実行部31は、フィルタ画像の特徴分析範囲に基づいてパラメータ分析(すなわち特徴量の算出)を行い、分析結果を加工情報としてステップS150へ進む。
プログラム実行部31は、ステップS150において、加工情報をサムネイルとしてフィルタ一覧表示部Cxに表示させてステップS160へ進む。ステップS160において、プログラム実行部31は、一覧表示部aに表示する縮小画像(サムネイル)から加工対象画像が選ばれ、適用ボタン13がタップ操作されたか否かを判定する。プログラム実行部31は、選ばれた画像を作業エリア表示部Bxに表示し、特徴分析範囲の指定操作を受け付ける。そして、適用ボタン13がタップ操作された場合にステップS160を肯定判定してステップS165へ進み、適用ボタン13がタップ操作されない場合には、ステップS160を否定判定してステップS190へ進む。
ステップS165において、プログラム実行部31は、加工対象画像の特徴分析範囲に基づいてパラメータ分析(すなわち特徴量の算出)を行い、ステップS170へ進む。特徴分析範囲が指定されていない場合は、加工対象画像の全域に基づいてパラメータ分析を行う。ステップS170において、プログラム実行部31は、加工対象画像とフィルタ画像との間でパラメータの特徴を近似させるように、加工対象画像に対して画像加工を行う。画像加工範囲は、特徴分析範囲内または全域について行う。
ステップS180において、プログラム実行部31は、加工後の画像を保存するとともに、その画像を作業エリア表示部Bxに表示させてステップS190へ進む。ステップ1S90において、プログラム実行部31は、終了か否かを判定する。プログラム実行部31は、終了操作が行われた場合にステップS190を肯定判定して図76による処理を終了する。プログラム実行部31は、終了操作が行われない場合はステップS190を否定判定してステップS120へ戻る。ステップS120へ戻る場合は、上述した処理を繰り返す。
以上説明した第二の実施形態によれば、以下の作用効果が得られる。
(1)フィルタ画像の特徴分析範囲dおよび加工対象画像の特徴分析範囲eのパラメータの特徴量をそれぞれ解析する解析処理(S140、S165)と、加工対象画像についての特徴量をフィルタ画像についての特徴量へ近づけるように、加工対象画像に対するパラメータを補正する加工情報補正処理(S170)と、補正後のパラメータに基づいて、加工対象画像に対して加工を行う画像加工処理(S170)と、をプログラム実行部31に実行させるようにした。これにより、画像加工処理のための操作が簡単なユーザインターフェイスを提供できる。すなわち、加工対象画像と、その加工後のお手本となるフィルタ画像とがあれば、画像加工に関する知識を持たないユーザであっても、簡単に自分の目標とする画像に近づけるような画像加工処理を行うことが可能となる。
(2)画像加工処理(S170)は、加工情報補正処理(S170)で補正されたパラメータに基づいて、加工対象画像の特徴分析範囲eに対して加工を行うようにしたので、ユーザが加工したい範囲において画像加工処理を行うことができる。
(3)画像加工処理(S170)は、加工対象画像の特徴分析範囲eの境界をぼかすように加工を行うようにしたので、画像加工後の境界がユーザに違和感を与えるおそれを低減できる。
(4)画像加工処理(S170)は、加工情報補正処理(S170)で補正されたパラメータに基づいて、加工対象画像の全体に対して加工を行うようにしたので、画像全体において画像加工処理を行うことができる。
(5)解析処理(S140、S165)は、第1フィルタ画像の特徴分析範囲d、第2フィルタ画像の特徴分析範囲d、および加工対象画像の第1特徴分析範囲eと第2特徴分析範囲eとにおいて、それぞれの特徴量をそれぞれ解析し、加工情報補正処理(S170)は、加工対象画像の第1特徴分析範囲eについての特徴量を第1フィルタ画像についての特徴量へ近づけるように加工対象画像の第1特徴分析範囲eに対する第1パラメータを補正するとともに、加工対象画像の第2特徴分析範囲eについての特徴量を第2フィルタ画像についての特徴量へ近づけるように加工対象画像の第2特徴分析範囲eに対する第2パラメータを補正し、画像加工処理(S170)は、加工情報補正処理(S170)で補正された第1パラメータに基づいて加工対象画像の第1特徴分析範囲eを加工するとともに、第2パラメータに基づいて加工対象画像の第2特徴分析範囲eを加工するようにした。これにより、ユーザが加工したい複数の範囲において異なる画像加工処理を行うことができる。
(6)画像加工処理(S170)は、加工対象画像の第1特徴分析範囲eおよび第2特徴分析範囲eの境界をぼかすように加工を行うようにしたので、画像加工後のそれぞれの境界がユーザに違和感を与えるおそれを低減できる。
(変形例4)
図77および図78は、画像加工前の画像と画像加工後の画像を見比べるように表示する他の例を説明する図である。図77において、画像B2は加工前の画像である。画面右端にあるタブ76およびタブ77は、それぞれフィルタ画像(加工の見本となる画像)に対応するサムネイル画像を表示する。サムネイルc1は、サムネイルa1に対応する画像に基づいて特徴量が登録されていることを示す。サムネイルc3は、サムネイルa3に対応する画像に基づいて特徴量が登録されていることを示す。
変形例4において、プログラム実行部31は、サムネイルc1を表示するタグ76が矢印方向へドラッグされると、図78に例示するように、タグ76を矢印方向へ移動させ、サムネイルc1に対応するフィルタ画像に基づく加工後の画像B2’が現れるように表示する。
図79は、加工後の画像B2’を表示する他の例を説明する図である。図79によれば、プログラム実行部31は、サムネイルc1を表示するタグ76が矢印方向へドラッグされると、加工前の画像B2とタグ76とが重なった領域から、画像B2を加工後の画像B2’に置き換えて表示する。
(変形例5)
上述した第二の実施形態では、加工対象画像および特徴分析範囲を選ぶ場合において、ユーザ操作によって、加工対象画像上に特徴分析範囲eを指定するようにした(図44)。この代わりに、プログラム実行部31が加工対象画像において加工推奨領域を自動的に決定してもよい。変形例5におけるプログラム実行部31は、自動的に決定した加工推奨領域を特徴分析範囲eとして扱う。
プログラム実行部31は、図45において登録されているサムネイルc1がフィルタ一覧表示部Cxにおいてタップ操作された際に、サムネイルc1に対応するフィルタ画像に基づく加工によって効果的な処理が見込める領域を決定する。例えば、サムネイルc1が「顔」を含む場合、加工対象画像中の「顔」を含む所定範囲を加工推奨領域として、この領域を枠で囲む表示を行う。
プログラム実行部31は、作業エリア表示部Bx内に表示する「適用」ボタン13がタップ操作されると、加工推奨領域(すなわち特徴分析範囲e)とフィルタ画像(特徴分析範囲d)との間でパラメータの特徴を近似させるように加工対象画像に対するパラメータを補正し、補正後のパラメータにより加工対象画像の一部(特徴分析範囲e)に対して画像加工を行う。
プログラム実行部31は、作業エリア表示部Bxにおいて表示する画像B2のうち、特徴分析範囲e内を加工後の画像に対応する画像に置き換えて表示させる(図45)。このように、効果的な加工処理が見込める推奨領域をユーザへ知らせることにより、画像処理に不慣れなユーザに対しても、適切な加工が行えるようにサポートできる。
(第三の実施形態)
第三の実施形態では、「タイムトラベル」を目的に行う画像加工について説明する。この画像加工は、あたかも撮影時刻と異なる時刻で撮影したかのように画像を加工する。例えば、日中の屋外で撮影された画像から、夕焼けが赤い夕刻に撮影した画像のように加工したり、日中の屋外で撮影された画像から、黄昏時の暗い画像に加工したりする。また、新緑の季節に撮影された画像から、紅葉の季節に撮影したかのように木々の葉の色を赤または黄色に加工する。そしてまた、あたかも40年前に撮影したかのように、セピア色の画像やモノクロの画像に加工する。さらに、あたかも100年前に撮影したかのように、石版画像に加工する。
図80は、図22に例示した「直感メニューを開いて加工設定を行う」場合において、処理項目ウィンドウ52のメインメニュー52Aの中から「タイムトラベル」が選択された場合の表示部22に表示される画面を例示する図である。図80において、「タイムトラベル」に対応するサブメニューがサブメニュー52Bにおいて表示される。例えば、「1日」、「1年」、「10年」、「100年」など、異なる時刻までのタイムスパンを示す項目が自動的に並べて表示される。
プログラム実行部31は、サブメニュー52Bにおいてタップ操作された項目を選択する。プログラム実行部31は、選択した項目(例えば「1日」)に対応する調整用スケールとスライダを表示するウィンドウ53を表示部22に表示させる。図81および図82は、「タイムトラベル」であって、タイムスパンが「1日」の場合の調整用スケールとスライダを表示するウィンドウ53を例示する図である。
プログラム実行部31は、ユーザによってノブ53aの位置が変更操作され、「OK」ボタン53bがタップ操作されると、ノブ53aの位置に応じて撮影時刻を前後させる。時間を進めると未来へ向かい、時間を戻すと過去へ向かう。図81の場合、例えば午後3時に撮影された画像に対し、11時間進めて午前2時の撮影画像のように加工する場合を例示する。また、図82の場合、上記午後3時に撮影された画像に対し、10時間戻して午前5時の撮影画像のように加工する場合を例示する。
プログラム実行部31は、加工対象画像に対して、例えば明るさを増減させるなどして撮影時刻が異なる画像加工を施し、加工後の画像を加工前の画像が格納されているメモリ領域と同じメモリ領域、またはユーザ操作により指定されたメモリ領域に保存する。プログラム実行部31はさらに、縮小画像51を加工後の画像に対応する縮小画像に置き換えて表示させる。なお、撮影日時と明るさとの関係を示す情報は、あらかじめ不揮発性メモリ34内に格納されている。
図83は、サブメニュー52Bにおいて選択した項目(例えば「1年」)に対応する調整用スケールとスライダを表示するウィンドウ53を例示する図である。図83(a)の場合、例えば7月に撮影された画像に対し、5ヵ月進めて12月の撮影画像のように加工する場合を例示する。また、図83(b)の場合、上記7月に撮影された画像に対し、5ヵ月戻して2月の撮影画像のように加工する場合を例示する。
図84は、サブメニュー52Bにおいて選択した項目(例えば「10年」)に対応する調整用スケールとスライダを表示するウィンドウ53を例示する図である。図84(a)の場合、例えば2013年に撮影された画像に対し、1年戻して2012年の撮影画像のように加工する場合を例示する。また、図84(b)の場合、上記2013年に撮影された画像に対し、3年進めて2016年の撮影画像のように加工する場合を例示する。
画像加工においては、画像のタグ情報に基づいて撮影位置情報や撮影方位情報が得られる場合は、太陽の明るさや陰の方向を反映させる。撮影位置情報から北半球か南半球かを判別し、季節を判定できる。なお、画像のタグ情報に基づいて主要被写体を判別できる場合は、主要被写体別に加工処理を異ならせてもよい。例えば、人物や動物が主要被写体の場合であって、暗い画像へ加工する場合には、主要被写体については暗く加工せずに、他の領域を暗く加工する。一方、風景を撮影した画像の場合であって、暗い画像へ加工する場合には、画像全体を暗く加工する。
夜間に撮影したような画像へ加工する場合、点光源部分を他の部分ほど暗く加工せずに、結果として際だたせるように加工してもよい。水の流れを撮影した画像の場合、シャッター速度を遅く撮影したように線状に加工してもよい。
数十年前に遡る過去の画像については、公知のセピア画像へ加工する。さらに100年以上遡る場合は、色を排して、いわゆる石版画像へ加工する。一方、1年以上先へ進む未来の画像については、色および陰を排した線画像へ加工する。
調整用スケールとスライダを表示するウィンドウ531の中でタイムスパンを変更操作できるように構成してもよい。図85は、この場合のウィンドウ531を例示する図である。ユーザがタイムトラベル環532のうち「1年」に相当する位置をタップ操作すると、プログラム実行部31は、調整用スケールのメモリを「1年」用に切り替える。プログラム実行部31は、タイムトラベル環532のタップ位置に応じて調整用スケールのメモリを切り替える。
<フローチャートの説明>
「タイムトラベル」が選択された場合にプログラム実行部31が実行する処理の流れについて、図86〜図87に例示するフローチャートを参照して説明する。プログラム実行部31は、図80に例示した画面においてサブメニュー52Bがタップ操作されると、図86による処理を開始させる。
図86のステップS501において、プログラム実行部31は、加工対象画像を読み込んでステップS502へ進む。ステップS502において、プログラム実行部31は、加工対象画像に関連づけられているタグ情報を取得してステップS503へ進む。ステップS503において、プログラム実行部31は、加工対象画像に対する画像解析を行ってステップS504へ進む。画像解析は、上記シーン解析および顔検出を含む。
ステップS504において、プログラム実行部31は、画像解析結果やタグ情報に基づいて、加工方法(例えば、「顔」領域については明暗加工から除外する、「風景」を撮影した画像は全体を加工する、…など)を決定してステップS505へ進む。
ステップS505において、プログラム実行部31は、ユーザ操作に基づくタイムスパンにおいて画像加工処理を行ってステップS506へ進む。ステップS506において、プログラム実行部31は、画像加工処理が終了か否かを判定する。プログラム実行部31は、サブメニュー52Bにおいて他のタイムスパンが選ばれた場合にステップS506を否定判定してステップS505へ戻る。プログラム実行部31は、サブメニュー52Bにおいて他のタイムスパンが選ばれない場合には、ステップS506を肯定判定してステップS507へ進む。
ステップS507において、プログラム実行部31は、画像加工処理後の画像をメモリに保存または不図示のプリンタ装置で印刷するなどの終了処理を行って図86による処理を終了する。
画像加工処理時にプログラム実行部31が実行する処理の流れについて、図87に例示するフローチャートを参照して説明する。図87のステップS601において、プログラム実行部31は、サブメニュー52Bを表示部22に表示させて、タイムスパンの選択操作を受け付けてステップS602へ進む。
ステップS602において、プログラム実行部31は、ユーザ操作で選択されたタイムスパンに対応する操作ウィンドウ53を表示させて、上記ユーザによるノブ53aの位置変更に応じて画像加工処理を行ってステップS603へ進む。ステップS603において、プログラム実行部31は、加工後の画像をメモリに保存するとともに、縮小画像51を加工後の画像に対応する縮小画像に置き換えて表示させ、図87による処理を終了する。
以上説明した第三の実施形態によれば、以下の作用効果が得られる。
(1)操作ウィンドウ53を表示する処理(S602)と、表示した操作ウィンドウ53に対する操作量を検出する操作量検出処理(S602)と、検出した操作量に応じて、加工対象画像の撮影時より前、または後に撮影された画像へ加工対象画像を加工する画像加工処理(S602)と、プログラム実行部31に実行させるようにした。これにより、異なる時刻に撮影したかのような画像へ加工処理するための操作が簡単なユーザインターフェイスを提供できる。
(2)操作量検出処理(S602)は、1日スパンに対応する操作量を検出し、画像加工処理(S602)は、加工対象画像を朝、日中、夕または夜に撮影された画像へ加工するので、1日スパンの異なる時刻に撮影したかのような画像へ加工処理するための操作が簡単なユーザインターフェイスを提供できる。
(3)操作量検出処理(S602)は、1年スパンに対応する操作量を検出し、画像加工処理(S602)は、加工対象画像を異なる季節に撮影された画像へ加工するので、1年スパンの異なる季節に撮影したかのような画像へ加工処理するための操作が簡単なユーザインターフェイスを提供できる。
(4)操作量検出処理(S602)は、10〜100年スパンに対応する操作量を検出し、画像加工処理(S602)は、加工対象画像の撮影時より前に撮影された画像へ加工する場合、加工対象画像をセピア色画像または石版画像へ加工するので、10〜100年スパンの過去へ遡った撮影画像へ加工処理するための操作が簡単なユーザインターフェイスを提供できる。
以上説明した各実施形態において、画像処理装置10へのプログラムの供給は、図88に例示するように、プログラムを格納したCD−ROMなどの記憶媒体45をユーザへ提供してもよいし、ネットワークなどの通信回線42を経由する方法で画像処理装置10へローディングしてもよい。通信回線42に接続されている無線LANのアクセスポイント43を介して、無線通信で画像処理装置10へ提供される。通信回線42を経由する場合は、通信回線42に接続されたサーバー41のストレージ装置などにプログラムを格納しておく。プログラムは、記憶媒体45や通信回線42を介する提供など、種々の形態のコンピュータプログラム製品として供給することができる。
以上の説明はあくまで一例であり、上記の実施形態の構成に何ら限定されるものではない。
以上説明した各実施形態において、画像処理装置10におけるユーザ操作は、指による操作(タップ操作、スワイプ操作、スライド操作、ドラッグ操作等)を説明したが、これに限定されない。画像処理装置10は、マウスやスタイラスペン等のポインティングデバイスを用いてユーザ操作を行えるようにしてもよい。