(57)【特許請求の範囲】
【請求項１】
ユーザの指示に応じて指定手段がコントロールポイントを指定することにより、前記コントロールポイントを通り、入力画像の各色成分を独立に変換するトーンカーブを指定するトーンカーブ指定ステップと、
複数の色成分からなる特定の色を異なる色に変換させるユーザの指示に応じて、前記指定手段が、変換前の前記特定の色の各色成分を示す第１の点と、変換後の前記異なる色の各色成分を示す第２の点とを指定する色成分指定ステップと、
前記第１の点が前記トーンカーブにより変換された変換点と、前記第２の点との差に、前記トーンカーブにより変換しようとする色成分の値ごとに前記特定の色の前記各成分によって定まる重みをつけて、重みつけされた前記差を前記トーンカーブに加算することで、前記第１の点が前記第２の点に変換されるように前記トーンカーブを修正して、前記入力画像の各色成分を独立に変換する連続な変換関数を生成する変換関数生成ステップと、
前記変換関数により前記入力画像を変換する変換ステップと
を含むことを特徴とする画像変換方法。
【請求項２】
前記変換関数生成ステップは、前記複数の色成分からなる色空間を距離空間と見なし、
複数の前記特定の色を母点と考えたボロノイ分割を行う分割ステップと、
前記特定の色から、前記入力画像上の任意の画素の前記複数の色成分の値からなる前記画素の色であって距離空間内の前記画素の色までのユークリッド距離を、前記特定の色から、前記特定の色を始発とし前記画素の色を通る半直線と、前記特定の色を包含するボロノイ領域の境界との交点までのユークリッド距離で割る割り算ステップと、
前記割り算ステップの割り算の結果から前記重みを計算する重み算出ステップと、
前記トーンカーブ、前記第１の点、前記第２の点、および前記重みに基づいて、前記画素の色を変換する関数である前記変換関数を作成する作成ステップと
を含むことを特徴とする請求項１に記載の画像変換方法。
【請求項３】
ユーザの指示に応じて指定手段がコントロールポイントを指定することにより、前記コントロールポイントを通り、入力画像の各色成分を独立に変換するトーンカーブを指定するトーンカーブ指定ステップと、
複数の色成分からなる特定の色を異なる色に変換させるユーザの指示に応じて、前記指定手段が、変換前の前記特定の色の各色成分を示す第１の点と、変換後の前記異なる色の各色成分を示す第２の点とを指定する色成分指定ステップと、
前記第１の点が前記トーンカーブにより変換された変換点と、前記第２の点との差に、前記トーンカーブにより変換しようとする色成分の値ごとに前記特定の色の前記各成分によって定まる重みをつけて、重みつけされた前記差を前記トーンカーブに加算することで、前記第１の点が前記第２の点に変換されるように前記トーンカーブを修正して、前記入力画像の各色成分を独立に変換する連続な変換関数を生成する変換関数生成ステップと、
前記変換関数により前記入力画像を変換する変換ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項４】
前記変換関数生成ステップは、前記複数の色成分からなる色空間を距離空間と見なし、
複数の前記特定の色を母点と考えたボロノイ分割を行う分割ステップと、
前記特定の色から、前記入力画像上の任意の画素の前記複数の色成分の値からなる前記画素の色であって距離空間内の前記画素の色までのユークリッド距離を、前記特定の色から、前記特定の色を始発とし前記画素の色を通る半直線と、前記特定の色を包含するボロノイ領域の境界との交点までのユークリッド距離で割る割り算ステップと、
前記割り算ステップの割り算の結果から前記重みを計算する重み算出ステップと、
前記トーンカーブ、前記第１の点、前記第２の点、および前記重みに基づいて、前記画素の色を変換する関数である前記変換関数を作成する作成ステップと
を含むことを特徴とする請求項３に記載のプログラム。
【請求項５】
ユーザの指示に応じてコントロールポイントを指定することにより、前記コントロールポイントを通り、入力画像の各色成分を独立に変換するトーンカーブを指定するとともに、複数の色成分からなる特定の色を異なる色に変換させるユーザの指示に応じて、変換前の前記特定の色の各色成分を示す第１の点と、変換後の前記異なる色の各色成分を示す第２の点とを指定するトーンカーブ指定手段と、
前記第１の点が前記トーンカーブにより変換された変換点と、前記第２の点との差に、前記トーンカーブにより変換しようとする色成分の値ごとに前記特定の色の前記各成分によって定まる重みをつけて、重みつけされた前記差を前記トーンカーブに加算することで、前記第１の点が前記第２の点に変換されるように前記トーンカーブを修正して、前記入力画像の各色成分を独立に変換する連続な変換関数を生成する変換関数生成手段と、
前記変換関数により前記入力画像を変換する変換手段と
を備えることを特徴とする画像変換装置。
【請求項６】
前記変換関数生成手段は、前記複数の色成分からなる色空間を距離空間と見なし、
複数の前記特定の色を母点と考えたボロノイ分割を行う分割手段と、
前記特定の色から、前記入力画像上の任意の画素の前記複数の色成分の値からなる前記画素の色であって距離空間内の前記画素の色までのユークリッド距離を、前記特定の色から、前記特定の色を始発とし前記画素の色を通る半直線と、前記特定の色を包含するボロノイ領域の境界との交点までのユークリッド距離で割る割り算手段と、
前記割り算手段の割り算の結果から前記重みを計算する重み算出手段と、
前記トーンカーブ、前記第１の点、前記第２の点、および前記重みに基づいて、前記画素の色を変換する関数である前記変換関数を作成する作成手段と
を備えることを特徴とする請求項５に記載の画像変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像変換方法および装置、並びにプログラムに関し、特に、フォトレタッチに使用される画像データの変換関数を設定する画像変換方法および装置、並びにプログラムに関する。
【０００２】
【従来の技術】
フォトレタッチとはディジタル技術によって画像を修正することを言う。即ち、画像を撮影後に、画像編集装置を使って、好みの画像に変更し、新たな画像を作成することである。フォトレタッチの中には、色々な処理があるが、その中で、カラーコレクションについて、以下で述べる。
【０００３】
カラーコレクションとは、画像の色を変更する処理を言う。具体的には、画像がＲ（赤）、Ｇ（緑）、Ｂ（青）の３色で表わされる場合、入力画像データを（Ｒｉ，Ｇｉ，Ｂｉ）、出力画像データを（Ｒｏ，Ｇｏ，Ｂｏ）とした時、変換関数
（Ｒｏ，Ｇｏ，Ｂｏ）＝Ｔ（Ｒｉ，Ｇｉ，Ｂｉ）
を設定し、その変換関数の通りに画像データの各画素を変換していくことを言う。
【０００４】
この変換関数の設定方法は、いろいろな方法がある。
例えば、変換関数は、Ｒ、Ｇ、Ｂそれぞれ独立であるとして、各関数
Ｒｏ＝Ｔｒ（Ｒｉ）
Ｇｏ＝Ｔｇ（Ｇｉ）
Ｂｏ＝Ｔｂ（Ｂｉ）
を設定する方法がある。赤色のハイライト部分が強調されすぎている画像の場合、ユーザは、
Ｔｇ（Ｇｉ）＝Ｇｉ
Ｔｂ（Ｂｉ）＝Ｂｉ
とし、
Ｒｏ＝Ｔｒ（Ｒｉ）
のみを指定する。赤色のハイライト部分を抑えたいので、この場合、例えば、図１に示すような、入力（Ｒｉ）が大きくなるにつれて出力（Ｒｏ）が飽和する関数を指定する。このようにして指定された各関数Ｔｒ、Ｔｇ、Ｔｂに従って、画像データの各画素を変更していくことで、赤色のハイライト部分の強調は抑えられ、より自然な画像を作成できる。
【０００５】
このＴｒ、Ｔｇ、Ｔｂを独立に設定する方法は、「赤色成分を変更したい時は、Ｔｒのみをユーザは変更すればよい。」ということになり、ユーザに対して直感的で分かりやすい設定方法である。その反面、変換関数は、Ｒ、Ｇ、Ｂそれぞれ独立であるという制限を設けているため、変換関数の設定自由度がない（例えば、Ｇに依存させてＲの値を変化させるようなことはできない）。
【０００６】
なお、Ｔｒ、Ｔｇ、Ｔｂは、それぞれ、Ｒのトーンカーブ、Ｇのトーンカーブ、Ｂのトーンカーブと呼ばれる。
【０００７】
また、別の方法として、複数の対応点を指定することにより関数Ｔを決定する方法もある。この方法では、ユーザが、変更したい特定の色（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と、変更後の色（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）とを指定する。ｎ＝１乃至Ｎ（Ｎは、指定した組数）である。
【０００８】
このようにユーザが指定することで、（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）は（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）（ｎ＝１乃至Ｎ）へと変換され、その他のデータ（Ｒｉ，Ｇｉ，Ｂｉ）は、しかるべき変換が施されるように、関数Ｔが決定される。前記「しかるべき変換」とは、例えば、入力画像データ（Ｒｉ，Ｇｉ，Ｂｉ）に一番近い（Ｒｉｎ，Ｂｉｎ，Ｇｉｎ）を、「（Ｒｉ１，Ｇｉ１，Ｂｉ１）から（ＲｉＮ，ＧｉＮ，ＢｉＮ）」の中から選び、選ばれた（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）（ｎは選ばれた番号）と同じベクトル分（Ｒｏｎ−Ｒｉｎ，Ｇｏｎ−Ｇｉｎ，Ｂｏｎ−Ｂｉｎ）だけ移動するという変換である。
【０００９】
【発明が解決しようとする課題】
ところで、前記２つの方法を一度に行いたいときがある。即ち、ユーザは、直感的で分かりやすいので、Ｔｒ、Ｔｇ、Ｔｂをまず設定し、そして、同時に、ある特定の色（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）を、特定の色（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）（ｎ＝１乃至Ｎ）に変更、指定したいときがある。
【００１０】
しかしながら、従来、関数Ｔは、このようには設定できなかった。
【００１１】
本発明は、このような状況に鑑みてなされたものであり、関数を任意に設定することができるようにするものである。
【００１２】
【課題を解決するための手段】
請求項１に記載の画像変換方法は、ユーザの指示に応じて指定手段がコントロールポイントを指定することにより、コントロールポイントを通り、入力画像の各色成分を独立に変換するトーンカーブを指定するトーンカーブ指定ステップと、複数の色成分からなる特定の色を異なる色に変換させるユーザの指示に応じて、指定手段が、変換前の特定の色の各色成分を示す第１の点と、変換後の異なる色の各色成分を示す第２の点とを指定する色成分指定ステップと、第１の点がトーンカーブにより変換された変換点と、第２の点との差に、トーンカーブにより変換しようとする色成分の値ごとに特定の色の各成分によって定まる重みをつけて、重みつけされた差をトーンカーブに加算することで、第１の点が第２の点に変換されるようにトーンカーブを修正して、入力画像の各色成分を独立に変換する連続な変換関数を生成する変換関数生成ステップと、変換関数により入力画像を変換する変換ステップとを含むことを特徴とする。
【００１６】
請求項２に記載の画像変換方法は、変換関数生成ステップは、複数の色成分からなる色空間を距離空間と見なし、複数の特定の色を母点と考えたボロノイ分割を行う分割ステップと、特定の色から、入力画像上の任意の画素の複数の色成分の値からなる画素の色であって距離空間内の画素の色までのユークリッド距離を、特定の色から、特定の色を始発とし画素の色を通る半直線と、特定の色を包含するボロノイ領域の境界との交点までのユークリッド距離で割る割り算ステップと、割り算ステップの割り算の結果から重みを計算する重み算出ステップと、トーンカーブ、第１の点、第２の点、および重みに基づいて、画素の色を変換する関数である変換関数を作成する作成ステップとを含むことを特徴とする。
【００２０】
請求項３に記載のプログラムは、ユーザの指示に応じて指定手段がコントロールポイントを指定することにより、コントロールポイントを通り、入力画像の各色成分を独立に変換するトーンカーブを指定するトーンカーブ指定ステップと、複数の色成分からなる特定の色を異なる色に変換させるユーザの指示に応じて、指定手段が、変換前の特定の色の各色成分を示す第１の点と、変換後の異なる色の各色成分を示す第２の点とを指定する色成分指定ステップと、第１の点がトーンカーブにより変換された変換点と、第２の点との差に、トーンカーブにより変換しようとする色成分の値ごとに特定の色の各成分によって定まる重みをつけて、重みつけされた差をトーンカーブに加算することで、第１の点が第２の点に変換されるようにトーンカーブを修正して、入力画像の各色成分を独立に変換する連続な変換関数を生成する変換関数生成ステップと、変換関数により入力画像を変換する変換ステップとをコンピュータに実行させることを特徴とする。
請求項４に記載のプログラムは、変換関数生成ステップは、複数の色成分からなる色空間を距離空間と見なし、複数の特定の色を母点と考えたボロノイ分割を行う分割ステップと、特定の色から、入力画像上の任意の画素の複数の色成分の値からなる画素の色であって距離空間内の画素の色までのユークリッド距離を、特定の色から、特定の色を始発とし画素の色を通る半直線と、特定の色を包含するボロノイ領域の境界との交点までのユークリッド距離で割る割り算ステップと、割り算ステップの割り算の結果から重みを計算する重み算出ステップと、トーンカーブ、第１の点、第２の点、および重みに基づいて、画素の色を変換する関数である変換関数を作成する作成ステップとを含むことを特徴とする。
請求項５に記載の画像変換装置は、ユーザの指示に応じてコントロールポイントを指定することにより、コントロールポイントを通り、入力画像の各色成分を独立に変換するトーンカーブを指定するとともに、複数の色成分からなる特定の色を異なる色に変換させるユーザの指示に応じて、変換前の特定の色の各色成分を示す第１の点と、変換後の異なる色の各色成分を示す第２の点とを指定するトーンカーブ指定手段と、第１の点がトーンカーブにより変換された変換点と、第２の点との差に、トーンカーブにより変換しようとする色成分の値ごとに特定の色の各成分によって定まる重みをつけて、重みつけされた差をトーンカーブに加算することで、第１の点が第２の点に変換されるようにトーンカーブを修正して、入力画像の各色成分を独立に変換する連続な変換関数を生成する変換関数生成手段と、変換関数により入力画像を変換する変換手段とを備えることを特徴とする。
請求項６に記載の画像変換装置は、変換関数生成手段は、数の色成分からなる色空間を距離空間と見なし、複数の特定の色を母点と考えたボロノイ分割を行う分割手段と、特定の色から、入力画像上の任意の画素の複数の色成分の値からなる画素の色であって距離空間内の画素の色までのユークリッド距離を、特定の色から、特定の色を始発とし画素の色を通る半直線と、特定の色を包含するボロノイ領域の境界との交点までのユークリッド距離で割る割り算手段と、割り算手段の割り算の結果から重みを計算する重み算出手段と、トーンカーブ、第１の点、第２の点、および重みに基づいて、画素の色を変換する関数である変換関数を作成する作成手段とを備えることを特徴とする。
【００２４】
本発明の画像変換方法および装置、並びにプログラムにおいては、ユーザの指示に応じてコントロールポイントが指定されることにより、コントロールポイントを通り、入力画像の各色成分を独立に変換するトーンカーブが指定され、複数の色成分からなる特定の色を異なる色に変換させるユーザの指示に応じて、変換前の特定の色の各色成分を示す第１の点と、変換後の異なる色の各色成分を示す第２の点とが指定され、第１の点がトーンカーブにより変換された変換点と、第２の点との差に、トーンカーブにより変換しようとする色成分の値ごとに特定の色の各成分によって定まる重みをつけて、重みつけされた差をトーンカーブに加算することで、第１の点が第２の点に変換されるようにトーンカーブが修正されて、入力画像の各色成分を独立に変換する連続な変換関数が生成され、変換関数により入力画像が変換される。
【００２７】
【発明の実施の形態】
本発明の第１の実施の形態の特徴は、次のようなものである。
（１）ユーザが、Ｒ、Ｇ、Ｂのトーンカーブを指定できる。即ち、関数
Ｒｏ＝Ｔｒ（Ｒｉ）
Ｇｏ＝Ｔｇ（Ｇｉ）
Ｂｏ＝Ｔｂ（Ｂｉ）
を設定することが出来る。
（２）ユーザが、変更したい特定の色（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と、それに対応する変更後の色（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）とを明示的に指定することが出来る。
【００２８】
これら２つが指定されると、自動で、入力画像データ（Ｒｉ，Ｇｉ，Ｂｉ）から出力画像データ（Ｒｏ，Ｇｏ，Ｂｏ）への変換関数Ｔを求めることが出来る。
【００２９】
ただし、この変換関数Ｔは、次の条件を満たすものとする。
（Ａ）変換関数Ｔは、連続関数である。
（Ｂ）基本的には、関数Ｔｒ、Ｔｇ、Ｔｂで示すトーンカーブにより、変更する。
（Ｃ）例外として、（２）で指定された特定の色（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）は、このトーンカーブから外れていても、（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）に変更する。
【００３０】
なお、前記条件（Ａ）と（Ｃ）より、入力画像データ（Ｒｉ，Ｇｉ，Ｂｉ）が（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）に近ければ、「Ｔｒ、Ｔｇ、Ｔｂによる変換」と「（Ｒｏｎ−Ｒｉｎ，Ｇｏｎ−Ｇｉｎ，Ｂｏｎ−Ｂｉｎ）と同じベクトル分の移動」との折衷案的な移動が行なわれる。
【００３１】
これにより、ユーザは、画像全体をどのように変更したいかを、トーンカーブを指定することで行うことが出来る。そして、さらに、特定の色は、このトーンカーブにとらわれずに、明示的に指定することが出来る。また、変換関数Ｔは連続であり、入力画像の連続性は、出力画像においても保たれる。
【００３２】
なお、前記関数Ｔが確定した後は、その関数Ｔに従って、入力画像の各画素を変更していけば、出力画像を得ることが出来る。
【００３３】
以下に、前記特徴を満たす具体的な設定方法を述べる。この設定方法は、２つの段階に分けて考えられる。第１段階は、トーンカーブを求めるステップである。第２段階は、トーンカーブと、明示的に指定された「（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）は（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）へ変換する」との違いを誤差と考え、この誤差を補償するステップである。全体の流れは、図２のフローチャートに示されるようになる。
【００３４】
ステップＳ１では、ユーザは、後述する図６の入力装置１６を操作して、Ｒのトーンカーブを指定する為のコントロールポイント（Ｒｃｉｕ，Ｒｃｏｕ）（ｕ＝１乃至Ｃｒ）を入力する。また、ユーザは、Ｇのトーンカーブを指定する為のコントロールポイント（Ｇｃｉｕ，Ｇｃｏｕ）（ｕ＝１乃至Ｃｇ）を入力する。さらに、ユーザは、Ｂのトーンカーブを指定する為のコントロールポイント（Ｂｃｉｕ，Ｂｃｏｕ）（ｕ＝１乃至Ｃｂ）を入力する。
【００３５】
なお、ＲのトーンカーブＴｒは、Ｃｒ個の地点において、Ｒｃｏｕ＝Ｔｒ（Ｒｃｉｕ）（ｕ＝１乃至Ｃｒ）を満たすように以下で求められる。Ｇ、Ｂについても同様である。
【００３６】
さらに、ステップＳ１で、ユーザは、（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と、それに対応する（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）を入力する（ｎ＝１乃至Ｎ）。
【００３７】
そして、処理はステップＳ２に進み、ステップＳ２では、後述する図６の演算処理回路１２でＲ、Ｇ、Ｂのトーンカーブを求める演算が行われる（前記第１段階）。
【００３８】
さらに、処理はステップＳ３に進み、ステップＳ３では、演算処理回路１２において、トーンカーブと、「（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）は（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）へ変換する」との違いを誤差と考え、この誤差を補償する処理が行われる（前記第２段階）。そして処理は終了する。
【００３９】
次に、第１段階（図１のステップＳ２）の処理について詳しく説明する。
【００４０】
「（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）は（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）へ変換する」とユーザが明示的に指定しているので、トーンカーブも、これにある程度は従うべきである。つまり、Ｔｒ（Ｒｉｎ）は、Ｒｏｎと、ほぼ等しくなるべきである。同様に、Ｔｇ（Ｇｉｎ）は、Ｇｏｎと、Ｔｂ（Ｂｉｎ）は、Ｂｏｎと、ほぼ等しくなるべきである。ここで、ｎ＝１乃至Ｎである。
【００４１】
そこで、演算処理回路１２において、図３に示すフローチャートに従って、ＲのトーンカーブＴｒが決定される。図４は、ＲのトーンカーブＴｒの求める際に使用するモデルを示している。図４に示されるように、弾性を有する棒１を、点２、３、４で表される座標（Ｒｃｉｕ，Ｒｃｏｕ）を通るように固定し、さらに、点５、６、７、８で表される座標（Ｒｉｎ，Ｒｏｎ）から、ばね５１、６１、７１、８１を使用して棒１を引っ張る。この棒１が釣り合った状態のとき、この棒１をＲｏ＝Ｔｒ（Ｒｉ）とみなす。
【００４２】
図３のステップＳ１１では、（Ｒｉｎ，Ｒｏｎ）（ｎ＝１乃至Ｎ）、および、Ｒのコントロールポイント（Ｒｃｉｕ，Ｒｃｏｕ）（ｕ＝１乃至Ｃｒ）の合計Ｎ＋Ｃｒ個の点を、第１成分（つまり、ＲｉｎとＲｃｉｕ）の小さい順に並べる。これを（Ｒｄｉ１，Ｒｄｏ１）、（Ｒｄｉ２，Ｒｄｏ２），，，（ＲｄｉＪ，ＲｄｏＪ）とする。ここで、Ｊは、Ｊ＝Ｎ＋Ｃｒである。
【００４３】
そして、ステップＳ１２に進み、ステップＳ１２では、図４に示すモデルの釣り合う条件式からＴｒが求められる。即ち、ばねの関係式（１）、力の釣り合いの式（２）、モーメントの釣り合いの式（３）、各地点におけるモーメントの式（４）、たわみ量とモーメントの関係式（５）、各地点でのＴｒの連続性を示す式（６）、並びに、各地点でのＴｒの微分値の連続性を示す式（７）から計算すれば良い。
【００４４】
【数１】
0004343464.tif 000002
【数２】
0004343464.tif 000003
【数３】
0004343464.tif 000004
【数４】
0004343464.tif 000005
【数５】
0004343464.tif 000006
【数６】
0004343464.tif 000007
【数７】
0004343464.tif 000008
【００４５】
ここで、Wjは棒１に働く力である。Ｋは定数であり、例えばＫ＝６とする。Ｈｊは、図４に示すモデルのばね５１，６１，７１，８１の「ばね定数」の逆数であり、その地点が（Ｒｉｎ，Ｒｏｎ）であれば適当な値（例えばＨｊ＝１０）を、そして、その地点が（Ｒｃｉｕ，Ｒｃｏｕ）であれば０が、それぞれ与えられる。ちなみに、Ｈｊ＝０ということは、それは無限大の力をもつ「ばね」を意味し、かならず、（Ｒｄｉｊ，Ｒｄｏｊ）を通ることになる。従って、Ｔｒは、必ずコントロールポイント（Ｒｃｉｕ，Ｒｃｏｕ）を通るということになる。
【００４６】
式（１）乃至式（７）は、まとめると、式（８）と式（９）となり、式（２）、式（３）、および式（９）より、未知数Ｃ１、Ｃ２、Ｗｊ（ｊ＝１乃至Ｊ）を解き、式（８）に代入することで、Ｔｒを求めることが出来る。ステップＳ１２では、このようにして、Ｔｒが求められる。
【００４７】
【数８】
0004343464.tif 000009
ただし、Ｚは
Ｒdiz≦Ｒi≦Ｒdiz+1
を満たす。
【数９】
0004343464.tif 000010
【００４８】
このようにして、図３に示すフローチャートに従ってＴｒが求められる。Ｔｇ、Ｔｂも、同様に求められる。
【００４９】
以上で、第１段階（図２のステップＳ２）の説明を終わる。
【００５０】
基本的には、前記第１段階で求めたトーンカーブにより変換が行われる。即ち、
Ｒｏ＝Ｔｒ（Ｒｉ）
Ｇｏ＝Ｔｇ（Ｇｉ）
Ｂｏ＝Ｔｂ（Ｂｉ）
とされる。
【００５１】
しかしながら、この変換により、ユーザが明示的に与えた「（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）は（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）へ変換する」とは、ずれることがある。そこで、この誤差を補償する必要がある。
【００５２】
まさに（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）である点は、（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）へ変換するのは当然である。
【００５３】
しかしながら、（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）から微小量だけずれた点では、トーンカーブにより変換するとすると、変換関数Ｔは、（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）で不連続となってしまう。そこで、（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）から十分遠い点では、トーンカーブに重きをおいて変換が行われ、（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）に近づくにつれて、変換後の点が（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）に近づくように処理される。その処理が、次に詳しく述べる処理、即ち、第２段階（図２のステップＳ３）の処理である。
【００５４】
図５は、演算処理回路１２で行われる第２段階での処理のフローチャートを示す。入力画像データを（Ｒｉ，Ｇｉ，Ｂｉ）とする。ステップＳ２１で、（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と（Ｒｉ，Ｇｉ，Ｂｉ）との長さＬｎ（Ｒｉ，Ｇｉ，Ｂｉ）が計算される（ｎ＝１乃至Ｎ）。
【００５５】
ここでいう長さは、通常のユークリッド空間等での長さではない。Ｎ個の点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）を３次元ユークリッド空間上での母点とみなす。そして、これらＮ個の母点によりボロノイ分割が行なわれる。母点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）を始点とし、入力画像データの点（Ｒｉ，Ｇｉ，Ｂｉ）を通る半直線をＺｎとする。半直線Ｚｎと、「その母点のボロノイ領域の境界」との交点をＰｎとする。「母点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と入力画像データの点（Ｒｉ，Ｇｉ，Ｂｉ）のユークリッド距離」を、「母点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と交点Ｐｎのユークリッド距離」で割った値を計算し、これを「母点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と入力画像データの点（Ｒｉ，Ｇｉ，Ｂｉ）の長さ：Ｌｎ（Ｒｉ，Ｇｉ，Ｂｉ）」とする。
【００５６】
ただし、交点Ｐｎが無い場合は、「母点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と交点Ｐｎのユークリッド距離」を無限大と考え、母点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と入力画像データの点（Ｒｉ，Ｇｉ，Ｂｉ）の長さＬｎ（Ｒｉ，Ｇｉ，Ｂｉ）は、０とする。
【００５７】
ステップＳ２１で、長さを計算したら、ステップＳ２２に進み、ステップＳ２２では、重みＱｎ（Ｒｉ，Ｇｉ，Ｂｉ）が求められる。即ち、
Ｑｎ（Ｒｉ，Ｇｉ，Ｂｉ）
＝ＭＡＸ（０，１−｛Ｌｎ（Ｒｉ，Ｇｉ，Ｂｉ）／２｝）
が計算される。ＭＡＸ（Ａ，Ｂ）は、ＡとＢのうち大きい方を選択することを意味する。従って、Ｑｎ（Ｒｉ，Ｇｉ，Ｂｉ）の値は、
｛Ｌｎ（Ｒｉ，Ｇｉ，Ｂｉ）／２｝
が、１より大きければ０となり、１より小さければ、
１−｛Ｌｎ（Ｒｉ，Ｇｉ，Ｂｉ）／２｝
となる。
【００５８】
ステップＳ２２で、重みを計算したら、ステップＳ２３に進み、ステップＳ２
３では、入力画像データの点（Ｒｉ，Ｇｉ，Ｂｉ）から出力画像データ（Ｒｏ，
Ｇｏ，Ｂｏ）への変換関数Ｔが決定される。即ち、式（１０）乃至式（１２）に
示す式が決定される。
【数１０】
0004343464.tif 000011
【数１１】
0004343464.tif 000012
【数１２】
0004343464.tif 000013
【００５９】
上述の方法により決められた重みＱｎの性質を、ここで述べておく。もし、
（Ｒｉ，Ｇｉ，Ｂｉ）＝（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）
であれば、
Ｑｎ（Ｒｉ，Ｇｉ，Ｂｉ）＝１
となる。そして、
Ｑｓ（Ｒｉ，Ｇｉ，Ｂｉ）＝０（ただし、ｓ≠ｎ）
である。なぜなら、
（Ｒｉ，Ｇｉ，Ｂｉ）＝（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）
であれば、上述したように、交点Ｐｎが無いことになり、
Ｌｎ（Ｒｉ，Ｇｉ，Ｂｉ）＝０
となるからである。また、
Ｌｓ（Ｒｉ，Ｇｉ，Ｂｉ）≧２
だからである。これは、ボロノイ領域の境界は、境界を形成している２つの母点から等距離にあることから明白である。
【００６０】
このようにして、変換関数Ｔ（式（１０）乃至式（１２））は決定される。この関数においては、先に延べた重みＱｎの性質から、（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）は、必ず（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）を通る。
【００６１】
以上で、第２段階（図１のステップＳ３）の説明を終わる。
【００６２】
なお、本発明は、例えば、図６に示す装置により実施される。図６において、判定装置１０は、演算処理回路１２、この演算処理回路１２の処理プログラムが格納されたプログラムメモリ１３、処理データ（画像データ）を格納するデータメモリ１４、データをユーザに表示するための表示装置１５、マウスやキーボード等からなる入力装置１６、並びに磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどの記録媒体１７により構成されている。これらの各回路は、プログラムやデータを伝送するバス１１により接続されている。
【００６３】
データメモリ１４に格納されている画像データおよび入力装置１６により入力されるデータを使用して、演算処理回路１２で、図２に示すフローチャートの一連の処理が行われる。
【００６４】
本発明を適用すれば、ユーザは、
（１）Ｒ、Ｇ、Ｂのトーンカーブを指定でき、さらに、
（２）変更したい特定の色（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と、それに対応する変更後の色（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）とを明示的に指定することが出来る。
【００６５】
そして、これら指定がされると、自動で、入力画像データ（Ｒｉ，Ｇｉ，Ｂｉ）から出力画像データ（Ｒｏ，Ｇｏ，Ｂｏ）への変換関数Ｔを求めることが出来る。そして、この変換関数は、ユーザの意図した関数となっている。
【００６６】
以上の第１の実施の形態から、例えば、ユーザの指示に応じて指定手段がコントロールポイントを指定することにより、コントロールポイントを通り、入力画像の各色成分を独立に変換するトーンカーブを指定するトーンカーブ指定ステップと、複数の色成分からなる特定の色を異なる色に変換させるユーザの指示に応じて、指定手段が、変換前の特定の色の各色成分を示す第１の点と、変換後の異なる色の各色成分を示す第２の点とを指定する色成分指定ステップと、第１の点がトーンカーブにより変換された変換点と、第２の点との差に、トーンカーブにより変換しようとする色成分の値ごとに特定の色の各成分によって定まる重みをつけて、重みつけされた差をトーンカーブに加算することで、第１の点が第２の点に変換されるようにトーンカーブを修正して、入力画像の各色成分を独立に変換する変換関数を生成する連続な変換関数生成ステップと、変換関数により入力画像を変換する変換ステップとを含む画像変換方法を把握することができる。
【００６９】
変換関数とは、例えば、一般的には、（Ｒｏ，Ｇｏ，Ｂｏ）＝Ｔ（Ｒｉ，Ｇｉ，Ｂｉ）と示される式であり、この変換関数を設定する方法とは、例えば、式（１０）乃至式（１３）を設定する方法である。
【００７０】
トーンカーブを指定するとは、例えば、位相空間Ｒｉから、位相空間Ｒｏへの、トーンカーブとしてのＲのトーンカーブを指定することである。
【００７１】
任意の第１の点とは、例えば、点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）であり、第２の点とは、例えば、点（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）である。
【００７２】
また、第１の実施の形態から、例えば、変換関数生成ステップが、色成分の空間を位相空間と見なし、第２の変換関数指定ステップにおける第１の点を第１の変換関数により変換した位相空間上の第３の点と、第２の点との差を、重みをつけて、第１の変換関数に加えることにより第３の変換関数を合成する変換関数合成ステップを含むことを特徴とする画像変換方法を把握することができる。
第１の点が第１の変換関数により変換された位相空間上の第３の点とは、例えば、第１の点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）が、第１の変換関数としてのＲのトーンカーブ、Ｇのトーンカーブ、またはＢのトーンカーブによりそれぞれ変換された位相空間上の点（ｒｒｒ，ｇｇｇ，ｂｂｂ）である。ｒｒｒは、Ｒｉｎを、Ｒのトーンカーブで変換した値であり、ｇｇｇは、Ｇｉｎを、Ｇのトーンカーブで変換した値であり、ｂｂｂは、Ｂｉｎを、Ｂのトーンカーブで変換した値である。
【００７３】
そして、第３の点としての点（ｒｒｒ，ｇｇｇ，ｂｂｂ）と、第２の点としての点（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）との差に、重みをつけて、第１の変換関数としてのＲ，Ｇ，Ｂのトーンカーブに加えて、第３の変換関数としての式（１０）乃至式（１３）が作成される。
【００７４】
さらにまた、第１の実施の形態から、例えば、変換関数生成ステップが、複数の色成分からなる色空間を距離空間と見なし、複数の特定の色を母点と考えたボロノイ分割を行う分割ステップと、特定の色から、入力画像上の任意の画素の複数の色成分の値からなる画素の色であって距離空間内の画素の色までのユークリッド距離を、特定の色から、特定の色を始発とし画素の色を通る半直線と、特定の色を包含するボロノイ領域の境界との交点までのユークリッド距離で割る割り算ステップと、割り算ステップの割り算の結果から重みを計算する重み算出ステップと、トーンカーブ、第１の点、第２の点、および重みに基づいて、画素の色を変換する関数である変換関数を作成する作成ステップとを含むことを特徴とする画像変換方法を把握することができる。
【００７５】
すなわち、これは、Ｒのトーンカーブ、Ｇのトーンカーブ、およびＢのトーンカーブによりそれぞれ変換が行われたとき、ボロノイを使って求めた重み付き平均で補正するものである。
【００７６】
変換関数とは、例えば、一般的には、（Ｒｏ，Ｇｏ，Ｂｏ）＝Ｔ（Ｒｉ，Ｇｉ，Ｂｉ）と示される式であり、この第３の変換関数を設定する方法とは、例えば、式（１０）乃至式（１３）を設定する方法である。
【００７７】
第１の点と、第２の点とは、それぞれ、例えば、点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と、点（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）である。また、第３の点とは、例えば、点（Ｒｉ，Ｇｉ，Ｂｉ）である。
【００７８】
従って、第１の点を始点とし第３の点を通る半直線とは、点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）を始点として、点（Ｒｉ，Ｇｉ，Ｂｉ）を通る半直線である。この半直線と、点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）を包含するボロノイ領域の境界との交点との距離により、点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と点（Ｒｉ，Ｇｉ，Ｂｉ）の距離が割り算される。
【００７９】
そして、割り算の結果から重みが計算され、重みによる重み付き平均により、変換関数が作成される。
【００８０】
ところで、カラーコレクションは、例えば、以下のような場合に必要となる。即ち、異なる特性を持つ２つのカメラ（第１のカメラと第２のカメラ）で、同一の景色（物体）を撮影したとする。この場合、カメラの特性が違うため、異なる色合いの画像となる。第１のカメラにより撮影された画像（入力画像と呼ぶことにする）を、第２のカメラにより撮影された画像（参照画像と呼ぶことにする）の色合いと同じにしたい時、カラーコレクションが必要となる。
【００８１】
より正確に述べるならば、もし第１のカメラの代わりに第２のカメラを用いて撮影したならば、どのような画像を得ることができるかを、入力画像（第１のカメラで撮影された画像）から作成したい時、カラーコレクションが必要となる。
【００８２】
カラーコレクションを行うには変換関数を設定しないといけないが、この設定方法として「複数の対応点を指定することにより関数Ｔを決定する方法」がある。即ち、ユーザが、入力画像上での特定物体の投影像の色（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と、参照画像上でのその物体の投影像の色（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）とを指定する。ｎ＝１乃至Ｎ（Ｎは、指定した組数）である。このようにユーザが指定することで、（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）は（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）（ｎ＝１乃至Ｎ）へと変換されるように関数Ｔが設定される。
【００８３】
その他のデータ（Ｒｉ，Ｇｉ，Ｂｉ）に対応する変換関数Ｔ（Ｒｉ，Ｇｉ，Ｂｉ）は、上述したような方法により決定される。
【００８４】
このように、変換関数Ｔを設定して、この変換関数Ｔにより入力画像を変換することで、入力画像の色合いを、参照画像の色合いへと近づけることが出来る。再度、正確に述べるならば、第１のカメラの代わりに第２のカメラを用いて撮影したならば、どのような画像を得ることができるかを、入力画像（第１のカメラで撮影された画像）から作成することが出来る。
【００８５】
ところで、２つの画像は、別々の位置（あるいは別の時刻）で撮影されているため、照明と物体とカメラの位置関係が微妙に違う。具体的には、例えば、図７に示す状態で、人物を撮影したとする。図７において、第１のカメラ（入力画像撮影用）１０１と、第２のカメラ（参照画像撮影用）１０２は、撮影対象物体としての人１０４を撮影する。照明１０３は人１０４に照射する光を発生する。なお、照明１０３は、第２のカメラ１０２から遠く、第１のカメラ１０１の近くに配置される。
【００８６】
この場合、第１のカメラ１０１で撮影された画像（入力画像）は、図８に示されるような画像となり、第２のカメラ１０２で撮影された画像（参照画像）は、図９にされるような画像となる。第１のカメラ１０１は照明１０３に近く、十分な光量のもとで撮影されるので、入力画像１１１（図８）は全体的に明るくなる。これに対して、第２のカメラ１０２は、照明１０３から遠く、光の量が少ないので、参照画像１１２（図９）は全体的に暗くなる。
【００８７】
このような状態で、対応する色をユーザが指定することを考える。図８の入力画像１１１と、図９の参照画像１１２は、同一の被写体の画像であるから、ユーザは、それぞれの画像の対応する点の色を、対応する色として指定するのが自然である。つまり、入力画像１１１の位置における色を（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）、参照画像１１２の位置における色を（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）とするのが自然である。
【００８８】
しかしながら、このように指定すると、カラーコレクションにより、（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）は（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）へと変換されることになる。つまり、明るい肌色が、暗い肌色に変換される。もし、第１のカメラ１０１の位置に、第２のカメラ１０２を置いて撮影すれば、図８と同程度の明るさの画像を得ることが出来るにも関わらず、カラーコレクションにより変換された画像は暗くなってしまう。「もし第１のカメラ１０１の代わりに、第２のカメラ１０２を用いて撮影したならば、どのような画像を得ることができるかを、入力画像（第１のカメラ１０１で撮影された画像）から作成したい」という当初の目標よりも暗い画像となってしまう。
【００８９】
このように、上述した方法では、入力画像上での特定物体の投影像の色（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と、参照画像上でのその物体の投影像の色（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）とを指定する際に、明るさを考慮していないため、（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）として正確な値を指定することが出来なかった。この為、正確なカラーコレクションが困難になる。
【００９０】
本発明の第２の実施の形態の特徴は、（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）の決定において、物理的反射モデルを利用して、明るさを考慮して、最適な色を求めるので、最適なカラーコレクションの為の変換関数を求めることが出来る。
【００９１】
第２の実施の形態の処理の流れは、例えば図１０のフローチャートに示すようになる。
【００９２】
ステップＳ４１で、ユーザは、入力画像上でのＮ個の特定物体の投影点を指定する。この指定は、ユーザが、表示装置１５に表示された入力画像データを見ながら、入力装置１６を操作することで行われる。これら入力画像上での位置（点）を（Ｘ１，Ｙ１），（Ｘ２，Ｙ２），，，（Ｘｎ，Ｙｎ），，，（ＸＮ，ＹＮ）とする。さらに、ユーザは、（Ｘ１，Ｙ１）に写されている物体の、参照画像１１２上での投影像の位置を、ある範囲を持って指定する。この指定は、ユーザが、表示装置１５に表示された参照画像データを見ながら、入力装置１６を操作することで行われる。
【００９３】
範囲内の点の数を、Ｈ（１）個とする。範囲内の点を（Ｘ１１，Ｙ１１），（Ｘ１２，Ｙ１２），，，（Ｘ１ｈ，Ｙ１ｈ），，，（Ｘ１Ｈ，Ｙ１Ｈ）とする。例えば、（Ｘ１，Ｙ１）が図８の点１１１Ｐであるとすると、ユーザは、図９の点１１２Ｐの近傍全体を、対応する点として指定する。図９の点１１２Ｐの近傍全体が、（Ｘ１１，Ｙ１１），（Ｘ１２，Ｙ１２），，，（Ｘ１ｈ，Ｙ１ｈ），，，（Ｘ１Ｈ（１），Ｙ１Ｈ（１））である。（Ｘ１，Ｙ１）および（Ｘ１１，Ｙ１１），（Ｘ１２，Ｙ１２），，，（Ｘ１ｈ，Ｙ１ｈ），，，（Ｘ１Ｈ（１），Ｙ１Ｈ（１））は、同じ特徴を持った物体を撮影したと考えられる。ただし、照明１０３、カメラ１０２、並びに人１０４（物体）の位置関係が違うために、明るさが違う事がある。
【００９４】
同様に、ユーザは、（Ｘｎ，Ｙｎ）（ｎ＝２乃至Ｎ）に写されている物体の、参照画像１１２上での投影像の位置を、ある範囲を持って指定する。範囲内の点の数を、Ｈ（ｎ）個とする。範囲内の点を（Ｘｎ１，Ｙｎ１），（Ｘｎ２，Ｙｎ２），，，（Ｘｎｈ，Ｙｎｈ），，，（ＸｎＨ（ｎ），Ｙ１Ｈ（ｎ））とする。
【００９５】
次に、ステップＳ４２に進み、ステップＳ４２では、演算処理回路１２において、入力画像１１１上での位置（Ｘ１，Ｙ１）に対応する入力画像の色（Ｒｉ１，Ｇｉ１，Ｂｉ１）が求められる。同様に、（Ｘｎ，Ｙｎ）（ｎ＝２乃至Ｎ）に対応する入力画像の色（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）が求められる。
【００９６】
次に、ステップＳ４３に進み、ステップＳ４３では、演算処理回路１２において、参照画像１１２上での位置（Ｘ１１，Ｙ１１）に対応する参照画像１１２の色（Ｒｒ１１，Ｇｒ１１，Ｂｒ１１）が求められる。同様に、（Ｘ１ｈ，Ｙ１ｈ）（ｈ＝２乃至Ｈ（１））に対応する入力画像１１１の色（Ｒｒ１ｈ，Ｇｒ１ｈ，Ｂｒ１ｈ）が求められる。さらに、（Ｘｎｈ，Ｙｎｈ）（ｎ＝２乃至Ｎ、ｈ＝１乃至Ｈ（ｎ））に対応する入力画像１１１の色（Ｒｒｎｈ，Ｇｒｎｈ，Ｂｒｎｈ）も求められる。
【００９７】
次に、ステップＳ４４へ進み、ステップＳ４４では、（Ｒ１１，Ｇ１１，Ｂ１１），（Ｒ１２，Ｇ１２，Ｂ１２），，，（Ｒ１ｈ，Ｇ１ｈ，Ｂ１ｈ），，，（Ｒ１Ｈ（１），Ｇ１Ｈ（１），Ｂ１Ｈ（１））より、Matte LineとHighlight Lineが求められる。この計算は、演算処理回路１２において行われる。Matte LineとHighlight Line の求め方は、例えば、「A Physical Approach to Color Image Understanding」の第５章「Separating Pixels into Their Reflection Components」に書かれている。Matte LineとHighlight Lineを結んだ折れ線をＬ１とする。
【００９８】
なお、Highlight部分がない場合は、（Ｒ１１，Ｇ１１，Ｂ１１），（Ｒ１２，Ｇ１２，Ｂ１２），，，（Ｒ１ｈ，Ｇ１ｈ，Ｂ１ｈ），，，（Ｒ１Ｈ（１），Ｇ１Ｈ（１），Ｂ１Ｈ（１））から主成分分析により、Matte Lineを求め、この線をＬ１としても良い。この場合、Ｌ１は折れ線でなく、直線となる。
【００９９】
このＬ１は、以下の意味を持つ。（Ｘ１ｈ，Ｙ１ｈ）（ｈ＝１乃至Ｈ（１））に写っている物体から放出される色は、カメラ１０２で撮影するとＬ１上の値が観測される。つまり、照明１０３、カメラ１０２、並びに人１０４（物体）の位置関係を変更した場合でも、カメラ１０２で撮影した場合に観測される色は、Ｌ１上にある。
【０１００】
さらに、ステップＳ４４で、演算処理回路１２は、同様に、（Ｒｎ１，Ｇｎ１，Ｂｎ１），（Ｒｎ２，Ｇｎ２，Ｂｎ２），，，（Ｒｎｈ，Ｇｎｈ，Ｂｎｈ），，，（ＲｎＨ（ｎ），ＧｎＨ（ｎ），Ｂ１Ｈ（ｎ））より、Matte LineとHighlight Lineを求める。そして、Matte LineとHighlight Lineを結んだ折れ線をＬｎとする（ｎ＝２乃至Ｎ）。
【０１０１】
次に、ステップＳ４５に進み、ステップＳ４５では、Ｌ１上で（Ｒｉ１，Ｇｉ１，Ｂｉ１）に一番近い点を求める。この計算は、演算処理回路１２にて行われる。この点を（Ｒｏ１，Ｇｏ１，Ｂｏ１）とする。入力画像１１１上で（Ｘ１，Ｙ１）に写った物体は、参照画像１１２上で（Ｘ１ｈ，Ｙ１ｈ）（ｈ＝１乃至Ｈ（１））に写っている訳である。
【０１０２】
また、先に延べたように、カメラ１０２で、この物体を撮影した場合、照明１０３、カメラ１０２、並びに人１０４（物体）の位置関係がいかなる場合でも、Ｌ１上の値として撮影される。従って、もし第１のカメラ１０１の代わりに、第２のカメラ１０２を用いて撮影したならば、（Ｘ１，Ｙ１）の画素の値は、Ｌ１上のいずれかの値となるはずである。
【０１０３】
また、特性が違うカメラ間で撮影しても、極端に色が違うことはない事を考慮すると、もし第１のカメラ１０１の代わりに、第２のカメラ１０２を用いて撮影したならば、（Ｘ１，Ｙ１）の画素の値は、（Ｒｏ１，Ｇｏ１，Ｂｏ１）となるはずである。なぜなら、Ｌ１上で（Ｒｏ１，Ｇｏ１，Ｂｏ１）が最も（Ｒｉ１，Ｇｉ１，Ｂｉ１）に近いからである。
【０１０４】
さらに、ステップＳ４５では、同様に、演算処理回路１２において、Ｌｎ（ｎ＝２乃至Ｎ）上で（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）に一番近い点が求められる。この点を（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）とする。
【０１０５】
次に、ステップＳ４６に進み、ステップＳ４６では、入力画像１１１の画素の値が（Ｒｉ１，Ｇｉ１，Ｂｉ１）のものは（Ｒｏ１，Ｇｏ１，Ｂｏ１）へ変換されるとする。同様に、（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）のものは（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）へ変換されるとする（ｎ＝２乃至Ｎ）。
【０１０６】
このように対応関係を設定して、変換関数Ｔが、第１の実施の形態において説明したように求められる。
【０１０７】
そして、変換関数Ｔの設定方法を終わる。後は、この変換関数Ｔに従って、入力画像の各画素を変換して、最終的な出力画像を出力すれば良い。また、ユーザの好みによって、さらに、既存のホワイトバランス等の変更を行ってもよい。
【０１０８】
当初の目標は、「もし第１のカメラ１０１の代わりに、第２のカメラ１０２を用いて撮影したならば、どのような画像を得ることができるかを、入力画像（第１のカメラ１０１で撮影された画像）から作成したい」であった。本発明を適用すれば、ユーザは、カメラ、照明、および物体の位置関係による入力画像内の各画素と参照画像内の各画素との違いを考慮する必要はなく、単に、物体が２つの画像内のどこに投影されたか（（Ｘｎ，Ｙｎ）と（Ｘｎｈ，Ｙｎｈ））を指定すればよい。
【０１０９】
これにより、演算処理回路１２が、（Ｘｎ，Ｙｎ）に写っている色（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）が変換されるべき色（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）を計算する。この（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）は、もし第１のカメラ１０１の代わりに、第２のカメラ１０２を用いて撮影したと仮定した場合の、（Ｘｎ，Ｙｎ）の画素の値である。
【０１１０】
第２の実施の形態から、例えば、第２の変換関数指定ステップが、色成分の空間を距離空間と見なし、複数個の第１の点を指定する第１の点指定ステップと、複数個の第１の点のそれぞれに対して、第１の点の変換結果としての点群を指定する第２の点指定ステップと、第２の点指定ステップより得られた点群から、点群を含む距離空間内の部分空間を求める部分空間計算ステップと、部分空間計算ステップより得られた部分空間内で、第１の点が恒等変換により写される距離空間上の点に一番近い点を第２の点とする最近点計算ステップとを含み、変換関数生成ステップが、色成分の空間を距離空間と見なし、第１の点が第２の点に変換され、かつ、第１の点以外の距離空間上の第３の点は、第１の点と第３の点との距離に応じた重みにより、第２の点の重み平均を行った点に変換するように、第３の変換関数を設定する変換関数設定ステップを含むことを特徴とする画像変換方法を把握することができる。
【０１１１】
第３の変換関数を設定するとは、例えば、入力データの空間（Ｒｉ，Ｇｉ，Ｂｉ）から出力データの空間（Ｒｏ，Ｇｏ，Ｂｏ）への変換関数Ｔを設定することである。
【０１１２】
第１の点とは、例えば、点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）であり、第１の点の変換結果としての点群とは、例えば、点群（Ｒｒｎｈ，Ｇｒｎｈ，Ｂｒｎｈ）である。
【０１１３】
部分空間とは、例えば、Matte LineとHighlight Lineである。第２の点とは、例えば、点（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）である。第３の点とは、例えば、（Ｒｉ，Ｇｉ，Ｂｉ）上の、点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）を除く任意の点である。
【０１１４】
第１の点が恒等変換により写される距離空間上の点とは、例えば、入力データの空間（Ｒｉ，Ｇｉ，Ｂｉ）の点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）が恒等変換により（従ってそのまま）写された出力データの空間（Ｒｏ，Ｇｏ，Ｂｏ）上の点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）である。
【０１１５】
そして、点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）が点（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）に変換され、かつ、点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）以外の入力データの空間（Ｒｉ，Ｇｉ，Ｂｉ）上の点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）を除く任意の点は、点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）と点（Ｒｉｎ，Ｇｉｎ，Ｂｉｎ）を除く任意の点との距離に応じた重みにより、点（Ｒｏｎ，Ｇｏｎ，Ｂｏｎ）の重み平均を行った点に変換するように、変換関数Ｔが設定される。
【０１１６】
上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。
【０１１７】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０１１８】
この記録媒体は、図６に示すように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている記録媒体１７などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているプログラムメモリ１３や、ハードディスクなどで構成される。
【０１１９】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップＳは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１２０】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１２１】
【発明の効果】
以上のごとく、本発明の画像変換方法および装置、並びにプログラムによれば、コントロールポイントが指定されることにより、コントロールポイントを通り、入力画像の各色成分を独立に変換するトーンカーブが指定され、複数の色成分からなる特定の色を異なる色に変換させるユーザの指示に応じて、変換前の特定の色の各色成分を示す第１の点と、変換後の異なる色の各色成分を示す第２の点とが指定され、第１の点がトーンカーブにより変換された変換点と、第２の点との差に、トーンカーブにより変換しようとする色成分の値ごとに特定の色の各成分によって定まる重みをつけて、重みつけされた差をトーンカーブに加算することで、第１の点が第２の点に変換されるようにトーンカーブが修正されて、入力画像の各色成分を独立に変換する連続な変換関数が生成され、変換関数により入力画像が変換される。
【０１２３】
したがって、関数を任意に設定することが可能になる。
【０１２４】
また、ユーザは、画像全体をどのように変更したいかを、トーンカーブを指定することで行うことが出来る。そして、さらに、特定の色は、このトーンカーブにとらわれずに、明示的に指定することが出来る。また、変換関数は連続であり、入力画像の連続性は、出力画像においても保持することが可能となる。
【０１２６】
したがって、最適なカラーコレクションの為の変換関数を求めることが出来る。
【図面の簡単な説明】
【図１】  Rのトーンカーブの例を示す図である。
【図２】本発明を適用した関数設定処理を説明するフローチャートである。
【図３】  Rのトーンカーブ決定処理を説明するフローチャートである。
【図４】トーンカーブを求めるモデルを説明する図である。
【図５】補償処理を説明するフローチャートである。
【図６】本発明を適用した判定装置の構成を示すブロック図である。
【図７】カメラ、照明、および物体の配置を説明する図である。
【図８】入力画像の例を示す図である。
【図９】参照画像の例を示す図である。
【図１０】本発明を適用した他の関数設定処理を説明するフローチャートである。
【符号の説明】
１０  判定装置，  １１  バス，  １２  演算処理回路，  １３  プログラムメモリ，  １４  データメモリ，  １５  表示装置，  １６  入力装置，  １７記録媒体
【図１】
0004343464.tif 000014
【図２】
0004343464.tif 000015
【図３】
0004343464.tif 000016
【図４】
0004343464.tif 000017
【図５】
0004343464.tif 000018
【図６】
0004343464.tif 000019
【図７】
0004343464.tif 000020
【図８】
0004343464.tif 000021
【図９】
0004343464.tif 000022
【図１０】
0004343464.tif 000023