説明

色推定装置および方法

【課題】カラーチャート撮影時に、複数の撮影条件を自動的に生成することにより、広いダイナミックレンジを十分にカバーした色推定を行うこと。
【解決手段】補正したい表示装置300にカラーチャートを表示し、撮像装置200で撮像し、広ダイナミックレンジ色補正システム100に送信する。広ダイナミックレンジ色補正システム100は、送信された撮像データと別途設定されたカラーマッチングしたい目標値とに基づき色補正データ101を生成し、表示装置300に設定する。これにより表示装置300では最初にカラーチャートを表示したときよりも目標値に近い色となり、カラーマッチングを行うことが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、色推定装置および方法に関し、より具体的にはカラーマッチングのための色推定装置および方法に関する。
【背景技術】
【0002】
現在、ディスプレイやプロジェクタを複数台同時に並べて表示するような使用態様が増えており、このような場合に同一の画像が複数の表示装置に表示されることを考慮して表示装置間で色を一致させること(カラーマッチング)が望まれている。また、デジタルシネマで画像を表示する場合も、規格化されているので映画館同士で色を一致させる技術が要求される。
【0003】
そこで、近年では、ICCプロファイル(International Color Consortium Profile)を画像表示装置ごとに生成し、統一的な色管理が行われている。このICCプロファイルを生成するには、通常、高価な専用の測定器を用いて長時間測定する必要があった。そこで、安価なデジタルカメラを用いてICCプロファイルを生成する技術が提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−208629号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のデジタルカメラを用いてICCプロファイルを生成する技術では、カラーチャートをある条件で一度だけしか撮影しないので、被写体のダイナミックレンジを十分にカバーした色推定を行うことが出来ないという課題があった。
【0006】
そこで本発明では、カラーチャート撮影時に、複数の撮影条件を自動的に生成することにより、広いダイナミックレンジを十分にカバーした色推定を行うことを目的とする。
【課題を解決するための手段】
【0007】
このような目的を達成するため、本発明の色推定装置は、予め定めたカラーチャートを表示する表示手段と、異なる撮像条件で、表示されたカラーチャートを撮像することで取得する撮像画像データから、カラーパッチデータの撮像画素値を取得する撮像手段と、撮像手段により取得されたカラーパッチデータが、表示手段への入力信号と撮像手段からの出力値との特性が線形な範囲内における値であるか否かを判定するレンジ判定手段と、撮像条件に基づいて色変換マトリックスを選択する色変換マトリックス記憶手段と、カラーパッチデータの撮像画素値のうち、判定手段により線形の範囲内における値と判定されたと撮像画素値と、色変換マトリックスとから、三刺激値を推定し、色変換テーブルを生成する三刺激値推定手段と、色変換テーブルを合成して表示手段に適用する色変換テーブルを生成する合成手段とを有することを特徴とする。
【発明の効果】
【0008】
本発明は、カラーチャート撮影時に複数の条件で撮影し、複数の色変換テーブルを生成することで、専用の測色器を用いることなく、広いダイナミックレンジでの色推定を実現することができる。
【図面の簡単な説明】
【0009】
【図1】本発明の一実施例の広ダイナミックレンジ色補正システムを用いたカラーマッチングを示す概念図である。
【図2】本実施例の広ダイナミックレンジ色補正システムの構成を示すブロック図である。
【図3】本実施例の広ダイナミックレンジ色補正システム内の三刺激値推定装置の構成を示すブロック図である。
【図4】本実施例の広ダイナミックレンジ色補正システム内の色補正処理装置の構成を示すブロック図である。
【図5】実施例1におけるカラーチャートの表示例を示す図である。
【図6】実施例1におけるカラーチャートの信号データを示す図である。
【図7】実施例1におけるカラーチャートを撮像して得られるデータ値を示す図である。
【図8】実施例1におけるカメラリニアリティ特性の概念を示す例およびカメラリニアリティ特性データを示す図である。
【図9】実施例1におけるレンジ判定の処理を示すフローチャートである。
【図10】実施例1における三刺激値推定の処理を示すフローチャートである。
【図11】実施例1における白色パッチが飽和しないように撮像した場合の色変換テーブルを示す図である。
【図12】実施例1における再撮像した場合の色変換テーブルを示す図である。
【図13】実施例1における再撮像の処理を示すフローチャートである。
【図14】実施例1における色変換テーブルの合成処理を示すフローチャートである。
【図15】実施例1における四面体補間について説明する図である。
【図16】実施例1における色変換テーブル合成時の重みづけ関数fを示す図である。
【図17】実施例2における広ダイナミックレンジ色補正システム内の三刺激値推定装置に関する構成を示すブロック図である。
【図18】実施例2におけるレンジ判定の処理を示すフローチャートである。
【図19】実施例2における三刺激値推定の処理を示すフローチャートである。
【図20】実施例2における色変換テーブルの合成処理を示すフローチャートである。
【図21】実施例1における広ダイナミックレンジ色変換テーブルD’の例を示す図である。
【発明を実施するための形態】
【0010】
[実施例1]
本実施例では、ダイナミックレンジが広く、色域の広い表示装置300を用いて、本発明の色推定装置で色推定を行う。また、本実施例では表示装置300の色推定を行った後、目標とする色へ補正する処理の例も説明する。図1は、表示装置300の三刺激値を、撮像装置200を用いて推定し、表示装置300の色を目標とする色へ補正するために必要な色補正データを生成する処理の概略を説明するための模式図である。図1を参照すると、補正したい表示装置300にカラーチャートを表示し、撮像装置200で撮像し、広ダイナミックレンジ色補正システム100に送信する。広ダイナミックレンジ色補正システム100は、送信された撮像データと別途設定されたカラーマッチングしたい目標値とに基づき色補正データ101を生成し、表示装置300に設定する。これにより表示装置300では最初にカラーチャートを表示したときよりも目標値に近い色となり、カラーマッチングを行うことが可能となる。以下で、システム構成の詳細およびシステム動作の詳細について説明する。
【0011】
<システム構成例>
図2は、本発明にかかる広ダイナミックレンジ色補正システム100の全体の構成を示すブロック図である。図3は、さらにこの広ダイナミックレンジ色補正システム100内の三刺激値推定装置102の構成の詳細を示すブロック図であり、図4は広ダイナミックレンジ色補正システム100内の色補正処理装置103の構成の詳細を示すブロック図である。
【0012】
広ダイナミックレンジ色補正システム100は、カラーパッチデータ取得部101、三刺激値推定装置102、色補正処理装置103およびメディアインターフェース104を備えている。また、三刺激値推定装置102は、レンジ判定部105、再撮像条件生成部106、カメラ制御部107、信号値制御部108、色変換マトリックス記憶部109、三刺激値推定部110、色変換テーブル合成部111を備えている。さらに、CPU112、ROM113、RAM114、操作部115および表示部116も備えている。色補正処理装置103は、目標値記憶部117、色補正データ生成部118、CPU112、ROM113、RAM114、操作部115および表示部116を備えている。
【0013】
図5に示される表示装置300に表示されたカラーチャート400を参照すると、カラーパッチデータ取得部101は、撮像装置200から入力されるカラーチャート400の撮影画像データから、各カラーパッチ部分を抽出し、撮像画素値を取得する。以下、図7に示すようにカラーパッチの撮像画素値を撮像RGB値と呼ぶ。取得した撮像RGB値などのデータはレンジ判定部105、三刺激値推定部110に送信される。ここで、カラーチャート400は、複数の色を表すカラーパッチからなる画像であり、表示装置300に表示される。図5の複数の枠401は、それぞれ特定の色で塗りつぶされているカラーパッチを示す。なお、図中では1つ、すなわち枠401を除いて枠の符号は省略している。カラーチャート400は、例えば4096階調であり、R成分について0、256、512などのように256間隔で階調値を選択し、同じくG成分、B成分についても256間隔で選択することができる。このようにして、組み合わせにより17×17×17(=4913)通りの色を表すことができる。図6に示すカラーチャートデータには、それら4913通りの色を表す、非デバイス依存のRGB画素値が格納されている。以下、図6に示すように非デバイス依存のRGB画素値を信号RGB値と呼ぶ。
【0014】
また、枠401内の特定の色で塗りつぶされた部分をカラーパッチと呼び、図6に示すように、各々カラーチャート内での位置を示すIDが画素値に対応付けられて格納されている。IDは図5におけるカラーパッチの位置に対応しており、図5に示すx軸(行)とy軸(列)とを用いて、(x、y)という値で割り当てられる。例えば、図5に示すカラーチャート400が66行75列から構成されているとすると、IDは(1,1)から(75,66)までとなり、便宜上最後列の(39,66)から(75,66)にはNULL値が入っているものとする。
【0015】
三刺激値推定装置102は、カラーパッチデータと色変換マトリックスとに基づいて、表示装置300の広いレンジでの色変換テーブルを生成し、色補正処理装置103に送信する。ここで、色変換マトリックスとは、図7に示すような撮像装置200の撮像RGBを三刺激値XYZへ変換する多項式における係数を要素とする行列とする。また、色変換テーブルとは、表示装置300のデバイスRGBと三刺激値XYZとの3D Look Up Table(3DLUT)とする。
【0016】
色補正処理装置103は、目標値に基づいて表示装置300の色補正データを生成し、メディアインターフェース104を通して表示装置300に送信する。メディアインターフェース104は、撮像装置200や表示装置300と通信するためのインターフェースである。撮像条件取得部119は、撮像装置200がカラーチャート400を撮像した時の撮像条件を取得し、再撮像条件生成部105および色変換マトリックス記憶部109に送信する。ここで、撮像条件とはレンズの絞り値、シャッター時間、ISO感度とするがこれに限られない。
【0017】
レンジ判定部105は、カラーパッチデータと撮像条件、カメラリニアリティ特性データに基づいて、白色パッチと黒色パッチ、赤色パッチ、緑色パッチ、青色パッチの撮像RGB値が線形なレンジ内に収まっているか判定する。ここで、白色パッチとはカラーパッチデータのうち、信号値RGBがR=G=Bとなっていて且つ、R=G=Bが最大となるカラーパッチデータのことである。また、黒色パッチとはカラーパッチデータのうち、信号値RGBがR=G=B=0となっているカラーパッチデータのことである。また、赤色パッチとはカラーパッチデータのうち、信号値RGBが(4095,0,0)となっているパッチである。緑色パッチおよび青色パッチについても同様に、それぞれ(0,4095,0)および(0,0,4095)の値を持つパッチである。ただし、各パッチの4095は信号値RGBの最大bit数から求まる値である。また、線形なレンジとは、図7に示すような撮像画素値と輝度との関係が図8(a)に示す形状であるとき、Th1とTh2の間のような線形な形状となっている範囲のことと定義する。カメラリニアリティ特性データについては後述する。レンジ判定部105による判定から得られたレンジ判定情報を、再撮像条件生成部106および色変換テーブル合成部111に送信する。レンジ判定情報についても詳細は後述する。
【0018】
再撮像条件生成部106は、レンジ判定情報に基づいて、再撮像に必要な撮像条件を生成する。生成した再撮像条件はカメラ制御部107に送信される。カメラ制御部107は、メディアインターフェース104を通して、撮像条件を撮像装置200に設定し、再度カラーチャート400を撮像させる。信号値制御部108は、ROM113やRAM114に格納されるカラーチャートデータを読み出し、表示装置300に表示させ、カラーパッチデータ内に格納されているRGB信号値を三刺激値推定部110に送信する。
【0019】
色変換マトリックス記憶部109は、撮像条件取得部119から得た撮像条件に基づいて色変換マトリックスを選択し、三刺激値推定部110に色変換テーブルを送信する。三刺激値推定部110は、カラーパッチデータと色変換マトリックスとを用いて三刺激値を推定し、推定した三刺激値と信号値に基づいて表示装置300の色変換テーブルを生成し、色変換テーブル合成部111へ送信する。ここで、三刺激値はXYZ値とし、以下ではXYZ値と呼ぶ。
【0020】
色変換テーブル合成部111は、色変換テーブルとレンジ判定情報とに基づいて、色変換テーブルを合成し、色補正処理装置103内の色補正データ生成部118に送信する。CPU112は、装置内の各構成の処理全てに関わり、ROM113やRAM114に格納された命令を順に読み込み、解釈し、その結果に従って処理を実行する。また、ROM113およびRAM114は、その処理に必要なプログラム、データ、作業領域などをCPU112に提供する。
【0021】
操作部115は、ボタンやモードダイヤルなどを用いることができ、これらを介して入力された操作者の指示を受け取る。表示部116は、一般的には液晶ディスプレイが広く用いられており、カラーチャートデータや撮像画像データを表示する。また、ユーザーへの指示を表示することも可能である。目標値記憶部117は、表示装置300にカラーマッチングさせたい目標値を記憶している。この目標値は、デバイスRGBとXYZとの3DLUTでもよく、色補正データ生成部118へ送信される。なお、本実施例では、目標値はDCIで規格される値として説明するがこれに限られない。
【0022】
補正データ生成部118は、表示装置300の色変換テーブルと目標値とに基づいて、表示装置300に表示される色を目標値にカラーマッチングさせるために必要な色補正データを生成し、表示装置300に送信する。表示装置300は、色補正データを受信し、色補正データをプロファイルに設定する。ここで、色補正データは信号RGB値とXYZ値との3DLUTである。
【0023】
<システム全体の動作>
実施例1におけるシステム全体の動作についての詳細を説明する。まず、表示装置300にカラーチャート400を表示させ、撮像装置200で撮像する。得られた撮像RGB値に基づいてカラーパッチデータを算出し、撮像装置200から撮像条件を取得する。そして、得られたカラーパッチデータが線形なレンジ内か判定し、レンジ判定情報を生成する。
【0024】
次に、三刺激値推定装置102における処理を説明する。まず、三刺激値推定の処理を行い、表示装置300の色変換テーブルを生成する。表示装置300のダイナミックレンジを全てカバーして三刺激値を推定するためには1回の撮像では不十分なため、再撮像の処理を行う。この結果、レンジ判定情報に基づいて、撮像、再撮像したカラーパッチデータから生成した複数の色変換テーブルの合成処理を行う。そして、合成した色変換テーブルを色補正処理装置103に送信する。色補正処理装置103は、受信した色変換テーブルとカラーマッチングの目標値とに基づいて色補正データ生成の処理を行い、生成した色補正データは表示装置300にプロファイルとして設定される。
【0025】
以下では、カラーパッチデータおよび撮像条件取得およびダイナミックレンジ判定の処理、三刺激値推定装置102内の三刺激値推定の処理、再撮像の処理、色変換テーブルの合成処理並びに色補正処理装置103内の色補正データ生成の処理を詳細に説明する。
【0026】
<カラーパッチデータ取得の処理、撮像条件取得の処理>
信号値制御部108は、ROM113に格納されているカラーチャートデータを表示装置300に送信し、カラーチャート400を表示させ、カラーチャートデータをカラーパッチデータ取得部101に送信する。次に、撮像装置200が、表示装置300に表示されているカラーチャート400を撮像する。本実施例では、表示装置300の各画素は、12bitまでの画像を表示できるとする。このとき、白色の画素値が撮像画像上で飽和しないように撮像する。ここで、白色とは、カラーチャートデータのうち、信号RGB値がR=G=B且つ、最大のRGB値をもつカラーパッチのことである。撮像画像データはデータインターフェース104を通して、カラーパッチデータ取得部101に送信される。また、撮像時の撮像条件は、色変換マトリックス記憶部109に送信される。さらに、撮像画像データは撮像装置200内でRAW現像されずに送信されるとしてもよい。本実施例では撮像画像データをRAW画像とし、RAW画像はRGB各10bitであるとして説明する。
【0027】
カラーパッチデータ取得部101は、撮像装置200から入力されるカラーチャート400の撮影画像データから、各カラーパッチ部分を抽出し、撮像RGB値を取得する。具体的には、図5のカラーチャートを撮像し、撮像画像データを読み込む。そして、撮像画像データ内の十字マークを検出する。図5から分かるように、十字マークはカラーチャートの四隅に配されているので、十字マークを検出することで自動的にカラーチャートの位置を特定することができる。さらに、カラーパッチの行数と列数の情報を予めもっていれば、カラーチャートの位置からカラーパッチの位置を特定し、図6に示すようなカラーパッチ内の撮像画素値と位置とを表すIDを取得することができる。
【0028】
なお、カラーパッチの行数および列数は、ユーザーが操作部112を操作することで指定してもよいし、ユーザーがカラーパッチの位置を1つ1つ指定してもよい。以下、各カラーパッチを撮像して取得した撮像RGB値の各平均値およびカラーパッチのIDを合わせてカラーパッチデータと呼ぶ。カラーパッチデータの例を図7に示す。カラーパッチデータ取得部101は、カラーパッチデータをレンジ判定部105および三刺激値推定部110に送信する。次に、撮像条件取得部119は、撮像装置200がカラーチャート400を撮像した時の撮像条件を取得し、再撮像条件生成部105と色変換マトリックス記憶部109とに送信する。以上のようにして、以降の処理で用いるカラーパッチデータおよび撮像条件を取得する。次にダイナミックレンジ判定の処理を説明する。
【0029】
<ダイナミックレンジ判定の処理>
ここでは、広ダイナミックレンジ色補正システムが行うべき次の処理を判定するダイナミックレンジ判定の処理について説明する。すなわち、いくつかの条件からカラーパッチデータが線形なレンジ内に収まっているか判定する。以下では、上記の処理を詳細に説明する。
【0030】
まず、レンジ判定部105は、カラーパッチデータと撮像条件およびカメラリニアリティ特性データに基づいてレンジ判定情報を生成する。ここで、カメラリニアリティ特性とは、図8(a)に示すような、撮像装置200に使われるイメージセンサの輝度あるいは入力信号と、その出力値である撮像画素値との関係がどの程度線形であるかを表す特性である。図8(a)から理解できるように、一般にイメージセンサは、暗部と明部において輝度および撮像画素値が非線形となる。これは、暗部においてはイメージセンサの感度が低く、明部においては画素値が飽和するためである。広ダイナミックレンジで色補正を行うためには、暗部や明部においても輝度に対して線形なデータが必要であるため、再撮像を行う。
【0031】
ここで、カメラリニアリティ特性データとは、カメラの撮像画素値と輝度との関係が非線形となる領域を示す閾値Th1とTh2を含むデータである。また、このカメラリニアリティ特性データは、撮像条件によっても異なってくることから、図8(b)に示すように撮像条件ごとに保持していてもよい。また、カメラリニアリティ特性データを一つだけ保持し、撮像条件から算出するとしてもよい。レンジ判定部105内のダイナミックレンジ判定の処理フローを図9のフローチャートに示す。
【0032】
以下、図9のフローチャートを参照して説明する。ステップS601において、レンジ判定部105はカラーパッチデータ取得部101からカラーパッチデータを取得する。
【0033】
ステップS602において、レンジ判定部105は撮像条件取得部119から撮像条件を取得する。ステップS603において、レンジ判定部105は撮像条件に基づきカメラリニアリティ特性データを選択して取得する。ここでは、上記で説明したように、撮像条件に基づいて該当するカメラリニアリティ特性データをROM113から読み出す。
【0034】
ステップS604において、レンジ判定部105は取得したカラーパッチデータから白色パッチと黒色パッチ、赤色パッチ、緑色パッチ、青色パッチを抽出する。ただし、カラーパッチデータ内に、赤色パッチ、緑色パッチ、青色パッチがない場合、これらについては抽出しなくてもよい。ステップS605において、判定結果であるレンジ判定情報をRAM114から取得する。レンジ判定情報とは、(Jw,Jk,Jr,Jg,Jb)の5組の値であり、初期値として(0,0,0,0,0)が与えられている。
【0035】
ステップS605において、レンジ判定部105は白色パッチ、黒色パッチ、赤色パッチ、緑色パッチ、青色パッチの各撮像RGB値をTh1およびTh2と比較して線形領域にあるか否か判定する。まず、レンジ判定情報(Jw,Jk,Jr,Jg,Jb)=(0,0,0,0,0)として設定する。次に、抽出した白色パッチでの撮像RGB値のうちG成分の画素値をレンジ判定値P1とおく。P1と、カメラリニアリティ特性データから読み出したTh1およびTh2とを比較する。P1がTh1以上且つTh2以下である場合、白色パッチの撮像RGB値は線形なレンジ内であると判定し、レンジ判定情報のJw=1とする。また、P1がTh2より大きい場合やP1がTh1より小さい場合、Jw=0とする。
【0036】
次に、抽出した黒色パッチでの撮像RGB値のうちG成分の画素値をレンジ判定値P2とおく。P2とTh1を比較し、P2がTh1より小さい場合、Jk=1とする。また、P2がTh1以上である場合、Jk=0とする。同様にして赤色パッチの撮像RGB値のうちR成分をレンジ判定値P3、緑色パッチの撮像RGB値のうちG成分をレンジ判定値P4、青色パッチの撮像RGB値のうちB成分をレンジ判定値P5としてTh1、Th2と比較する。P3、P4、P5がそれぞれTh1以上且つTh2以下の時、レンジ判定情報をそれぞれJr=1,Jg=1,Jb=1とする。また、P3、P4、P5がそれぞれTh2より大きい場合やP1がTh1より小さい場合、レンジ判定情報をそれぞれJr=0,Jg=0,Jb=0とする。また、カラーパッチデータ内に赤色パッチ、緑色パッチ、青色パッチがない場合はJr,Jg,Jbを変更しない。
【0037】
最後に、レンジ判定情報、使用したカメラリニアリティ特性データ、レンジ判定値P1、P3、P4およびP5を三刺激値推定部110に送信する。また、使用したカメラリニアリティ特性データ、レンジ判定値P1、P3、P4、P5および適用すべき撮像条件を再撮像条件生成部106に送信する。なお、レンジ判定値を送信する際、対応するカラーパッチのIDも合わせて送信するものとする。
【0038】
このようにして、カラーパッチデータが線形なレンジの範囲内に収まっているかを判定する。次に三刺激値推定の処理に移る。なお、上記ではTh1を線形なレンジ内かを判定する閾値としたが、撮像条件ごとに定まるノイズの閾値としてもよい。例えば、ある撮像条件における画素値がTh1より小さい場合、ノイズ量が大きいためレンジ外と判定する。また、ステップS606において、各色のパッチをTh1およびTh2と比較したが、比較する閾値はこれに限られるものではなく、色ごとに別途用意した値であってもよい。
【0039】
<三刺激値推定の処理>
取得したレンジ判定情報に基づき、最初の撮像により得られたカラーパッチデータから三刺激値を推定するか、再撮像の処理を実行するか判定する。ここでは、三刺激値を推定すると判定された場合の三刺激値推定の処理について説明する。三刺激値を推定する場合、取得した撮像条件に基づいて、撮像RGB値をXYZ値に変換する色変換マトリックスを読み出し、カラーパッチデータの撮像RGB値をXYZ値に変換する。変換したXYZ値およびカラーパッチデータから色変換テーブルを生成し、色変換テーブル合成部111に送信する。
【0040】
以下で、上記の処理を詳細に説明する。まず、色変換マトリックス記憶部109は、撮像条件取得部119が取得した撮像条件に基づいて色変換マトリックスを読み出す。色変換マトリックスは、3行3列のマトリックス、3行9列のマトリックス、3行19列のマトリックスなどが考えられる。これらの色変換マトリックスは撮像条件ごとに用意されている。色変換マトリックス記憶部109は、取得した撮像条件に基づいて、該当する色変換マトリックスを選択し、三刺激値推定部110に送信する。
【0041】
さらに、色変換マトリックス記憶部109は、撮像条件に基づいて、ROM113またはRAM114に格納されているカメラリニアリティ特性データを読み出し、三刺激値推定部110に送信する。次に、三刺激値推定部110は、レンジ判定情報に基づいて三刺激値推定を行うか判定する。三刺激値推定部110の処理のフローチャートを図10に示す。
【0042】
以下、図10のフローチャートを参照して説明する。ステップS701において、三刺激値推定部110は取得したレンジ判定情報に基づいて判定を行う。具体的には、レンジ判定情報(Jw,Jk,Jr,Jg,Jb)のうち、Jw,Jr,Jg,Jbの全てが1だった場合(Jw×Jr×Jg×Jb=1)、ステップS702に進む。また、Jw,Jr,Jg,Jbのうちいずれかが0であった場合(Jw×Jr×Jg×Jb=0)、ステップS706、すなわち再撮像の処理へ進む。
【0043】
ステップS702において、三刺激値推定を行うが、この場合、色変換マトリックスとカラーパッチデータに基づいてXYZ値を算出する。すなわち、三刺激値推定部110は、カラーパッチデータの撮像RGB値に色変換マトリックスをかけることでXYZ値を算出する。まず、撮像RGB値を正規化する。正規化は撮像RGB値が10bitの場合、各値を1023(=210−1)で割る。次に、下記の式(1)〜(3)のいずれかを用いてXYZ値を算出する。
【0044】
【数1】

【0045】
【数2】

【0046】
【数3】

【0047】
ここで、M1は3行3列の色変換マトリックス、M2は3行9列の色変換マトリックス、M3は3行19列の色変換マトリックスである。上記の式を用いてカラーパッチデータ内の全てのカラーパッチについてXYZ値を算出し、IDと撮像RGB値と信号RGB値とXYZ値とを対応付けた色変換テーブルを生成する。さらに色変換テーブルにおいて、レンジ判定値のもつIDに対応するデータには、レンジ判定値であったか否かを規定するタグを付与する。図11および12に色変換テーブルの例を示す。なお、図11は白色パッチが飽和しないように撮像した場合の色変換テーブルの一例であり、図12は再撮像した場合の色変換テーブルの一例である。
【0048】
ステップS703において、三刺激値推定部110は生成した色変換テーブルと、使用した色変換マトリックスと、カメラリニアリティ特性データとを対応付けてRAM114に格納する。ステップS704において、三刺激値推定部110は、レンジ判定情報のうちJkに基づいて判定を行う。具体的には、Jk=0のとき、ステップS706に進む。Jk=1のとき、ステップS705に進む。
【0049】
ステップS705において、三刺激値推定部110はRAM114に格納される全ての色変換テーブルと、それに対応した色変換マトリックスおよびカメラリニアリティ特性データを読み出し、色変換テーブル合成部111へ送信する。そして、色変換テーブルの合成処理へ移行する。ステップS706において、三刺激値推定部110は三刺激値推定の処理を終了し、再撮像の処理へ移行する。以上のようにして、撮像カラーパッチデータから表示装置300のXYZ値を推定し、色変換テーブルを色変換テーブル合成部111へ送信する。
【0050】
<再撮像の処理>
ここでは、再撮像の処理について説明する。レンジ判定情報に基づいて、再撮像条件生成部106で再度、カラーチャートを撮像するために必要な撮像条件を生成する。そして、生成した撮像条件をカメラ制御部107から撮像装置200に設定させる。さらに、暗部を線形なレンジで詳細に撮像するために必要なカラーチャート再生成情報を生成する。ここで、カラーチャート再生成情報とは、再撮像条件に合わせて再生成するカラーチャートデータの最大信号RGB値である。新たなカラーチャートを信号値制御部108から表示装置300に表示させ、撮像装置200でカラーチャートを撮像させる。以上が、再撮像の処理の概略となる。
【0051】
以下では、上記の処理を詳細に説明する。まず、再撮像条件生成部106は、レンジ判定情報に基づいて、カラーパッチデータが線形なレンジの範囲内に収まるように、再度撮影するために必要な撮像条件およびカラーチャート再生成情報を生成する。再撮像条件生成部106のフローチャートを図13に示す。
【0052】
以下、図13のフローチャートを参照して説明する。ステップS901において、再撮像条件生成部106は取得したレンジ判定情報に基づいて判定を行う。具体的には、レンジ判定情報(Jw,Jk,Jr,Jg,Jb)のうち、Jw,Jr,Jg,Jbの全てが1だった場合、ステップS902に進む。また、Jw,Jr,Jg,Jbのうちいずれかが0であった場合、ステップS905へ進む。
【0053】
ステップS902において、再撮像条件生成部106はレンジ判定情報のうちJkに基づいて判定を行う。具体的には、Jk=0のとき、ステップS903に進む。Jk=1のとき、ステップS906に進む。ステップS903において、再撮像条件生成部106は、レンジ判定部105から取得したカメラリニアリティ特性データに基づいて再撮像条件を生成する。レンジ判定部105から取得した撮像条件のうち、レンズの絞り値がF1、シャッター時間がT1であったとする。このとき、再撮像によって暗部Th1以下の撮像画素値を線形なレンジ内に入れるために必要な撮像条件F2、T2は下記の式から算出される。
【0054】
【数4】

【0055】
上記の式より、再撮像に必要な条件の組み合わせは(絞り値、シャッター時間)=(F2,T1)、(F1,T2)の2種類となる。
【0056】
ステップS904において、再撮像条件生成部106は、信号値制御部108からカラーチャートデータ400を取得する。そして、再撮像の際に用いるカラーチャートデータ401を生成するために必要なカラーチャート再生成情報を生成する。そこでまず表示装置300のガンマを算出する。カラーチャートデータ400からグレーパッチを抽出する。ここで、グレーパッチとは信号RGB値がR=G=Bとなるカラーチャートデータのことである。次に、このグレーパッチのIDと同じIDのカラーパッチデータを抽出する。白色パッチではないグレーパッチの撮像RGB値をRcam,Gcam,Bcamとし、信号RGB値をRsig,Gsig,Bsigとする。また、白色パッチの撮像RGB値をRcam1,Gcam1,Bcam1とし、信号RGB値をRsig1,Gsig1,Bsig1とする。このとき、求めたい表示装置300のガンマをγとすると、γは下記の式から算出される。
【0057】
【数5】

【0058】
また、ガンマは抽出した全てのグレーパッチに対して式(5)を行い、その平均値を用いてもよいし、操作部115からユーザーが入力してもよい。ガンマはRAM114に格納する。次に、カラーチャート再生成情報を生成する。カラーチャート再生成情報をS1とおくと、S1は下記の式から算出される。
【0059】
【数6】

【0060】
ただし、上記式の4095は白色パッチの信号値である。
【0061】
ステップS905において、再撮像条件生成部105は、取得したレンジ判定値P1、P3、P4、P5およびカメラリニアリティ特性データから再撮像条件を生成する。レンジ判定部105から取得した撮像条件のうち、レンズの絞り値がF1、シャッター時間がT1であったとする。このとき、下記の式から線形なレンジの範囲外での最大撮像RGB値P6を算出する。
【0062】
【数7】

【0063】
ここで、上記式のMAXはかっこ内の最大値を選択する、という意味である。そして、再撮像によって白色パッチを暗部Th1以上且つ明部Th2以下の撮像画素値として取得するために必要な撮像条件F2、T2は下記の式から算出される。
【0064】
【数8】

【0065】
上記の式より、再撮像に必要な条件の組み合わせは(絞り値,シャッター時間)=(F2,T1)、(F1,T2)の2種類となる。ステップS906において、再撮像条件生成部106は再撮像の処理を終了する。再撮像の処理を終了したのち、色変換テーブル合成の処理に移る。最後に、再撮像条件生成部105は、得られた再撮像条件(F2,T1)、(F1,T2)をカメラ制御部107に送信する。また、カラーチャート再生成情報S1がある場合、S1は信号値制御部108に送信する。
【0066】
次に、カメラ制御部107では、再撮像条件に基づいて撮像装置200に撮像条件を設定する。まず、再撮像条件に含まれるF2、T2に近く且つ撮像装置200に存在する値F2’、T2’を選択する。例えばF2=1.8であるとする。一般的にレンズの絞り値は1.0、1.4、2.0、2.8・・・となっているので、F2’=2.0とする。本実施例では、F2’は、F2より大きな値、かつ最も近い値を選択するが、単に最も近い値を選択してもよい。次にT2=0.6であるとする。シャッター時間は一般的に2、1、1/2、1/4、1/8・・・となっているので、T2’=1/2とする。本実施例では、T2’はT2より小さな値かつ最も近い値を選択するが、単に最も近い値を選択してもよい。F2’とT2’を設定後、表示部116に再撮像条件を(F2’,T1)と(F1,T2’)のどちらを選ぶか選択させる旨のメッセージを表示し、ユーザーに選択させる。そして、ユーザーが選択した再撮像条件を撮像装置200に送信して設定する。
【0067】
次に、信号値制御部108は、カラーチャート再生成情報S1に基づき、新たなカラーチャートデータ402を生成する。例えば、S1=2048であるとする。R成分について0、128、256などのように128間隔で階調値を選択し、同じくG成分、B成分についても128間隔で階調値を選択する。これにより、信号RGB値0〜2048までの新たなカラーチャートデータ402が生成される。さらに、カラーチャートデータ400と同様に位置を示すIDも付与する。そして、生成したカラーチャートデータ402を表示装置300に送信し、表示させる。次に、表示装置300に表示された新たなカラーチャートをユーザーが撮像装置200で撮像するが、この処理は基本的にカラーパッチデータ取得の処理および撮像条件取得の処理と同じである。
【0068】
このようにして、全カラーチャートデータを撮像装置200の線形なレンジ内で撮像する再撮像の処理を行うことができる。
【0069】
<色変換テーブルの合成処理>
ここでは、色変換テーブルの合成処理について説明する。これまでの処理で生成した色変換テーブルのうち、ダイナミックレンジは広いが、暗部の精度が低い色変換テーブルと、ダイナミックレンジは狭いが暗部の精度が高い色変換テーブルを合成する。これにより、ダイナミックレンジが広く精度の高い色変換テーブルを生成する。これにより、広いダイナミックレンジを持つ表示装置300の色変換テーブルを生成することができる。以上が、色変換テーブルの合成処理の概略となるが、以下では、上記の処理を詳細に説明する。
【0070】
まず、色変換テーブル合成部111のフローチャートを図14に示す。以下、図14のフローチャートを参照して説明する。ステップS1001において、色変換テーブル合成部111は、三刺激値推定部110から全色変換テーブル並びにそれぞれに対応した色変換マトリックスおよびカメラリニアリティ特性データを取得する。
【0071】
ステップS1002において、色変換テーブル合成部111は、各カメラリニアリティ特性データ内のTh2から、対応する色変換マトリックスを用いてXYZ値を算出する。まず、Th2を三刺激値推定の処理におけるステップS702と同様に正規化する。正規化したTh2をTh2’とし、(R,G,B)=(Th2’,Th2’,Th2’)とし、式(1)ないし(3)のいずれかを用いてTh2における三刺激値X_th2,Y_th2,Z_th2を算出する。例えば、n個の色変換テーブル、カメラリニアリティ特性データおよび色変換マトリックスを取得していたとすると、n個のTh2におけるX_th2,Y_th2,Z_th2を算出する。
【0072】
ステップS1003において、色変換テーブル合成部111は、ステップS1002で算出した各色変換テーブルのX_th2,Y_th2,Z_th2のうちY_th2を、色変換テーブル間で比較する。そして、Y_th2の値の小さい順に色変換テーブルをD1、D2、・・・とおく。例えば、n個の色変換テーブルがあるとき、Y_th2の小さな順にD1、D2、・・・Dnとラベリングされる。
【0073】
ステップS1004において、色変換テーブル合成部111はラベリングした色変換テーブルのうち、色変換テーブルD1と色変換テーブルD2を抽出し、色変換テーブルD1を暗部色変換テーブルDd、色変換テーブルD2を明部色変換テーブルDlとする。ステップS1005において、色変換テーブル合成部111は、DdのXYZ値およびDdのX_th2,Y_th2,Z_th2並びにDlのXYZ値をそれぞれCIELABに変換する。まず、全色変換テーブルのうちY_th2が最大となったDnの色変換テーブルから、レンジ判定値にP1とあるIDのデータを抽出する。P1は色変換テーブルDnの白色パッチに相当するので、P1のXYZ値を表示装置300の白色点と仮定して、DdのXYZ値をCIELAB値に変換する。以下にXYZ値をL*a*b*値に変換する変換式を示す。
【0074】
【数9】

【0075】
【数10】

【0076】
【数11】

【0077】
【数12】

【0078】
【数13】

【0079】
ここで、Xn,Yn,Znは全色変換テーブルのうちY_th2が最大となった色変換テーブルDnの白色パッチのXYZ値である。同様にして色変換テーブルDdのX_th2,Y_th2,Z_th2をL_th2*,a_th2*,b_th2*へ変換する。また色変換テーブルDlのXYZ値を同様にCIELABに変換する。
【0080】
ステップS1006において、色変換テーブル合成部111は、暗部色変換テーブルDdにおけるTh2の三刺激値X_th2,Y_th2,Z_th2の信号RGB値を算出する。まず、各カラーパッチの評価関数Eを下記の式で表す。
【0081】
【数14】

【0082】
そして、上記式のEが小さくなるL*a*b*値の4点をDdから探索する。色変換テーブルDd内でEが小さくなる4点をU0=(L0*,a0*,b0*)、U1=(L1*,a1*,b1*)、U2=(L2*,a2*,b2*)、U3=(L3*,a3*,b3*)、U=(L_th2*,a_th2*,b_th2*)とする。すると、L*a*b*空間で示すと図15に示すようにUをU0、U1、U2、U3の4点で形成する四面体で覆う形となる。
【0083】
このときUを、四面体補間を用いて、既知のU0、U1、U2、U3から求める。まず、四面体を形成する4点のうち、任意の1点U0を基準とし、ほかの3点U1、U2、U3とそれぞれ結んだ3つのベクトルを考える。このとき、点UとU0を結んだベクトルはk、l、mを実数とするとき、以下の式を満たす。
【0084】
【数15】

【0085】
ベクトルの成分で書き直すと、以下のようになる。
【0086】
【数16】

【0087】
上記式の両辺左側から逆行列を乗算して左辺と右辺を入れ替えると、
【0088】
【数17】

【0089】
上記式より算出されるUを補間する割合はk、l、mとなる。
【0090】
【数18】

【0091】
これらのk、l、mが上記式を全て満たすとき、Uは生成した四面体の内部に存在する。上記式が成立しない場合、再度4点を探索しなおす。U0、U1、U2、U3の各点に対応する信号RGB値をV0、V1、V2、V3とし、Th2の信号RGB値をV=(R_th2,G_th2,B_th2)とすると、下記の式が成立する。
【0092】
【数19】

【0093】
これにより、色変換テーブルDdのTh2の信号RGB値であるR_th2,G_th2,B_th2を算出できる。なお、上記では四面体補間によって求めたが、補間方法はこれに限られるものではない。
【0094】
ステップS1007において、色変換テーブル合成部111は、暗部色変換テーブルDdの白色パッチからTh2までの間の信号RGB値とXYZ値とを、明部色変換テーブルDl内に生成する。まず、色変換テーブルDd内におけるP1のカラーパッチの信号RGB値をRw,Gw,Bwとする。このとき、色変換テーブルDlの信号RGB値のうち、Rw,Gw,Bw以上、R_th2,G_th2,B_th2以下で色変換テーブルDdに存在して色変換テーブルDlに存在しない信号RGB値をDlのテーブル内に生成する。さらに、色変換テーブルDl内に新たに生成した信号RGB値に対応したXYZ値を生成する。このとき、XYZ値は色変換テーブルDl内の線形補間で算出する。例えば、色変換テーブルDl内のある2点の信号RGB値の間に1点の新たな信号RGB値が生成された場合の例を説明する。2点の信号RGB値を(Ra,Ga,Ba)と(Rb,Gb,Bb)とし、対応するXYZ値を(Xa,Ya,Za)、(Xb,Yb,Zb)とする。この間に新たな信号RGB値(Rc,Gc,Bc)が生成されたとすると、(Rc,Gc,Bc)に対応するXYZ値(Xc,Yc,Zc)は以下の線形補間の式から算出できる。
【0095】
【数20】

【0096】
上記のようにして新たに生成した信号RGB値に対応したXYZ値を算出する。これを色変換テーブルDl内の信号RGB値がRw,Gw,Bw以上、R_th2,G_th2,B_th2以下の新たに生成した信号RGB値全てに対して行う。これにより、明部色変換テーブルDl内に信号RGB値とXYZ値を生成できる。
【0097】
ステップS1008において、色変換テーブル合成部111はDdとDlの色変換テーブルを合成し、広ダイナミックレンジ色変換テーブルD’を生成する。まず色変換テーブルD’に信号RGB値の低い順に、Rw,Gw,BwまでDdの色変換テーブルの信号RGB値およびXYZ値を挿入する。次に、色変換テーブルDdとDl内の信号RGB値Rw,Gw,Bwから色変換テーブルDdのR_th2,G_th2,B_th2までの信号RGB値を挿入し、XYZ値を合成して挿入する。信号RGB値がRsig,Gsig,Bsigのとき、色変換テーブルDdで対応するXYZ値をXd,Yd,Zd、D色変換テーブルlで対応するXYZ値をXl,Yl,Zl、求めたいXYZ値をX’,Y’,Z’とする。このように設定すると、下記の式でX’,Y’,Z’を算出することができる。
【0098】
【数21】

【0099】
ただし、ここで用いられているY値の関数fは重みづけの関数である。関数fは図16に示すように、Y値がP1におけるY値Ywまでの間は1であり、そこから色変換テーブルDdのY_th2までに0に低下する。fの式は下記のように表せる。
【0100】
【数22】

【0101】
さらに、信号RGB値がR_th2,G_th2,B_th2以降は色変換テーブルD’に色変換テーブルDlの信号RGB値とそれに対応するXYZ値を挿入する。これにより、広ダイナミックレンジ色変換テーブルD’を生成することができる。図21に広ダイナミックレンジ色変換テーブルD’の例を示す。
【0102】
ステップ1009において、色変換テーブル合成部111は全ての色変換テーブルを合成したか判定する。全ての色変換テーブルを合成し終えた場合、色変換テーブルの合成処理を終了する。また、全ての色変換テーブルを合成し終えていない場合、ステップS1010に進む。ステップS1010において、色変換テーブル合成部111は次に広いダイナミックレンジを持つ色変換テーブルを合成するため、色変換テーブルを選択する。例えば、Dlに色変換テーブルD2を選んでいた場合、次のDlに色変換テーブルD3を選択する。また、Ddには合成した色変換テーブルD’を選択する。
【0103】
最後に、合成した広ダイナミックレンジ色変換テーブルD’を色補正処理装置103に送信する。このようにして、暗部から明部まで精度の高い色変換テーブルを合成した、広いダイナミックレンジを持つ色変換テーブルを生成することができる。
【0104】
<色補正データ生成の処理>
ここでは、色補正データ生成の処理について説明する。色補正データ生成部118は、目標値記憶部117に保持される目標テーブルを読み出す。ここで、目標テーブルとは信号RGB値とXYZ値とについての記憶された3DLUTである。本実施例では、デジタルシネマの国際標準であるDCIで規格化されている色変換テーブルを目標テーブルとした例で説明するがこれに限られない。色変換テーブル合成部111から取得した色変換テーブルD’と目標テーブルとに基づき、表示装置300が目標テーブルに最も近い色を表示するために必要な色補正データを生成する。生成された色補正データは、プロファイルとして表示装置300に設定される。これにより、表示装置300を目標値にカラーマッチングさせることができる。以上が色補正データ生成の処理の概略である。
【0105】
以下、上記の処理について詳細に説明する。色補正データ生成部118は、まず目標値記憶部117に記憶される目標テーブルを読み出す。上記したように目標テーブルは信号RGB値とXYZ値との色変換テーブルである。色補正データ生成部118は、色変換テーブル合成部111から広ダイナミックレンジ色変換テーブルD’を取得する。取得した広ダイナミックレンジ色変換テーブルD’を用いて、目標テーブルのXYZ値に最も近い値を、表示装置300で表示するために必要な信号RGB値をD’から探索することにより、四面体補間により算出する。具体的な処理は上述の色変換テーブルの合成処理で行った処理と同一である。
【0106】
まず式(8)ないし(12)を用いて目標テーブルのXYZ値をL*a*b*値に変換する。このとき、白色点は目標テーブルの信号RGB値がR=G=B且つ最大値である白のXYZ値とし、これらをXn,Yn,Znとする。同様に、広ダイナミックレンジ色変換テーブルD’のXYZ値もL*a*b*値に変換する。ここでも目標テーブルの白色点を用いる。次に、目標テーブルのL*a*b*値に最も近い4点をD’のL*a*b*値から探索する。ある目標テーブルのL*a*b*値をLt*,at*,bt*として式(13)のL_th2*,a_th2*,b_th2*に代入し、評価関数Eが最小となる点から順に探索する。そして、式(14)ないし(18)により、目標テーブルのL*a*b*に最も近い表示が出来る信号RGB値が算出できる。なお、評価関数として式(13)をこれまでの処理で使用してきたが、本処理では式(13)の代わりに、下記の式で表されるΔE94を使用してもいいことは言うまでもない。
【0107】
【数23】

【0108】
以上により、信号RGB値とXYZ値のテーブルである色補正データが生成できる。この色補正データをプロファイルとして表示装置300に送信して設定する。これにより、表示装置300のカラーマッチングが行うことができる。
【0109】
以上説明した処理制御を行うことで、通常の撮像装置200ではダイナミックレンジが狭く色推定できないような広いダイナミックレンジをもつ表示装置300においても、色推定を行うことができる。また、それにより表示装置300を目標とする色へとカラーマッチングが可能となる。
【0110】
[実施例2]
実施例1では、撮像装置200で広いダイナミックレンジの表示装置300を精度よく測定するため、自動的に再撮像の条件および再撮像のカラーチャートを生成するといった処理を行った。しかし、この方法では高精度を得られる一方、回路規模が大きくなってしまうという問題がある。そこで、本実施例では1つのカラーチャートをユーザーが任意に設定したいくつかの撮像条件で撮像した場合にも広いダイナミックレンジの色を推定を可能にすることを目的とする。以下で、システム構成の詳細およびシステム動作の詳細について説明する。
【0111】
<システム構成例>
図17は本発明にかかる広ダイナミックレンジ色補正システム1300における三刺激値推定装置1301の構成例を示すブロック図である。具体的に本実施例では、実施例1における三刺激値推定装置102から、再撮像条件生成部106とカメラ制御部107とを除いた構成となっており、色補正処理装置103も含め、その他の構成は実施例1と同一である。よって、ブロック図の詳細な説明は省略する。
【0112】
<システム全体の動作>
本実施例におけるシステム全体の動作について説明する。まず、実施例1と同様、表示装置300にカラーチャート400を表示させ、撮像装置200で撮像する。このとき、本実施例ではユーザーが任意に設定した撮像条件で複数回撮像を行う。複数回の撮像により得られた複数の撮像画像データから、カラーパッチデータおよび撮像条件を取得する。取得した各カラーパッチデータについて、実施例1と同様にそれぞれ線形なレンジ内か否か判定を行ってパッチ判定情報を生成する。ここで、パッチ判定情報とは各カラーパッチデータが線形なレンジ内か判定した結果を列記した情報であり、実施例1と同様である。
【0113】
パッチ判定情報が得られると、カラーパッチデータに基づいて三刺激値を推定し、表示装置300の色変換テーブルを生成する。このようにして複数の色変換テーブルが得られるので、パッチ判定情報に基づいて色変換テーブルの合成処理を行う。合成した色変換テーブルは、色補正処理装置103に送信される。色補正処理装置103は、受信した色変換テーブルとカラーマッチングの目標値とに基づいて色補正データ生成の処理を行い、生成した色補正データを表示装置300にプロファイルとして設定する。以下では、カラーパッチデータ取得および撮像条件取得の処理、三刺激値推定の処理並びに色変換テーブルの合成処理について詳細に説明する。
【0114】
<カラーパッチデータ取得および撮像条件取得の処理>
図17を参照すると、信号値制御部108は、ROM113に格納されるカラーチャートデータを表示装置300に送信し、図5に示すようなカラーチャート400を表示させる。これとともに、カラーチャートデータをカラーパッチデータ取得部101にも送信する。
【0115】
次に、撮像装置200で表示装置300に表示されているカラーチャート400を、任意に撮像条件を変えて複数回撮像する。撮像画像データからカラーパッチデータを抽出する方法および撮像条件の取得方法は実施例1のカラーパッチデータ取得の処理および撮像条件取得の処理と同一であるため説明を省略する。カラーパッチデータが抽出されると、カラーパッチデータ取得部101は、抽出されたカラーパッチデータのヘッダなどに撮像条件を付加して、カラーパッチデータをレンジ判定部105および三刺激値推定部110に送信する。
【0116】
一方、撮像条件を取得した撮像条件取得部119は、取得した撮像条件を再撮像条件生成部105および色変換マトリックス記憶部109に送信する。以上のようにして、以降の処理で用いるカラーパッチデータおよび撮像条件の準備が整いダイナミックレンジ判定の処理に移る。
【0117】
<ダイナミックレンジ判定の処理>
ダ本処理ではまず、各カラーパッチデータが線形なレンジ内に収まっているか否かを判定する。レンジ判定部105内の処理フローを、図18のフローチャートに示す。
【0118】
以下では、図18のフローチャートを参照して説明する。ステップS1401からステップS1403までは実施例1のステップS601から603と同一であるため説明を省略する。ただし、本実施例では、1つのカラーチャートを、条件を変えて複数回撮像するため、複数のカラーパッチデータ、撮像条件およびカメラリニアリティ特性データが得られる点で実施例1と異なる。ステップS1404において、レンジ判定部105はパッチ判定情報を生成する。ここで、パッチ判定情報とは(Jd1, Jd2, Jd3,…, Jdn)という数値の組み合わせが各信号RGB値に対応付けられたテーブルである。つまりパッチ判定情報は信号RGB値分の行×撮像条件分の列の数値の組み合わせであり、初期値は全て0である。
【0119】
ステップS1405において、レンジ判定部105はカラーパッチデータから、ある信号RGB値を抽出し、対応する撮像TGB値が各カラーパッチデータの線形なレンジ内か判定する。例えば、ある信号RGB値R’,G’,B’におけるカラーパッチデータCDiの撮像RGB値がRcam’,Gcam’,Bcam’であるとする。このとき、下記の式からR’,G’,B’がCDiにおいて線形なレンジ内か判定し、パッチ判定情報を更新する。
【0120】
【数24】

【0121】
同様にして、R’,G’,B’において全てのカラーパッチデータで上記式の処理を行い、パッチ判定情報を更新する。このようにして、ある信号RGB値が撮像条件ごとに線形なレンジ内にあるか否か判定する。ステップS1406において、レンジ判定部105は、全ての信号RGB値についてパッチ判定情報を更新したか否か判定する。全ての更新が終了していない場合、ステップS1405に進む。最後に、生成したパッチ判定情報を色変換テーブル合成部111に送信する。
【0122】
このようにして、全ての撮像条件におけるカラーパッチデータがダイナミックレンジの範囲内かどうかを判定する。
【0123】
<三刺激値推定の処理>
本処理ではまず、取得した撮像条件に基づいて色変換マトリックスを読み出し、撮像条件に対応するカラーパッチデータの三刺激値を推定し、色変換テーブルを生成する。そして、生成した色変換テーブルを色変換テーブル合成部111に送信する。
【0124】
以下では、上記の処理のうち実施例1と差異のある部分についてのみ説明する。色変換マトリックス記憶部109の処理は、実施例1と同一であるため説明を省略する。ただし、本実施例では撮像条件ごとに色変換マトリックスを読み出す点で異なる。三刺激値推定部110は、撮像条件ごとにレンジ判定情報から三刺激値推定の判定を行い、撮像条件ごとに色変換マトリックスとカラーパッチデータから三刺激値推定の処理を行う。
【0125】
三刺激値推定部110のフローチャートを図19に示す。以下、図19のフローチャートを参照して説明する。ステップS1501の処理は、実施例1のステップS702と同一であるため説明を省略する。ステップS1502において、三刺激値推定部110は全てのカラーパッチデータに対して三刺激値の推定を行い、色変換テーブルを生成したか判定する。全てのカラーパッチデータに対して処理を行った場合、ステップS1404へ進む。まだ全ては行っていない場合、ステップS1503へ進む。
【0126】
ステップS1503において、三刺激値推定部110は、未処理のカラーパッチデータ、色変換マトリックスおよびカメラリニアリティ特性データを撮像条件に基づいて選択する。ステップS1504において、生成した全ての色変換テーブル、色変換マトリックスおよびカメラリニアリティ特性データを色変換テーブル合成部111へ送信する。以上のようにして、カラーパッチデータから表示装置300のXYZ値を推定し、色変換テーブルを色変換テーブル合成部111へ送信する。
【0127】
<色変換テーブルの合成処理>
本処理では、ユーザーが任意に設定した撮像条件ごとの色変換テーブルのうち、線形なレンジの範囲内にあるテーブルを抽出して合成することで、ダイナミックレンジが広い色変換テーブルを生成する。
【0128】
以下に、本処理を詳細に説明する。まず、色変換テーブル合成部111のフローチャートを図20に示す。以下、図20のフローチャートを参照して説明する。ステップS1601の処理は、実施例1のステップS1001と同一であるため説明を省略する。ステップS1602において、色変換テーブル合成部111は各カメラリニアリティ特性データ内のTh1およびTh2から、対応する色変換マトリックスを用いてXYZ値を算出する。具体的な算出方法は実施例1のステップS1002と同一であるため説明を省略する。
【0129】
ステップS1603の処理は、実施例1のステップS1003と同一であるため説明を省略する。ステップS1604において、色変換テーブル合成部111はパッチ判定情報を取得する。レンジ判定部105からパッチ判定情報を取得し、パッチ判定情報を色変換テーブルに対応させて並べ替える。ステップS1605において、色変換テーブル合成部111は色変換テーブルD’を生成する。ステップS1606において、色変換テーブル合成部111は、色変換テーブル内から信号RGB値を抽出する。
【0130】
ステップS1607において、色変換テーブル合成部111は、抽出した信号RGB値におけるパッチ判定情報の総和を判定する。下記の式から算出されるパッチ判定情報の総和N=0のときはステップS1608へ進み、0以外のときはステップS1609へ進む。
【0131】
【数25】

【0132】
ステップS1608において、色変換テーブル合成部111は信号RGB値に対応するXYZ値を算出する。例えば、信号RGB値R’,G’,B’のXYZ値をX’,Y’,Z’とする。このとき、パッチ判定情報より、この信号RGB値はどの色変換テーブルにおいても線形なレンジの範囲外であるため、X’,Y’,Z’を色変換テーブルD1のこの信号RGB値におけるXYZ値とする。
【0133】
ステップS1609において、色変換テーブル合成部111は、パッチ判定情報に基づいて、信号RGB値におけるXYZ値を色変換テーブルの合成によって算出する。例えば、信号RGB値R’,G’,B’の、各色変換テーブルD1、D2、・・・、DnにおけるXYZ値をXd1,Yd1,Zd1、Xd2,Yd2,Zd2、Xd3,Yd3,Zd3、・・・Xdn,Ydn,Zdnとする。このとき、求めたいXYZ値をX’,Y’,Z’とすると、下記の式から算出することができる。
【0134】
【数26】

【0135】
ステップS1610において、色変換テーブル合成部111は、色変換テーブルD’に信号RGB値と算出したXYZ値とを挿入する。ステップS1611において、色変換テーブル合成部111は、全ての信号RGB値についてXYZ値を挿入したか判定する。
【0136】
最後に、生成した広ダイナミックレンジ色変換テーブルD’を色補正処理装置103に送信する。このようにして、広いダイナミックレンジを持つ色変換テーブルを生成することができる。
【0137】
<色補正データ生成の処理>
色補正データ生成の処理については、実施例1と同一であるため説明を省略する。
【0138】
以上説明した処理制御を行うことで、ユーザーが任意に設定した撮像条件で複数回撮像することによって、広いダイナミックレンジをもつ表示装置300の色推定を行うことができる。また、それにより表示装置300のカラーマッチングを可能とする。
【0139】
[その他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。すなわち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。また、本発明は、複数のプロセッサが連携して処理を行うことによっても実現できるものである。

【特許請求の範囲】
【請求項1】
予め定めたカラーチャートを表示する表示手段と、
異なる撮像条件で、前記表示されたカラーチャートを撮像することで取得する撮像画像データから、カラーパッチデータの撮像画素値を取得する撮像手段と、
前記撮像手段により取得されたカラーパッチデータが、前記表示手段への入力信号と前記撮像手段からの出力値との特性が線形な範囲内における値であるか否かを判定するレンジ判定手段と、
前記撮像条件に基づいて色変換マトリックスを選択する色変換マトリックス記憶手段と、
前記カラーパッチデータの撮像画素値のうち、前記判定手段により線形の範囲内における値と判定されたと撮像画素値と、前記色変換マトリックスとから、三刺激値を推定し、色変換テーブルを生成する三刺激値推定手段と、
前記色変換テーブルを合成して前記表示手段に適用する色変換テーブルを生成する合成手段と
を有することを特徴とする色推定装置。
【請求項2】
前記レンジ判定手段は前記判定結果を示すレンジ判定情報を生成し、
前記レンジ判定情報に基づいて再撮像に必要な再撮像条件を生成し、カラーチャートを再生成するために必要なカラーチャート再生成情報を生成する再撮像条件生成手段と、
前記カラーチャート再生成情報に基づき、新たなカラーチャートを生成して前記表示手段に表示させる信号値制御手段と
をさらに有し、
前記撮像手段は、前記生成された再撮像条件で再撮像を行って、複数のカラーパッチデータの撮像画素値を取得
することを特徴とする請求項1に記載の色推定装置。
【請求項3】
前記撮像手段は、予め定めた複数の撮像条件で複数回撮像を行って、複数のカラーパッチデータの撮像画素値を取得することを特徴とする請求項1に記載の色推定装置。
【請求項4】
予め定めたカラーチャートを表示手段に表示する表示ステップと、
異なる撮像条件で、前記表示されたカラーチャートを撮像手段で撮像することで取得する撮像画像データから、カラーパッチデータの撮像画素値を取得する撮像ステップと、
前記撮像ステップにおいて取得されたカラーパッチデータが、前記表示手段への入力信号と前記撮像手段からの出力値との特性が線形な範囲内における値であるか否かを判定するレンジ判定ステップと、
前記撮像条件に基づいて色変換マトリックスを選択する色変換マトリックス記憶ステップと、
前記カラーパッチデータの撮像画素値のうち、前記判定ステップにより線形の範囲内における値と判定されたと撮像画素値と、前記色変換マトリックスとから、三刺激値を推定し、色変換テーブルを生成する三刺激値推定ステップと、
前記色変換テーブルを合成して前記表示手段に適用する色変換テーブルを生成する合成ステップと
を有することを特徴とする色推定方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2013−9048(P2013−9048A)
【公開日】平成25年1月10日(2013.1.10)
【国際特許分類】
【出願番号】特願2011−138841(P2011−138841)
【出願日】平成23年6月22日(2011.6.22)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】