以下の「発明を実施するための形態」では、画像編集ツール並びに画像編集アプリケーションの数多くの詳細、実施例、及び実施形態が記載され、説明される。しかしながら、本発明は、記載される実施形態に限定されるものではなく、論じられる具体的詳細及び実施例の一部を伴わずに、本発明を実践することができる点が、当業者には明確かつ明白となるであろう。
画像編集アプリケーションにおける、画像を編集するための幾つかの新規のユーザインターフェース(UI)ツールの実施形態が、説明される。一部の実施形態では、この画像編集アプリケーションは、特定の色範囲に関連付けられているコンテンツのタイプ(例えば、空、群葉など)に関連する、画像の一部分のみの色値を調整するためのUIコントロールのセットを提供する。画像上の特定のコンテンツのタイプの色値を調整するためのUIコントロールを通じて、入力が受け取られると、このアプリケーションは、そのコンテンツのタイプに関連付けられている画像内の画素のセットを、自動的に特定する。次いで、このアプリケーションは、ユーザ入力に基づいて、その特定された画素のセットの色値のみを調整する。
一部の実施形態では、UIコントロールのセットは、画像内の空の色のみの色値を調整するためのUIコントロールを含む。これらの実施形態では、アプリケーションは、最初に、予め定義された空の色値の範囲内に収まる色値を有する、画像内の画素のセットを特定する。次いで、このアプリケーションは、その特定された画素のセットのみに、色調整を適用する。空の色の色値を調整することに加えて、一部の実施形態のUIコントロールのセットはまた、画像内の群葉の色のみの色値を調整するためのUIコントロールも含む。同様に、このアプリケーションは、予め定義された群葉の色値の範囲内に収まる色値を有する、画像内の画素のセットを特定し、その特定された画素のセットのみに、色調整を適用する。青空の色及び群葉の色を調整するための色調整操作は、以下のセクションIで、より詳細に説明される。
更には、一部の実施形態の画像編集アプリケーションはまた、画像上の場所をユーザが選択することを可能にし、その画像上の選択された場所から、種々のコンテンツのタイプが検出される場合に、その画像に適用するための種々の画像編集操作に関連付けられている種々のUIコントロールを表示する、画像編集ツールも提供する。これらの実施形態では、ユーザが画像上の場所を選択し、このアプリケーションの画像編集ツールが、画像上の選択された場所に対応する画素の色値を、その画像から取得する。次いで、このアプリケーションは、それらの画素値に対する一連の分析を実行して、その選択された場所が、特定のコンテンツのタイプを表現するか否かを検出する。検出されたコンテンツのタイプに基づいて、色編集ツールは、画像編集操作のセットを決定し、その決定された画像編集操作に関連付けられているUIコントロールのセットを表示する。コンテンツ依存性の画像上UIコントロールを提供する種々の実施形態は、以下のセクションIIで、より詳細に説明される。
図1は、画像の一部分のみの色値を調整するためのUIコントロールのセットを提供する、一部の実施形態の画像編集アプリケーションの、例示的なGUI100を示す。具体的には、図1は、UIコントロールの種々のセットをアクティブ化して操作する動作を、4つの異なるステージ105、110、115、及びステージ120で示す。これらのステージのそれぞれを、以下でより詳細に説明する。
図1に示すように、GUI100は、画像195、及び色調整UIコントロール125〜135のセットを含む。色調整UIコントロールのそれぞれは、この画像の異なる部分に関して、異なる色調整を開始するためのものである。例えば、UIコントロール125は、画像全体に「調整A」を適用するためのものであり、UIコントロール130は、画像の空領域に「調整B」を適用するためのものであり、UIコントロール135は、画像の群葉領域に「調整C」を適用するためのものである。
種々の実施形態は、種々の技術を使用して、UIコントロールのセットを実装する。この実施例では、アプリケーションは、UIコントロールのセットを、範囲スライダのセットとして実装する。これらの実施形態では、ユーザは、異なるUIコントロール125〜135を選択して操作することによって、画像に対する異なる調整操作を開始することができる。範囲スライダに加えて、GUI100はまた、ユーザが、UIコントロール125〜135のセットに対応する重ね合わせUIコントロール(画像上UIコントロールとも称される)のセットをアクティブ化することによって、調整操作を開始することも可能にする。
第2ステージ110は、ユーザが、重ね合わせUIコントロールのセットをアクティブ化した後の、GUI100を示す。一部の実施形態では、ユーザは、画像上の場所を選択することによって、重ね合わせUIコントロールのセットをアクティブ化することができる。これらの実施形態では、アプリケーションは、選択された場所に対応する画素の色値を取得して、その色値を、予め定義されたコンテンツのうちの1つと関連付ける。次いで、アプリケーションは、その関連付けられているコンテンツのタイプに関連する、重ね合わせUIコントロールのセットを提供する。図示のように、ユーザは、空を表示する、画像195上の場所を選択している。画像195上の場所の選択は、画像を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行することによって、又は、画像の場所にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。一実施形態では、ユーザは、画像の場所で指をタップするか、又は、その場所に指を置くことによって、場所を選択することができる。他の実施形態では、他のジェスチャを実行することにより、場所を選択することができる。上述のように、ユーザが画像上の場所を選択した後、一部の実施形態の画像編集アプリケーションは、少なくとも1つの分析を実行して、その選択された場所を、予め定義されたコンテンツのタイプと関連付ける。種々の実施形態は、種々の技術を使用して、選択された場所に関連付けられているコンテンツのタイプを判定する。一部の実施形態のアプリケーションは、最初に、種々のコンテンツのタイプに関連付けられている種々の色値の範囲を定義する。次いで、このアプリケーションは、画像内の選択された場所に対応する画素のセットの色値が、特定のコンテンツのタイプに関連付けられている色値の範囲内に収まるか否かを判定し、その特定のコンテンツのタイプに関連付けられている画像上UIコントロールのセットを表示する。この実施例では、アプリケーションは、選択された場所が、青空に関連付けられていることを判定する。それゆえ、このアプリケーションは、画像の空領域に「調整B」を実行するためのUIコントロール140に対応する、画像上UIコントロール155及び画像上UIコントロール160(水平軸に沿った2つの方向の矢印として表示される)のセットを提供する。
このアプリケーションはまた、画像全体に「調整A」を実行するためのUIコントロール125に対応する、重ね合わせUIコントロール145及び重ね合わせUIコントロール150(垂直軸に沿った2つの方向の矢印として表示される)のセットも提供する。重ね合わせUIコントロール145及び重ね合わせUIコントロール150のセットは、コンテンツに依存しない。すなわち、アプリケーションは、画像上に選択された場所とは無関係に、この重ね合わせUIコントロール145及び重ね合わせUIコントロール150のセットを提供する。一部の実施形態では、このアプリケーションはまた、UIコントロール125及びUIコントロール130がアクティブ化されていることを示すために、UIコントロール125及びUIコントロール130を強調表示する。(UIコントロールが強調表示されていることを示すために、UIコントロールの境界線が太線にされている。)この図には示されないが、この第2ステージ110でのユーザは、画像に対して方向入力を提供することによって、特定の色調整(すなわち、「調整A」又は「調整B」)を選択することができる。逆に、調整Aを垂直方向で実行することが可能であり、調整Bを水平方向で実行することが可能である点を、理解されたい。
第3ステージ115は、ユーザが、画像195上の異なる場所を選択した後の、GUI100を示す。画像195上の場所の選択は、画像を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行することによって、又は、画像の場所にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。一実施形態では、ユーザは、画像の場所で指をタップするか、又は、その場所に指を置くことによって、場所を選択することができる。他の実施形態では、他のジェスチャを実行することにより、場所を選択することができる。図示のように、ユーザは、山を示す画像上の場所を選択している。この新たな場所の選択に基づいて、アプリケーションは、画像の群葉領域に「調整C」を実行するためのUIコントロール135に対応する、重ね合わせUIコントロール175及び重ね合わせUIコントロール180(水平軸に沿った2つの方向の矢印として表示される)の異なるセットを表示する。このアプリケーションはまた、UIコントロール130がアクティブ化されていることを示すために、UIコントロール135を強調表示する。一部の実施形態では、UIコントロール135は、そのUIコントロールを取り囲む形状上に、より太い境界線を有することによって、強調表示される。他の実施形態では、UIコントロール135は、GUI内に表示される他のUIコントロールよりも明るい色で表示されることによって、強調表示される。第2ステージ110と同様に、このアプリケーションはまた、画像に「調整A」を実行するためのUIコントロール125に対応する、重ね合わせUIコントロール145及び重ね合わせUIコントロール150のセットも提供するが、これは、この重ね合わせUIコントロールのセットが、コンテンツに依存しないためである。
第4ステージ120は、ユーザが、方向入力を提供することによって、画像に対する色調整を開始した後の、GUI100を示す。この方向入力は、実質的に水平方向に沿って、タッチ若しくはニアタッチ感応スクリーンを有する装置上で、ユーザの指をドラッグすることによって、又はカーソルをドラッグすることによって、提供することができる。この実施例では、ユーザは、矢印140によって示されるように、画像の右にユーザの指をドラッグすることによって、方向入力を提供する。アプリケーションは、この方向入力を、画像195上で調整Cを実行するための画像上UIコントロール180と関連付ける。図示のように、画像195の群葉領域(例えば、山を表示する領域)は、画像195のその部分の全域にわたる斜線によって示されるように、調整されている。第4ステージ120はまた、アプリケーションが、方向入力を、画像上UIコントロールの1つのセットに関連付けた後には、非アクティブ化された画像上UIコントロール145及び画像上UIコントロール150が、ディスプレイから除去されて、対応するUIコントロール125が、もはや強調表示されないことも示す。一部の実施形態では、UIコントロール145及びUIコントロール150は、徐々に消失する。第4ステージ120はまた、ユーザが、異なる場所に指を移動させると、アクティブ化された重ね合わせUIコントロールが、その指を追従することも示す。換言すれば、表示された重ね合わせUIコントロールは、表示された画像の全域にわたって移動するようにアニメーション化され、その一方で画像が静止したまま維持されることにより、指に付着しているかのように、実質的にユーザの指の下に維持される。それゆえ、画像上UIコントロールは、常に指の場所の周囲に存在する。
コンテンツ依存性UIコントロールに加えて、一部の実施形態のアプリケーションはまた、画像の色バランスを調整するための新規のUIも提供する。色バランス調整は、画像内の色を、画像内に取り込まれた瞬間の、景色及び対象物の色と一致させるための、色調整操作である。一部の実施形態では、このアプリケーションは、画像上の場所をユーザが選択することを可能にする、色バランスUIコントロールを提供する。次いで、このアプリケーションは、選択された場所に対応する画素の色値を取得して、その画素の色値を、設定された基準色(例えば、灰色、理想的な肌色など)に変更する色調整を決定する。この色調整に基づいて、アプリケーションは、画像内の各色を異なる色にマッピングする、色空間変換を生成する。次いで、このアプリケーションは、画像内の全ての画素に、その色空間変換を適用する。
図2は、画像の色バランスを調整するための色バランスUIコントロールを提供する、画像編集アプリケーションのGUI200を示す。具体的には、図2は、色バランス調整操作を、4つの異なるステージ205、210、215、及びステージ220で示す。これらのステージのそれぞれを、以下でより詳細に説明する。
第1ステージ205で示すように、GUI200は、画像195、及び色バランス調整UIコントロールをアクティブ化するための選択可能UI項目225を含む。第2ステージ210は、ユーザが、選択可能UI項目225を選択した後の、GUI200を示す。選択可能UI項目225の選択は、選択可能UI項目225を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行することによって、又は、選択可能UI項目225にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。一実施形態では、ユーザは、選択可能UI項目225で指をタップするか、又は指を置くことによって、選択可能UI項目225を選択することができる。他の実施形態では、他のジェスチャを実行することにより、選択可能UI項目225を選択することができる。図示のように、ユーザは、選択可能UI項目225上で指をタップするか、又は指を置くことによって、選択可能UI項目225を選択している。
一部の実施形態では、このアプリケーションは、画像の色バランスを調整するための画像上に表示される(例えば、上に重ね合わされる)色バランスUIコントロールを提供する。これらの実施形態の一部では、色バランスUIコントロールは、画像上で移動可能であり、ユーザが、色バランスUIコントロールを所望の場所に移動させる(又はドラッグする)ことによって、画像上の場所を指定することを可能にする。
この第2ステージ210で示すように、選択可能UI項目225の選択の結果として、色バランスUIコントロール230が、画像上に出現する。この実施例では、色バランスUIコントロール230は、正方形の形状を有し、このコントロールの中央に十字線を有する。他の実施形態では、色バランスUIコントロールは、任意の他の形状にすることができる。これらの他の形状の非包括的なリストには、三角形、楕円形、矩形などが含まれる。この形状はまた、手、花などの不規則形状にすることもできる。更には、十字線は、中央に存在する場合もあれば、存在しない場合もある。あるいは、十字線以外の他の対象物を、円形、正方形、単一ドット、又は画像195内部の小領域を示すために使用される何らかの他の像などの形状で、表示することができる。
色バランスUIコントロール230の十字線により、ユーザは、画像195の色バランスを調整するための画像上の場所を指定することが可能となる。上述のように、ユーザが、色バランス操作のための場所を指定した後に、アプリケーションは、選択された場所に対応する少なくとも1つの画素の色値を取得して、その画素の色値を、設定された基準色(例えば、灰色、理想的な肌色など)に変更する色調整を決定する。この色調整に基づいて、アプリケーションは、画像内の各色を異なる色にマッピングする、色空間変換を生成する。次いで、このアプリケーションは、画像内の全ての画素に、その色空間変換を適用する。この第2ステージ210で示すように、選択された場所に基づく色バランス操作は、画像195の全域にわたる45度の斜線によって示されるように、画像195に対して実行されている。
前述のように、一部の実施形態の色バランスUIコントロール230は、画像195内部で移動可能であることにより、ユーザが、色バランス操作のための異なる場所を選択することを可能にする。これらの実施形態では、ユーザは、色バランスUIコントロール230上でジェスチャを実行して(例えば、ユーザの指を置くか、又はタップして)、その指を異なる場所にドラッグすることによって、色バランスUIコントロール230を再配置することができる。第3ステージ215は、ユーザが、色バランスUIコントロール230を選択した後ではあるが、その色バランスUIコントロール230を異なる場所に移動させる前の、GUI200を示す、過渡的ステージである。
第4ステージ220は、ユーザが、色バランスUIコントロール230を異なる場所に移動させた後の、GUI200を示す。図示のように、ユーザは、矢印235によって示されるように、画像の右上隅に向けて、ユーザの指をその方向にドラッグすることによって、色バランスUIコントロール230を移動させている。色バランスUIコントロール230を新たな場所に移動させた結果として、このアプリケーションは、画像の色バランスを再調整する。具体的には、このアプリケーションは、色バランスUIコントロール230を通じて、ユーザによって選択された新たな場所に対応する、少なくとも1つの画素の色値を取得する。次いで、このアプリケーションは、選択された場所の色を基準色に変更する、色調整を決定する。この色調整に基づいて、アプリケーションは、画像195内の各色を異なる色にマッピングする、色空間変換を生成する。次いで、このアプリケーションは、画像195内の全ての画素に、その色空間変換を適用する。この第4ステージ220で示されるように、新たに選択された場所に基づく色バランス操作は、画像195の全域にわたる135度の斜線によって示されるように、画像195に対して実行されている。
本発明の幾つかのより詳細な実施形態が、以下で提供される。これらの実施例の多くは、画像編集アプリケーションの一部であるスライダに言及する。一部の実施形態のこのアプリケーションは、装置のオペレーティングシステムの上で実行されるスタンドアローンのアプリケーションであるが、他の実施形態では、オペレーティングシステムの一部である。また、以下の実施例の多く(図3、4、6、7、9、14、15、20、21、22、23、24、31、32、33、34、35、37、39、41、及び図42で示されるものなど)では、アプリケーションが実行される装置は、タッチスクリーンを有し、このタッチスクリーンを通じて、ユーザは、その画像編集アプリケーションと対話することができる。しかしながら、当業者は、カーソル及びカーソルコントローラ、あるいは他の入力機構(例えば、音声制御)を使用して装置上で実行される他の実施形態に関しては、これらの実施例で示されるスライダ及びアプリケーションと対話するために、カーソルコントローラ又は他の入力装置を使用することができる点を、理解するであろう。
本発明の幾つかのより詳細な実施形態を、以下のセクションで説明する。具体的には、セクションIは、検出されたコンテンツのタイプに関連付けられている画像の一部分のみの色値を調整するための種々のUIコントロールを説明する。セクションIIは、画像上の選択場所からの、検出されたコンテンツのタイプに基づいて、画像上UIコントロールを提供する、種々の実施形態の詳細を説明する。セクションIIIは、画像の色バランスを調整するために、色バランスUIコントロールのセットを提供することを説明する。最後に、セクションVIは、本発明の一部の実施形態を実装する、電子システムを説明する。
I.色コントロール
一部の実施形態の画像編集アプリケーションは、特定のコンテンツのタイプに関連付けられている画像の一部分のみの色値を調整するためのUIコントロールのセットを提供する。一部の実施形態では、各UIコントロールは、画像内の異なるコンテンツのタイプに関連する色値を調整するためのものである。特定のUIコントロールを通じて入力が受け取られると、このアプリケーションは、その特定のUIコントロールによって制御されるコンテンツのタイプに関連する、画像内の画素のセットを自動的に特定する。次いで、このアプリケーションは、ユーザ入力に基づいて、その特定された画素のセットの色値のみを調整する。
一部の実施形態では、UIコントロールのセットは、異なるコンテンツのタイプに関連付けられている色値を調整するための異なるUIコントロールを含む。例えば、1つのUIコントロールは、肌の色調に関連付けられている色値を調整するためのものであり、別のUIコントロールは、空の色に関連付けられている色値を調整するためのものであり、更に別のUIコントロールは、群葉の色に関連付けられている色値を調整するためのものである。
図3は、特定のコンテンツのタイプに関連付けられている画像の一部分のみの色値を調整するためのUIコントロールのセットを提供する、一部の実施形態の画像編集アプリケーションの例示的なGUI300を、5つの異なるステージ305、310、315、320、及びステージ325で示す。これらのステージのそれぞれを、以下でより詳細に説明する。
図3に示すように、GUI300は、サムネイル表示領域330、ツールバー340、画像表示領域345、及びUIコントロール表示領域350を含む。サムネイル表示領域330は、ユーザが閲覧及び選択するための、アルバム内の画像のサムネイルのセットを表示する。画像のサムネイルは、解像度が低減された、画像の縮小サイズバージョンである。ユーザは、サムネイル表示領域330内の、画像に対応するサムネイルを選択することによって、画像表示領域345内に表示するための、1つ以上の画像を選択することができる。
ツールバー340は、種々のタイプの画像調整コントロールに関連付けられている選択可能UI項目のセットを表示する。選択可能UI項目のセットは、画像クロップツールのセットに関連付けられている選択可能UI項目、露出調整ツールのセットに関連付けられている選択可能UI項目、及び色調整ツールのセットに関連付けられている選択可能UI項目342を含む。ユーザが、これらの選択可能UI項目のうちの1つを選択すると、選択されたUI項目に関連付けられているUIコントロールのセットが、UIコントロール表示領域350内に表示される。
ここで、5つのステージ305、310、315、320、325の間のGUI300の状態を参照して、画像編集操作を説明する。第1ステージ305は、ユーザが、画像表示領域345内に表示するために、アルバム「アルバム1」から画像355を選択した後の、画像編集アプリケーションのGUI300を示す。画像表示領域345内に表示するための画像の選択は、その画像のサムネイルを表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、その画像のサムネイルにカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、サムネイル335上で指をタップすることによって、画像表示領域345内に表示するための画像355を選択している。この選択はまた、サムネイル表示領域330内のサムネイル335の強調表示によっても示される。この選択の結果として、画像355が、画像表示領域345内に表示される。画像355は、山を背景にして海の傍らに立っている人物の写真である。
第2ステージ310は、ユーザが、ツールバー340内の選択可能UI項目のうちの1つを選択した後の、GUI300を示す。選択可能UI項目342の選択は、選択可能UI項目342を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、1つ以上の指を置く、指さす、又は指をタップすること)によって、又は、選択可能UI項目342にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、選択可能UI項目342の強調表示によって示されるように、選択可能UI項目342上で指をタップすることによって、選択可能UI項目342を選択している。
選択可能UI項目342を選択した結果として、色調整UIコントロール352〜358のセットが、UIコントロール表示領域350内に表示される。種々の実施形態は、画像の色を調整するための種々のタイプの範囲関連UIコントロール(例えば、ダイヤル、ボタン、数値フィールドなど)を提供する。この実施例では、色調整UIコントロールは、範囲スライダである。ユーザは、それらのUIコントロールのうちのいずれか1つのつまみを、範囲スライダに沿って異なる位置にスライドさせることによって、画像に対する種々の色調整を開始することができる。これらのスライダは、つまみがスライダに沿ってスライドするため、視覚的な表示を提供することができる。
色調整UIコントロール352〜358のそれぞれは、画像に関する異なるタイプの色調整を開始するためのものである。例えば、色調整UIコントロール352は、画像に対する彩度調整を開始するためのものである。色調整UIコントロール354は、画像に対する空調整を開始するためのものであり、空の色に関して定義された色値の範囲内に収まる色値のみを調整する。色調整UIコントロール356は、画像に対する群葉調整を開始するためのものであり、群葉の色に関して定義された色値の範囲内に収まる色値のみを調整する。色調整UIコントロール358は、画像に対する肌の色調調整を開始するためのものであり、肌の色調に関して定義された色値の範囲内に収まる色値のみを調整する。色調整UIコントロール352〜358に加えて、GUI300はまた、設定メニューを呼び出すための選択可能UI項目360も表示する。
第3ステージ315は、色調整UIコントロール352の強調表示によって示されるように、ユーザが、画像355に対して彩度調整を開始するための、色調整UIコントロール352を選択した後の、GUI300を示す。色調整UIコントロール352の選択は、色調整UIコントロール352を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、色調整UIコントロール352にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。
第4ステージ320は、ユーザが、矢印362によって示されるように、UIコントロール352のつまみを右に移動させることによって、画像355の彩度の調整を開始した後の、GUI300を示す。一部の実施形態では、ユーザは、ジェスチャを実行すること(例えば、ユーザの指を異なる場所にドラッグすること)によって、UIコントロール352のつまみを移動させることができる。この指の移動の結果として、画像355の全域にわたる斜線によって示されるように、画像355内の色の彩度が増大されている。一部の実施形態では、このアプリケーションは、画像内の色の強度を調整することによって、画像の色の彩度を調整する。これらの実施形態では、アプリケーションは、色調整UIコントロール352に対するユーザの入力に基づいて、画像の色値を調整するためのアルゴリズム又は数学的方程式を決定する。次いで、このアプリケーションは、画像の全ての画素値に、そのアルゴリズム又は数学的方程式を適用する。一部の実施形態では、このアプリケーションは、画像の色値を定義する色空間(例えば、RGB色空間)から、輝度チャネルを含む色空間(例えば、YCrCb色空間、YIQ色空間、IPT色空間など)に、画像の色値を変換する。クロミナンス色チャネル(すなわち、輝度チャネル以外のチャネル)は、極座標系(例えば、動径値及び角度)内に表すことができ、この極座標系内では、動径値は、色の彩度を表し、角度は、種々の色合いを表す。この新たな色空間に、画像の色値が変換されると、アプリケーションは、画像内の各色の動径値を調整することによって、画像の彩度を調整することができる。
更には、GUI300はまた、画像に対して色調整が実行された場合、選択可能UI項目342の上部に、バーを表示する。この選択可能UI項目342の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対して彩度調整を実施した後の、第4ステージ320で、選択可能UI項目342の上部に、バーが出現している。
第5ステージ325は、ユーザが、矢印364によって示されるように、UIコントロール352のつまみを更に右に移動させることによって、画像355の彩度を更に調整した後の、GUI300を示す。図示のように、このステージ325での画像355内の色は、画像355の全域にわたる、より高密度の斜線によって示されるように、第4ステージ320での画像内の色よりも、更に彩度が増大されて示される。
図3は、彩度UIコントロール352を通じて、画像全体の彩度を調整する実施例を示す。一部の実施形態の画像編集アプリケーションはまた、画像の一部分のみの彩度を調整する、色調整UIコントロールも提供する。例えば、このアプリケーションは、自然な彩度調整として既知である、肌の色調を維持しつつ画像の彩度を調整する(すなわち、肌の色調以外の、画像内の全ての色の彩度を調整する)彩度調整UIコントロールを提供することができる。
種々の実施形態は、画像内の色の自然な彩度を調整するためのUIコントロールを提供する際に、種々の技術を提供する。一手法では、このアプリケーションは、ユーザが、アプリケーションの設定を修正することによって、彩度調整と自然な彩度調整とを切り替えることを可能にする。図4は、そのような手法の実施例を示す。具体的には、図4は、自然な彩度UIコントロールを呼び出して操作する実施例を、6つの異なるステージ405、410、415、420、425、及びステージ430で示す。
第1ステージ405は、図3の第2ステージ310と同一である。図示のように、ユーザは、画像355の色を調整するための選択可能UI項目342を選択している。第2ステージ410は、選択可能UI項目360の強調表示によって示されるように、ユーザが、アプリケーション設定ポップアップメニューを引き出すための選択可能UI項目360を選択した後の、GUI300を示す。選択可能UI項目360の選択は、選択可能UI項目360を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、選択可能UI項目360にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、選択可能UI項目360の選択は、ポップアップメニュー435を、UIコントロール表示領域350の上部に表示させる。ポップアップメニュー435は、彩度UIコントロール352の設定を切り替えるための、「肌の色調なし」と標識される選択可能項目440などの、このアプリケーションの設定を修正するための幾つかの選択可能項目を含む。
第3ステージ415は、選択可能項目440の強調表示によって示されるように、ユーザが、「肌の色調なし」と標識される選択可能項目440を選択した後の、GUI300を示す。選択可能項目440の選択は、選択可能項目440を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、選択可能項目440にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。この選択の結果として、彩度UIコントロール352は、この時点で、画像に対する自然な彩度調整を制御するためのものである。前述のように、自然な彩度調整は、肌の色調を維持しつつ、画像355内の色の彩度のみを調整する。
第4ステージ420は、彩度UIコントロール352の強調表示によって示されるように、ユーザが、彩度UIコントロール352を選択した後の、GUI300を示す。彩度UIコントロール352の選択は、彩度UIコントロール352を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、彩度UIコントロール352にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。
第5ステージ425は、ユーザが、矢印470によって示されるように、彩度UIコントロール352のつまみを右に移動させることによって、画像の自然な彩度を増大させ始めた後の、GUI300を示す。一部の実施形態では、ユーザは、範囲スライダに沿った異なる場所に、ユーザの指をドラッグすること(又は、カーソルをドラッグすること)によって、彩度UIコントロール352のつまみを移動させることができる。この指の移動の結果として、画像355の全域にわたる斜線によって示されるように、画像355内の(肌の色調以外の)色の彩度が増大されているが、その一方で、画像355内の人の顔の領域は、影響を受けないまま維持される。一部の実施形態では、このアプリケーションは、画像の画素のクロミナンス値を調整することによって、画像の色の彩度を調整する。これらの実施形態では、アプリケーションは、彩度UIコントロール352に対するユーザの入力に基づいて、画像の画素値を調整するためのアルゴリズム又は数学的方程式を決定する。次いで、このアプリケーションは、肌の色調として特定された、画像の全ての色値に、そのアルゴリズム又は数学的方程式を適用する。
更には、GUI300はまた、画像に対して色調整が実行された場合、選択可能UI項目342の上部に、バーを表示する。この選択可能UI項目342の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対して彩度調整を実施した後の、第4ステージ320で、選択可能UI項目342の上部に、バーが出現している。
第6ステージ430は、ユーザが、矢印475によって示されるように、彩度UIコントロール352のつまみを更に右に移動させることによって、画像の自然な彩度を更に増大させた後の、GUI300を示す。図示のように、このステージ430での画像355内の色は、画像355の全域にわたる、より高密度の斜線によって示されるように、第5ステージ425での画像内の色よりも、更に彩度が増大されて示されるが、その一方で、画像355内の人の顔の領域は、影響を受けないまま維持される。
一部の実施形態では、このアプリケーションは、画像のコンテンツに基づいて、彩度UIコントロール352に関するデフォルト設定を選択する。例えば、一部の実施形態のアプリケーションは、画像に対して顔検出アルゴリズムを実行し、次いで、画像上に顔が検出されるか否かに基づいて、彩度UIコントロール352に関する設定を決定する。
種々の実施形態は、種々の技術を使用して、肌の色調を特定する。例えば、一部の実施形態の画像編集アプリケーションは、反対色空間内の色値の範囲として、肌の色調を定義する。反対色空間は、一般的にはYCC色空間として既知の、3つの反対色チャネル(例えば、白/黒チャネル、赤/緑チャネル、及び黄/青チャネル)に依存する色空間である。反対色空間の幾つかの例としては、YIQ色空間、YcbCr色空間、及びIPT色空間が挙げられる。以下の説明では、種々のコンテンツのタイプに関する色値の範囲を定義するために使用される色空間は、YCC色空間として説明される。しかしながら、YCC色空間は、上述の色空間のいずれかのうちの1つであり得ることを、当業者は知るべきである。これらの実施形態の一部では、肌の色調の範囲を定義するために使用される色空間は、画像の色値が定義される色空間(例えば、RGB色空間)とは異なる。これらの実施形態では、一部の実施形態のアプリケーションは、最初に、画像の色値が定義される本来の色空間(例えば、RGB色空間)から、肌の色調に関する範囲を定義するために使用されるYCC色空間に、画像を変換する。次いで、このアプリケーションは、肌の色調に関して定義される変換された色空間内の色値の範囲内に収まる色値を有する、その画像の画素を特定する。図5は、RGB色空間505からYCC色空間500への、例示的な変換を示す。
図5に示すように、RGB色空間505は、3つの軸、すなわち、赤色成分値の範囲を表す軸525、緑色成分値の範囲を表す軸515、及び青色成分値の範囲を表す軸535に沿って定義される。それゆえ、画像355のあらゆる色は、RGB色空間505内部の場所によって表すことができる。
図5はまた、肌の色調を定義するために一部の実施形態と共に使用される、YCC色空間500も提示する。図示のように、このYCC色空間は、3つの軸、すなわち、赤及び緑の色値の範囲を表す軸520、青及び黄の色値の範囲を表す軸530、及び種々の濃淡の灰色の範囲(すなわち、輝度値の範囲)を表す垂直軸510に沿って定義され、底面の場所540は黒色を表し、上面の場所550は白色を表す。色が明るくなるほど、その色は、この色空間の円柱500の底面から遠くに出現する。
色の彩度に関しては、色の彩度が増大するほど、その色は、円筒の中心から遠くに出現する。中心はグレースケールを表すものであり、その最低地点540は、色を含まず(すなわち、黒色)、最高地点550は、全ての色がその最大強度で存在すること(すなわち、白色)を表し、この最高地点を最低地点に接続する垂直線に沿った全ての他の地点は、種々の濃淡の灰色を表す。各濃淡の灰色は、全ての色が等しく存在することを表すが、灰色が濃くなるほど、それらの色の強度が小さくなる。また、灰色が明るくなるほど、それらの色の強度が大きくなる。
一部の実施形態では、肌の色調は、領域560などの、特定の彩度範囲及び特定の強度範囲を有する、赤色調の色相と黄色調の色相との間の、YCC色空間の円柱500の領域内部に定義される。一部の実施形態はまた、様々な人種及び/又は民族に関連付けられている肌の色調の範囲を対象とするように、肌の色調を広範に定義する。そのような広範な定義は、ユーザが肌の色調を手動で定義する必要性を取り除く。一部の実施形態は、アプリケーションによって認識される肌の色調の範囲を増大又は低減させるための、閾値パラメータを提供することが、当業者には明らかなはずである。
一部の実施形態のアプリケーションは、RGB色空間505内の各色を、YCC色空間500内の別の色にマッピングすることによって、RGB色空間505からYCC色空間500に、画像を変換する。例えば、RGB色空間505内の色545は、YCC色空間500内の色570にマッピングされ、RGB色空間505内の色555は、YCC色空間500内の色580にマッピングされる。RGB色空間からYCC色空間に画像を変換することによって、このアプリケーションは、定義された肌の色調領域560の範囲内に収まる色(例えば、色555)及び、定義された肌の色調領域560の範囲内に収まらない色(例えば、色545)を特定することが可能である。
図4は、画像の彩度を調整する例示的操作を示す。画像の彩度を調整する代わりに、一部の実施形態は、ユーザが画像の色温度を調整することを可能にする、肌の色調UIコントロールを提供する。色温度は、画像内の対象物から反射する可視光の特性である。画像内の対象物に当っている、より暖かい光は、その画像内の対象物の色に、より暖かい色調(すなわち、より多くの赤色及び黄色)を作り出し、その一方で、画像内の対象物に当っている、より冷たい光は、その画像内の対象物の色に、より冷たい色調(すなわち、より多くの青色及びシアン)を作り出す。それゆえ、画像の色温度を調整することは、画像に対して、より多くの赤色/黄色を追加すること、又はより多くの青色/シアンを追加することを意味する。
図6は、そのような実施例を示す。具体的には、図6は、肌の色調UIコントロールを操作することによって画像の色温度を調整することにより、肌の色調を改善する操作を、4つの異なるステージ605、610、615、及びステージ620で示す。
第1ステージ605は、図3の第2ステージ310と同一である。図示のように、ユーザは、画像355の色を調整するために、ツールバー340から選択可能UI項目342を選択している。第2ステージ610は、肌の色調UIコントロール356の強調表示によって示されるように、ユーザが肌の色調UIコントロール356を選択した後の、GUI300を示す。肌の色調UIコントロール356の選択は、肌の色調UIコントロール356を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、肌の色調UIコントロール356にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。
第3ステージ615は、ユーザが、矢印625によって示されるように、肌の色調UIコントロール356のつまみを右に移動させることによって、画像の肌の色調の調整を開始した後の、GUI300を示す。一部の実施形態では、ユーザは、異なる場所にユーザの指をドラッグすること(又は、カーソルをドラッグすること)によって、肌の色調UIコントロール356のつまみを移動させることができる。この指の移動の結果として、画像355の全域にわたる斜線によって示されるように、画像355内の色値が調整されている。一部の実施形態では、このアプリケーションは、肌の色調をより心地よいものにするために、画像の色温度を調整する。これらの実施形態の一部では、アプリケーションは、図5を参照して上述されたものと同じ、定義された肌の色調の範囲を使用して、その定義された肌の色調の範囲内に収まる画像内の色を、より心地よいものにするように、画像の色値を調整する。
一部の実施形態では、このアプリケーションは、肌の色調UIコントロール356に対するユーザの入力に基づいて、画像の色値を調整するためのアルゴリズム又は数学的方程式を決定する。次いで、このアプリケーションは、画像の全ての画素に、そのアルゴリズム又は数学的方程式を適用する。一部の実施形態では、このアプリケーションは、色値に調整を適用する前に、最初に、その画像の色値を異なる色空間(例えば、YCC色空間)に変換する。上述のように、YCC色空間は、黒/白の色成分、赤/緑の色成分、及び黄/青の色成分に沿って定義される。RGB色空間からYIQ色空間への変換は、最初に、RGB色空間内の色値に対して約1/4のgammaを適用し、次いで、3×3行列を適用して、その色値をYIQ色空間に変換することによって、実行することができる。これらの実施形態では、アプリケーションは、白/黒の成分に沿った値を変更することなく、赤/緑の色成分、及び黄/青の色成分に沿った値のみを調整することによって、YIQ色空間内の画像の色温度を調整する。一部の実施形態では、このアプリケーションは、YIQ色空間内の画像の色温度を調整するが、これは、その画像の色値の本来の色空間(例えば、RGB色空間)の代わりに、YIQ色空間内で調整を適用することが、より視覚的に心地よい結果を生み出すためである。更には、これらの実施形態でのアプリケーションは、調整が完了した後、画像の色値を、本来の色空間に変換して戻す。
更には、GUI300はまた、画像に対して色調整が実行された場合、選択可能UI項目342の上部に、バーを表示する。この選択可能UI項目342の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対して肌の色調調整を実施した後の、第3ステージ615で、選択可能UI項目342の上部に、バーが出現している。
第4ステージ620は、ユーザが、矢印630によって示されるように、肌の色調UIコントロール356のつまみを更に右に移動させることによって、画像の肌の色調を更に調整した後の、GUI300を示す。図示のように、このステージ620での画像355の色は、画像355の全域にわたる、より高密度の斜線によって示されるように、第3ステージ615での画像内の色よりも、更に調整されて示される。
図6によって示される上記の実施例では、一部の実施形態のアプリケーションは、肌の色調UIコントロール356に対するユーザの入力に応答して、画像全体の色温度を調整する。あるいは、他の実施形態のアプリケーションは、画像内の肌の色調のみの色温度を調整する。これらの実施形態では、アプリケーションは、肌の色調に関連付けられている予め定義された色値の範囲内に収まる色値を有する、画像内の画素を特定するために、上述のものと同じ技術を使用する。次いで、このアプリケーションは、画像内部の、その特定された画素の色温度のみを調整する。その効果は、図4に示すような、自然な彩度調整が画像に対して行うものの反対である。
上述のように、一部の実施形態の画像編集アプリケーションはまた、画像の一部分(例えば、画像の空の色又は群葉の色)のみを調整するためのUIコントロールも提供する。図7は、画像の残余の色に影響を与えることなく、画像の空の色を調整又は強調する例示的操作を、4つの異なるステージ705、710、715、及びステージ720で示す。
第1ステージ705は、図3の第2ステージ310と同一である。図示のように、ユーザは、画像355の色を調整するための選択可能UI項目342を選択している。第2ステージ710は、空UIコントロール354の強調表示によって示されるように、ユーザが空UIコントロール354を選択した後の、GUI300を示す。空UIコントロール354の選択は、空UIコントロール354を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、空UIコントロール354にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。
第3ステージ715は、ユーザが、矢印725によって示されるように、空UIコントロール354のつまみを右に移動させることによって、画像の空の色を強調させ始めた後の、GUI300を示す。一部の実施形態では、ユーザは、異なる場所にユーザの指をドラッグすること(又は、カーソルをドラッグすること)によって、空UIコントロール354のつまみを移動させることができる。この指の移動の結果として、画像355内の空の領域の全域にわたる斜線によって示されるように、画像355内の空の色が強調されているが、その一方で、画像355内の残部は、影響を受けないまま維持される。一部の実施形態では、このアプリケーションは、空の色の彩度を調整することによって、空の色を強調する。これらの実施形態では、アプリケーションは、空UIコントロール354に対するユーザの入力に基づいて、画像の色値を調整するためのアルゴリズム又は数学的方程式を決定する。次いで、このアプリケーションは、空の色を有するとして特定されている画像の画素に、そのアルゴリズム又は数学的方程式を適用する。彩度を調整する代わりに、又はそれに加えて、一部の他の実施形態のアプリケーションはまた、画像内の空の色の明度及びコントラストも調整することにより、画像内の空の色に対する全体的な強調をもたらす。これらの実施形態では、アプリケーションは、ユーザの空UIコントロール354のつまみの移動によって提供される(単一の調整値を指定する)単一の調整を使用して、空の色を有するとして特定されている画像の画素に対する彩度、コントラスト、及び明度に関する調整を決定する。
例えば、空UIコントロールにより、ユーザが−0.5〜0.5の調整値を指定することが可能となる場合、一部の実施形態のアプリケーションは、コントラスト調整値(すなわち、ゲイン値)が、1の値、又はその調整値に1を加えた値のいずれか大きい方になるように決定する。このアプリケーションはまた、明度調整値(すなわち、gamma)も、その調整値の絶対値に1を加えたものとなるように決定する。次いで、このアプリケーションは、RGB色空間内の画像に、これらの2つの調整を適用する。コントラスト及びgammaを使用して、各画素の色値を計算するための数式は、R=ゲイン*(colorvalue)gammaであり、式中、パラメータ「ゲイン」は、コントラスト調整値を表し、パラメータ「colorvalue」は、画像内の各画素の色値(すなわち、赤チャネル値、緑チャネル値、又は青チャネル値)を表し、パラメータgammaは、明度調整値を表す。
画像の彩度を調整するために、一部の実施形態のアプリケーションは、R=colorvalue+(colorvalue−ave)*(gamma−1)*0.5、の数式を使用して、各画素の色値を計算し、式中、パラメータcolor valueは、画像内の各画素の色値(すなわち、赤チャネル値、緑チャネル値、又は青チャネル値)を表し、パラメータ「ave」は、各画素に関する3つの色成分値の平均(例えば、(赤チャネル値、緑チャネル値、青チャネル値)の合計を3で除算すること)を表し、パラメータ「gamma」は、明度調整値を表す。
更には、GUI300はまた、画像に対して色調整が実行された場合、選択可能UI項目342の上部に、バーを表示する。この選択可能UI項目342の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対して空調整を実施した後の、第3ステージ715で、選択可能UI項目342の上部に、バーが出現している。
第4ステージ720は、ユーザが、矢印730によって示されるように、空UIコントロール354のつまみを更に右に移動させることによって、画像の空の色を更に強調した後の、GUI300を示す。図示のように、このステージ720での画像355の空の色は、画像355内の空の領域の全域にわたる、より高密度の斜線によって示されるように、第3ステージ715での画像内の空の色よりも、更に強調されて示されるが、その一方で、画像355の残部は、影響を受けないまま維持される。
種々の実施形態は、種々の技術を使用して、空の色を特定する。例えば、一部の実施形態の画像編集アプリケーションは、反対色空間内の色値の範囲として、空の色を定義する。反対色空間は、一般的にはYCC色空間として既知の、3つの反対色チャネル(例えば、白/黒チャネル、赤/緑チャネル、及び黄/青チャネル)に依存する色空間である。反対色空間の幾つかの例としては、YIQ色空間、YcbCr色空間、及びIPT色空間が挙げられる。一部の実施形態では、反対色空間は、特に青色領域での、その均一な知覚的挙動のために、空の色を定義するために好ましい。以下の説明では、種々のコンテンツのタイプに関する色値の範囲を定義するために使用される色空間は、YCC色空間として説明される。しかしながら、YCC色空間は、上述の色空間のいずれかのうちの1つであり得ることを、当業者は知るべきである。これらの実施形態の一部では、空の色の範囲を定義するために使用される色空間は、画像の色値が定義される色空間(例えば、RGB色空間)とは異なる。これらの実施形態では、一部の実施形態のアプリケーションは、最初に、画像の色値が定義される本来の色空間(例えば、RGB色空間)から、空の色の範囲を定義するために使用されるYCC色空間に、画像を変換する。次いで、このアプリケーションは、その新たな色空間内で、空の色に関して定義される範囲内に収まる色値を有する、その画像の画素を特定する。図8は、RGB色空間805からYCC色空間800への、例示的な変換を示す。
図8に示すように、RGB色空間805は、3つの軸、すなわち、赤色成分値の範囲を表す軸825、緑色成分値の範囲を表す815、及び青色成分値の範囲を表す軸835に沿って定義される。それゆえ、画像355のあらゆる色は、RGB色空間805内部の場所によって表すことができる。
図8はまた、空の色を定義するために一部の実施形態と共に使用される、YCC色空間800も提示する。図示のように、このYCC色空間は、3つの軸、すなわち、赤及び緑の色値の範囲を表す軸820、青及び黄の色値の範囲を表す軸830、及び種々の濃淡の灰色の範囲(すなわち、輝度値の範囲)を表す垂直軸810に沿って定義され、底面の場所840は黒色を表し、上面の場所850は白色を表す。色が明るくなるほど、その色は、この色空間の円柱800の底面から遠くに出現する。
一部の実施形態では、空の色は、領域860などの、特定の黒/白の範囲を有する、青、赤、及び黄色の領域の周囲の、YCC色空間の円柱800の領域内部に定義される。それゆえ、この空の色値の範囲は、青空、雲、日の出、及び日没の色を含む。一部の実施形態は、アプリケーションによって認識される空の色の範囲を増大又は低減させるための、閾値パラメータを提供することが、当業者には明らかなはずである。
一部の実施形態のアプリケーションは、RGB色空間805内の各色を、YCC色空間800内の別の色にマッピングすることによって、RGB色空間805からYCC色空間800に、画像を変換する。例えば、RGB色空間805内の色845は、YCC色空間800内の色870にマッピングされ、RGB色空間805内の色855は、YCC色空間800内の色880にマッピングされる。RGB色空間からYCC色空間に画像を変換することによって、このアプリケーションは、定義された空の色の領域860の範囲内に収まる色(例えば、色855)及び、定義された空の色の領域860の範囲内に収まらない色(例えば、色845)を特定することが可能である。
画像の肌の色調又は青空の色のみを調整することに加えて、一部の実施形態の画像編集アプリケーションはまた、画像内の群葉(すなわち、緑樹)のみを調整するためのUIコントロールも提供する。図9は、画像の残余の色に影響を与えることなく、画像の群葉の色を調整又は強調する例示的操作を、4つの異なるステージ905、910、915、及びステージ920で示す。
第1ステージ905は、図3の第2ステージ310と同一である。図示のように、ユーザは、画像355の色を調整するための選択可能UI項目342を選択している。第2ステージ910は、群葉UIコントロール358の強調表示によって示されるように、ユーザが群葉UIコントロール358を選択した後の、GUI300を示す。群葉UIコントロール358の選択は、群葉UIコントロール358を表示する、タッチスクリーン装置上の場所で、指をタップすることによって、又は、群葉UIコントロール358にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。
第3ステージ915は、ユーザが、矢印925によって示されるように、群葉UIコントロール358のつまみを右に移動させることによって、画像の群葉の色を強調させ始めた後の、GUI300を示す。一部の実施形態では、ユーザは、異なる場所にユーザの指をドラッグすること(又は、カーソルをドラッグすること)によって、群葉UIコントロール358のつまみを移動させることができる。この指の移動の結果として、画像355内の山の領域の全域にわたる斜線によって示されるように、画像355内の群葉の色(例えば、画像355の背景内の山の色)が強調されているが、その一方で、画像355の残部は、影響を受けないまま維持される。一部の実施形態では、このアプリケーションは、群葉の色の彩度、コントラスト、及び明度を調整することによって、群葉の色を強調する。これらの実施形態では、アプリケーションは、ユーザの群葉UIコントロール358のつまみの移動によって提供される単一の調整を使用して、群葉の色を有するとして特定されている画像の画素に対する彩度、コントラスト、及び明度に関する調整を決定する。空の調整と同様に、このアプリケーションは、群葉UIコントロール358に対するユーザの入力に基づいて、画像の色値を調整するためのアルゴリズム又は数学的方程式を決定する。次いで、このアプリケーションは、群葉の色を有するとして特定されている画像の画素に、そのアルゴリズム又は数学的方程式を適用する。画像内の群葉の色の彩度、コントラスト、及び明度を調整することに加えて、一部の実施形態のアプリケーションはまた、枯れ草の茶色がかった色を、より純粋な緑色に向けて移動させるように、群葉の色全体もシフトする。
更には、GUI300はまた、画像に対して色調整が実行された場合、選択可能UI項目342の上部に、バーを表示する。この選択可能UI項目342の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対して群葉調整を実施した後の、第3ステージ915で、選択可能UI項目342の上部に、バーが出現している。
第4ステージ920は、ユーザが、矢印930によって示されるように、群葉UIコントロール358のつまみを更に右に移動させることによって、画像の群葉の色を更に強調した後の、GUI300を示す。図示のように、このステージ920での画像355の群葉の色は、画像355内の山の領域の全域にわたる、より高密度の斜線によって示されるように、第3ステージ915での画像内の群葉の色よりも、更に強調されて示されるが、その一方で、画像355の残部は、影響を受けないまま維持される。
図3、4、6、7、及び図9を参照して上述された実施例では、UIコントロールは、範囲スライダとして実装され、ユーザは、直線状のスライダに沿ってつまみをスライドさせることによって、入力を提供する。前述のように、種々の実施形態は、画像上の色値を調整するための種々のタイプのUIコントロールを使用する。一部の実施形態では、範囲スライダは、ユーザが、スライダの領域内のいずれの場所にもつまみを移動させることが可能な、異なる形状又はジオメトリにすることができる。他の実施形態では、このアプリケーションは、ダイヤルとして、UIコントロールを実装する。図10は、ダイヤルUIコントロールを使用して、画像の群葉の色を調整又は強調する操作の実施例を、4つの異なるステージ1005、1010、1015、及びステージ1020で示す。
第1ステージ1005は、図9の第1ステージ905と同一であるが、ただし、画像に関する種々の色調整を開始するための種々のUIコントロールは、異なる外観を有する。前述のように、種々の実施形態は、画像上の色値を調整するための種々のタイプのUIコントロールを使用する。この実施例では、アプリケーションは、UIコントロール1052〜1058のセットを、ダイヤルとして実装する。範囲スライダと同様に、異なるダイヤルは、画像に対する異なる色調整操作を開始するためのものである。例えば、UIコントロール1052は、画像に対する彩度調整を開始するためのものであり、UIコントロール1054は、画像の空の色に対する色調整を開始するためのものであり、UIコントロール1058は、画像の群葉の色に対する色調整を開始するためのものであり、UIコントロール1056は、画像の肌の色調に対する色調整を開始するためのものである。ユーザは、これらのダイヤルのうちの1つを選択して、時計回り又は反時計回りの方向にダイヤルを回転させることによって、特定の色調整を開始することができる。
第2ステージ1010は、群葉UIコントロール1058の強調表示によって示されるように、ユーザが群葉UIコントロール1058を選択した後の、GUI300を示す。群葉UIコントロール1058の選択は、群葉UIコントロー1058を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(指を置く、指さす、又は指をタップすること)によって、又は、群葉UIコントロール1058にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。
第3ステージ1015は、ユーザが、矢印1025によって示されるように、群葉UIコントロール1058に対する円形入力を提供することによって、画像の群葉の色を強調させ始めた後の、GUI300を示す。一部の実施形態では、ユーザは、時計回り又は反時計回りの方向で、ユーザの指をドラッグすること(又は、カーソルをドラッグすること)によって、群葉UIコントロール358に対する円形入力を提供することができる。この指の移動の結果として、画像355内の山の領域の全域にわたる斜線によって示されるように、画像355内の群葉の色(例えば、画像355の背景内の山の色)が強調されているが、その一方で、画像355の残部は、影響を受けないまま維持される。一部の実施形態では、このアプリケーションは、群葉の色の彩度、コントラスト、及び明度を調整することによって、群葉の色を強調する。これらの実施形態では、アプリケーションは、群葉UIコントロール1058上でのユーザの移動によって指定される単一の調整値を使用して、群葉の色を有するとして特定されている画像の画素に対する、彩度、コントラスト、及び明度に関する調整を決定する。空の調整と同様に、このアプリケーションは、群葉UIコントロール1058に対するユーザの入力に基づいて、画像の色値を調整するためのアルゴリズム又は数学的方程式を決定する。次いで、このアプリケーションは、群葉の色を有するとして特定されている画像の画素に、そのアルゴリズム又は数学的方程式を適用する。
第4ステージ1020は、ユーザが、矢印1030によって示されるように、群葉UIコントロール1058の円形入力をより多く提供することによって、画像の群葉の色を更に強調した後の、GUI300を示す。図示のように、このステージ1020での画像355の群葉の色は、画像355内の山の領域の全域にわたる、より高密度の斜線によって示されるように、第3ステージ1015での画像内の群葉の色よりも、更に強調されて示されるが、その一方で、画像355の残部は、影響を受けないまま維持される。
上記の図10は、UIコントロールに関する1つの代替的実装を示す。UIコントロールに関する、一部の他の例示的実装としては、ボタン(すなわち、ユーザは、そのボタンを押さえる期間によって、調整を適用する程度を指定することができる)、数値フィールド(すなわち、数値が高いほど、画像に対する調整が、より多く適用されることを表す)などが挙げられる。
種々の実施形態は、種々の技術を使用して、群葉の色を特定する。例えば、一部の実施形態の画像編集アプリケーションは、反対色空間内の色値の範囲として、群葉の色を定義する。反対色空間は、一般的にはYCC色空間として既知の、3つの反対色チャネル(例えば、白/黒チャネル、赤/緑チャネル、及び黄/青チャネル)に依存する色空間である。反対色空間の幾つかの例としては、YIQ色空間、YcbCr色空間、及びIPT色空間が挙げられる。一部の実施形態では、反対色空間は、その均一な知覚的挙動のために、空の色を定義するために好ましい。以下の説明では、種々のコンテンツのタイプに関する色値の範囲を定義するために使用される色空間は、YCC色空間として説明される。しかしながら、YCC色空間は、上述の色空間のいずれかのうちの1つであり得ることを、当業者は知るべきである。これらの実施形態の一部では、肌の色調の範囲を定義するために使用される色空間は、画像の色値が定義される色空間(例えば、RGB色空間)とは異なる。これらの実施形態では、一部の実施形態のアプリケーションは、最初に、画像の色値が定義される本来の色空間(例えば、RGB色空間)から、群葉の色の範囲を定義するために使用されるYCC色空間に、画像を変換する。次いで、このアプリケーションは、その新たな色空間内で、群葉の色に関して定義される範囲内に収まる色値を有する、その画像の画素を特定する。図11は、RGB色空間1105からYCC色空間1100への、例示的な変換を示す。
図11に示すように、RGB色空間1105は、3つの軸、すなわち、赤色成分値の範囲を表す軸1125、緑色成分値の範囲を表す1115、及び青色成分値の範囲を表す軸1135に沿って定義される。それゆえ、画像355のあらゆる色は、RGB色空間1105内部の場所によって表すことができる。
図11はまた、群葉の色を定義するために一部の実施形態と共に使用される、YCC色空間1100も提示する。図示のように、このYCC色空間は、3つの軸、すなわち、赤及び緑の色値の範囲を表す軸1120、青及び黄の色値の範囲を表す軸1130、及び種々の濃淡の灰色の範囲(すなわち、輝度値の範囲)を表す垂直軸1110に沿って定義され、底面の場所1140は黒色を表し、上面の場所1150は白色を表す。色が明るくなるほど、その色は、この色空間の円柱1100の底面から遠くに出現する。
一部の実施形態では、群葉の色は、領域1160などの、特定の黒/白の範囲を有する、緑色及び黄色の領域の周囲の、YCC色空間の円柱1100の領域内部に定義される。一部の実施形態は、アプリケーションによって認識される群葉の色の範囲を増大又は低減させるための、閾値パラメータを提供することが、当業者には明らかなはずである。
一部の実施形態のアプリケーションは、RGB色空間1105内の各色を、YCC色空間1100内の別の色にマッピングすることによって、RGB色空間1105からYCC色空間1100に、画像を変換する。例えば、RGB色空間1105内の色1145は、YCC色空間1100内の色1170にマッピングされ、RGB色空間1105内の色1155は、YCC色空間1100内の色1180にマッピングされる。RGB色空間からYCC色空間に画像を変換することによって、このアプリケーションは、定義された群葉の色の領域1160の範囲内に収まる色(例えば、色1155)及び、定義された群葉の色の領域1160の範囲内に収まらない色(例えば、色1145)を特定することが可能である。
上述の図で説明される画像編集アプリケーションのGUIは、その画像編集アプリケーションが実行される装置が、そのGUIを表示するための十分に大きい画面を有するという仮定の下で示されている。しかしながら、画像編集アプリケーションが実行される装置のうちの一部は、UI項目を、それらの項目がより大きい装置のより大きい画面内に表示される方式で表示するには、画面サイズが限定されている場合がある。また、より大きい装置のより大きい画面も、その装置が異なる向き(例えば、縦長式)で保持される場合、限定的であると見なされる恐れがある。一部の実施形態では、画像編集アプリケーションは、異なる時間インスタンスで異なるUI項目の異なるセットを表示することにより、この限定的な画面空間に適応する。
図12は、一部の実施形態のGUI1200を通じて、色調整ツールのセットを呼び出す実施例を、6つの異なるステージ1201〜1206で概念的に示す。図示のように、GUI1200は、制御ペイン1215、画像表示領域1216、サムネイル表示領域1220、及びツールナビゲーションペイン1225を含む。
画像表示領域1216は、ユーザが画像編集アプリケーションを使用して編集することを望む画像を、この画像表示領域1216が表示するという点で、図3を参照して上述された画像表示領域345と同様である。サムネイル表示領域1215は、画像編集アプリケーションを使用して編集するために利用可能な画像のサムネイルのコレクションを、このサムネイル表示領域1215が表示するという点で、サムネイル表示領域330と同様である。一部の実施形態では、この画像編集アプリケーションは、ユーザが、異なるサムネイルを表示するために、上方及び下方あるいは左右にスクロールすることを可能にする。また、この画像編集アプリケーションは、サムネイル上に視覚的な表示(例えば、強調表示)も提供することにより、そのサムネイルが選択されており、かつ対応する画像が表示領域内に表示されていることを示す。更には、一部の実施形態の画像編集アプリケーションは、サムネイル上に視覚的な表示(例えば、ツールボックスアイコン)を提供することにより、対応する画像が編集されていることを示す。
ツールナビゲーションペイン1225は、異なる時間インスタンスで、選択可能又は制御可能UI項目の異なるセットを表示する。一部の実施形態では、ツールナビゲーションペイン1225内に現在表示されるユーザインターフェース項目のセットは、ツールナビゲーションペイン1225内に従前に表示されていたUI項目のセットとの、ユーザの対話に応じて決定される。例えば、ユーザが、編集ツールのセットを表す特定のUI項目にタッチすると、その特定のUI項目に関連する編集ツールのセットに関する、UI項目のセットが、ツールナビゲーションペイン1225内の、その特定のUI項目を含む、UI項目のセットに取って代わる。図示のように、ツールナビゲーションペイン1225は、UI項目1230、及び他のUI項目のセット1292を表示する。
この画像編集アプリケーションは、ツールナビゲーションペイン1225内に表示されるUI項目の第1のセットを、幾つもの異なる方式で、UI項目の第2のセットに置き換えることができる。例えば、この画像編集アプリケーションは、第1のセットをスライドさせて出すと同時に、第2のセットをスライドさせて入れる。この画像編集アプリケーションは、第2のセットがスライドして入って来る際に、第1のセットと第2のセットとを重ね合わせることができる。更には、第1のセット及び第2のセットによるスライドの方向は、任意の方向(上、下、左、右、斜めなど)とすることができる。
GUI1200を通じて色調整ツールを呼び出す例示的操作を、ここで説明する。第1ステージ1201では、画像編集アプリケーションは、画像表示領域1216内に画像1217を表示する。画像1217は、サムネイル表示領域1220内に表示されたサムネイル1235に対応する。すなわち、この画像編集アプリケーションは、ユーザのサムネイル1235の選択に応答して、画像表示領域1216内に画像1217を表示する。
第2ステージ1202は、ユーザが、ナビゲーションペイン1225内に表示されるUI項目の変更を開始し始めた後の、GUI1200を示す。一部の実施形態では、ツールボックスを示すアイコンである、UI項目1230の選択が、ナビゲーションペイン1225内に表示されるUI項目を、色調整ツールを含む画像編集ツールのセットを表す、UI項目のセットに変更する。図示のように、ユーザは、UI項目1230の強調表示によって示されるように、UI項目1230を選択している。
第3ステージ1203は、アプリケーションがツールナビゲーションペイン1225内に表示されるUI項目のセットを変更する際に、GUI1200が提供するアニメーションを示す、過渡的ステージである。上述のように、一部の実施形態のアプリケーションは、ツールナビゲーションペイン1225内のUI項目の1つのセットを、UI項目の別のセットに置き換えるアニメーションを提供する。この実施例では、GUIは、新たなUI項目のセット1226が、ツールナビゲーションペイン1225内に表示されていたUI項目のセット1292に取って代わる、アニメーションを表示する。図示のように、UI項目のセット1292は、UI項目1230の下から右へとスライドして入り、その過程で、UI項目のセット1292を覆う。
第4ステージ1204は、UI項目のセット1226が、UI項目のセット1292に完全に取って代わった後の、GUI1200を示す。図示のように、ツールナビゲーションペイン1225は、新たなUI項目のセット1226を表示する。この実施例でのUI項目のセット1226は、6つのUI項目1240、1245、1246、1247、1250、及びUI項目1255を含む。UI項目1245は、画像上クロップ及び角度補正ツールを表す。UI項目1246は、露出調整ツールのセットを表す。UI項目1247は、色調整ツールのセットを表す。UI項目1250は、画像上ブラシツールを表す。UI項目1255は、画像上効果ツールを表す。このステージでは、ユーザは、色調整ツールを呼び出すために、UI項目1247を選択する。
更には、UI項目のセットの置き換えにより、UI項目1230もまた、UI項目1240に置き換えられる。UI項目1240は、ツールナビゲーションペイン1225内で、新たなUI項目のセット1226を、別のUI項目のセットに置き換えるためのものである。UI項目1240はまた、ユーザが、そのUI項目のセットによって表される編集ツールを使用することを望まないことを示すために、ユーザがタッチするためのものでもある。
第4ステージ1204はまた、ユーザが、UI項目1247を選択することによって、色調整ツールの呼び出しを開始していることも示す。図示のように、ユーザは、UI項目1247の強調表示によって示されるように、UI項目1247上で指をタップしている。
第5ステージ1205は、ユーザのUI項目1247の選択に応答して、アプリケーションがツールナビゲーションペイン1225内のUI項目のセット1226を、色調整ツールのセット1260で置き換える際に、GUI1200が提供するアニメーションを示す、過渡的ステージである。図示のように、UI項目のセット1226は、UI項目1240内へと左にスライドを開始して、その過程中に、新たな色調整ツールのセット1260を露呈させる。
第6ステージ1206は、ツールナビゲーションペイン1225内で、色調整ツールのセット1260が、UI項目のセット1226に完全に取って代わった後の、GUI1200を示す。図示のように、この色調整ツールのセットは、彩度UIコントロールを呼び出すためのUI項目1271、空UIコントロールを呼び出すためのUI項目1272、群葉UIコントロールを呼び出すためのUI項目1273、肌色UIコントロールを呼び出すためのUI項目1274、及び色バランスUIコントロールのセットを呼び出すためのUI項目1275を含む。更には、UI項目のセット1226の置き換えはまた、UI項目1240を、色調整アイコンのように見えるUI項目1262に変更させる。ユーザは、終了させる(又は、色調整ツールのセットを選択解除する)ために、UI項目1262を選択することができる。
図12は、GUI1200を通じて色調整ツールのセットを呼び出す実施例を示す。図13は、GUI1200を通じて、色調整ツールのセットを選択解除する実施例を、6つの異なるステージで示す。
第1ステージ1301は、図12の第6ステージ1206と同一であるが、ただし、ユーザは、色調整ツールのセット1260を選択解除するための、ツールナビゲーションペイン1225内のUI項目1262を選択したところである。
第2ステージ1302は、アプリケーションが色調整ツールのセット1260をUI項目のセット1226で置き換える際に、GUI1200が提供するアニメーションを示す、過渡的ステージである。図示のように、UI項目のセット1226は、UI項目1262の下から、ツールナビゲーションペイン1225内にスライドを開始して、その過程で、色調整ツールのセット1260を覆う。
第3ステージ1303は、UI項目のセット1226が、色調整ツールのセット1260に完全に取って代わったことを示す。更には、UI項目1262もまた、UI項目1240に変更されている。上述のように、UI項目1240は、ユーザが、そのUI項目のセットによって表される編集ツールを使用することを望まないことを示すために、ユーザが選択するためのものである。
第4ステージ1304は、ユーザが、UI項目1240を選択した場合のGUI1200を示す。第5ステージ1305は、ユーザのUI項目1240の選択に応答して、アプリケーションが、UI項目のセット1226をUI項目のセット1292で置き換えるアニメーションを示す、過渡的ステージである。図示のように、UI項目のセット1226は、UI項目1240内へと左にスライドを開始して、その過程中に、UI項目のセット1292を露呈させる。
第6ステージ1306は、ツールナビゲーションペイン1225内で、UI項目のセット1292が、UI項目のセット1226に完全に取って代わった後の、GUI1200を示す。更には、UI項目1240は、UI項目1230に変更されている。
図14は、GUI1200を通じて、画像に対して空調整操作を実行する実施例を、6つのステージ1405、1410、1415、1420、1422、及びステージ1424で示す。図14に示すように、GUI1200は、ユーザが閲覧及び選択するための、画像のサムネイルバージョンのセットを含む、サムネイル表示領域1220を有する。ユーザは、サムネイル表示領域1220上で左又は右にスクロールすることによって(例えば、サムネイル表示領域1220上に指を置き、その指を左又は右にドラッグすることによって)、より多くのサムネイル画像を一通り閲覧することができる。GUI1200はまた、画像のセットを表示するための画像表示領域1216、ツールナビゲーションペイン1225、及びUIコントロール表示領域1450も含む。
第1ステージ1405は、ユーザが、画像表示領域1216内に表示される画像1470を選択した後の、GUI1200を示す。画像表示領域1216内に表示される画像の選択は、その画像の対応するサムネイル1475を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(指を置く、指さす、又は指をタップすること)によって、又は、その画像のサムネイル1475にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。この選択はまた、サムネイル表示領域1220内のサムネイル1475の強調表示によっても示される。
第2ステージ1410は、ユーザが、サムネイル表示領域1220内でサムネイル画像をスクロールし始めた後の、GUI1200を示す。上述のように、ユーザは、サムネイル表示領域1220上で左又は右にスクロールすることによって、より多くのサムネイル画像を一通り閲覧することができる。このスクロールは、サムネイル表示領域1220を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上で、ジェスチャを実行して(例えば、指を置くか、指さすか、又は指をタップして)、その指を左又は右にドラッグすることによって、実行することができる。図示のように、ユーザは、指を左にドラッグすることによって、サムネイル画像をスクロールしている。
第3ステージ1415は、ユーザが、サムネイル表示領域1220内のサムネイル画像のスクロールを完了して、画像表示領域1216内に表示される新たな画像を選択した後の、GUI1200を示す。図示のように、サムネイル表示領域1220は、この時点で、第1ステージ1405でサムネイル表示領域1220内に表示されていなかったサムネイル1435を含む。第3ステージ1415に示すように、ユーザはまた、画像表示領域1216内に表示される画像1455も選択している。画像表示領域1216内に表示される画像の選択は、その画像の対応するサムネイル1435を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(指を置く、指さす、又は指をタップすること)によって、又は、画像のサムネイル1435にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。この選択はまた、サムネイル表示領域1220内のサムネイル1435の強調表示によっても示される。
第3ステージ1415に示すように、ユーザはまた、色調整アイコン1442の強調表示によって示されるように、画像1455に対して色調整を実行することも選択している。結果として、選択可能UI項目1452〜1458のセットが、ツールナビゲーションペイン1225内に表示される。選択可能UI項目1452〜1458のそれぞれは、画像に対する異なる色調整を開始するためのものである。例えば、選択可能UI項目1452は、画像に関する彩度調整を開始するためのものであり、選択可能UI項目1454は、画像に関する空調整を開始するためのものであり、選択可能UI項目1458は、画像に関する群葉調整を開始するためのものであり、選択可能UI項目1456は、画像に関する肌の色調調整を開始するためのものである。これらの色調整は、図3、4、6、7、及び図9を参照して上述された種々の色調整と同一である。
第4ステージ1420は、ユーザが、ツールナビゲーションペイン1225内の選択可能UI項目1454を選択した後の、GUI1200を示す。選択可能UI項目1454の選択は、選択可能UI項目1454を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、選択可能UI項目1454にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、選択可能UI項目1454の強調表示によって示されるように、選択可能UI項目1454上で指をタップすることによって、選択可能UI項目1454を選択している。この選択の結果として、空調整UIコントロール1464が、UIコントロール表示領域1220内に出現している。
種々の実施形態は、画像の色を調整するための種々のタイプのUIコントロールを提供する。この実施例では、空調整UIコントロールは、範囲スライダである。ユーザは、空UIコントロール1464のつまみを、範囲スライダに沿って異なる位置にスライドさせることによって、画像内の空の色を調整することができる。
第5ステージ1422は、ユーザが空UIコントロール1464のつまみを選択しているが、画像内の空の色の調整を開始していないことを示す、過渡的ステージである。第6ステージ1424は、ユーザが、矢印1460によって示されるように、空UIコントロール1464のつまみを右に移動させることによって、画像の空の色の調整を開始した後の、GUI1200を示す。一部の実施形態では、ユーザは、異なる場所にユーザの指をドラッグすること(又は、カーソルをドラッグすること)によって、空UIコントロール1464のつまみを移動させることができる。この指の移動の結果として、画像355内の空の領域の全域にわたる斜線によって示されるように、画像1455内の空の色が強調されているが、その一方で、画像1455の残部は、影響を受けないまま維持される。一部の実施形態では、このアプリケーションは、図7を参照して上述されたものと同じ方式で、画像内の空の色を調整する。
図14は、GUI1200を通じて空調整操作を実行する実施例を示す。ユーザは、種々の選択可能項目1452〜1458の選択を通じて、同様の方式で、他の種類の色調整操作(例えば、彩度調整、自然な彩度調整、群葉調整、肌の色調調整など)を実行することができる。図15は、GUI1200を通じて群葉調整操作を実行する実施例を、4つのステージ1505、1510、1515、及びステージ1520で提供する。
第1ステージ1505は、図14の第1ステージ1405と同一である。図示のように、ユーザは、画像表示領域1216内に表示される画像1455を選択している。第2ステージ1510は、ユーザが、ツールナビゲーションペイン1225内の選択可能UI項目1458を選択した後の、GUI1200を示す。選択可能UI項目1458の選択は、選択可能UI項目1458を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、選択可能UI項目1458にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、選択可能UI項目1458の強調表示によって示されるように、選択可能UI項目1458上で指をタップすることによって、選択可能UI項目1458を選択している。この選択の結果として、群葉調整UIコントロール1564が、UIコントロール表示領域1450内に出現している。
第3ステージ1515は、ユーザが群葉UIコントロール1564のつまみを選択しているが、画像内の群葉の色の調整を開始していないことを示す、過渡的ステージである。第4ステージ1520は、ユーザが、矢印1560によって示されるように、群葉UIコントロール1564のつまみを右に移動させることによって、画像の群葉の色の調整を開始した後の、GUI1200を示す。一部の実施形態では、ユーザは、異なる場所にユーザの指をドラッグすること(又は、カーソルをドラッグすること)によって、群葉UIコントロール1564のつまみを移動させることができる。この指の移動の結果として、画像1455内の山の領域の全域にわたる斜線によって示されるように、画像1455内の群葉の色が強調されているが、その一方で、画像1455の残部は、影響を受けないまま維持される。一部の実施形態では、このアプリケーションは、図9を参照して上述されたものと同じ方式で、画像内の群葉の色を調整する。
図16は、色調整UIコントロールに対するユーザの入力に基づいて、画像の一部分の色値を調整するためのプロセス1600を、概念的に示す。一部の実施形態では、このプロセスは、画像編集アプリケーションによって実行される。このプロセスは、画像に対するコンテンツ分析を(1605で)実行することによって開始する。種々の実施形態は、画像に対して種々のコンテンツ分析を実行する。例えば、一部の実施形態のアプリケーションは、画像に対して顔検出分析を実行することにより、その画像が、いずれかの人の顔を含むか否かを判定する。
次いで、このプロセスは、必要に応じて、コンテンツ分析からの結果に基づいて、画像調整UIコントロールのセットに関する、パラメータのセットを(1610で)定義する。一部の実施形態では、調整UIコントロールのうちの少なくとも1つは、アプリケーションの設定に基づいて、画像に対して種々の調整操作を実行するように、構成することができる。これらの実施形態の一部では、アプリケーションは、コンテンツ分析からの結果に基づいて、その画像に関するデフォルト設定を定義する。例えば、その画像が人の顔を含むことを、アプリケーションが検出する場合、アプリケーションは、画像全体の彩度を調整することよりも、自然な彩度調整(すなわち、肌の色調を維持しつつ画像の彩度を調整すること)を実行するように、彩度UIコントロールを構成する。
次に、このプロセスは、特定のUIコントロールに対するユーザ入力を(1615で)受け取る。上述のように、UIコントロールの一部は、画像の種々の部分の色値を調整するためのものである。一部の実施形態では、このアプリケーションは、それらのUIコントロールのための、予め定義された色値の範囲のセットを含む。例えば、このアプリケーションは、空UIコントロールのための、空の色に関連付けられている色値の範囲、群葉UIコントロールのための、群葉の色に関連付けられている色値の範囲、並びに、彩度UIコントロール及び肌の色調UIコントロールのための、肌の色調に関連付けられている色値の範囲を定義している。これらの実施形態の一部では、画像の色値は、これらの色値の範囲を定義するために使用される色空間とは異なる色空間内で定義される。それゆえ、特定のUIコントロールに対して、ユーザ入力が受け取られた後、このプロセスは、画像の色値を、色値の範囲を定義するために使用される色空間に(1620で)変換する。
次いで、このプロセスは、その特定のUIコントロールに関連付けられている色値の範囲内に収まる色値を有する、画像内の画素のセットを(1625で)特定する。一部の実施形態では、種々のコンテンツのタイプに関連付けられている色値の範囲が、メディア記憶装置内に記憶される。これらの実施形態では、このプロセスは、メディア記憶装置から、特定のUIコントロールに関連付けられている色値の範囲を取得して、その色値の範囲内に収まる色値を有する画素を特定する。他の実施形態では、色値の範囲は、色調整を実行するための実行可能コード内で定義される。これらの他の実施形態では、この特定操作は、画像に対する色調整をプロセスが実行する際に、同時に実行される。
ユーザ入力に基づいて、次いで、このプロセスは、操作1625で特定された画素のセットの色値を(1630で)調整する。プロセス1600は、一部の実施形態では、このプロセスが、色値の範囲内に収まる画像内の画素のセットを最初に特定し、次いで、特定された画素のセットに対して調整を実行することを示す。しかしながら、一部の他の実施形態では、このプロセスは、調整操作を実行するときと同時に、調整のための画素を特定する。具体的には、画像内の各画素に関して、このプロセスは、その画素の色値が色値の範囲内に収まるか否かを反復的に判定し、その色値が範囲内である場合にのみ、調整を実行する。
一部の実施形態では、画像の色値を調整する前に、このアプリケーションは、画像の色値に適用することが可能なアルゴリズム又は数学的方程式を生成する。次いで、このアプリケーションは、操作1625で特定された画像内の各画素の色値に、そのアルゴリズム又は数学的方程式を適用する。
次に、このプロセスは、UIコントロールのセットに対して、更に多くのユーザ入力が受け取られるか否かを(1635で)判定する。更に多くの入力が受け取られる場合には、このプロセスは、別の画素のセットを特定するために、1625に戻る。このプロセスは、UIコントロールのセットに対して、それ以上入力が受信されなくなるまで、操作1625〜1635を繰り返す。次いで、このプロセスは終了する。
種々の実施形態は、図16の操作1625で画素のセットを特定するために、種々の技術を使用する。一部の実施形態では、このアプリケーションは、図5、8、及び図11を参照して上述された技術を使用して、画素のセットを特定する。
一部の実施形態では、このアプリケーションは、特定のUIコントロールに対するユーザ入力に応答して、画像の色値に対する1つのタイプの調整(例えば、彩度調整)のみを実行する。上述のように、一部の他の実施形態のアプリケーションは、特定のUIコントロールに対する単一のユーザ入力に応答して、画像の色値に対する2つ以上のタイプの調整を実行する。例えば、ユーザが、空UIコントロール354に入力を提供する場合、一部の実施形態のアプリケーションは、画像の一部分の色値に対する彩度調整、コントラスト調整、及び明度調整を実行する。これらの実施形態では、アプリケーションは、単一のユーザ入力を使用して、その画像に関する、コントラストを調整するための調整値、彩度を調整するための調整値、及び明度を調整するための調整値を決定し、これらの個別の調整値を、画像の色値に適用する。
図17は、色調整UIコントロールに対する単一のユーザの入力に基づいて、画像内の限定された色値の範囲に対して幾つかのタイプの調整を実行するためのプロセス1700を、概念的に示す。一部の実施形態では、このプロセスは、図16の操作1620〜1630の間に実行される。プロセス1700は、画像のコントラストを調整するためのコントラスト調整値を決定するために、UIコントロールに対するユーザ入力を(1705で)使用することによって開始する。一部の実施形態では、画像のコントラストは、その画像内の色値の範囲を表す。換言すれば、より高いコントラストを有する画像は、より低いコントラストを有する画像よりも、広い色値の範囲を有する。それゆえ、画像のコントラストを増大させることは、その画像内の色値の範囲を伸長させること(すなわち、画像の明るい色値と暗い色値との差を拡大すること)を伴い、画像のコントラストを減少させることは、その画像内の色値の範囲を低減する(すなわち、画像の明るい色値と暗い色値との差を縮小する)。それゆえ、コントラスト調整値は、画像内の色値の範囲をアプリケーションが調整する程度を決定する。
次に、このプロセスは、UIコントロールに対する同じユーザ入力を(1710で)使用して、画像の彩度を調整するための彩度調整値を決定する。一部の実施形態では、画像の彩度は、その画像内の色値の強度を表す。それゆえ、画像の彩度を増大させることは、その画像の色値の強度を増大させることを伴う。それゆえ、彩度調整値は、画像内の色値の強度をアプリケーションが調整する程度を決定する。
次いで、このプロセスは、特定のUIコントロールに対する同じユーザ入力を(1715で)使用して、画像の明度を調整するための明度調整値を決定する。一部の実施形態では、画像の明度は、その画像内の明るさ又は輝度を表す。それゆえ、画像の明度を増大させることは、その画像内の色値の輝度値を増大させることを伴う。それゆえ、明度調整値は、画像内の色値の明るさ又は明度値をアプリケーションが調整する程度を決定する。
画像のコントラスト、彩度、及び明度を調整するための3つの異なる調整値を決定した後、このプロセスは、操作1625で特定された画素のセットの色値に、それらのコントラスト調整値、彩度調整値、及び明度調整値を(1720で)適用する。一部の実施形態では、このアプリケーションは、画像の色値に適用するための種々の調整値に基づいて、アルゴリズムのセット、又は数学的方程式のセットを生成する。次いで、このアプリケーションは、操作1625で特定された画像内の各画素の色値に、そのアルゴリズムのセット、又は数学的方程式のセットを適用する。
次に、このプロセスは、必要に応じて、画像の色値を、その本来の色空間に(1725で)変換して戻す。一部の実施形態では、変換された色空間(例えば、YCC色空間)内で、調整のための画素のセットを特定した後に、このアプリケーションは、その変換された色空間内で、画像の色値に対する調整を実行する。例えば、一部の実施形態のアプリケーションは、YCC色空間内で群葉調整を実行する。一部の実施形態では、特定のYCC色空間(例えば、IPT色空間)内で群葉調整を実行することが好ましいが、これは、その均一な知覚的挙動のためである。例えば、色の色相を、その色を黄色にすることなく、緑に向けて移行させることができる。これらの実施形態では、調整操作が完了すると、プロセスが画像の色値をその本来の色空間に変換して戻すことが必要である。他の実施形態では、調整のための画素のセットを特定した後に、このアプリケーションは、その本来の色空間内で、画像の色値に対する調整を実行する。例えば、一部の実施形態のアプリケーションは、その色値の本来の色空間(例えば、RGB色空間)内で、空調整を実行する。これらの実施形態では、この変換工程1720をプロセスが実行する必要はない。次いで、このプロセスは終了する。
一部の実施形態は、全ての調整を同じ色空間内で実行するが、他の実施形態は、異なる色空間内で色調整を実行する。
図18は、画像の一部分のみの色値を調整するためのUIコントロールのセットを提供する、一部の実施形態の画像編集アプリケーション1800を示す。一部の実施形態では、画像編集アプリケーション1800は、プロセス1600及びプロセス1700を実行する。図18に示すように、画像編集アプリケーション1800は、画像プロセッサ1840、コンテンツ分析モジュール1845のセット、色空間変換モジュール1815、画素分離モジュール1810、及び色調整エンジン1820を含む。
UIモジュール1805が、色調整UIコントロールのセットを呼び出すためのユーザ入力を受け取ると、UIモジュール1805は、そのリクエストを画像プロセッサ1840に渡す。画像プロセッサ1840は、メディア記憶装置1850から画像を取得して、コンテンツ分析モジュール1845のセットに、その画像に対して一連のコンテンツ分析を実行するようにリクエストする。一部の実施形態では、メディア記憶装置1850は、画像編集アプリケーション1800によって構成され、特定の記憶装置のセット上に記憶される、ファイルフォルダのセットである。この記憶装置は、このアプリケーションが動作する電子装置のブートドライブ、そのディスクの異なるパーティション、別個の内部又は外部ハードドライブ、フラッシュドライブ、SDカードなどを含み得る。
コンテンツ分析モジュール1845のセットは、コンテンツ分析モジュールのセットを画像に対して実行する。種々の実施形態は、画像に対して種々のコンテンツ分析を実行する。例えば、一部の実施形態のアプリケーションは、人の顔が画像上に出現するか否かを判定するために、顔検出分析を実行する。次いで、コンテンツ分析モジュール1845のセットは、その分析の結果を画像プロセッサ1840に送り返す。その分析の結果に基づいて、一部の実施形態の画像プロセッサ1840は、UIコントロールのセットに関するパラメータのセットを定義する。例えば、画像上に人の顔が検出される場合には、画像プロセッサ1840は、彩度調整UIコントロールを、自然な彩度調整操作に関連付けられているように構成する。
UIモジュール1805が、色調整操作を開始するための、UIコントロールのうちの1つに対するユーザ入力を受け取ると、UIモジュール1805は、そのユーザ入力を画像プロセッサ1840に渡す。次いで、画像プロセッサ1840は、そのユーザ入力を受け取るUIコントロールに関連付けられている色値の範囲内に収まる色値を有する、画像内の画素のセットを特定するように、画素分離モジュール1810にリクエストする。一部の実施形態では、画像の色値は、それらの色値の範囲を定義するために使用される色空間(例えば、YCC色空間)とは異なる色空間(例えば、RGB色空間)内で定義される。これらの実施形態では、画素のセットを特定するように画素分離モジュール1810にリクエストする前に、画像プロセッサ1840は、画像の色値を、それらの色値の範囲を定義するために使用される色空間に変換するように、色空間変換モジュール1815にリクエストする。
画素のセットが特定された後に、画像プロセッサ1840は、その画像、及び特定された画素についての情報を、画像に対して一連の色調整を実行するための色調整エンジン1820に送る。色調整エンジン1820は、画像内の特定された画素に、種々の色調整を適用する。一部の実施形態では、色調整エンジン1820は、プロセス1700を実行して、画像の特定された画素に調整を適用する。図示のように、色調整エンジン1820は、画像にコントラスト調整を適用するためのコントラスト調整エンジン1825、画像に明度調整を適用するための明度調整エンジン1830、及び画像に彩度調整を適用するための彩度調整エンジン1835を含む。これらは、画像に対して実行することが可能な例示的な色調整に過ぎないものであり、色調整エンジン1820は、画像に対して更なるタイプの色調整を実行するための、更なる色調整エンジンを含み得ることが、当業者には明らかなはずである。例えば、明度調整エンジン1830は、ユーザ入力を使用して、画像の明度を調整するための明度調整値を決定し、コントラスト調整エンジン1825は、ユーザ入力を使用して、画像のコントラストを調整するためのコントラスト調整値を決定し、彩度調整エンジン1835は、ユーザ入力を使用して、画像の彩度を調整するための彩度調整値を決定する。次いで、種々の調整エンジン1825〜1835は、この明度調整、コントラスト調整、及び彩度調整を画像に適用して、編集された画像を作り出す。
一部の実施形態では、色調整エンジン1820は、変換された色空間内で、画像の色値を調整する。これらの実施形態では、画像プロセッサ1840は、色空間変換モジュール1815に、調整された画像を送り、画像の色値を、その本来の色空間に変換して戻す。次いで、画像プロセッサ1840は、メディア記憶装置に、及び、表示のためのUIモジュール1805に、調整された画像を送る。
II.画像上コントロール
図1を参照して上述されたように、一部の実施形態の画像編集アプリケーションは、画像を編集するための、画像上に重ね合わされるUIコントロールのセットを提供する。画像上UIコントロールのセットのそれぞれは、異なる調整に関連付けられている。一部の実施形態では、ユーザは、画像上の場所を選択することによって、重ね合わせUIコントロール(画像上UIコントロールとも称される)のセットをアクティブ化することができる。これらの実施形態では、ユーザが、画像上の特定の場所を選択すると、アプリケーションは、一連の分析を実行して、その画像上の選択された場所に関連付けられている特定のコンテンツのタイプを判定する。次いで、このアプリケーションは、選択された場所が、異なるコンテンツのタイプに関連付けられていると、画像に適用するための異なる色調整機能に関連付けられている異なるUIコントロールのセットを表示する。一部の実施形態では、重ね合わせUIコントロールのセットは、不透明又は透明である。これらの画像上UIコントロールの幾つかの実施形態は、セクションII.A及びセクションII.Bで、より詳細に説明される。
図19は、画像上の場所のユーザ選択に基づいて、画像の色値を調整するための画像上UIコントロールのセットを提供するための、プロセス1900を概念的に示す。一部の実施形態では、このプロセスは、画像編集アプリケーションによって実行される。このプロセスは、画像上の場所の選択を(1905で)受け取ることによって開始する。次いで、このプロセスは、画像上の選択された場所に対応する、画素のセットの色値を(1910で)取得する。一部の実施形態では、この画素のセットは、選択された場所の近くに位置する画素である。
次に、このプロセスは、取得された色値に対する一連の分析を(1915で)実行する。一部の実施形態では、各分析は、取得された色値に基づいて、選択された場所が特定のコンテンツのタイプに関連付けられているか否かを判定する。例えば、1つの分析は、選択された場所が肌の色調に関連付けられているか否かを判定するためのものであり、別の分析は、選択された場所が空に関連付けられているか否かを判定するためのものである。
一連の分析からの結果に基づいて、このプロセスは、画像編集操作のセットを制御するための、UIコントロールのセットを(1920で)提供する。一部の実施形態では、このUIコントロールのセットは、画像上に表示される画像上コントロールである。これらの実施形態の一部では、画像上UIコントロールのセットは、方向依存性UIコントロールである。ユーザは、画像に対して方向入力を提供することによって、その画像に対する種々の画像編集操作を開始することができる。
次に、このプロセスは、画像上に別の場所が選択されるか否かを(1930で)判定する。別の場所が選択される場合には、このプロセスは、その新たに選択された場所に対応する、別の画素のセットの色値を取得するために、1910に戻る。このプロセスは、それ以上場所が選択されなくなるまで、操作1910〜1925を繰り返す。次いで、このプロセスは終了する。
A.画像上色コントロール
一部の実施形態では、画像編集アプリケーションが提供する重ね合わせUIコントロールのセットは、画像に種々の色調整を適用するためのものである。図20は、ユーザによって選択された画像上の場所に基づいて、画像に色調整を適用するための画像上UIコントロールのセットを提供する、一部の実施形態の画像編集アプリケーションの、例示的なGUI300を示す。具体的には、図20は、種々の画像上UIコントロールのセットをアクティブ化する操作を、4つの異なるステージ2005、2010、2015、及びステージ2020で示す。これらのステージのそれぞれを、以下でより詳細に説明する。
第1ステージ2005は、図3の第2ステージ310と同一である。図示のように、ユーザは、画像355の色を調整するための選択可能UI項目342を選択している。UIコントロール表示領域350は、画像の彩度を調整するためのUIコントロール352、画像内の空の色を調整するためのUIコントロール354、画像内の群葉の色を調整するためのUIコントロール358、及び画像内の肌の色調を調整するためのUIコントロール356を表示する。第2ステージ2010は、ユーザが、画像355上の場所を選択した後の、GUI300を示す。図示のように、ユーザは、人の顔を表示する、画像上の場所を選択している。画像355上の場所の選択は、画像を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、画像の場所にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。上述のように、ユーザが画像上の場所を選択した後、一部の実施形態の画像編集アプリケーションは、その選択された場所に関連付けられている特定のコンテンツのタイプを判定するために、一連の分析を実行する。種々の実施形態は、種々の技術を使用して、選択された場所に関連付けられているコンテンツのタイプを判定する。一部の実施形態のアプリケーションは、最初に、種々のコンテンツのタイプに関連付けられている種々の色値の範囲を定義する。例えば、一部の実施形態のアプリケーションは、肌の色調に関連付けられている色値の範囲、空の色に関連付けられている色値の範囲、及び群葉の色に関連付けられている色値の範囲を定義する。一部の実施形態では、このアプリケーションは、図5、8、及び図11を参照して上述されたものと同じ方式で、色値の範囲を定義する。次いで、このアプリケーションは、画像内の選択された場所に対応する画素のセットの色値が、特定のコンテンツのタイプに関連付けられている色値の範囲内に収まるか否かを判定し、その特定のコンテンツのタイプに関連付けられている画像上UIコントロールのセットを表示する。
種々の実施形態は、画像上UIコントロールのセットを、種々の方式で実装する。例えば、一部の実施形態のアプリケーションは、画像上UIコントロールのセットを、方向依存性UIコントロールとして実装する。これらの実施形態の一部では、アプリケーションは、UIコントロールに関連付けられている色調整操作を開始するようにユーザを導くために、各UIコントロールに関する方向矢印を表示する。ユーザは、種々の方向入力を提供することによって、種々の色調整操作を開始する。この方向入力の方向に基づいて、アプリケーションは、画像に対して特定の色調整を実行する。第2ステージ2010では、ユーザは、人の顔を表示する画像上の場所を選択しているため、このアプリケーションは、選択された場所に対応する画素の色値が、肌の色調に関連付けられていることを判定する。結果として、このアプリケーションは、肌の色調を調整するための画像上UIコントロール2025及び画像上UIコントロール2030(水平軸に沿った2つの方向の矢印として表示される)のセットを表示する。画像上UIコントロール2025及び画像上UIコントロール2030のセットは、肌の色調UIコントロール356に対応する。一部の実施形態では、このアプリケーションはまた、肌の色調UIコントロール356がアクティブ化されていることを示すために、肌の色調UIコントロール356を強調表示する。肌の色調を調整するためのUIコントロールに加えて、一部の実施形態のアプリケーションはまた、画像全体に関する色値を調整するためのコンテンツに依存しないUIコントロールのセットも表示する。これらの実施形態では、コンテンツに依存しないUIコントロールのセットは、ユーザによって選択される場所とは無関係に、常に表示される。この実施例では、アプリケーションは、画像全体に関する彩度を調整するためのコンテンツに依存しないUIコントロール2035及びUIコントロール2040(垂直軸に沿った2つの方向の矢印として表示される)のセットを表示する。画像上UIコントロール2035及び画像上UIコントロール2040のセットは、彩度UIコントロール352に対応する。一部の実施形態では、このアプリケーションはまた、彩度UIコントロール352がアクティブ化されていることを示すために、彩度UIコントロール352を強調表示する。この図には示されないが、この第2ステージ2010でのユーザは、方向入力を提供することによって、特定の色調整(すなわち、画像全体に対する彩度調整、又は画像の肌の色調に対する色調整)を選択することができる。
一部の実施形態では、異なる色調整に関連付けられている異なる画像上UIコントロールのセットは、異なる外観を有する。例えば、画像上UIコントロール2025及び画像上UIコントロール2030は、ユーザへの区別を提供するために、画像上UIコントロール2035及び画像上UIコントロール2040とは異なる色を有し得る。
第3ステージ2015は、ユーザが、画像355上の異なる場所を選択した後の、GUI300を示す。図示のように、ユーザは、青空を示す画像上の場所を選択している。アプリケーションは、この新たに選択された場所に対応する画素の色値が、空の色に関して定義される色値の範囲内に収まることを判定する。結果として、このアプリケーションは、空の色を調整するための画像上UIコントロール2045及び画像上UIコントロール2050(水平軸に沿った2つの方向の矢印として表示される)のセットを表示する。画像上UIコントロール2045及び画像上UIコントロール2050のセットは、空UIコントロール354に対応する。図示のように、このアプリケーションはまた、空UIコントロール354がアクティブ化されていることを示すために、空UIコントロール354を強調表示する。第2ステージ2010と同様に、空の色を調整するための画像上UIコントロールに加えて、このアプリケーションはまた、画像全体に関する彩度を調整するためのコンテンツに依存しないUIコントロール2035及びUIコントロール2040のセットも表示する。このアプリケーションはまた、彩度UIコントロール352がアクティブ化されていることを示すために、彩度UIコントロール352を強調表示する。この図には示されないが、この第3ステージ2015でのユーザは、方向入力を提供することによって、特定の色調整(すなわち、画像全体に対する彩度調整、又は画像の空の色に対する色調整)を選択することができる。
第4ステージ2020は、ユーザが、画像355上の異なる場所を選択した後の、GUI300を示す。図示のように、ユーザは、山を示す画像上の場所を選択している。アプリケーションは、この新たに選択された場所に対応する画素の色値が、群葉の色に関して定義される色値の範囲内に収まることを判定する。結果として、このアプリケーションは、群葉の色を調整するための画像上UIコントロール2055及び画像上UIコントロール2060(水平軸に沿った2つの方向の矢印として表示される)のセットを表示する。画像上UIコントロール2055及び画像上UIコントロール2060のセットは、群葉UIコントロール358に対応する。図示のように、このアプリケーションはまた、群葉UIコントロール358がアクティブ化されていることを示すために、群葉UIコントロール358を強調表示する。第2ステージ2010及び第3ステージ2015と同様に、群葉の色を調整するための画像上UIコントロールに加えて、このアプリケーションはまた、画像全体に関する彩度を調整するためのコンテンツに依存しないUIコントロール2035及びUIコントロール2040のセットも表示する。このアプリケーションはまた、彩度UIコントロール352がアクティブ化されていることを示すために、彩度UIコントロール352を強調表示する。この図には示されないが、この第4ステージ2020でのユーザは、方向入力を提供することによって、特定の色調整(すなわち、画像全体に対する彩度調整、又は画像の群葉の色に対する色調整)を選択することができる。
図20は、画像に対して種々の色調整を実行するための、種々の画像上UIコントロールをアクティブ化する例示的操作を示す。図21、22、23、及び図24は、種々の画像上UIコントロールを操作することにより、画像に対して種々の色調整を実行する実施例を示す。具体的には、図21は、画像全体に関する彩度を調整するための画像上UIコントロールのセットを操作する例示的操作を、4つの異なるステージ2105、2110、2115、及びステージ2120で示す。
第1ステージ2105は、図20の第1ステージ2005と同一である。図示のように、ユーザは、画像355の色を調整するための選択可能UI項目342を選択している。第2ステージ2110は、ユーザが、画像355上の場所を選択した後の、GUI300を示す。画像355上の場所の選択は、画像を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、画像の場所にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、人の顔を示す画像355上の場所を、その場所で指をタップすることによって選択している。この選択の結果として、画像上UIコントロール2025〜2040のセットが、画像上の選択された場所の周囲に表示される。この画像上UIコントロールのセットは、画像全体に関する彩度を調整するための彩度UIコントロール352に対応する、画像上UIコントロール2035及び画像上UIコントロール2040のセット、並びに、画像の肌の色調を調整するための肌の色調UIコントロール356に対応する、画像上UIコントロール2025及び画像上UIコントロール2030のセットを含む。第2ステージ2110はまた、対応する彩度UIコントロール352及び肌の色調UIコントロール356が強調表示されることにより、これらの2つのUIコントロールがアクティブ化されていることを示す点も示す。
第3ステージ2115は、ユーザが、画像355に対する方向入力を提供することによって、画像355の彩度の調整を開始した後の、GUI300を示す。この方向入力は、特定の方向に、タッチ若しくはニアタッチ感応スクリーンを有する装置上でユーザの指をドラッグすることによって、又はカーソルをドラッグすることによって、提供することができる。この実施例では、ユーザは、矢印2125によって示されるように、画像の頂部に向けて、ユーザの指を上向きにドラッグすることによって、方向入力を提供する。アプリケーションは、この方向入力を、画像全体に関する彩度を増大させるための画像上UIコントロール2035と関連付けて、画像355に対する彩度調整を実行する。図示のように、画像355内の色の彩度は、画像355の全域にわたる斜線によって示されるように、増大している。第3ステージ2115はまた、アプリケーションが、方向入力を、画像上UIコントロールの1つのセットに関連付けた後には、非アクティブ化された画像上UIコントロール2025及び画像上UIコントロール2030が、ディスプレイから除去されて、対応する肌の色調UIコントロール356が、もはや強調表示されないことも示す。一部の実施形態では、アクティブ化された画像上UIコントロール2035及び画像上UIコントロール2040は、方向入力に追従する。それゆえ、アクティブ化された画像上UIコントロールは、指(又はカーソル)が配置される画像上の場所の周囲に、常に存在する。更には、第3ステージ2115は、画像355内の色の彩度が、画像上UIコントロール2035によって増大されると、対応する彩度UIコントロール352のつまみが、右に移動していることを示す。
更には、GUI300はまた、画像に対して色調整が実行された場合、選択可能UI項目342の上部に、バーを表示する。この選択可能UI項目342の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対する彩度調整を実施した後の、第3ステージ2115で、選択可能UI項目342の上部に、バーが出現している。
第4ステージ2120は、ユーザが、矢印2130によって示されるように、ユーザの指を更に上向きにドラッグすることによって、画像355の彩度を更に調整した後の、GUI300を示す。図示のように、このステージ2120での画像355内の色は、画像355の全域にわたる、より高密度の斜線によって示されるように、第3ステージ2115での画像内の色よりも、更に彩度が増大されて示される。第4ステージ2120はまた、対応する彩度UIコントロール352のつまみが、更に右に移動していることも示す。一部の実施形態では、画像の彩度のユーザによる調整が、限界(例えば、画像に関する彩度の、可能な範囲の上端又は下端)に達すると、ユーザの指の方向の矢印は、徐々に消失するか、又は消滅する。例えば、ユーザが、このステージ2120で示される指の位置から更に上向きにユーザの指をドラッグすることによって、画像355の彩度を更にまた調整する場合には、矢印2035が徐々に消失するか、又は消滅する。また、対応する彩度UIコントロール352のつまみも右端に達して、更に右に移動することはない。一部の実施形態では、限界に達することに関する、この矢印の消失又は消滅は、本出願で説明される他のタイプの色調整に適用可能である。
図21は、画像全体に関する彩度を調整するための画像上UIコントロールのセットを操作する例示的操作を示す。図22は、画像の色温度を調整するための画像上UIコントロールのセットを操作する例示的操作を示す。色温度は、画像内の対象物から反射する可視光の特性である。画像内の対象物に当っている、より暖かい光は、その画像内の対象物の色に、より暖かい色調(すなわち、より多くの赤色及び黄色)を作り出し、その一方で、画像内の対象物に当っている、より冷たい光は、その画像内の対象物の色に、より冷たい色調(すなわち、より多くの青色及びシアン)を作り出す。それゆえ、画像の色温度を調整することは、画像に対して、より多くの赤色/黄色を追加すること、又はより多くの青色/シアンを追加することを意味する。具体的には、図22は、この色調整操作を、4つの異なるステージ2205、2210、2215、及びステージ2220で示す。
第1ステージ2205は、図20の第1ステージ2005と同一である。図示のように、ユーザは、画像355の色を調整するための選択可能UI項目342を選択している。第2ステージ2210は、ユーザが、画像355上の場所を選択した後の、GUI300を示す。画像355上の場所の選択は、画像を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、画像の場所にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、人の顔を示す画像355上の場所を、その場所で指をタップすることによって選択している。この選択の結果として、画像上UIコントロール2025〜2040のセットが、画像上の選択された場所の周囲に表示される。この画像上UIコントロールのセットは、画像全体に関する彩度を調整するための彩度UIコントロール352に対応する、画像上UIコントロール2035及び画像上UIコントロール2040のセット、並びに、画像の肌の色調を調整するための肌の色調UIコントロール356に対応する、画像上UIコントロール2025及び画像上UIコントロール2030のセットを含む。第2ステージ2210はまた、対応する彩度UIコントロール352及び肌の色調UIコントロール356が強調表示されることにより、これらの2つのUIコントロールがアクティブ化されていることを示す点も示す。
第3ステージ2215は、ユーザが、画像355に対する方向入力を提供することによって、画像355の色温度の調整を開始した後の、GUI300を示す。この方向入力は、特定の方向に、タッチ若しくはニアタッチ感応スクリーンを有する装置上でユーザの指をドラッグすることによって、又はカーソルをドラッグすることによって、提供することができる。この実施例では、ユーザは、矢印2225によって示されるように、ユーザの指を右にドラッグすることによって、方向入力を提供する。アプリケーションは、この方向入力を、画像内の肌の色調を改善するための画像上UIコントロール2025と関連付けて、画像355に対する色温度調整を実行する。図示のように、画像355の色温度は、画像355の全域にわたる斜線によって示されるように、上昇している。一部の実施形態では、このアプリケーションは、肌の色調をより心地よいものにするために、画像の色温度を調整する。これらの実施形態の一部では、アプリケーションは、図5を参照して上述されたものと同じである、定義された肌の色調の範囲を使用して、その定義された肌の色調の範囲内に収まる画像内の色を、より心地よいものにするように、画像の色値を調整する。
第3ステージ2215はまた、アプリケーションが、方向入力を、画像上UIコントロールの1つのセットに関連付けた後には、非アクティブ化された画像上UIコントロール2035及び画像上UIコントロール2040が、ディスプレイから除去されて、対応する彩度UIコントロール352が、もはや強調表示されないことも示す。第3ステージ2215はまた、対応する肌の色調UIコントロール356のつまみが、右に移動していることも示す。
更には、GUI300はまた、画像に対して色調整が実行された場合、選択可能UI項目342の上部に、バーを表示する。この選択可能UI項目342の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対して肌の色調調整を実施した後の、第3ステージ2215で、選択可能UI項目342の上部に、バーが出現している。
第4ステージ2220は、ユーザが、矢印2230によって示されるように、ユーザの指を更に右にドラッグすることによって、画像355の色温度を更に調整した後の、GUI300を示す。図示のように、このステージ2220での画像355は、画像355の全域にわたる、より高密度の斜線によって示されるように、第3ステージ2215での画像よりも更に調整されて示される。第4ステージ2220はまた、対応する肌の色調UIコントロール356のつまみが、更に右に移動していることも示す。
図22は、画像に関する色温度を調整するための画像上UIコントロールのセットを操作する例示的操作を示す。図23は、画像内の空の色を調整するための画像上UIコントロールのセットを操作する例示的操作を示す。具体的には、図23は、この色調整操作を、4つの異なるステージ2305、2310、2315、及びステージ2320で示す。
第1ステージ2305は、図22の第1ステージ2205と同一である。図示のように、ユーザは、画像355の色を調整するための選択可能UI項目342を選択している。第2ステージ2310は、ユーザが、画像355上の場所を選択した後の、GUI300を示す。画像355上の場所の選択は、画像を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、画像の場所にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、空を示す画像355上の場所を、その場所で指をタップすることによって選択している。この選択の結果として、画像上UIコントロール2035〜2050のセットが、画像上の選択された場所の周囲に表示される。この画像上UIコントロールのセットは、画像全体に関する彩度を調整するための彩度UIコントロール352に対応する、画像上UIコントロール2035及び画像上UIコントロール2040のセット、並びに、画像の空の色を調整するための空UIコントロール354に対応する、画像上UIコントロール2045及び画像上UIコントロール2050のセットを含む。第2ステージ2310はまた、対応する彩度UIコントロール352及び空UIコントロール354が強調表示されることにより、これらの2つのUIコントロールがアクティブ化されていることを示す点も示す。
第3ステージ2315は、ユーザが、画像355に対する方向入力を提供することによって、画像355の空の色の調整を開始した後の、GUI300を示す。この方向入力は、特定の方向に、タッチ若しくはニアタッチ感応スクリーンを有する装置上でユーザの指をドラッグすることによって、又はカーソルをドラッグすることによって、提供することができる。この実施例では、ユーザは、矢印2325によって示されるように、ユーザの指を右にドラッグすることによって、方向入力を提供する。アプリケーションは、この方向入力を、画像内の空の色を調整するための画像上UIコントロール2045と関連付けて、画像355に対する空の色の調整を実行する。図示のように、画像355内の空の色は、画像355内の空を示す領域の全域にわたる斜線によって示されるように、強調されている。第3ステージ2315はまた、アプリケーションが、方向入力を、画像上UIコントロールの1つのセットに関連付けた後には、非アクティブ化された画像上UIコントロール2035及び画像上UIコントロール2040が、ディスプレイから除去されて、対応する彩度UIコントロール352が、もはや強調表示されないことも示す。第3ステージ2315はまた、対応する空UIコントロール354のつまみが、右に移動していることも示す。
更には、GUI300はまた、画像に対して色調整が実行された場合、選択可能UI項目342の上部に、バーを表示する。この選択可能UI項目342の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対して空調整を実施した後の、第3ステージ2315で、選択可能UI項目342の上部に、バーが出現している。
第4ステージ2320は、ユーザが、矢印2330によって示されるように、ユーザの指を更に右にドラッグすることによって、画像355の空の色を更に調整した後の、GUI300を示す。図示のように、このステージ2320での画像355内の空の色は、画像355内の空を示す領域の全域にわたる、より高密度の斜線によって示されるように、第3ステージ2315での画像内の空の色よりも、更に強調されて示される。第4ステージ2320はまた、対応する空UIコントロール354のつまみが、更に右に移動していることも示す。
図23は、画像に関する空の色を調整するための画像上UIコントロールのセットを操作する例示的操作を示す。図24は、画像内の群葉の色を調整するための画像上UIコントロールのセットを操作する例示的操作を示す。具体的には、図24は、この色調整操作を、4つの異なるステージ2405、2410、2415、及びステージ2420で示す。
第1ステージ2405は、図23の第1ステージ2305と同一である。図示のように、ユーザは、画像355の色を調整するための選択可能UI項目342を選択している。第2ステージ2410は、ユーザが、画像355上の場所を選択した後の、GUI300を示す。画像355上の場所の選択は、画像を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、画像の場所にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、山を示す画像355上の場所を、その場所で指をタップすることによって選択している。この選択の結果として、画像上UIコントロール2035、2040、2055、及び画像上UIコントロール2060のセットが、画像上の選択された場所の周囲に表示される。この画像上UIコントロールのセットは、画像全体に関する彩度を調整するための彩度UIコントロール352に対応する、画像上UIコントロール2035及び画像上UIコントロール2040のセット、並びに、画像の群葉の色を調整するための群葉UIコントロール358に対応する、画像上UIコントロール2055及び画像上UIコントロール2060のセットを含む。第2ステージ2410はまた、対応する彩度UIコントロール352及び群葉UIコントロール358が強調表示されることにより、これらの2つのUIコントロールがアクティブ化されていることを示す点も示す。
第3ステージ2415は、ユーザが、画像355に対する方向入力を提供することによって、画像355の群葉の色の調整を開始した後の、GUI300を示す。この方向入力は、特定の方向に、タッチ若しくはニアタッチ感応スクリーンを有する装置上でユーザの指をドラッグすることによって、又はカーソルをドラッグすることによって、提供することができる。この実施例では、ユーザは、矢印2425によって示されるように、ユーザの指を右にドラッグすることによって、方向入力を提供する。アプリケーションは、この方向入力を、画像内の群葉の色を調整するための画像上UIコントロール2055と関連付けて、画像355に対する群葉の色の調整を実行する。図示のように、画像355内の群葉の色は、画像355内の山を示す領域の全域にわたる斜線によって示されるように、強調されている。第3ステージ2415はまた、アプリケーションが、方向入力を、画像上UIコントロールの1つのセットに関連付けた後には、非アクティブ化された画像上UIコントロール2035及び画像上UIコントロール2040が、ディスプレイから除去されて、対応する彩度UIコントロール352が、もはや強調表示されないことも示す。
更には、GUI300はまた、画像に対して色調整が実行された場合、選択可能UI項目342の上部に、バーを表示する。この選択可能UI項目342の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対して群葉調整を実施した後の、第3ステージ2415で、選択可能UI項目342の上部に、バーが出現している。
第4ステージ2420は、ユーザが、矢印2430によって示されるように、ユーザの指を更に右にドラッグすることによって、画像355の群葉の色を更に調整した後の、GUI300を示す。図示のように、このステージ2420での画像355内の群葉の色は、画像355内の山を示す領域の全域にわたる、より高密度の斜線によって示されるように、第3ステージ2415での画像内の群葉の色よりも、更に強調されて示される。
一部の実施形態では、ユーザが、画像上UIコントロールのセットに関連付けられている方向入力の提供を開始した後、その画像上UIコントロールのセットは常に、画像から完全に消滅するまで、徐々に消失し始める。第4ステージ2420は、ユーザが、更に右へと指を移動させた後に、画像上UIコントロール2055及び画像上UIコントロール2060が、徐々に消失したことを示す。
図20、21、22、23、及び図24に示される上記の実施例では、重ね合わせUIコントロール2025〜2060のセットは、4つの矢印として画像355上に表示されるが、他の実施形態では、重ね合わせUIコントロールのセットは、異なる外観を有し得る。図25は、重ね合わせUIコントロールに関する2つの他の実施例を示す。第1の実施例で示すように、重ね合わせUIコントロール2545、2550、2555、及び重ね合わせUIコントロール2560のセットは、ユーザによって選択された画像355上の場所2525から延びる、アームのセットを含む。各重ね合わせUIコントロールはまた、アニメーション化された方向矢印も含み、この矢印は、矢印によって示される方向で、アーム内部を横断する。更には、各重ね合わせUIコントロールは、その重ね合わせUIコントロールに対応する調整操作を表す色で、表示される。重ね合わせUIコントロール2545及び重ね合わせUIコントロール2550は、1つの色で(例えば、黒で)表示され、その一方で、重ね合わせUIコントロール2555及び重ね合わせUIコントロール2560は、別の色で(例えば、白で)表示されるが、これは、重ね合わせUIコントロールのこれらの2つのセットが、異なる調整を開始するためのものであるからである。第2の実施例は、重ね合わせUIコントロールに関する第2の代替的な外観を示す。具体的には、実施例(2)は、ユーザにサムネイルのプレビューを提供する、重ね合わせUIコントロール2543、2547、2553、及び重ね合わせUIコントロール2557のセットを示す。図示のように、サムネイル2570のセットが、各重ね合わせUIコントロール上に表示される。このサムネイルは、その重ね合わせUIコントロール上のサムネイルの場所に基づいて適用されるであろう編集に対応する、画像355のプレビューを提供する。例えば、サムネイル2585は、ユーザが、場所2580に基づく方向入力を提供した場合に、画像355がどのように見えることになるかの、プレビューを提供する。
図26は、画像上の場所のユーザ選択に基づいて、画像内の彩度、肌の色調、空の色、及び群葉の色を調整するための画像上UIコントロールのセットを提供するためのプロセス2600を、概念的に示す。一部の実施形態では、このプロセスは、画像編集アプリケーションによって実行される。最初の3つの操作2605、2610、及び2615は、図19のプロセス1900の、最初の3つの操作1905、1910、及び1915と同一である。このプロセスは、画像上の場所の選択を(2605で)受け取ることによって開始する。次いで、このプロセスは、画像上の選択された場所に対応する、画素のセットの色値を(2610で)取得する。一部の実施形態では、この画素のセットは、選択された場所の近くに位置する画素である。
次に、このプロセスは、取得された色値に対する一連の分析を(2615で)実行する。一部の実施形態では、各分析は、取得された色値に基づいて、選択された場所が特定のコンテンツのタイプに関連付けられているか否かを判定する。例えば、この一連の分析は、選択された場所が肌の色調に関連付けられているか否かを判定するための分析、選択された場所が空の色に関連付けられているか否かを判定するための分析、及び、選択された場所が群葉の色に関連付けられているか否かを判定するための分析を含む。
このプロセスは、一連の分析からの結果に基づいて、選択された場所が肌の色調に関連付けられているか否かを(2620で)判定する。選択された場所が肌の色調に関連付けられている場合には、このプロセスは、画像内の肌の色調を調整するためのUIコントロールのセットを(2625で)提供する。一部の実施形態では、この肌の色調を調整するためのUIコントロールのセットは、画像上の選択された場所の周囲に表示される。
このプロセスは、一連の分析からの結果に基づいて、選択された場所が空の色に関連付けられているか否かを(2630で)判定する。選択された場所が空の色に関連付けられている場合には、このプロセスは、画像内の空の色を調整するためのUIコントロールのセットを(2635で)提供する。一部の実施形態では、この空の色を調整するためのUIコントロールのセットは、画像上の選択された場所の周囲に表示される。
このプロセスは、一連の分析からの結果に基づいて、選択された場所が群葉の色に関連付けられているか否かを(2640で)判定する。選択された場所が群葉の色に関連付けられている場合には、このプロセスは、画像内の群葉の色を調整するためのUIコントロールのセットを(2645で)提供する。一部の実施形態では、この群葉の色を調整するためのUIコントロールのセットは、画像上の選択された場所の周囲に表示される。
次に、このプロセスは、画像全体に関する彩度を調整するためのUIコントロールのセットを(2650で)提供する。一部の実施形態では、このプロセスは、ユーザによって選択される画像上の場所とは無関係に、この画像全体に関する彩度を調整するためのUIコントロールのセットを、常に提供する。
次いで、このプロセスは、方向入力が受け取られるか否かを(2655で)判定する。方向入力が受け取られる場合には、このプロセスは、その方向入力に基づいて、画像に対する色調整操作を(2660で)実行する。次いで、このプロセスは、画像上UIコントロールが選択解除されるか否かを(2665で)判定する。一部の実施形態では、画像上UIコントロールのセットは、タッチ又はニアタッチ感応スクリーンを有する装置から、指を引き上げること(又は、ボタンを解除すること)によって、選択解除することができる。
受け取られる方向入力が存在しないことを、このプロセスが(2655で)判定する場合には、このプロセスはまた、操作2665に進み、画像上UIコントロールが選択解除されるか否かを判定する。画像上UIコントロールのセットが選択解除されない場合には、このプロセスは、方向入力が受け取られるか否かを判定するために、2655に戻る。その一方で、画像上UIコントロールのセットが選択解除される場合には、このプロセスは終了する。
一部の実施形態では、画像上に表示されるUIコントロールのセットは、方向依存性UIコントロールである。これらの実施形態では、ユーザは、画像に対して方向入力(すなわち、ベクトル)を提供することによって、画像上の色調整操作のうちの1つをアクティブ化することができる。この方向入力は、方向及び大きさを含むベクトルである。図27は、画像内の場所2725をユーザが選択した後に表示され得る、例示的な方向依存性UIコントロールのセット2700を示す。UIコントロールのセット2700は、UIコントロール2705〜2720を含む。各UIコントロールは、異なる概ねの方向に対応する。例えば、UIコントロール2705は、画像の垂直軸に沿って概ね上向きの方向(すなわち、方向2730と方向2735との間)に対応し、UIコントロール2710は、画像の水平軸に沿って概ね右への方向(すなわち、方向2735と方向2740との間)に対応し、UIコントロール2715は、画像の垂直軸に沿って概ね下向きの方向(すなわち、方向2740と方向2745との間)に対応し、UIコントロール2720は、画像の水平軸に沿って概ね左への方向(すなわち、方向2745と方向2730との間)に対応する。ユーザが、ベクトル2750などの方向入力を提供すると、このアプリケーションは、ベクトル2750の方向が、特定のUIコントロールの概ねの方向の範囲内に収まるか否かを判定する。一部の実施形態では、ベクトル2750は、選択された場所2725から新たな場所2760への、タッチ若しくはニアタッチ感応スクリーンを有する装置上での指の移動、又はカーソルの移動によって作り出される。一部の実施形態では、ベクトル2750は、選択された場所2725から新たな場所2760への直線「c」であると判定される。
一部の実施形態では、ベクトルの方向は、軸に対する角度として表すことができる。例えば、一部の実施形態のアプリケーションは、水平軸に沿った方向2755を、0度として使用するように選択することができる。これらの実施形態では、各方向は、0度の方向2755から時計回りに進む角度の観点で、表すことができる。例えば、方向入力2750の方向は、角度「a」として表すことができる。これらの実施形態では、方向入力は、その方向入力の角度が、方向2735(45度)と方向2730(135度)との間である場合には、UIコントロール2705に関連付けられている。同様に、方向入力は、その方向入力の角度が、方向2730(135度)と方向2745(225度)との間である場合には、UIコントロール2720に関連付けられ、方向入力は、その方向入力の角度が、方向2730(225度)と方向2745(315度)との間である場合には、UIコントロール2715に関連付けられ、方向入力は、その方向入力の角度が、方向2740(315度)と方向2735(45度)との間である場合には、UIコントロール2710に関連付けられている。それゆえ、30度の方向を有する方向入力は、UIコントロール2710に関連付けられ、70度の方向を有する別の方向入力は、UIコントロール2705に関連付けられている。この実施例では、方向入力2750の角度(すなわち、角度「a」)は、315度と45度との間であるため、このアプリケーションは、UIコントロール2710の強調表示によって示されるように、方向入力2750をUIコントロール2710に関連付ける。
一部の実施形態では、各色調整操作は、画像に適用するための調整値の範囲に関連付けられている。すなわち、より大きい調整値は、より大きい程度(又は、度合)の色調整操作を画像に対して適用することを示し、より小さい調整値は、より小さい程度(又は、度合)の色調整操作を画像に対して適用することを示す。これらの実施形態では、アプリケーションは、方向入力の大きさに基づいて、色調整操作に関する調整値を決定する。種々の実施形態は、種々の技術を使用して、方向入力の大きさを計算する。一部の実施形態では、このアプリケーションは、方向入力2750の大きさを、選択された場所2725から新たな場所2760までのベクトルの距離「c」として判定する。他の実施形態では、各方向依存性UIコントロールは、対応する軸を有する。例えば、UIコントロール2710は、軸2755に対応する。これらの実施形態では、アプリケーションは、方向入力2750の大きさを、UIコントロール2710の対応する軸2755に沿って、ベクトル2750によってカバーされる距離である、距離「b」として判定する。いずれの場合にも、計算された大きさを使用して、画像に対して色調整操作を適用するための調整値を決定する。
図27に示す方向依存性UIコントロールのセット2700は、4つの方向依存性UIコントロールを含むのみであるが、一部の実施形態は、画像に対する種々の調整を提供するための、4つよりも多いか又は4つよりも少ない方向依存性UIコントロールを、画像上に提供することが、当業者には明らかなはずである。
図28は、ユーザから方向入力を受け取り、その入力の方向及び大きさに基づいて、対応する色調整操作を画像に適用するためのプロセス2800を、概念的に示す。一部の実施形態では、このアプリケーションは、アプリケーションが、画像上の場所の選択を受け取り、対応するUIコントロールのセットを画像上に提供した後に、プロセス2800を実行する。
このプロセスは、画像に対する方向入力を(2805で)受け取ることによって開始する。一部の実施形態では、方向入力は、方向及び大きさを含む。次いで、このプロセスは、方向入力の方向を(2810で)判定する。一部の実施形態では、方向入力の方向を判定する操作は、画像の軸に対する方向入力の角度を判定することを伴う。
方向入力の方向を判定した後、このプロセスは、その方向をUIコントロールに(2815で)関連付ける。一部の実施形態では、このプロセスは、図27を参照して上述された技術を使用して、特定のUIコントロールに方向を関連付ける。これらの実施形態では、プロセスは、異なるUIコントロールに、異なる方向の範囲を割り当てる。次いで、このプロセスは、その入力の方向が、特定のUIコントロールに関連付けられている範囲内に収まるか否かを判定する。
次に、このプロセスは、方向入力の大きさを(2820で)判定する。一部の実施形態では、このプロセスは、図27を参照して上述された技術を使用して、方向入力の大きさを判定する。次いで、このプロセスは、その方向入力の大きさに基づいて、(2825で)調整値を計算する。一部の実施形態では、より大きい大きさは、より大きい調整値に対応し、より小さい大きさは、より小さい調整値に対応する。
最終的に、このプロセスは、計算された調整値を使用して、関連付けられているUIコントロールに対応する色調整操作を、画像に適用する。一部の実施形態では、このプロセスは、ユーザ入力を受け取るUIコントロールに基づいて、画像の一部分にのみ色調整を適用する。更には、このプロセスは、画像の画素の特定のセットに、最大限の色調整を適用し、画像の画素の別のセットに、より少ない程度の色調整を適用することができる。次いで、このプロセスは終了する。
図29は、画像の色値を編集するための、画像上UIコントロールのセットを提供する、一部の実施形態の画像編集アプリケーション2900を示す。一部の実施形態では、画像編集アプリケーション2900は、プロセス1900、2600、及びプロセス2800を実行する。画像編集アプリケーション2900は、画像編集アプリケーション1800と同一の、幾つかの構成要素を含む。例えば、画像編集アプリケーション2900は、コンテンツ分析モジュール1845のセット、色空間変換モジュール1815、画素分離モジュール1810、及び色調整エンジン1820を含む。図示のように、この画像編集アプリケーションはまた、画像プロセッサ2940も含む。
UIモジュール1805は、画像上の場所のユーザ選択を受け取り、その選択された場所についての情報を、画像プロセッサ2940に渡す。選択された場所を受け取ると、画像プロセッサ2940は、その画像上の選択された場所に対応する画素のセットの色値を取得し、その画素のセット、及びそれらの色値を、コンテンツ分析モジュール1845のセットに渡す。コンテンツ分析モジュール1845のセットは、それらの色値に対して、一連の様々な分析を実行する。
一部の実施形態では、各コンテンツ分析モジュール1845は、受け取った色値に基づいて、選択された場所が異なるコンテンツのタイプに関連付けられているか否かを判定するために、異なる分析を実行する。例えば、特定のコンテンツ分析モジュールは、選択された場所が肌の色調に関連付けられているか否かを判定するための、色値に対する分析を実行し、別のコンテンツ分析モジュールは、選択された場所が空に関連付けられているか否かを判定するための、色値に対する別の分析を実行する。次いで、コンテンツ分析モジュール1845のセットは、それらの分析の結果(すなわち、選択された場所に関連付けられている判定された特定のコンテンツのタイプ)を、画像プロセッサ2940に渡す。
コンテンツ分析モジュール1845から受け取った分析の結果に基づいて、画像プロセッサ2940は、画像上の表示のための、種々の色値を調整するための画像上UIコントロールのセットを選択する。次いで、画像プロセッサ2940は、その選択された画像上UIコントロールのセットを表示するように、UIモジュール1805にリクエストする。UIモジュール1805が、画像に対する入力を受け取ると、UIモジュール1805は、その受け取った入力を、画像プロセッサ2940に返す。一部の実施形態では、受け取られる入力は、方向入力である。
画像プロセッサ2940は、その方向入力を、特定の色調整操作(例えば、彩度調整、自然な彩度調整、肌の色調調整など)に関連付ける。次いで、画像プロセッサ2940は、その特定の色調整操作に関連付けられている色値の範囲内に収まる色値を有する、画像内の画素のセットを特定するように、画素分離モジュール1810にリクエストする。一部の実施形態では、画像の色値は、それらの色値の範囲を定義するために使用される色空間(例えば、YCC色空間)とは異なる色空間(例えば、RGB色空間)内で定義される。これらの実施形態では、画素のセットを特定するように、画素分離モジュール1810にリクエストする前に、画像プロセッサ2940は、画像の色値を、それらの色値の範囲を定義するために使用される色空間に変換するように、色空間変換モジュール1815にリクエストする。
画素のセットが特定された後に、画像プロセッサ2940は、その画像、及び特定された画素についての情報を、画像に対して一連の色調整を実行するための色調整エンジン1820に送る。色調整エンジン1820は、画像内の特定された画素に、種々の色調整を適用する。図示のように、色調整エンジン1820は、画像にコントラスト調整を適用するためのコントラスト調整エンジン1825、画像に明度調整を適用するための明度調整エンジン1830、及び画像に彩度調整を適用するための彩度調整エンジン1835を含む。これらは、画像に対して実行することが可能な例示的な色調整に過ぎず、色調整エンジン1820は、画像に対して更なるタイプの色調整を実行するための、更なる色調整エンジンを含み得ることが、当業者には明らかなはずである。例えば、明度調整エンジン1830は、ユーザ入力を使用して、画像の明度を調整するための明度調整値を決定し、コントラスト調整エンジン1825は、ユーザ入力を使用して、画像のコントラストを調整するためのコントラスト調整値を決定し、彩度調整エンジン1835は、ユーザ入力を使用して、画像の彩度を調整するための彩度調整値を決定する。次いで、種々の調整エンジン1825〜1835は、それらの明度調整、コントラスト調整、及び彩度調整を画像に適用して、編集された画像を作り出す。
一部の実施形態では、色調整エンジン1820は、変換された色空間内で、画像の色値を調整する。これらの実施形態では、画像プロセッサ2940は、色空間変換モジュール1815に、調整された画像を送り、その画像の色値を、その本来の色空間に変換して戻す。次いで、画像プロセッサ2940は、メディア記憶装置に、及び、表示のためのUIモジュール1805に、その調整された画像を送る。
画像上にUIコントロールのセットを提供することは、多くの利益を有する。例えば、画像上UIコントロールは、ユーザが調整値の範囲内で調整値を指定することを可能にするための、範囲スライダよりも細かい粒度を有する、より大きいスケールを提供する。図30は、GUI300を通じた、そのような利益の例を示す。図30に示すように、画像355の空の色を調整するための空UIコントロール354、並びに対応する画像上UIコントロール2045及び画像上UIコントロール2050がアクティブ化されている図7及び図23を参照して上述されたように、ユーザは、空UIコントロール354を操作するか、あるいは画像上UIコントロール2045及び画像上UIコントロール2050を使用して、画像に対して方向入力を提供することによって、画像の空の色を調整することができる。この実施例では、空UIコントロール354は、範囲スライダとして実装されることにより、ユーザは、範囲スライダ354に沿ってつまみを移動させることによって、0〜100の間で調整値を指定することが可能となる。範囲スライダ354は、サイズが限定されているため、範囲スライダ354に沿ってユーザがつまみを移動させる各単位3005は、調整値を、大きい量(例えば、25)で増大又は減少させる。その一方で、ユーザが、画像に対して方向入力を提供することによって、画像上UIコントロールを使用する場合、ユーザは、選択された場所から画像の両端まで移動させることができる。それゆえ、画像上でユーザが移動させる各単位3010は、調整値を、小さい数値(例えば、2)でのみ増大又は減少させる。それゆえ、画像上UIコントロールは、調整値を指定するための、より細かい粒度を有する、遙かに大きいスケールをユーザに提供する。
B.画像上露出コントロール
上記のセクションの図20、21、22、23、及び図24は、画像上UIコントロールの幾つかの実施例を説明するものであった。それらの実施例では、アプリケーションは、ユーザが、画像内の場所を選択することを可能にし、その選択された場所に関連付けられているコンテンツのタイプに応じて、画像の色を調整するための種々の画像上UIコントロールのセットを提供する。このセクションは、これらの画像上UIコントロールの、幾つかの更なる実施例を提供する。具体的には、図31は、選択された場所に関連付けられているコンテンツのタイプに応じて、画像の露出設定を調整するための種々の画像上UIコントロールのセットを提供する操作を示す。具体的には、図31は、GUI300を通じて、種々の画像上UIコントロールのセットをアクティブ化する操作を、4つの異なるステージ3105、3110、3115、及びステージ3120で示す。これらのステージのそれぞれを、以下でより詳細に説明する。
第1ステージ3105は、図20の第1ステージ2005と同様であるが、ただし、ユーザは、選択可能UI項目3125の強調表示によって示されるように、画像355の露出設定を調整するための選択可能UI項目3125を選択している。選択可能UI項目3125の選択は、選択可能UI項目3125を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、選択可能UI項目3125にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図31に示すように、露出調整UIコントロール3130〜3150のセットが、UIコントロール表示領域350内に表示される。種々の実施形態は、画像の色を調整するための種々のタイプのUIコントロールを提供する。この実施例では、露出調整UIコントロールは、スライディング軌道に沿ってスライド可能な複数の制御つまみ3130〜3150を含む、統合型スライダコントロールである。
一部の実施形態では、統合型スライダコントロールをメディア編集アプリケーションで使用することにより、ユーザは、スライディング軌道に沿って幾つかの異なる制御つまみを移動させることによって、画像の幾つかの異なる特性(例えば、明度、コントラストなど)を修正することが可能となる。このマルチスライダ上の各つまみ(3130〜3150)は、画像に対して実行することが可能な、異なる調整操作に対応する。UIコントロール3130(つまみ3130)は、画像のシャドウを調整するためのものであり、UIコントロール3135及びUIコントロール3140(つまみ3135及びつまみ3140)は、画像のコントラストを調整するためのものであり、UIコントロール3145(つまみ3145)は、画像の明度を調整するためのものであり、UIコントロール3150(つまみ3150)は、画像のハイライトを調整するためのものである。ユーザは、これらのつまみのうちの1つを選択して、マルチスライダに沿った異なる位置に移動させることによって、画像に対する種々の色調整を開始することができる。この統合型スライダコントロールの様々な操作は、米国仮出願第61/607,554号で説明されている。
第2ステージ3110は、ユーザが、画像355上の場所を選択した後の、GUI300を示す。図示のように、ユーザは、海を表示する、画像上の場所を選択している。画像355上の場所の選択は、画像を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、画像の場所にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。上述のように、ユーザが画像上の場所を選択した後、一部の実施形態の画像編集アプリケーションは、その選択された場所に関連付けられている特定のコンテンツのタイプを判定するために、一連の分析を実行する。種々の実施形態は、種々の技術を使用して、選択された場所に関連付けられているコンテンツのタイプを判定する。一部の実施形態のアプリケーションは、最初に、種々のコンテンツのタイプに関連付けられている種々の色値の範囲を定義する。例えば、一部の実施形態のアプリケーションは、シャドウに関連付けられている色値の範囲、中間色調に関連付けられている色値の範囲、及びハイライトに関連付けられている色値の範囲を定義する。次いで、このアプリケーションは、画像内の選択された場所に対応する画素のセットの色値が、特定のコンテンツのタイプに関連付けられている色値の範囲内に収まるか否かを判定し、次いで、その特定のコンテンツのタイプに関連付けられている画像上UIコントロールのセットを表示する。
種々の実施形態は、画像上UIコントロールのセットを、種々の方式で実装する。例えば、一部の実施形態のアプリケーションは、画像上UIコントロールのセットを、方向依存性UIコントロールとして実装する。これらの実施形態の一部では、アプリケーションは、UIコントロールに関連付けられている色調整操作を開始するようにユーザを導くために、各UIコントロールに関する方向矢印を表示する。ユーザは、種々の方向入力を提供することによって、種々の色調整操作を開始する。この方向入力の方向に基づいて、アプリケーションは、画像に対して特定の色調整を実行する。
第2ステージ3110では、ユーザは、暗色(すなわち、低輝度値)を有する、海を表示する画面上の場所を選択しているため、このアプリケーションは、選択された場所に対応する画素の色値が、シャドウに関連付けられていることを判定する。結果として、このアプリケーションは、画像内のシャドウを調整するための画像上UIコントロール3165及び画像上UIコントロール3170(垂直軸に沿った2つの方向の矢印として表示される)のセットを表示する。画像上UIコントロール3165及び画像上UIコントロール3170のセットは、シャドウUIコントロール3130に対応する。一部の実施形態では、このアプリケーションはまた、シャドウUIコントロール3130がアクティブ化されていることを示すために、シャドウUIコントロール3130を強調表示する。シャドウを調整するためのUIコントロールに加えて、一部の実施形態のアプリケーションはまた、画像に関するコントラストを調整するためのコンテンツに依存しないUIコントロールのセットも表示する。これらの実施形態では、コンテンツに依存しないUIコントロールのセットは、ユーザによって選択される場所とは無関係に、常に表示される。この実施例では、アプリケーションは、画像に関するコントラストを調整するためのコンテンツに依存しないUIコントロール3155及びUIコントロール3160(水平軸に沿った2つの方向の矢印として表示される)のセットを表示する。画像上UIコントロール3155及び画像上UIコントロール3160のセットは、コントラストUIコントロール3135及びコントラストUIコントロール3140に対応する。一部の実施形態では、このアプリケーションはまた、コントラストUIコントロール3135及びコントラストUIコントロール3140がアクティブ化されていることを示すために、コントラストUIコントロール3135及びコントラストUIコントロール3140を強調表示する。この図には示されないが、この第2ステージ3110でのユーザは、画像に対して方向入力を提供することによって、露出調整(すなわち、コントラスト調整又はシャドウ調整)が可能である。
第3ステージ3115は、ユーザが、画像355上の異なる場所を選択した後の、GUI300を示す。図示のように、ユーザは、明色(すなわち、高輝度値)を有する、青空を示す画像上の場所を選択している。このアプリケーションは、この新たに選択された場所に対応する画素の色値が、ハイライトに関して定義される色値の範囲内に収まることを判定する。結果として、このアプリケーションは、画像のハイライトを調整するための画像上UIコントロール3175及び画像上UIコントロール3180(垂直軸に沿った2つの方向の矢印として表示される)のセットを表示する。画像上UIコントロール3175及び画像上UIコントロール3180のセットは、ハイライトUIコントロール3150に対応する。図示のように、このアプリケーションはまた、ハイライトUIコントロール3150がアクティブ化されていることを示すために、ハイライトUIコントロール3150を強調表示する。第2ステージ3110と同様に、ハイライトを調整するための画像上UIコントロールに加えて、このアプリケーションはまた、画像に関するコントラストを調整するためのコンテンツに依存しないUIコントロール3155及びUIコントロール3160のセットも表示する。このアプリケーションはまた、コントラストUIコントロール3135及びコントラストUIコントロール3140がアクティブ化されていることを示すために、コントラストUIコントロール3135及びコントラストUIコントロール3140を強調表示する。この図には示されないが、この第3ステージ3115でのユーザは、画像に対して方向入力を提供することによって、特定の色調整(すなわち、コントラスト調整又はハイライト調整)を開始することができる。
第4ステージ3120は、ユーザが、画像355上の異なる場所を選択した後の、GUI300を示す。図示のように、ユーザは、中間色調(すなわち、中輝度値)を有する、山を示す画像上の場所を選択している。アプリケーションは、この新たに選択された場所に対応する画素の色値が、中間色調に関して定義される色値の範囲内に収まることを判定する。結果として、このアプリケーションは、画像の明度を調整するための画像上UIコントロール3185及び画像上UIコントロール3190(垂直軸に沿った2つの方向の矢印として表示される)のセットを表示する。画像上UIコントロール3185及び画像上UIコントロール3190のセットは、明度UIコントロール3145に対応する。図示のように、このアプリケーションはまた、明度UIコントロール3145がアクティブ化されていることを示すために、明度UIコントロール3145を強調表示する。第2ステージ3110及び第3ステージ3115と同様に、明度を調整するための画像上UIコントロールに加えて、このアプリケーションはまた、画像に関するコントラストを調整するためのコンテンツに依存しないUIコントロール3155及びUIコントロール3160のセットも表示する。このアプリケーションはまた、コントラストUIコントロール3135及びコントラストUIコントロール3140がアクティブ化されていることを示すために、コントラストUIコントロール3135及びコントラストUIコントロール3140を強調表示する。この図には示されないが、この第4ステージ3120でのユーザは、画像に対して方向入力を提供することによって、特定の露出調整(すなわち、コントラスト調整又は明度調整)を選択することができる。
図31は、画像に対して種々の露出調整を実行するための、種々の画像上UIコントロールをアクティブ化する例示的操作を示す。図32、33、34、及び図35は、種々の画像上UIコントロールを操作することにより、画像に対して種々の露出調整を実行する実施例を示す。具体的には、図32は、画像に関するコントラストを調整するための画像上UIコントロールのセットを操作する例示的操作を、4つの異なるステージ3205、3210、3215、及びステージ3220で示す。
第1ステージ3205は、図31の第1ステージ3105と同一である。図示のように、ユーザは、画像355の露出設定を調整するための選択可能UI項目3125を選択している。第2ステージ3210は、ユーザが、画像355上の場所を選択した後の、GUI300を示す。画像355上の場所の選択は、画像を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、画像の場所にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、暗色を有する、海を示す画像355上の場所を、その場所で指をタップすることによって選択している。この選択の結果として、画像上UIコントロール3155〜3170のセットが、画像上の選択された場所の周囲に表示される。この画像上UIコントロールのセットは、画像に関するコントラストを調整するためのコントラストUIコントロール3135及びコントラストUIコントロール3140に対応する、画像上UIコントロール3155及び画像上UIコントロール3160のセット、並びに、画像のシャドウを調整するためのシャドウUIコントロール3130に対応する、画像上UIコントロール3165及び画像上UIコントロール3170のセットを含む。第2ステージ3210はまた、対応するコントラストUIコントロール3135及びコントラストUIコントロール3140、並びにシャドウUIコントロール3130が強調表示されることにより、これらのUIコントロールがアクティブ化されていることを示す点も示す。
第3ステージ3215は、ユーザが、画像355に対する方向入力を提供することによって、画像355のコントラストの調整を開始した後の、GUI300を示す。この方向入力は、特定の方向に、タッチ若しくはニアタッチ感応スクリーンを有する装置上でユーザの指をドラッグすることによって、又はカーソルをドラッグすることによって、提供することができる。この実施例では、ユーザは、矢印3225によって示されるように、ユーザの指を画像355の右にドラッグすることによって、方向入力を提供する。アプリケーションは、この方向入力を、画像355に関するコントラストを増大させるための画像上UIコントロール3155及び画像上UIコントロール3160と関連付けて、画像355に対するコントラスト調整を実行する。図示のように、画像355内の色のコントラストは、増大されている。画像355の、より暗い領域(例えば、山の領域及び海の領域)は、それらのより暗い領域の全域にわたる斜線によって示されるように、暗色化され、画像355の、より明るい領域(例えば、雲及び太陽の領域)は、それらのより明るい領域の輪郭を描く破線によって示されるように、明色化される。第3ステージ3215はまた、アプリケーションが、方向入力を、画像上UIコントロールの1つのセットに関連付けた後には、非アクティブ化された画像上UIコントロール3165及び画像上UIコントロール3170が、ディスプレイから除去されて、対応するシャドウUIコントロール3130が、もはや強調表示されないことも示す。第3ステージ3215はまた、対応するコントラストUIコントロール3135及びコントラストUIコントロール3140が、互いに離れる方向に移動されていることも示す。
更には、GUI300はまた、画像に対して露出調整が実行された場合、選択可能UI項目3215の上部に、バーを表示する。この選択可能UI項目3215の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対してコントラスト調整を実施した後の、第3ステージ3215で、選択可能UI項目3215の上部に、バーが出現している。
第4ステージ3220は、ユーザが、矢印3230によって示されるように、ユーザの指を更に右にドラッグすることによって、画像355のコントラストを更に増大させた後の、GUI300を示す。図示のように、このステージ3220での画像355の暗色領域内の色は、画像355の暗色領域の全域にわたる、より高密度の斜線によって示されるように、第3ステージ3215での画像の暗色領域内の色よりも、更に暗色化されて示される。同様に、このステージ3220での画像355の明色領域内の色は、画像355の明色領域の輪郭を描く、更に細かい破線によって示されるように、第3ステージ3215での画像の明色領域内の色よりも、更に明色化されて示される。第4ステージ3320はまた、対応するコントラストUIコントロール3135及びコントラストUIコントロール3140が、互いに更に離れる方向に移動されていることも示す。
図32は、画像のコントラストを調整するための画像上UIコントロールのセットを操作する例示的操作を示す。図33は、画像のシャドウを調整するための画像上UIコントロールのセットを操作する例示的操作を示す。具体的には、図33は、この露出調整操作を、4つの異なるステージ3305、3310、3315、及びステージ3320で示す。
第1ステージ3305は、図31の第1ステージ3105と同一である。図示のように、ユーザは、画像355の露出設定を調整するための選択可能UI項目3125を選択している。第2ステージ3310は、ユーザが、画像355上の場所を選択した後の、GUI300を示す。画像355上の場所の選択は、画像を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、画像の場所にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、暗色を有する、海を示す画像355上の場所を、その場所で指をタップすることによって選択している。この選択の結果として、画像上UIコントロール3155〜3170のセットが、画像上の選択された場所の周囲に表示される。この画像上UIコントロールのセットは、画像のコントラストを調整するためのコントラストUIコントロール3135及びコントラストUIコントロール3140に対応する、画像上UIコントロール3155及び画像上UIコントロール3160のセット、並びに、画像のシャドウを調整するためのシャドウUIコントロール3130に対応する、画像上UIコントロール3165及び画像上UIコントロール3170のセットを含む。第2ステージ3310はまた、対応するコントラストUIコントロール3135及びコントラストUIコントロール3140、並びにシャドウUIコントロール3130が強調表示されることにより、これらのUIコントロールがアクティブ化されていることを示す点も示す。
第3ステージ3315は、ユーザが、画像355に対する方向入力を提供することによって、画像355のシャドウの調整を開始した後の、GUI300を示す。この方向入力は、特定の方向に、タッチ若しくはニアタッチ感応スクリーンを有する装置上でユーザの指をドラッグすることによって、又はカーソルをドラッグすることによって、提供することができる。この実施例では、ユーザは、矢印3325によって示されるように、画像355の底部に向けて、ユーザの指を下向きにドラッグすることによって、方向入力を提供する。アプリケーションは、この方向入力を、画像内のシャドウを暗色化するための画像上UIコントロール3170と関連付けて、画像355に対するシャドウ調整を実行する。図示のように、画像355内の暗色領域(例えば、海を示す領域)は、画像355内の海を示す領域の全域にわたる斜線によって示されるように、暗色化されている。第3ステージ3315はまた、アプリケーションが、方向入力を、画像上UIコントロールの1つのセットに関連付けた後には、非アクティブ化された画像上UIコントロール3155及び画像上UIコントロール3160が、ディスプレイから除去されて、対応するコントラストUIコントロール3135及びコントラストUIコントロール3140が、もはや強調表示されないことも示す。第3ステージ3315はまた、対応するシャドウUIコントロール3130が、左に移動されていることも示す。
更には、GUI300はまた、画像に対して露出調整が実行された場合、選択可能UI項目3125の上部に、バーを表示する。この選択可能UI項目3125の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対してシャドウ調整を実施した後の、第3ステージ3315で、選択可能UI項目3125の上部に、バーが出現している。
第4ステージ3320は、ユーザが、矢印3330によって示されるように、ユーザの指を更に下向きにドラッグすることによって、画像355のシャドウを更に調整した後の、GUI300を示す。図示のように、このステージ3320での画像355の暗色領域(例えば、海及び山を示す領域)は、画像355内の暗色領域の全域にわたる、より高密度の斜線によって示されるように、第3ステージ3315での画像内の暗色領域内よりも、更に彩度が増大されて示される。第4ステージ3320はまた、対応するシャドウUIコントロール3130が、更に左に移動されていることも示す。
図33は、画像のシャドウを調整するための画像上UIコントロールのセットを操作する例示的操作を示す。図34は、画像のハイライトを調整するための画像上UIコントロールのセットを操作する例示的操作を示す。具体的には、図34は、この露出調整操作を、4つの異なるステージ3405、3410、3415、及びステージ3420で示す。
第1ステージ3405は、図31の第1ステージ3105と同一である。図示のように、ユーザは、画像355の露出設定を調整するための選択可能UI項目3125を選択している。第2ステージ3410は、ユーザが、画像355上の場所を選択した後の、GUI300を示す。画像355上の場所の選択は、画像を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、画像の場所にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、明色を有する、空を示す画像355上の場所を、その場所で指をタップすることによって選択している。この選択の結果として、画像上UIコントロール3155、3160、3175、及び画像上UIコントロール3180のセットが、画像上の選択された場所の周囲に表示される。この画像上UIコントロールのセットは、画像のコントラストを調整するためのコントラストUIコントロール3135及びコントラストUIコントロール3140に対応する、画像上UIコントロール3155及び画像上UIコントロール3160のセット、並びに、画像のハイライトを調整するためのハイライトUIコントロール3150に対応する、画像上UIコントロール3175及び画像上UIコントロール3180のセットを含む。第2ステージ3410はまた、対応するコントラストUIコントロール3135及びコントラストUIコントロール3140、並びにハイライトUIコントロール3150が強調表示されることにより、これらのUIコントロールがアクティブ化されていることを示す点も示す。
第3ステージ3415は、ユーザが、画像355に対する方向入力を提供することによって、画像355のハイライトの調整を開始した後の、GUI300を示す。この方向入力は、特定の方向に、タッチ若しくはニアタッチ感応スクリーンを有する装置上でユーザの指をドラッグすることによって、又はカーソルをドラッグすることによって、提供することができる。この実施例では、ユーザは、矢印3425によって示されるように、画像355の底部に向けて、ユーザの指を下向きにドラッグすることによって、方向入力を提供する。アプリケーションは、この方向入力を、画像内のハイライトを暗色化するための画像上UIコントロール3180と関連付けて、画像355に対するハイライト調整を実行する。図示のように、画像355内の明色領域(例えば、太陽及び空を示す領域)は、画像355内の太陽及び空を示す領域の全域にわたる斜線によって示されるように、暗色化されている。第3ステージ3415はまた、アプリケーションが、方向入力を、画像上UIコントロールの1つのセットに関連付けた後には、非アクティブ化された画像上UIコントロール3155及び画像上UIコントロール3160が、ディスプレイから除去されて、対応するコントラストUIコントロール3135及びコントラストUIコントロール3140が、もはや強調表示されないことも示す。第3ステージ3415はまた、対応するハイライトUIコントロール3150が、左に移動されていることも示す。
更には、GUI300はまた、画像に対して露出調整が実行された場合、選択可能UI項目3125の上部に、バーを表示する。この選択可能UI項目3125の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対してハイライト調整を実施した後の、第3ステージ3415で、選択可能UI項目3125の上部に、バーが出現している。
第4ステージ3420は、ユーザが、矢印3430によって示されるように、ユーザの指を更に下向きにドラッグすることによって、画像355のハイライトを更に調整した後の、GUI300を示す。図示のように、このステージ3420での画像355内の明色領域(例えば、太陽及び空を示す領域)は、画像355内の明色領域の全域にわたる、より高密度の斜線によって示されるように、第3ステージ3415での画像内の明色領域内よりも、更に暗色化されて示される。第4ステージ3420はまた、対応するハイライトUIコントロール3150が、更に左に移動されていることも示す。
図34は、画像のハイライトを調整するための画像上UIコントロールのセットを操作する例示的操作を示す。図35は、画像の全体的な明度を調整するための画像上UIコントロールのセットを操作する例示的操作を示す。具体的には、図35は、この露出調整操作を、4つの異なるステージ3505、3510、3515、及びステージ3520で示す。
第1ステージ3505は、図31の第1ステージ3105と同一である。図示のように、ユーザは、画像355の露出設定を調整するための選択可能UI項目3125を選択している。第2ステージ3510は、ユーザが、画像355上の場所を選択した後の、GUI300を示す。画像355上の場所の選択は、画像を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、画像の場所にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、中間色調を有する、山を示す画像355上の場所を、その場所で指をタップすることによって選択している。この選択の結果として、画像上UIコントロール3155、3160、3185、及び画像上UIコントロール3190のセットが、画像上の選択された場所の周囲に表示される。この画像上UIコントロールのセットは、画像のコントラストを調整するためのコントラストUIコントロール3135及びコントラストUIコントロール3140に対応する、画像上UIコントロール3155及び画像上UIコントロール3160のセット、並びに、画像の全体的な明度を調整するための明度UIコントロール3145に対応する、画像上UIコントロール3185及び画像上UIコントロール3190のセットを含む。第2ステージ3510はまた、対応するコントラストUIコントロール3135及びコントラストUIコントロール3140、並びに明度UIコントロール3145が強調表示されることにより、これらのUIコントロールがアクティブ化されていることを示す点も示す。
第3ステージ3515は、ユーザが、画像355に対する方向入力を提供することによって、画像355の全体的な明度の調整を開始した後の、GUI300を示す。この方向入力は、特定の方向に、タッチ若しくはニアタッチ感応スクリーンを有する装置上でユーザの指をドラッグすることによって、又はカーソルをドラッグすることによって、提供することができる。この実施例では、ユーザは、矢印3525によって示されるように、画像355の頂部に向けて、ユーザの指を上向きにドラッグすることによって、方向入力を提供する。アプリケーションは、この方向入力を、画像の明度を増大させる(すなわち、画像の画素の輝度値を増大させる)ための画像上UIコントロール3185と関連付けて、画像355に対する明度調整を実行する。図示のように、画像355の全体が、画像355内の対象物の輪郭を描く破線によって示されるように、明色化されている。第3ステージ3515はまた、アプリケーションが、方向入力を、画像上UIコントロールの1つのセットに関連付けた後には、非アクティブ化された画像上UIコントロール3155及び画像上UIコントロール3160が、ディスプレイから除去されて、対応するコントラストUIコントロール3135及びコントラストUIコントロール3140が、もはや強調表示されないことも示す。第3ステージ3515はまた、対応する明度UIコントロール3145が、左に移動されていることも示す。
更には、GUI300はまた、画像に対して露出調整が実行された場合、選択可能UI項目3125の上部に、バーを表示する。この選択可能UI項目3125の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対して明度調整を実施した後の、第3ステージ3415で、選択可能UI項目3125の上部に、バーが出現している。
第4ステージ3520は、ユーザが、矢印3530によって示されるように、ユーザの指を更に上向きにドラッグすることによって、画像355の明度を更に調整した後の、GUI300を示す。図示のように、このステージ3520での画像355は、画像355の対象物の輪郭を描く、更に細かい破線によって示されるように、第3ステージ3515での画像よりも、更に明色化されて示される。第4ステージ3520はまた、対応する明度UIコントロール3145が、更に左に移動されていることも示す。
図36は、画像上の場所のユーザ選択に基づいて、画像内のコントラスト、明度、シャドウ、及びハイライトを調整するための画像上UIコントロールのセットを提供するためのプロセス3600を、概念的に示す。一部の実施形態では、このプロセスは、画像編集アプリケーションによって実行される。最初の3つの操作3605、3610、及び3615は、図19のプロセス1900の、最初の3つの操作1905、1910、及び1915と同一である。このプロセスは、画像上の場所の選択を(3605で)受け取ることによって開始する。次いで、このプロセスは、画像上の選択された場所に対応する、画素のセットの色値を(3610で)取得する。一部の実施形態では、この画素のセットは、選択された場所の近くに位置する画素である。
次に、このプロセスは、取得された色値に対する一連の分析を(3615で)実行する。一部の実施形態では、各分析は、取得された色値に基づいて、選択された場所が特定のコンテンツのタイプに関連付けられているか否かを判定する。例えば、この一連の分析は、選択された場所が暗色に関連付けられているか否かを判定するための分析、選択された場所が明色に関連付けられているか否かを判定するための分析、及び、選択された場所が中間色調に関連付けられているか否かを判定するための分析を含む。
次いで、このプロセスは、一連の分析からの結果に基づいて、選択された場所が暗色に関連付けられているか否かを(3620で)判定する。一部の実施形態では、このプロセスは、取得された色値が低い輝度(すなわち、明度)レベルを有する場合に、その選択された場所が暗色に関連付けられていることを判定する。選択された場所が暗色に関連付けられている場合には、このプロセスは、画像内のシャドウを調整するためのUIコントロールのセットを(3625で)提供する。一部の実施形態では、このシャドウを調整するためのUIコントロールのセットは、画像上の選択された場所の周囲に表示される。
次いで、このプロセスは、一連の分析からの結果に基づいて、選択された場所が明色に関連付けられているか否かを(3630で)判定する。一部の実施形態では、このプロセスは、取得された色値が高い輝度(すなわち、明度)レベルを有する場合に、その選択された場所が明色に関連付けられていることを判定する。選択された場所が明色に関連付けられている場合には、このプロセスは、画像内のハイライトを調整するためのUIコントロールのセットを(3635で)提供する。一部の実施形態では、このハイライトを調整するためのUIコントロールのセットは、画像上の選択された場所の周囲に表示される。
次いで、このプロセスは、一連の分析からの結果に基づいて、選択された場所が中間色調に関連付けられているか否かを(3640で)判定する。一部の実施形態では、このプロセスは、取得された色値が、平均又は中央値の輝度(すなわち、明度)レベルを有する場合に、その選択された場所が中間色調に関連付けられていることを判定する。選択された場所が中間色調に関連付けられている場合には、このプロセスは、画像内の明度を調整するためのUIコントロールのセットを(3645で)提供する。一部の実施形態では、この明度を調整するためのUIコントロールのセットは、画像上の選択された場所の周囲に表示される。
次に、このプロセスは、画像全体に関するコントラストを調整するためのUIコントロールのセットを(3650で)提供する。一部の実施形態では、このプロセスは、ユーザによって選択される画像上の場所とは無関係に、この画像全体に関するコントラストを調整するためのUIコントロールのセットを、常に提供する。
次いで、このプロセスは、方向入力が受け取られるか否かを(3655で)判定する。方向入力が受け取られる場合には、このプロセスは、その方向入力に基づいて、画像に対する露出調整操作を(3660で)実行する。次いで、このプロセスは、画像上UIコントロールが選択解除されるか否かを(3665で)判定する。一部の実施形態では、画像上UIコントロールのセットは、タッチ又はニアタッチ感応スクリーンを有する装置から、指を引き上げること(又は、ボタンを解除すること)によって、選択解除することができる。
受け取られる方向入力が存在しないことを、このプロセスが(3655で)判定する場合には、このプロセスはまた、操作3665に進み、画像上UIコントロールが選択解除されるか否かを判定する。画像上UIコントロールのセットが選択解除されない場合には、このプロセスは、方向入力が受け取られるか否かを判定するために、3655に戻る。その一方で、画像上UIコントロールのセットが選択解除される場合には、このプロセスは終了する。
III.色バランスコントロール
コンテンツのタイプに関連付けられている画像の一部分のみを調整するためのUIコントロールを提供することに加えて、一部の実施形態の画像編集アプリケーションはまた、画像の色バランスを調整するためのUIコントロールのセットも提供する。非常に多くの場合、種々の照明条件下で画像を取り込むことは、画像の品質に悪影響を及ぼす可能性がある。一般的なアーチファクトは、画像が取り込まれている照明条件によって作り出される、画像内の全体的な望ましくない色かぶりである。例えば、白熱灯の下で取り込まれる画像は、多くの場合、黄色味がかった色を有するため、中立的な照明条件下では白色に見えるはずの対象物は、その画像内では黄色に見える。それゆえ、色バランス調整(別名、ホワイトバランス調整)は、画像内の対象物が自然で心地よく見えるように、画像の全体的な色を補正するための操作である。
一部の実施形態では、このアプリケーションは、画面上の場所をユーザが選択することを可能にする、色バランスUIコントロールを提供する。次いで、このアプリケーションは、選択された場所に対応する画素の色値を取得して、その画素の色値を、設定された基準色(例えば、灰色、理想的な肌色など)に変更する色調整を決定する。この色調整に基づいて、アプリケーションは、画像内の各色を異なる色にマッピングする、色空間変換を生成する。次いで、このアプリケーションは、画像内の全ての画素に、その色空間変換を適用する。
種々の実施形態は、この色バランス調整操作のための種々の基準色を提供する。例えば、一部の実施形態のアプリケーションは、基準色として灰色を設定する。これらの実施形態では、ユーザは、実物では灰色として現われる対象物を表示する、画像内の場所を選択することによって、色バランスUIを通じて画像の色バランスを調整する。
図37は、色バランスUIツールを通じて、画像の色バランスを調整する実施例を、4つの異なるステージ3705、3710、3715、及びステージ3720で示す。
第1ステージ3705は、図3の第2ステージ310と同様であるが、ただし、この第1ステージ3705でのユーザは、種々の色バランスツールのセットの表示をトリガするために、色バランス選択可能UI項目3725を選択したところである。図示のように、ユーザは、画像表示領域345内に表示するための画像355を選択している。一部の実施形態では、色バランスツールをトリガするための選択可能UI項目3725は、ユーザが(メニューバー340内の選択可能UI項目342を選択することによって)色調整ビューを選択した場合に、UIコントロール表示領域350内部に表示される。選択可能UI項目3725の選択は、選択可能UI項目3725を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、選択可能UI項目3725にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。
図示のように、ユーザが選択可能UI項目3725を選択した後に、色バランスツール表示領域3730が、UIコントロール表示領域350の上部に出現する。色バランスツール表示領域3730は、種々の色バランスツールを開始するための、幾つかの選択可能UI項目を含む。例えば、色バランスツール表示領域3730は、「本来のホワイトバランス」ツールを開始するための、選択可能UI項目3735を含む。この「本来のホワイトバランス」ツールは、画像を取り込んだ装置のホワイトバランス設定を使用して、その画像のホワイトバランスを調整する。色バランスツール表示領域3730はまた、種々の事前設定ホワイトバランスツールを開始するための、選択可能UI項目のセットも含む。事前設定ホワイトバランスツールは、昼光、曇り、フラッシュ、日陰、白熱、及び蛍光照明条件などの、予め定義された種々の照明条件に基づいて、画像のホワイトバランスを調整する。更には、色バランスツール表示領域3730はまた、カスタムホワイトバランスツールを開始するための選択可能UI項目3745、及びカスタム肌色バランスツールを開始するための選択可能UI項目3740などの、2つのカスタム色バランスツールを開始するための選択可能UI項目も含む。
カスタムホワイトバランスツールは、ユーザが、中立的な照明条件下では白色又は灰色であると想定される、画像上の場所を選択することを可能にする。次いで、画像編集アプリケーションは、その色値が白色を表すようにその場所の色値を調整するためのアルゴリズム又は数学的方程式を定義する。次いで、このアプリケーションは、画像内の画素の残部に、同じアルゴリズム又は数学的方程式を適用する。
第2ステージ3710は、ユーザが、カスタムホワイトバランスツールを開始するための選択可能UI項目3745を選択した後の、GUI300を示す。選択可能UI項目3745の選択は、選択可能UI項目3745を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、選択可能UI項目3745にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、選択可能UI項目3745の強調表示によって示されるように、選択可能UI項目3745を選択したところである。結果として、カスタムホワイトバランスUIコントロール3755が、画像上に表示される。
カスタムホワイトバランスUIコントロール3755が、画像上に出現すると、このアプリケーションは、画像355の色値を調整することによって、ホワイトバランス操作を実行する。具体的には、このアプリケーションは、カスタムホワイトバランスUIコントロール3755を通じて選択された場所に対応するか、又はその場所の近傍の、画素のセットの色値のうちの1つ以上をサンプル抽出する。次いで、このアプリケーションは、その色値を最も近い灰色に変換するための、(パラメータのセットを入力として取得する)アルゴリズム又は数学的方程式を考案し、次いで、画像355内の全ての画素に、その同じアルゴリズム又は数学的方程式を適用する。一部の実施形態では、このアプリケーションは、画像に色バランス調整を適用する前に、画像355の色値をYCC色空間(例えば、YIQ色空間)に変換する。
種々の実施形態は、カスタムホワイトバランスUIコントロールを、種々の方式で実装する。この実施例では、カスタムホワイトバランスUIコントロールは、円として出現し、その円の中央に十字線を有する。ユーザは、この十字線が、中立的な照明条件下では白色又は灰色であると想定される、画像355内の対象物の上に存在するように、カスタムホワイトバランスUIコントロール3755を画像355の領域内に配置することによって、画像355上の場所を選択することができる。
一部の実施形態では、このアプリケーションは、カスタムホワイトバランスUIコントロール3755の外側の画像の部分に関する、編集済みの(すなわち、カスタムホワイトバランスUIコントロール3755の現在の場所に基づいて、画像がホワイトバランス調整される場合の)バージョンを表示することによって、このホワイトバランス調整のプレビューを提供する。これらの実施形態では、カスタムホワイトバランスUIコントロール3755の内側にある画像の部分は、未編集のまま維持されることにより、ユーザは、編集済みバージョンと未編集バージョンとの差異を視認することが可能となる。この第2ステージ3710で示すように、カスタムホワイトバランスUIコントロール3755の外側にある画像355の部分のみにわたる斜線によって示されるように、カスタムホワイトバランスUIコントロール3755の外側にある画像355の部分は、調整されているが、その一方で、カスタムホワイトバランスUIコントロール3755の内側にある画像355の部分は、影響を受けないまま維持される。他の実施形態では、カスタムホワイトバランスUIコントロール3755の内側にある画像の部分のみが編集され、カスタムホワイトバランスUIコントロール3755の外側の画像の部分は、未編集のまま維持される。更に、他の実施形態では、画像全体が編集される。
このプレビュー機能性に加えて、一部の実施形態のアプリケーションはまた、カスタムホワイトバランスUIコントロール3755の内側の画像の部分をズームインすることにより、画像内の白色又は灰色の場所をユーザが正確に選択することを支援する。図示のように、カスタムホワイトバランスUIコントロール3755の内側にある画像355の部分は、その領域が、第1ステージ3705で見えるものよりも遙かに大きい鳥を示すように、ズームインされている。
更には、GUI300はまた、画像に対して色調整が実行された場合、選択可能UI項目342の上部に、バーを表示する。この選択可能UI項目342の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像355に対して色バランス調整を実施した後の、第2ステージ320で、選択可能UI項目342の上部に、バーが出現している。
上述のように、一部の実施形態のアプリケーションは、ユーザが、カスタムホワイトバランスUIコントロール3755を、画像上の種々の場所に移動させることを可能にする。第3ステージ3715は、ユーザがカスタムホワイトバランスUIコントロール3755を選択しているが、カスタムホワイトバランスUIコントロール3755の移動を開始していないことを示す、過渡的ステージである。第4ステージ3720は、ユーザが、カスタムホワイトバランスUIコントロール3755を、画像上の異なる場所に移動させた後の、GUI300を示す。一部の実施形態では、ユーザは、画像上の異なる場所に、ユーザの指をドラッグするか、又はカーソルをドラッグすることによって、カスタムホワイトバランスUIコントロール3755を移動させることができる。図示のように、ユーザは、矢印によって示されるように、雲を示す画像355の領域に、カスタムホワイトバランスUIコントロール3755を移動させている。この新たな場所へのカスタムホワイトバランスUIコントロール3755の移動の結果として、アプリケーションは、画像の色値を再調整する。一部の実施形態では、アプリケーションは、このカスタムホワイトバランスUIコントロール3755を通じて選択された場所に対応する、別の画素のサンプルを採取する。次いで、このアプリケーションは、その色値を最も近い灰色に変換するための、(パラメータのセットを入力として取得する)アルゴリズム又は数学的方程式を考案し、次いで、画像355内の全ての画素に、その同じアルゴリズム又は数学的方程式を適用する。図示のように、カスタムホワイトバランスUIコントロール3755の外側の画像の部分は、画像355のその部分の全域にわたる異なる斜線のセットによって示されるように、再調整されて示される。
図37に示される上記の実施例では、このアプリケーションは、色バランスコントロール3755が画像上に出現した直後に、画像に対する色バランス操作を実行し、ユーザが色バランスUIコントロール3755を移動させるたびに、画像を再調整する。一部の他の実施形態では、このアプリケーションが実行される装置の処理能力を節約するために、このアプリケーションは、ユーザから更なる入力(例えば、「色バランス実行」選択可能UI項目の選択、画像上での追加タップなど)を受け取る際にのみ、画像に対する色バランス操作を実行する。このように、画像は、ユーザが色バランスUIコントロール3755を移動させるたびに調整されることがなく、ユーザが場所を確定して、更なる入力を提供する場合にのみ、調整される。
図38は、一部の実施形態の画像編集アプリケーションによって実行される、画像に関する例示的なホワイトバランス操作を示す。図示のように、色空間3800は、画像の色値が定義される色空間を表す。この特定の色空間は、3つの軸、すなわち、赤及び緑の色値の範囲を表す軸3820、青及び黄の色値の範囲を表す軸3830、及び種々の濃淡の灰色の範囲(すなわち、輝度値の範囲)を表す垂直軸3810に沿って定義され、底面の場所3840は黒色を表し、上面の場所3850は白色を表す。色が明るくなるほど、その色は、この色空間の円柱3800の底面から遠くに出現する。
領域3860は、画像の全ての色値を表す。領域3860は、色空間3800内の1つの小さい領域内に位置するように示されるが、画像の色値は、色空間3800の、多くの異なる領域を占める場合がある。ユーザが、ホワイトバランスUIコントロールを使用して、画像上の場所を選択すると、このアプリケーションは、選択された場所に対応する画素の色値を取得する。この図では、色3880は、ホワイトバランスUIコントロールによって特定された場所に対応する、画素の色を表す。次いで、このアプリケーションは、この色空間内部で、選択された色値に最も近い灰色(例えば、3890)の位置を特定し、選択された色値3880を灰色値3890に修正する色調整を決定する。次いで、このアプリケーションは、決定された色調整に基づいて、色空間変換を生成する。一部の実施形態では、この色空間変換は、決定された色調整に基づいて生成される、M×M行列(例えば、3×3行列)である。一部の実施形態では、この色空間変換は、色空間3800内の各色を、歪められた色空間内の別の色にマッピングする。図38の色空間3805は、この色空間変換によって色空間3800が変換された後の、色空間を表す。図示のように、色空間3800内の色3880は、色空間3805内の色3885にマッピングされ、色空間3800内の別の色3870は、色空間3805内の色3875にマッピングされる。一部の実施形態では、このアプリケーションは、この色空間変換を画像内の各画素に適用することによって、選択された場所に基づいて、画像のホワイトバランスを調整する。
図37は、カスタムホワイトバランスUIコントロールを使用して、カスタムホワイトバランス操作を実行する、実施例を示す。カスタムホワイトバランス操作に加えて、一部の実施形態のアプリケーションはまた、カスタム肌色バランス操作も提供する。このカスタム肌色バランス操作は、カスタムホワイトバランス操作と同様であるが、ただし、中立の光の下で白い色であると想定される、画像上の場所を選択する代わりに、ユーザは、人の顔を表示する画像上の場所を選択する。これらの実施形態では、アプリケーションは、理想的な顔の色のセットを定義する。例えば、一部の実施形態のアプリケーションは、昼光の条件下での理想的な顔の色、及び人工光の条件での理想的な顔の色を定義することができる。ユーザが、画像上の場所を選択すると、このアプリケーションは、選択された場所に対応する画素の色値をサンプル抽出し、その画素の色値を調整して理想的な顔の色にするための調整を定義する。次いで、このアプリケーションは、画像内の全ての画素に、その同じ調整を適用する。
図39は、カスタム肌色バランス操作を実行する実施例を、4つの異なるステージ3905、3910、3915、及びステージ3920で示す。
第1ステージ3905は、図37の第1ステージ3705と同様であるが、ただし、ユーザは、編集するための別の画像を選択している。図示のように、ユーザは、画像表示領域345内に表示するための画像3955を選択している。画像3955は、前景に立っている人物3930、及び背景に立っている別の人物3935の写真である。画像3955はまた、画像の右側に、山及び海も示す。図37の第1ステージ3705と同様に、ユーザは、選択可能UI項目3725を選択することにより、ホワイトバランスツール表示領域3730を開いている。
第2ステージ3910は、ユーザが、カスタム肌色バランスツールを開始するための選択可能UI項目3740を選択した後の、GUI300を示す。選択可能UI項目3740の選択は、選択可能UI項目3740を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、選択可能UI項目3740にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。図示のように、ユーザは、選択可能UI項目3740の強調表示によって示されるように、選択可能UI項目3740を選択したところである。結果として、カスタム肌色バランスUIコントロール3925が、画像上に表示される。
カスタム肌色バランスUIコントロール3925が、画像上に出現すると、このアプリケーションは、画像3955の色値を調整することによって、肌色バランス操作を実行する。具体的には、このアプリケーションは、カスタム肌色バランスUIコントロール3925を通じて選択された場所に対応するか、又はその場所の近傍の、画素のセットの色値のうちの1つ以上をサンプル抽出する。次いで、このアプリケーションは、その色値を予め定義された理想的な顔の色に変換するための、(パラメータのセットを入力として取得する)アルゴリズム又は数学的方程式を考案し、次いで、画像3955内の全ての画素に、その同じアルゴリズム又は数学的方程式を適用する。
種々の実施形態は、カスタム肌色バランスUIコントロールを、種々の方式で実装する。この実施例では、カスタム肌色バランスUIコントロール3925は、円として出現し、その円の中央に十字線を有する。ユーザは、この十字線が画像3955内の人の顔の上に存在するように、カスタム肌色バランスUIコントロール3925を画像3955の領域内に配置する(又は移動させる)ことによって、画像3955上の場所を選択することができる。
一部の実施形態では、このアプリケーションは、顔検出アルゴリズムを使用して、画像内の人の顔を検出し、その画像内に検出される第1の人の顔の上に、カスタム肌色バランスUIコントロール3925を配置する。この第2ステージ3910で示すように、カスタム肌色バランスUIコントロール3925は、背景に立っている人の顔の上に出現する。
カスタムホワイトバランスUIコントロールと同様に、一部の実施形態のアプリケーションは、カスタム肌色バランスUIコントロール3925の外側の画像の部分に関する、その画像の編集済みの(すなわち、カスタム肌色バランスUIコントロール3925の現在の場所に基づいて、画像が肌色バランス調整される場合の)バージョンを表示することによって、この肌色バランス調整のプレビューを提供する。これらの実施形態では、カスタム肌色バランスUIコントロール3925の内側にある画像の部分は、未編集のまま維持されることにより、ユーザは、編集済みバージョンと未編集バージョンとの差異を視認することが可能となる。この第2ステージ3910で示すように、カスタム肌色バランスUIコントロール3925の外側にある画像3955の部分のみにわたる斜線によって示されるように、カスタム肌色バランスUIコントロール3925の外側にある画像3955の部分は、調整されているが、その一方で、カスタム肌色バランスUIコントロール3925の内側にある画像3955の部分は、影響を受けないまま維持される。他の実施形態では、カスタム肌色バランスUIコントロール3925の内側にある画像の部分のみが編集され、カスタム肌色バランスUIコントロール3925の外側の画像の部分は、未編集のまま維持される。更に、他の実施形態では、画像全体が編集される。
このプレビュー機能性に加えて、一部の実施形態のアプリケーションはまた、カスタム肌色バランスUIコントロール3925の内側の画像の部分をズームインすることにより、人の顔を表示する画像内の場所を、ユーザが正確に選択することを支援する。図示のように、カスタム肌色バランスUIコントロール3925の内側にある画像355の部分は、その領域が、背景に立っている人の顔のより多くの詳細を示すように、ズームインされている。
更には、GUI300はまた、画像に対して色調整が実行された場合、選択可能UI項目342の上部に、バーを表示する。この選択可能UI項目342の上部のバーは、ユーザが画像に対していずれのタイプの調整を実行したかを示すように、可視の状態のまま維持される。図示のように、ユーザが画像3955に対してカスタム肌色バランス操作を実施した後の、第2ステージ320で、選択可能UI項目342の上部に、バーが出現している。
上述のように、一部の実施形態のアプリケーションは、ユーザが、カスタム肌色バランスUIコントロール3925を、画像上の種々の場所に移動させることを可能にする。顔検出アルゴリズムの助けにより、このアプリケーションは、画像内の人の顔の位置を特定することが可能である。しかしながら、画像が幾つかの顔を含む場合、ユーザは、アプリケーションによって選択された人物の顔に基づいて肌色バランス調整を行うことを、望まない可能性があり、むしろ、ユーザは、画像内の別の人物の顔に基づいて肌色バランス調整を行うことを望む可能性がある。第2ステージ3910は、アプリケーションが、背景の人物の顔(アプリケーションが、顔検出アルゴリズムを使用して検出した第1の顔)の上に、カスタム肌色バランスUIコントロール3925を自動的に配置することを示す。しかしながら、背景の人物ではなく、前景の人物が、この写真内での実際の対象点である。それゆえ、移動可能なカスタム肌色バランスUIコントロール3925は、対象となる顔の正しい場所を、ユーザが指定することを可能にする。
第3ステージ3915は、ユーザがカスタム肌色バランスUIコントロール3925を選択しているが、カスタム肌色バランスUIコントロール3925の移動を開始していないことを示す、過渡的ステージである。第4ステージ3920は、ユーザが、カスタム肌色バランスUIコントロール3925を、画像上の異なる場所に移動させた後の、GUI300を示す。一部の実施形態では、ユーザは、画像上の異なる場所に、ユーザの指をドラッグするか、又はカーソルをドラッグすることによって、カスタム肌色バランスUIコントロール3925を移動させることができる。図示のように、ユーザは、前景の人物の顔を表示する画像3955の領域に、カスタム肌色バランスUIコントロール3925を移動させている。この新たな場所へのカスタム肌色バランスUIコントロール3925の移動の結果として、アプリケーションは、画像の色値を再調整する。一部の実施形態では、アプリケーションは、このカスタム肌色バランスUIコントロール3925を通じて選択された場所に対応する、別の画素のサンプルを採取する。次いで、このアプリケーションは、その色値を予め定義された理想的な顔の色に変換するための、(パラメータのセットを入力として取得する)アルゴリズム又は数学的方程式を考案し、次いで、画像3955内の全ての画素に、その同じアルゴリズム又は数学的方程式を適用する。図示のように、カスタム肌色バランスUIコントロール3925の外側の画像の部分は、画像3955のその部分の全域にわたる異なる斜線のセットによって示されるように、再調整されて示される。
図39に示される上記の実施例では、このアプリケーションは、色バランスコントロール3925が画像上に出現した直後に、画像に対する色バランス操作を実行し、ユーザが色バランスUIコントロール3925を移動させるたびに、画像を再調整する。一部の他の実施形態では、このアプリケーションが実行される装置の処理能力を節約するために、このアプリケーションは、ユーザから更なる入力(例えば、「色バランス実行」選択可能UI項目の選択、画像上での追加タップなど)を受け取る際にのみ、画像に対する色バランス操作を実行する。このように、画像は、ユーザが色バランスUIコントロール3925を移動させるたびに調整されることがなく、ユーザが場所を確定して、更なる入力を提供する場合にのみ、調整される。
図40は、一部の実施形態の画像編集アプリケーションによって実行される、画像に関する例示的な肌色バランス操作を示す。一部の実施形態では、このアプリケーションは、肌色バランス操作を実行する前に、最初に、色値が定義される色空間(例えば、RGB色空間)からYCC色空間(例えば、YIQ色空間)に、画像の色値を変換する。RGB色空間からYIQ色空間への変換は、最初に、RGB色空間内の色値に対して約1/4のgammaを適用し、次いで、3×3行列を適用して、その色値をYIG色空間に変換することによって、実行することができる。図示のように、色空間4000は、画像の色値が変換されるYCC色空間を表す。この特定の色空間は、3つの軸、すなわち、赤及び緑の色値の範囲を表す軸4020、青及び黄の色値の範囲を表す軸4030、及び種々の濃淡の灰色の範囲(すなわち、輝度値の範囲)を表す垂直軸4010に沿って定義され、底面の場所4040は黒色を表し、上面の場所4050は白色を表す。色が明るくなるほど、その色は、この色空間の円柱4000の底面から遠くに出現する。
領域4060は、画像の全ての色値を表す。領域4060は、色空間4000内の1つの小さい領域内に位置するように示されるが、一部の他の画像の色値は、色空間4000の、多くの異なる領域を占める場合がある。ユーザが、肌色バランスUIコントロールを使用して、画像上の場所を選択すると、このアプリケーションは、選択された場所に対応する画素の色値を取得する。この図では、色4080は、ホワイトバランスUIコントロールによって特定された場所に対応する、画素の色を表す。
一部の実施形態では、このアプリケーションは、2つの異なる理想的な肌色を定義し、一方は、昼光の条件下で理想的な肌色であり、他方は、人工光の条件下で理想的な肌色である。一部の実施形態のアプリケーションは、画像が昼光の下で取り込まれていたか、又は人工光の下で取り込まれていたかを検出するために、画像に対して分析を実行し、この操作に関して、対応する理想的な肌色を選択する。
このアプリケーションは、YCC色空間4000内部で、理想的な肌色4090を特定する。次いで、このアプリケーションは、理想的な肌色値4090と取得された色値4080との差異に基づいて、色空間変換を決定する。一部の実施形態では、この色空間変換は、色空間4000内の各色を、歪められた色空間内の別の色にマッピングする。この色空間変換は、全ての角度から白/黒の軸4010に向けて、本質的に色空間を圧縮する方式で、色値を調整する。換言すれば、このアプリケーションは、より高い彩度を有する色値(すなわち、白/黒の軸4010から、より遠く離れた色値)に対して、より大きい調整を実行し、より低い彩度を有する色値(すなわち、白/黒の軸4010に、より近接する色値)に対して、より小さい調整を実行する。一部の実施形態では、このアプリケーションは、白/黒の軸4010に沿って位置する色値(すなわち、種々の濃淡の灰色)を調整しない。
図40の色空間4005は、この色空間変換によって色空間4000が変換された後の、色空間を表す。図示のように、色空間4000内の色4080は、色空間4005内の色4085にマッピングされ、色空間4000内の色4070は、色空間4005内の色4075にマッピングされ、色空間4000内の別の色4062は、色空間4005内の色4065にマッピングされる。図示のように、色4062は、色空間4000内の色4070よりも、垂直軸4010から遠く離れている。それゆえ、色4062は、色4070よりも大きい距離(すなわち、より大きい色調整)で引き寄せられる。一部の実施形態では、このアプリケーションは、この色空間変換を画像内の各画素に適用することによって、選択された場所に基づいて、画像の肌色バランスを調整する。
カスタム肌色バランスコントロール3925は、多くの利益を提供する。それらの利益のうちの1つは、ユーザが、肌色バランス操作の対象とするための、画像内の肌色の領域を(特に、画像内に2人以上の人物が存在する場合に)指定することにより、その選択された肌色が、理想的な肌色に調整されることを可能にする能力である。カスタム肌色バランスコントロール3925の別の利益は、図3を参照して上述された肌の色調UIコントロール356、並びに図20を参照して上述された画像上UIコントロール2025及び画像上UIコントロール2030に関連する。
図6及び図20を参照して上述されたように、肌の色調UIコントロール356並びに画像上UIコントロール2025及び画像上UIコントロール2030は、定義された肌の色調に基づいて画像の色温度を調整することによって、肌の色調を改善する。一部の実施形態では、このアプリケーションは、肌の色調を、色空間内部の色値の範囲とするように定義する。上述のように、その色値の範囲は、人の平均の肌の色調を対象とするように、広範に定義される。しかしながら、画像が取り込まれた種々の条件(例えば、照明条件、色かぶりなど)により、画像内の対象となる人物の顔の色は、アプリケーションによって肌の色調として定義された色値の範囲内に、収まらない場合がある。対象となる人物とは、ユーザが、画像内の対象として考える人物である。その場合には、このアプリケーションは、幾つかの他の対象物(例えば、対象となる人物以外の人々の顔)の色に基づいて、画像の色値を調整することができる。カスタム肌色バランスUIコントロール3925は、画像内の対象となる人物の顔をユーザが指定することを可能にすることにより、ユーザが、肌の色調UIコントロール356あるいは画像上UIコントロール2025及び画像上UIコントロール2030を操作する場合、(1)対象となる人物の顔の色が、バランス調整され(すなわち、理想的な顔の色になるように調整され)、(2)画像の色温度が、対象となる人物の顔の色に基づいて調整される。具体的には、ユーザが、画像に対して肌色バランス操作を実行した後には、肌の色調として予め定義された色値の範囲を使用する代わりに、このアプリケーションは、画像上の全ての後続の肌の色調調整に関する肌の色調として、その理想的な肌色を使用する。
図41は、肌の色調UIコントロール356を使用して、画像内の全ての顔ではなく、一部のみの顔の色を調整する実施例を示す。具体的には、図41は、この肌の色調調整操作を、4つの異なるステージ4105、4110、4115、及びステージ4120で示す。
第1ステージ4105は、図39の第1ステージ3905と同一である。図示のように、ユーザは、画像表示領域345内に表示するための画像3955を選択している。上述のように、画像3955は、前景に立っている人物3930、及び背景に立っている別の人物3935の写真である。この実施例では、前景に立っている人物3930が、対象となる人物である。画像3955が取り込まれた条件(例えば、照明条件、色かぶりなど)により、2人の人物の顔の色は、極めて異なるように見える。具体的には、人物3935の顔色は、アプリケーションによって肌の色調として定義された色値の範囲内に収まるが、人物3930の顔色は、アプリケーションによって肌の色調として定義された色値の範囲から外れる。画像3955はまた、画像の右側に、山及び海も示す。
図示のように、ユーザは、選択可能UI項目342の強調表示によって示されるように、画像3955の色を調整するために、ツールバー340から選択可能UI項目342を選択している。第2ステージ4110は、肌の色調UIコントロール356の強調表示によって示されるように、ユーザが肌の色調UIコントロール356を選択した後の、GUI300を示す。肌の色調UIコントロール356の選択は、肌の色調UIコントロール356を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、肌の色調UIコントロール356にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。
第3ステージ4115は、ユーザが、矢印4125によって示されるように、肌の色調UIコントロール356のつまみを右に移動させることによって、画像の肌の色調の改善を開始した後の、GUI300を示す。一部の実施形態では、ユーザは、異なる場所にユーザの指をドラッグすること(又は、カーソルをドラッグすること)によって、肌の色調UIコントロール356のつまみを移動させることができる。この肌の色調UIコントロール356に対する調整に基づいて、アプリケーションは、画像3955の全域にわたる斜線によって示されるように、予め定義された肌の色調に基づいて、画像3955の色温度を調整する。
第4ステージ4120は、ユーザが、矢印4130によって示されるように、肌の色調UIコントロール356のつまみを更に右に移動させることによって、画像の肌の色調を更に調整した後の、GUI300を示す。図示のように、このステージ4120での画像3955は、画像3955の全域にわたる、より高密度の斜線によって示されるように、第3ステージ4115での画像よりも、更に調整されて示される。
図41に示す実施例で示されるように、この画像の色は、対象となる人物の顔の色が、アプリケーションによって予め定義された色値の範囲内に収まり得ないため、単に肌の色調UIコントロール356あるいは画像上UIコントロール2025及び画像上UIコントロール2030を使用することのみによっては、対象となる人物の肌色に基づいて調整することができない。図42は、図41で実行されたものと同じ操作を示すが、ただし、ユーザは、画像の肌の色調を調整する前に、肌色バランスUIツール3925を使用して、前景の人物3930の顔を選択している。具体的には、図42は、この肌の色調調整操作を、4つの異なるステージ4205、4210、4215、及びステージ4220で示す。
第1ステージ4205は、図42の第4ステージ4120と同一である。図示のように、ユーザは、肌色バランスUIコントロール3925を使用することによって、肌色バランス操作を完了したところである。具体的には、ユーザは、肌色バランスUIコントロール3925を使用して、この肌色バランス操作のために、前景の人物3930の顔を選択した。結果として、人物3930の顔の色は、この画像によって定義される理想的な肌色に調整されている。
第2ステージ4210は、肌の色調UIコントロール356の強調表示によって示されるように、ユーザが肌の色調UIコントロール356を選択した後の、GUI300を示す。肌の色調UIコントロール356の選択は、肌の色調UIコントロール356を表示する、タッチ若しくはニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、又は、肌の色調UIコントロール356にカーソルを置き、入力を提供すること(例えば、カーソル制御装置をクリックすること、ホットキーを押すことなど)によって、実行することができる。
第3ステージ4215は、ユーザが、矢印4225によって示されるように、肌の色調UIコントロール356のつまみを右に移動させることによって、画像の肌の色調の調整を開始した後の、GUI300を示す。一部の実施形態では、ユーザは、異なる場所にユーザの指をドラッグすること(又は、カーソルをドラッグすること)によって、肌の色調UIコントロール356のつまみを移動させることができる。ユーザは、画像に対して肌色バランス操作を実行しているため、このアプリケーションは、画像3955の色温度を調整するために、通常の肌の色調として定義されている値の範囲を使用する代わりに、その理想的な肌の色調として定義された値の範囲を使用する。肌の色調UIコントロール356を通じたユーザの入力の結果として、画像の色値は、画像3955の全域にわたる45度の斜線によって示されるように、前景の人物の顔の色に基づいて調整されている。
第4ステージ4220は、ユーザが、矢印4230によって示されるように、肌の色調UIコントロール356のつまみを更に右に移動させることによって、画像の肌の色調を更に改善した後の、GUI300を示す。図示のように、このステージ4220での画像3955は、画像3955の全域にわたる、より高密度の45度の斜線によって示されるように、第3ステージ4215での画像よりも、更に調整されて示される。
上述の図に示される画像編集アプリケーションのGUIは、その画像編集アプリケーションが実行される装置が、そのGUIを表示するための十分に大きい画面を有するという仮定の下で示されている。しかしながら、画像編集アプリケーションが実行される装置のうちの一部は、UI項目を、それらの項目がより大きい装置のより大きい画面内に表示される方式で表示するには、画面サイズが限定されている場合がある。また、より大きい装置のより大きい画面も、その装置が異なる向き(例えば、縦長式)で保持される場合、限定的であると見なされる可能性がある。一部の実施形態では、画像編集アプリケーションは、異なる時間インスタンスで異なるUI項目の異なるセットを表示することにより、この限定的な画面空間に適応する。
図43は、一部の実施形態のGUI1200を通じて、色バランスツールのセットを呼び出す実施例を、3つの異なるステージ4301、4302、及びステージ4303で概念的に示す。第1ステージ4301は、図12の第6ステージ1206と同一である。図示のように、GUI1200内のツールナビゲーションペイン1225は、色調整ツールのセット1260を含む。この色調整ツールのセット1260は、色バランスツールのセットを呼び出すためのUI項目1275を含む。
第2ステージ4302は、ユーザがUI項目1275を選択していることを示す。一部の実施形態では、ユーザは、UI項目1275を表示する、タッチ又はニアタッチ感応スクリーンを有する装置上の場所で、ジェスチャを実行すること(例えば、指を置く、指さす、又は指をタップすること)によって、UI項目1275を選択することができる。この選択の結果として、第3ステージ4303で示すように、色バランスツールのセットを表すUI項目4315のセットが、GUI1200上に出現する。一部の実施形態では、それらのUI項目のセットは、この第3ステージ4303で示すように、GUI1200全体にわたって並べられる。他の実施形態では、UI項目4315のセットは、画面の一部分のみを占めることにより、ユーザは依然として、GUI上の画像を閲覧することができる。本明細書では示されないが、ユーザは、UI項目4315のうちの1つを選択することによって、(カスタムホワイトバランスツール及びカスタム顔バランスツールを含めた)色バランスツールのうちの、任意の1つを呼び出すことができる。
図44は、図41及び図42で示されるように、画像に対して色バランス操作を実行するためのプロセス4400を、概念的に示す。一部の実施形態では、このプロセスは、画像編集アプリケーションによって実行される。このプロセスは、色バランスツールの選択を(4405で)受け取ることによって開始する。一部の実施形態では、この色バランスツールは、カスタムホワイトバランスツール又はカスタム肌色バランスツールとすることができる。他の実施形態は、更なる色バランスツールを提供することができる。
次に、このプロセスは、画像上の場所を選択するための色バランスUIコントロールを、画像上に(4410で)表示する。一部の実施形態では、このプロセスは、画像上のデフォルト領域(例えば、画像の中央)に、色バランスUIコントロールを表示する。一部の他の実施形態では、このプロセスは、検出アルゴリズム(例えば、顔検出アルゴリズム)を実行して、特定の特徴部(例えば、人の顔)に対応する、画像上の領域内に、色バランスUIコントロールを配置する。
種々の実施形態は、色バランスUIコントロールを、種々の方式で実装する。一部の実施形態では、色バランスUIコントロールは、閉じた境界線(例えば、矩形、楕円形など)を含み、その閉じた境界線の内部に、画像上の場所を正確に示すための指標を有する。一部の実施形態では、色バランスUIコントロールは、図39の色バランスUIコントロール3925のように出現することができる。これらの実施形態の一部では、色バランスUIコントロールはまた、閉じた境界線内部にある画像の部分をズームインする(すなわち、拡大する)。このズームインされたバージョンは、画像上の場所を選択する際の、より優れた精度を提供する。
次いで、このプロセスは、色バランスUIコントロールによって示される場所に基づいて、画像の色バランスを(4415で)調整する。一部の実施形態では、この調整は、選択された場所に対応する画素の色値を、予め定義された特定の色値のセット(例えば、白色に関する色値、灰色に関する色値、予め定義された理想的な肌の色調に関する色値)に変更するための、アルゴリズム又は数学的方程式を定義することを伴う。次いで、このプロセスは、画像内の全ての画素に、その同じアルゴリズム又は数学的方程式を適用する。
一部の実施形態では、このプロセスは、色バランスUIコントロールの閉じた境界線の外側にある画像の部分の、調整済みバージョンを表示することによって、調整された画像のプレビューを提供する。これらの実施形態では、色バランスUIコントロールの閉じた境界線の内側の画像の部分は、その画像の編集済みバージョンと未編集バージョンとの差異を示すために、未変更のままで維持される。
次に、このプロセスは、色バランスUIコントロールの、いずれかの移動が受け取られているか否かを(4420で)判定する。色バランスUIコントロールの移動が受け取られる場合には、このプロセスは、その色バランスUIコントロールの新たな場所に基づいて、画像の色バランスを(4425で)再調整する。このプロセスは、それ以上移動が受け取られなくなるまで、操作4420〜4425を繰り返す。色バランスUIコントロールに対する移動が受け取られない場合には、このプロセスは終了する。
図45は、画像に対して色バランス操作を実行するためのプロセス4500を、概念的に示す。一部の実施形態では、プロセス4500は、ユーザが色バランスUIコントロールを通じて画像上の場所を選択した後の、プロセス4400の操作4415及び操作4425の間に、画像編集アプリケーションによって実行される。このプロセスは、画像上の選択された場所に対応する画素を(4505で)取得することによって開始する。次いで、このプロセスは、取得された画素に関する、色空間内部の望ましい色を(4510で)特定する。一部の実施形態では、ユーザが、プロセス4400の操作4405でカスタムホワイトバランスコントロールツールを選択している場合、このプロセスは、色空間内部で、取得された画素の色に最も近い灰色を特定する。この灰色を特定する操作は、図38を参照して上述されている。ユーザが、プロセス4400の操作4405でカスタム肌色バランスツールを選択している場合、このプロセスは、色空間内の、取得された画素の色に最も近い、予め定義された理想的な肌色を特定する。一部の実施形態では、このアプリケーションは、種々の条件に関する、予め定義された理想的な肌色の幾つかのセット(例えば、昼光に関する理想的な肌色のセット、及び人工光に関する理想的な肌色のセット)を有する。これらの実施形態では、プロセスは、画像が取り込まれた条件を判定するための分析を実行し、対応する理想的な肌色を特定する。
次に、このプロセスは、取得された画素の色及び特定された色に基づいて、色空間変換を(4515で)決定する。一部の実施形態では、この色調整操作は、特定の色変換アルゴリズム又は数学的方程式を伴う。色調整操作を決定した後、このプロセスは、画像の全ての画素に、その色空間変換を(4520で)適用する。次いで、このプロセスは終了する。
図46は、画像の色バランス調整操作を実行する、一部の実施形態の画像編集アプリケーション4600を示す。一部の実施形態では、画像編集アプリケーション4600は、プロセス4400及びプロセス4500を実行する。図46に示すように、画像編集アプリケーション4600は、画像プロセッサ4610、画像プレビューモジュール4615、色空間変換ジェネレータ4625、コンテンツ分析モジュール4640、及び色調整モジュール4630を含む。
UIモジュール4605が、色バランスツール(例えば、カスタムホワイトバランスツール、カスタム肌色バランスツールなど)のユーザの選択を受け取ると、UIモジュール4605は、その選択の情報を画像プロセッサ4610に渡す。次いで、この色バランスUIコントロールモジュール4610は、画像上に色バランスUIコントロールを表示する。一部の実施形態では、画像プロセッサ4610は、各画像に関するデフォルトの場所に(例えば、画像の中央に)、色バランスUIコントロールを表示する。一部の他の実施形態では、色バランスUIコントロールモジュール4610は、画像に対して特徴検出操作(例えば、顔検出操作)を実行するために、コンテンツ分析モジュール4640に画像を送り、特徴が検出される場所に(例えば、画像上の人の顔に)色バランスUIコントロールを表示する。次いで、画像プロセッサ4610は、その色バランスUIコントロールの場所に対応する画素の色値を取得し、その色値についての情報を、色空間変換ジェネレータ4625に渡す。
一部の実施形態では、色空間変換ジェネレータ4625は、図45のプロセス4500を実行する。具体的には、色空間変換ジェネレータ4625は、色バランスUIコントロールの場所に対応する画素の色値を取得する。次いで、色空間変換ジェネレータは、ユーザによって選択された色バランスツールに関連付けられている設定された基準色(例えば、灰色、理想的な肌色など)を特定する。色空間変換ジェネレータ4625は、画像内の画素の色値を、その特定され設定された基準色に変更する色調整を決定する。次いで、色空間変換ジェネレータ4625は、決定された色調整に基づいて、色空間変換を生成する。一部の実施形態では、この色空間変換は、決定された色調整に基づいて生成される、M×M行列(例えば、3×3行列)である。一部の実施形態では、この色空間変換は、色空間内部で定義された各色を取得し、決定された色値調整を使用して異なる色を出力する。
次いで、色空間変換ジェネレータ4625は、生成された色空間変換を、画像プロセッサ4610に渡す。次いで、画像プロセッサ4610は、画像及び色空間変換を、色調整エンジン4630に送る。この色調整エンジンは、画像内の全ての画素に色空間変換を適用し、その調整された画像を、画像プロセッサ4610に送り返す。画像プロセッサは、メディア記憶装置4635内に、その調整された画像を記憶させる。
一部の実施形態では、この画像編集アプリケーションは、編集済み画像のリアルタイムのプレビューをユーザに提供する。これらの実施形態では、画像プロセッサ4610は、画像プレビューモジュール4615に、編集済み画像を送る。種々の実施形態は、種々の技術を使用して、ユーザにプレビューを提供する。一部の実施形態では、画像プレビューモジュール4615は、色バランスUIコントロールの外側の画像の部分の編集済みバージョンを表示する一方で、色バランスUIコントロールの内側の画像の部分の未編集バージョンを表示する。このように、ユーザは、編集済みバージョンと未編集バージョンとの差異を、リアルタイムで容易に視認することができる。他の実施形態では、色バランスUIコントロールの内側にある画像の部分のみが編集され、色バランスUIコントロールの外側の画像の部分は、未編集のまま維持される。更に、他の実施形態では、画像全体が編集される。
ユーザが、色バランスUIコントロールの場所を変更すると、UIモジュール4605は、その色バランスUIコントロールの新たな場所についての情報を、画像プロセッサ4610に渡す。次いで、画像プロセッサ4610は、その新たな場所に対応する画素の色値を取得して、その色値を色空間変換ジェネレータ4625に渡す。色空間変換ジェネレータ4625は、取得された色値に基づいて新たな色空間変換を生成し、その生成された色空間変換を、画像プロセッサ4610に送り返す。次いで、画像プロセッサ4610は、画像を再調整するために、画像及び色空間変換を色調整エンジン4630に送る。色調整エンジン4630は、画像に色空間変換を適用し、その調整された画像を画像プロセッサ4610に送る。
IV.画像閲覧、編集、及び構成アプリケーション
上述の図は、一部の実施形態の画像閲覧、編集、及び構成アプリケーションのGUIの様々な実施例を示したものである。図47は、画像を閲覧、編集、及び構成するための、一部の実施形態のGUI4700の詳細図を示す。GUI4700は、図48を部分的に参照して説明され、この図48は、一部の実施形態のアプリケーションによって記憶されるような画像に関する、データ構造4800を概念的に示す。
データ構造4800は、画像ID4805、画像データ4810、編集命令4815、画像のキャッシュバージョン4840、及び画像に関する任意の追加データ4850を含む。画像ID4805は、一部の実施形態では、コレクション内に記憶された画像を参照するために、コレクションデータ構造によって使用される、画像に関する一意識別子である。画像データ4810は、画像を表示するための、実際のフルサイズの画素データ(例えば、画像又はその符号化バージョン内の各画素に関する、一連の色空間チャネル値)である。一部の実施形態では、このデータは、画像閲覧、編集、及び構成アプリケーションのデータベース内に記憶することができ、又は別のアプリケーションのデータと共に同じ装置上で記憶することができる。一部の実施形態では、この追加的アプリケーションは、この装置上で動作する別の画像構成アプリケーションであり、その上で画像閲覧、編集、及び構成が動作する。
それゆえ、このデータ構造は、そのアプリケーションに関連付けられているローカルファイルへのポインタ、又は別のアプリケーションのデータベースに問い合わせるために使用することが可能なIDを記憶することができる。一部の実施形態では、アプリケーションがジャーナル内の画像を使用するか、又は画像に対して編集を実施すると、アプリケーションは、その画像データを含む画像ファイルのローカルコピーを自動的に作成する。
編集命令4815は、ユーザが画像に適用したあらゆる編集に関連する情報を含む。この方式で、アプリケーションは、そのアプリケーションが、画像の編集済みバージョンからオリジナルに、いつでも容易に戻ることができるように、非破壊形式で画像を記憶する。例えば、ユーザは、画像に彩度の効果を適用して、アプリケーションから退去し、次いで別の機会に、アプリケーションを再び開いて、その効果を除去することができる。これらの命令に記憶された編集は、クロップ及び回転、フル画像露出及び色調整、局所調整、及び特殊効果、並びに、画像の画素に影響を与える他の編集とすることができる。一部の実施形態は、ユーザが、特定の編集のセットのみが適用されている、その画像の種々のバージョンを閲覧することができるように、これらの編集命令を特定の順序で記憶する。
一部の実施形態では、編集命令4815は、編集操作のリスト4860として実装される。リスト4860は、編集4861、4862、4863、及び編集4865などの編集操作を含む。リスト4860内の各編集操作は、その編集操作を実施するために必要なパラメータを指定する。例えば、リスト4860内の編集操作4865は、彩度の効果を適用する、画像に対する編集を、色選択パラメータθを使用して指定する。
一部の実施形態では、リスト4860は、最終的な編集済み画像を作成するためにユーザによって着手された、編集操作のシーケンスを記録する。一部の実施形態では、リスト4860は、一部の実施形態が、アプリケーションによって提供される種々の可能な編集に関する特定の順序を定義するため、画像編集アプリケーションが表示のための出力画像を生成するために画像に編集を適用する順序で、編集命令を記憶する。例えば、一部の実施形態は、彩度の効果を、クロップ及び回転、フル画像露出、及び色調整などの他の編集操作よりも遅れて適用されるべき編集操作のうちの1つとして定義する。これらの実施形態のうちの一部の、リスト4860は、彩度の効果に関する編集命令を、他の編集操作(例えば、編集4861〜1363)のうちの一部よりも遅れて適用される位置(すなわち、編集4865)に記憶する。
キャッシュ画像バージョン4840は、よくアクセス及び表示される画像のバージョンを格納するため、アプリケーションは、これらの画像をフルサイズの画像データ4810から繰り返し生成する必要がない。例えば、このアプリケーションは、多くの場合、画像に関するサムネイル、並びに表示解像度バージョン(例えば、画像表示領域用に適合されたバージョン)を記憶する。一部の実施形態のアプリケーションは、編集が適用されるたびに、その画像に関する新たなサムネイルを生成し、以前のサムネイルと置き換える。一部の実施形態は、オリジナルの画像、及び画像の1つ以上の編集済みバージョンを含めた、複数の表示解像度バージョンを記憶する。
最後に、画像データ構造4800は、このアプリケーションが画像と共に記憶することが可能な追加データ4850(例えば、顔の場所及びサイズなど)を含む。一部の実施形態では、この追加データとしては、Exchangeable image file format(Exif)データ、キャプションデータ、共有画像データ、画像上のタグ、又は任意の他のタイプのデータを挙げることができる。Exifデータは、カメラ設定、GPSデータ、タイムスタンプなどの、画像を取り込んだカメラによって記憶される様々な情報を含む。キャプションとは、ユーザが入力した、その画像の説明である。タグとは、アプリケーションにより、ユーザが、お気に入り、フラグ付き、非表示などとして画像をマーク付けすることなどの、画像と関連付けることが可能となる、情報である。
画像データ構造4800は、画像に関して必要とされる情報を記憶するためにアプリケーションが使用することができる、1つの可能なデータ構造に過ぎないことが、当業者には認識されるであろう。例えば、異なる実施形態では、更なる情報、又はより少ない情報を記憶する場合、異なる順番で情報を記憶する場合などがある。
図47に戻ると、GUI4700は、サムネイル表示領域4705、画像表示領域4710、第1のツールバー4715、第2のツールバー4720、及び第3のツールバー4725を含む。サムネイル表示領域4705は、選択されたコレクション内の画像のサムネイルを表示する。サムネイルは、フルサイズの画像の小さい表現であり、一部の実施形態では、画像の一部分のみを表す。例えば、サムネイル表示領域4705内のサムネイルは、フルサイズの画像のアスペクト比に関わりなく、全て正方形である。サムネイルに使用するための矩形画像の部分を決定するために、このアプリケーションは、その画像のより小さい寸法を特定し、より長い方向の、画像の中心部分を使用する。例えば、1600×1200画素の画像の場合、このアプリケーションは、4700×1200の正方形を使用する。サムネイルに関する選択部分を更に洗練させるために、一部の実施形態は、(顔検出アルゴリズムを使用して)画像内の全ての顔の中心を特定し、次いで、その場所を使用して、クリッピングされる方向のサムネイル部分の中心に置く。したがって、理論上1600×1200の画像内の顔が、全て画像の左側に位置する場合には、このアプリケーションは、両側で200列を切り捨てるのではなく、左端の4700列の画素を使用する。
サムネイルに使用するための画像の部分を決定した後に、画像閲覧アプリケーションは、(例えば、画素混合技術及び他の技術を使用して)その画像の低解像度バージョンを生成する。一部の実施形態のアプリケーションは、画像のキャッシュバージョン4840として、画像に関するサムネイルを記憶する。したがって、ユーザがコレクションを選択すると、このアプリケーションは、(コレクションデータ構造を通じて)そのコレクション内の画像の全てを特定して、サムネイル表示領域内での表示のために、各画像データ構造内のキャッシュされたサムネイルにアクセスする。
ユーザは、(例えば、上述の様々なタッチ相互作用を通じて、又は他のユーザ入力相互作用を通じて)サムネイル表示領域内の1つ以上の画像を選択することができる。選択されたサムネイルは、強調表示、又は他の選択の表示を使用して表示される。サムネイル表示領域4705内で、サムネイル4730が選択される。更には、図示のように、一部の実施形態のサムネイル表示領域4705は、フラグ付けされた(例えば、「はい」に設定されたフラグに関するタグを有する)、コレクション内の幾つかの画像を示す。一部の実施形態では、このテキストは、フラグ付き画像のサムネイルのみを表示するために選択可能である。
アプリケーションは、選択された画像を、対応するサムネイルよりも大きい解像度で、画像表示領域4710内に表示する。それらの画像は、ディスプレイ装置よりも高い解像度を有する場合が多いため、典型的には、画像のフルサイズでは表示されない。それゆえ、一部の実施形態のアプリケーションは、画像表示領域内に適合するように設計された、画像のキャッシュバージョン4840を記憶する。画像表示領域4710内の画像は、フルサイズの画像のアスペクト比で表示される。1つの画像が選択されると、このアプリケーションは、画像のいずれの部分も切り捨てることなく、画像表示領域以内に可能な限り大きく画像を表示する。複数の画像が選択される場合、このアプリケーションは、それらの画像が異なるアスペクト比を有する場合であっても、各画像に関してほぼ同じ画素数を使用することによって、それらの視覚的重み付けを維持するような方式で画像を表示する。
第1のツールバー4715は、タイトル情報(例えば、GUI内に示されるコレクションの名前、ユーザが現在選択されている画像に添付したキャプションなど)を表示する。更には、ツールバー4715は、GUI項目4735〜1238の第1のセット、及びGUI項目4740〜1243の第2のセットを含む。
GUI項目の第1のセットは、「戻る」ボタン4735、グリッドボタン4736、ヘルプボタン4737、及び取り消しボタン4738を含む。「戻る」ボタン4735により、ユーザは、コレクション構成GUIにナビゲートして戻ることが可能となり、このコレクション構成GUIから、ユーザは、画像の種々のコレクション(例えば、アルバム、イベント、ジャーナルなど)を選択することができる。グリッドボタン4736の選択により、アプリケーションは、(例えば、スライドアニメーションを介して)サムネイル表示領域を、GUI上に移動させるか、又はGUIから移動させる。一部の実施形態では、ユーザはまた、スワイプジェスチャを介して、サムネイル表示領域を、GUI上にスライドさせるか、又はGUIからスライドさせることもできる。ヘルプボタン4737は、ユーザに関してアクティブな現在のツールのセットを特定して、それらのツールを簡潔に説明する、それらのツールに関するヘルプ表示をユーザに提供する、コンテキストに応じたヘルプ機能をアクティブ化する。一部の実施形態では、このヘルプ表示は、ツールについての追加情報にアクセスするために選択可能である。取り消しボタン4738の選択により、このアプリケーションは、画像に対する最新の編集を、その編集がクロップ、色調整などであるか否かに関わらず除去する。この取り消しを実行するために、一部の実施形態は、画像と共に記憶された、編集命令4815のセットからの最新の命令を除去する。
GUI項目の第2のセットは、共有ボタン4740、情報ボタン4741、「オリジナルを示す」ボタン4742、及び編集ボタン4743を含む。共有ボタン4740により、ユーザは、多種多様の方法で、画像を共有することが可能となる。一部の実施形態では、とりわけ、ユーザは、同じネットワーク(例えば、WiFi(登録商標)又はBluetooth(登録商標)ネットワーク)上の別の互換装置に、選択された画像を送信して、画像ホスティングウェブサイト又はソーシャルメディアウェブサイトに画像をアップロードし、選択された画像のセットから、ジャーナル(すなわち、追加のコンテンツを追加することが可能な、配置構成された画像の提示)を作成することができる。
情報ボタン4741は、1つ以上の選択された画像についての追加情報を表示する、表示領域をアクティブ化する。アクティブ化された表示領域内に表示される情報は、画像に関して記憶されたExifデータ(例えば、カメラ設定、タイムスタンプなど)の一部又は全てを含み得る。複数の画像が選択される場合、一部の実施形態は、選択された画像の全てに共通であるExifデータのみを表示する。一部の実施形態は、(i)GPSデータに従って(この情報が利用可能である場合には)、画像が取り込まれた場所を示すマップを表示するため、及び(ii)任意の写真共有ウェブサイト上の、画像に関するコメントストリームを表示するために、情報表示領域内に追加タブを含む。この情報をウェブサイトからダウンロードするために、アプリケーションは、共有画像データと共に画像に関して記憶された、画像に関するオブジェクトIDを使用し、この情報をウェブサイトに送信する。コメントストリーム、及び、場合によっては追加情報がウェブサイトから受信され、ユーザに表示される。
「オリジナルを示す」ボタン4742により、ユーザは、画像のオリジナルバージョンと、その画像の現在の編集済みバージョンとを、切り替えることが可能となる。ユーザがこのボタンを選択すると、アプリケーションは、編集命令4815の一切が適用されていない、その画像のオリジナルバージョンを表示する。一部の実施形態では、適切なサイズの画像が、その画像のキャッシュバージョン4840のうちの1つとして記憶されることにより、その画像に素早くアクセス可能となる。ユーザが、ボタン4742を再び選択すると、このアプリケーションは、編集命令4815が適用されている、その画像の編集済みバージョンを表示する。
編集ボタン4743により、ユーザは、編集モードに入るか、又は編集モードから出ることが可能となる。ユーザが、ツールバー4720内の編集ツールのセットのうちの1つを選択している場合、図47に示されるように、編集ボタン4743は、閲覧及び構成モードにユーザを戻す。ユーザが、閲覧モードにある間に、編集ボタン4743を選択すると、このアプリケーションは、ツールバー4720内に示される順序で最後に使用された編集ツールのセットに戻る。すなわち、ツールバー4720内の項目は、特定の順序で配置構成され、編集ボタン4743は、選択された画像に対して編集が行われた、それらの項目の右端をアクティブ化する。
ツールバー4720は、上述のように、左から右に特定の順序で配置構成された、5つの項目4745〜1249を含む。クロップ項目4745は、ユーザが、歪んだ画像を位置調整して、画像の不必要な部分を除去することを可能にする、クロップ及び回転ツールをアクティブ化する。露出項目4746は、ユーザが、画像の黒点、シャドウ、コントラスト、明度、ハイライト、及び白色点を修正することを可能にする、露出ツールのセットをアクティブ化する。一部の実施形態では、この露出ツールのセットは、種々の組み合わせで協働して画像の色調属性を修正する、スライダのセットである。色項目4747は、ユーザが、彩度及び自然な彩度、並びに、色別の彩度(例えば、青色画素又は緑色画素)及びホワイトバランスを修正することを可能にする、色ツールのセットをアクティブ化する。一部の実施形態では、これらのツールの一部は、スライダのセットとして提示される。ブラシ項目4748は、ユーザが、画像に対する修正を局所化することを可能にする、補正ツールのセットをアクティブ化する。このブラシを使用して、ユーザは、画像の上で擦るアクションを実行することによって、赤目及び汚点を除去し、画像の局所化された部分に、彩度及び他の特徴を適用するか、若しくは除去することができる。最後に、効果項目4749は、ユーザが画像に適用することが可能な、特殊効果のセットをアクティブ化する。これらの効果としては、デュオトーン効果、粗い粒子効果、グラデーション、ティルトシフト、非写実的彩度低下効果、グレースケール効果、様々なフィルタなどが挙げられる。一部の実施形態では、このアプリケーションは、ツールバー4725から扇形に展開する項目のセットとして、これらの効果を提示する。
上述のように、UI項目4745〜1249は、特定の順序で配置される。この順序は、ユーザが、これらの5つの異なるタイプの編集を最もよく適用する順序に従う。したがって、編集命令4815は、一部の実施形態では、この同じ順序で記憶される。ユーザが、項目4745〜1249のうちの1つを選択すると、一部の実施形態は、選択されたツールの左側のツールからの編集のみを、表示された画像に適用する(しかしながら、他の編集は、命令セット4815内に記憶されたまま維持される)。
ツールバー4725は、GUI項目4750〜1254のセット、並びに設定項目4755を含む。自動補正項目4750は、画像に対する補正編集(例えば、明らかな赤目の除去、色バランス調整など)を自動的に実行する。回転ボタン4751は、任意の選択された画像を回転させる。一部の実施形態では、この回転ボタンが押されるたびに、画像は、特定の方向に90度回転する。自動補正は、一部の実施形態では、命令セット4815内に置かれる、所定の編集命令のセットを含む。一部の実施形態は、画像の分析を実行し、次いで、その分析に基づいて命令のセットを定義する。例えば、自動補正ツールは、画像内の赤目を検出することを試みるが、赤目が検出されない場合には、赤目を補正するための命令が生成されることはない。同様に、自動色バランス調整は、画像の分析に基づくものとなる。回転ボタンによって生成される回転もまた、編集命令として記憶される。
フラグボタン4752は、任意の選択された画像に、フラグ付きとしてタグを付ける。一部の実施形態では、コレクションのフラグ付き画像は、いずれのフラグなし画像も伴うことなく表示することができる。お気に入りボタン4753により、ユーザは、任意の選択された画像を、お気に入りとしてマーク付けすることが可能となる。一部の実施形態では、このことにより、その画像は、お気に入りとしてタグ付けされ、また、その画像は、お気に入り画像のコレクションにも追加される。非表示ボタン4754により、ユーザは、画像を非表示としてタグ付けすることが可能となる。一部の実施形態では、非表示画像は、サムネイル表示領域内には表示されず、かつ/又は、ユーザが画像表示領域内でコレクションの画像を循環させる際にも表示されない。図48を参照して上述されたように、これらの特徴のうちの多くは、画像データ構造内にタグとして記憶される。
最後に、設定ボタン4755は、現在アクティブであるツールセットに応じて異なるメニューオプションを提供する、コンテキストに応じたメニューをアクティブ化する。例えば、閲覧モードでは、一部の実施形態のメニューは、新たなアルバムを作成するためのオプション、アルバム用の主要写真を設定するためのオプション、写真間で設定をコピーするためのオプション、及び他のオプションを提供する。種々の編集ツールのセットがアクティブである場合、このメニューは、特定のアクティブなツールセットに関連するオプションを提供する。
画像閲覧及び編集GUI4700は、画像閲覧、編集及び構成アプリケーションに関する多くの可能なグラフィカルユーザインターフェースのうちの1つの実施例に過ぎないことが、当業者には認識されるであろう。例えば、様々な項目は、異なる領域内に、又は異なる順序で配置することが可能であり、一部の実施形態は、追加的な機能性又は異なる機能性を有する項目を含み得る。一部の実施形態のサムネイル表示領域は、対応するフルサイズの画像のアスペクト比に一致するサムネイルなどを表示することができる。
V.電子システム
上述の機能及びアプリケーションのうちの多くは、コンピュータ可読記憶媒体(コンピュータ可読媒体とも称される)上に記録される命令のセットとして指定される、ソフトウェアプロセスとして実装される。これらの命令が、1つ以上の計算又は処理ユニット(例えば、1つ以上のプロセッサ、プロセッサのコア、又は他の処理ユニット)によって実行される場合、それらの命令は、処理ユニットに、それらの命令で示されるアクションを実行させる。コンピュータ可読媒体の例としては、CD−ROM、フラッシュドライブ、ランダムアクセスメモリ(RAM)チップ、ハードドライブ、消去可能プログラム可能な読出し専用メモリ(EPROM)、電気的消去可能プログラム可能な読み出し専用メモリ(EEPROM)などが挙げられるが、これらに限定されない。コンピュータ可読媒体は、無線で、若しくは有線接続を介して伝達される、搬送波及び電子信号を含まない。
本明細書では、用語「ソフトウェア」は、プロセッサによって処理するためにメモリ内に読み込むことが可能な、読み出し専用メモリ内に存在するファームウェア、又は磁気記憶装置内に記憶されたアプリケーションを含むものとする。また、一部の実施形態では、複数のソフトウェア発明は、別個のソフトウェア発明のまま維持しつつ、より大きいプログラムの下位区分として実装することもできる。一部の実施形態では、複数のソフトウェア発明はまた、個別のプログラムとして実装することもできる。最後に、本明細書で説明されるソフトウェア発明を一体となって実装する、個別のプログラムのいずれの組み合わせも、本発明の範囲内である。一部の実施形態では、ソフトウェアプログラムは、1つ以上の電子システム上で動作するようにインストールされる場合、そのソフトウェアプログラムの動作を遂行及び実行する、1つ以上の特定のマシン実装を定義する。
A.モバイル装置
一部の実施形態の画像編集及び閲覧アプリケーションは、モバイル装置上で動作する。図49は、そのようなモバイルコンピューティング装置のアーキテクチャ4900の実施例である。モバイルコンピューティング装置の例としては、スマートフォン、タブレット、ラップトップなどが挙げられる。図示のように、モバイルコンピューティング装置4900は、1つ以上の処理ユニット4905、メモリインターフェース4910、及び周辺装置インターフェース4915を含む。
周辺装置インターフェース4915は、カメラサブシステム4920、無線通信サブシステム4925、オーディオサブシステム4930、I/Oサブシステム4935などを含めた、様々なセンサ及びサブシステムに結合される。周辺装置インターフェース4915は、処理ユニット4905と様々な周辺装置との間の通信を可能にする。例えば、方向センサ4945(例えば、ジャイロスコープ)及び加速度センサ4950(例えば、加速度計)は、方向及び加速度機能を容易にするために周辺装置インターフェース4915に結合される。
カメラサブシステム4920は、1つ以上の光センサ4940(例えば、電荷結合素子(CCD)光センサ、相補型金属酸化膜半導体(CMOS)光センサなど)に結合される。光センサ4940と結合されたカメラサブシステム4920は、画像及び/又は映像データの取り込みなどの、カメラ機能を容易にする。無線通信サブシステム4925は、通信機能を容易にするために役立つ。一部の実施形態では、無線通信サブシステム4925は、無線周波数受信器及び送信器、並びに光受信器及び送信器(図49では図示せず)を含む。一部の実施形態のこれらの受信器及び送信器は、GSMネットワーク、Wi−Fiネットワーク、Bluetoothネットワークなどの1つ以上の通信ネットワークを介して動作するように実装される。オーディオサブシステム4930は、音声を出力するために、(例えば、種々の画像操作に関連付けられている種々の音響効果を出力するために)スピーカに結合される。更に、オーディオサブシステム4930は、音声認識、デジタル録音などの、音声対応機能を容易にするために、マイクロホンに結合される。
I/Oサブシステム4935は、周辺装置インターフェース4915を通じて、ディスプレイ、タッチスクリーンなどの入出力周辺装置と処理ユニット4905のデータバスとの間の転送に関与する。I/Oサブシステム4935は、入出力周辺装置と処理ユニット4905のデータバスとの間の転送を容易にするために、タッチスクリーンコントローラ4955及び他の入力コントローラ4960を含む。図示のように、タッチスクリーンコントローラ4955は、タッチスクリーン4965に結合される。タッチスクリーンコントローラ4955は、複数のタッチ感応技術のいずれかを使用して、タッチスクリーン4965上の接触及び移動を検出する。他の入力コントローラ4960は、1つ以上のボタンなどの、他の入力/制御装置に結合される。一部の実施形態は、タッチ相互作用の代わりに、又はそれに加えて、ニアタッチ相互作用を検出することが可能な、ニアタッチ感応スクリーン及び対応するコントローラを含む。
メモリインターフェース4910は、メモリ4970に結合される。一部の実施形態では、メモリ4970は、揮発性メモリ(例えば、高速ランダムアクセスメモリ)、不揮発性メモリ(例えば、フラッシュメモリ)、揮発性メモリと不揮発性メモリとの組み合わせ、及び/又は任意の他のタイプのメモリを含む。図49に示すように、メモリ4970は、オペレーティングシステム(OS)4972を記憶する。OS 4972は、基本システムサービスを処理するための命令、及び、ハードウェア依存タスクを実行するための命令を含む。
メモリ4970はまた、1つ以上の追加的装置との通信を容易にするための通信命令4974、グラフィカルユーザインターフェース処理を容易にするためのグラフィカルユーザインターフェース命令4976、画像関連の処理及び機能を容易にするための画像処理命令4978、入力関連(例えば、タッチ入力)の処理及び機能を容易にするための入力処理命令4980、オーディオ関連の処理及び機能を容易にするためのオーディオ処理命令4982、並びにカメラ関連の処理及び機能を容易にするためのカメラ命令4984も含む。上述の命令は、単なる例示であり、メモリ4970は、一部の実施形態では、更なる命令及び/又は他の命令を含む。例えば、スマートフォンに関するメモリは、電話関連のプロセス及び機能を容易にするための、電話命令を含み得る。上記で特定された命令は、個別のソフトウェアプログラム又はモジュールとして実装される必要はない。モバイルコンピューティング装置の様々な機能は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含めた、ハードウェア及び/又はソフトウェアとして実装することができる。
図49に示される構成要素は、個別の構成要素として示されるが、2つ以上の構成要素を1つ以上の集積回路内に統合することができる点が、当業者には認識されるであろう。更には、2つ以上の構成要素を、1つ以上の通信バス又は信号線によって、一体に結合することができる。また、これらの機能のうちの多くは、1つの構成要素によって実行されるとして説明されているが、図49に関連して説明される機能は、2つ以上の集積回路へと分割することができる点が、当業者には理解されるであろう。
B.コンピュータシステム
図50は、本発明の一部の実施形態が実装される、電子システム5000の別の実施例を概念的に示す。電子システム5000は、コンピュータ(例えば、デスクトップコンピュータ、パーソナルコンピュータ、タブレットコンピュータなど)、電話、PDA、又は任意の他の種類の電子装置若しくはコンピューティング装置とすることができる。そのような電子システムは、様々なタイプのコンピュータ可読媒体、及び様々な他のタイプのコンピュータ可読媒体のためのインターフェースを含む。電子システム5000は、バス5005、処理ユニット5010、グラフィック処理ユニット(GPU)5015、システムメモリ5020、ネットワーク5025、読み出し専用メモリ5030、永久記憶装置5035、入力装置5040、及び出力装置5045を含む。
バス5005は、電子システム5000の多数の内部装置を通信可能に接続する、全てのシステムバス、周辺装置バス、及びチップセットバスを、一括して表す。例えば、バス5005は、処理ユニット5010を、読み出し専用メモリ5030、GPU5015、システムメモリ5020、及び永久記憶装置5035と通信可能に結合する。
これらの様々なメモリユニットから、処理ユニット5010は、本発明のプロセスを実行するために、実行するべき命令及び処理するべきデータを取得する。この処理ユニットは、異なる実施形態では、シングルプロセッサ又はマルチコアプロセッサとすることができる。一部の命令は、GPU5015に渡され、GPU5015によって実行される。GPU5015は、処理ユニット5010によって提供される、様々な計算をオフロードするか、又は画像処理を補完することができる。一部の実施形態では、そのような機能性は、CoreImageのカーネルシェーディング言語を使用して提供することができる。
読み出し専用メモリ(ROM)5030は、処理ユニット5010、及び電子システムの他のモジュールによって必要とされる、静的データ並びに命令を記憶する。一方で、永久記憶装置5035は、読み出し及び書き込みメモリ装置である。この装置は、電子システム5000がオフの場合であっても、命令及びデータを記憶する、不揮発性メモリユニットである。本発明の一部の実施形態は、永久記憶装置5035として、大容量記憶装置(磁気若しくは光ディスク、及びその対応するディスクドライブなど)を使用する。
他の実施形態は、永久記憶装置として、リムーバブル記憶装置(フロッピーディスク、フラッシュメモリ装置など、及びその対応するドライブ)を使用する。永久記憶装置5035と同様に、システムメモリ5020は、読み出し及び書き込みメモリ装置である。しかしながら、記憶装置5035とは異なり、システムメモリ5020は、ランダムアクセスメモリなどの、揮発性の読み出し及び書き込みメモリである。システムメモリ5020は、実行時にプロセッサが必要とする、命令及びデータのうちの一部を記憶する。一部の実施形態では、本発明のプロセスは、システムメモリ5020、永久記憶装置5035、及び/又は読み出し専用メモリ5030内に記憶される。例えば、一部の実施形態によれば、様々なメモリユニットは、マルチメディアクリップを処理するための命令を含む。これらの様々なメモリユニットから、処理ユニット5010は、一部の実施形態のプロセスを実行するために、実行するべき命令及び処理するべきデータを取得する。
バス5005はまた、入力装置5040及び出力装置5045にも接続する。入力装置5040により、ユーザは、この電子システムに対して、情報を通信し、かつコマンドを選択することが可能となる。入力装置5040としては、英数字キーボード及びポインティング装置(「カーソル制御装置」とも称される)、カメラ(例えば、ウェブカメラ)、音声コマンドを受け取るためのマイクロホン又は同様の装置などが挙げられる。出力装置5045は、この電子システムによって生成された画像を表示するか、又は他の方式でデータを出力する。出力装置5045としては、プリンタ、及び陰極線管(CRT)若しくは液晶ディスプレイ(LCD)などのディスプレイ装置、並びにスピーカ又は同様のオーディオ出力装置が挙げられる。一部の実施形態は、入力装置及び出力装置の双方として機能する、タッチスクリーンなどの装置を含む。
最後に、図50に示すように、バス5005はまた、ネットワークアダプタ(図示せず)を通じて、電子システム5000をネットワーク5025にも結合する。この方式で、コンピュータは、コンピュータのネットワーク(ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、又はイントラネットなど)の一部、又は複数のネットワークのネットワーク(例えばインターネット)の一部とすることができる。電子システム5000のいずれか又は全ての構成要素を、本発明と共に使用することができる。
一部の実施形態は、マイクロプロセッサ、機械可読若しくはコンピュータ可読媒体(あるいは、コンピュータ可読記憶媒体、機械可読媒体、又は機械可読記憶媒体とも称される)内にコンピュータプログラム命令を記憶する記憶装置及びメモリなどの、電子構成要素を含む。そのようなコンピュータ可読媒体の一部の例としては、RAM、ROM、読み出し専用コンパクトディスク(CD−ROM)、記録可能コンパクトディスク(CD−R)、書換え可能コンパクトディスク(CD−RW)、読み出し専用デジタル多目的ディスク(例えば、DVD−ROM、2層DVD−ROM)、様々な記録可能/書換え可能DVD(例えば、DVD−RAM、DVD−RW、DVD+RWなど)、フラッシュメモリ(例えば、SDカード、ミニSDカード、マイクロSDカードなど)、磁気及び/又はソリッドステートハードドライブ、読み出し専用記録可能Blu−Ray(登録商標)ディスク、超高密度光ディスク、任意の他の光学若しくは磁気媒体、及びフロッピーディスクが挙げられる。コンピュータ可読媒体は、少なくとも1つの処理ユニットによって実行可能であり、かつ様々な操作を実行するための命令のセットを含む、コンピュータプログラムを記憶することができる。コンピュータプログラム又はコンピュータコードの例としては、コンパイラによって作成されるような機械コード、及び、インタープリタを使用して、コンピュータ、電子構成要素、若しくはマイクロプロセッサによって実行される高レベルコードを含むファイルが挙げられる。
上記の考察は、主に、ソフトウェアを実行するマイクロプロセッサ又はマルチコアプロセッサに言及しているが、一部の実施形態は、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)などの、1つ以上の集積回路によって実行される。一部の実施形態では、そのような集積回路は、その回路自体に記憶されている命令を実行する。更には、一部の実施形態は、プログラマブルロジックデバイス(PLD)、ROM、又はRAMデバイス内に記憶されたソフトウェアを実行する。
本出願の本明細書及びいずれかの特許請求の範囲で使用されるとき、用語「コンピュータ」、「サーバ」、「プロセッサ」、及び「メモリ」は全て、電子装置又は他の技術装置を指す。これらの用語は、人々又は人々のグループを除外する。本明細書の目的上、用語「表示」又は「表示すること」は、電子装置上に表示することを意味する。本出願の本明細書及びいずれかの特許請求の範囲で使用されるとき、用語「コンピュータ可読媒体」及び「機械可読媒体」は、コンピュータによって読み出し可能な形式で情報を記憶する、有形の物理的実体に完全に限定される。これらの用語は、あらゆる無線信号、有線でダウンロードされる信号、及びあらゆる他の一過性の信号を除外する。
本発明は、数多くの特定の詳細を参照して説明されているが、当業者には、本発明の趣旨から逸脱することなく、他の特定の形式で本発明を具体化することができる点が認識されるであろう。例えば、図の多くは、様々なタッチジェスチャ(例えば、タップ、ダブルタップ、スワイプジェスチャ、プレスアンドホールドジェスチャなど)を示す。しかしながら、図示される操作のうちの多くは、異なるタッチジェスチャ(例えば、タップの代わりのスワイプなど)を介して、又は非タッチ入力によって(例えば、カーソルコントローラ、キーボード、タッチパッド/トラックパッド、ニアタッチ感応スクリーンなどを使用して)実行することが可能である。更に、(図16、17、19、26、28、36、44、及び図45を含めた)幾つかの図は、プロセスを概念的に示す。これらのプロセスの具体的な操作は、図示及び説明された厳密な順序では、実行されない場合がある。特定の操作は、1つの連続系列の操作で実行されない場合があり、様々な特定の操作を、様々な実施形態で実行することができる。更には、このプロセスは、幾つかのサブプロセスを使用して、又はより大きいマクロプロセスの一部として、実施することが可能である。したがって、本発明は、前述の例示的な詳細によって限定されるものではなく、むしろ、添付の特許請求の範囲によって定義されるものであることが、当業者には理解されるであろう。
更には、種々の画像編集操作を実行するために使用される、単一の調整値を設定するためのコントロールは、図3、4、6、7、9、14、15、20、21、22、23、24、31、32、33、34、及び図35では、スライダコントロールとして示される。そのような実施形態のスライダは、そのスライダに関する値を設定するためにスライダに沿ってつまみがスライドされるときに、設定値の視覚的な表示を提供する。しかしながら、一部の実施形態では、それらの図のいずれかで示されるスライダコントロールは、垂直式スライダコントロール、プルダウンメニュー、値エントリボックス、キーボードのキーによってアクティブ化されるインクリメンタルツール、他の範囲関連UIコントロール(例えば、ダイヤル、ボタン、数値フィールドなど)のような、値(例えば、単一の値)を受け取ることが可能な、任意の他のコントロールと置き換えることが可能である。同様に、それらの図のスライダコントロールは、タッチ感応スクリーン上での指ジェスチャ(例えば、1つ以上の指を置くこと、指さすこと、タップすること)で設定されるように表現されるか、又は、それらのスライダコントロールがどのように所定位置に移動されたかが表示されることなく、単純に特定の位置で表示される。図3、4、6、7、9、14、15、20、21、22、23、24、31、32、33、34、及び図35のコントロールはまた、一部の実施形態では、カーソル制御装置(例えば、マウス又はトラックボール)、スタイラス、キーボード、ニアタッチ感応スクリーン付近での指ジェスチャ(例えば、1つ以上の指を置くこと、指さすこと、タップすること)、又は任意の他の制御システムによっても、アクティブ化及び/又は設定することができる点が、当業者には理解されるであろう。したがって、本発明は、前述の例示的な詳細によって限定されるものではなく、むしろ、添付の特許請求の範囲によって定義されるものであることが、当業者には理解されるであろう。