(本発明の第1実施形態)
図1は本発明の第1実施形態を備えるデジタルカメラの概略的構成図である。図1に示すデジタルカメラは、図67に示す従来のデジタルカメラが備える画像処理部5及び制御部9の代わりに、本発明の第1実施形態である画像処理部21及び制御部22を備え、その他については、図67に示す従来のデジタルカメラと同様に構成したものである。
画像処理部21は、色補正処理部12とガンマ補正部13との間にハイライト色付き対策処理部23を設け、図67に示す画像処理部5のように色補正処理部12が出力する画像信号(R2、G2、B2)をガンマ補正部13に与える代わりに、ハイライト色付き対策処理部23が出力する画像信号(R3、G3、B3)をガンマ補正部13に与えるようにし、その他については、図67に示す画像処理部5と同様に構成したものである。
ハイライト色付き対策処理部23は、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)中のR成分R1及びB成分B1と、色補正処理部12が出力する画像信号(R2、G2、B2)とを入力し、画像信号(R2、G2、B2)に「赤飽和による青抜け現象」、「青飽和による赤抜け現象」、「赤飽和による赤抜け現象」又は「青飽和による青抜け現象」が起きている場合に、これら異常現象を解消するための処理(即ち、ハイライト色付き対策処理)を行うものである。なお、本例では、R成分R1、G成分G1及びB成分B1は、0〜rgbMax(飽和量:4095)の値を取るものとする。
制御部22は、閾値面算出部24を設け、その他については、図67に示す制御部9と同様に構成したものである。閾値面算出部24は、色補正行列設定部18が出力する色補正行列を入力し、この色補正行列に適した、後述する閾値面TR、TBrを算出し、これら閾値面TR、TBrをハイライト色付き対策処理部23に設定するものである。なお、閾値面算出部24は、画像処理部21に含めるようにしても良い。
図2は閾値面算出部24がハイライト色付き対策処理部23に設定する閾値面TRを説明するための図である。図2中、26はG成分G2の値を示すG2軸、27はB成分B2の値を示すB2軸、28はR成分R1の値を示すR1軸である。これらG2軸、B2軸及びR1軸は直交しており、G2、B2、R1空間を構成している。また、29は平面B2=0と平面R1=rgbMaxとの交線、30は平面G2=rgbMaxと平面R1=rgbMaxとの交線、31は平面B2=0と平面G2=rgbMaxとの交線である。
閾値面TRは、「赤飽和による青抜け現象」を解消するために、G2、B2、R1空間に設定される面であり、G2、B2、R1空間において、ハイライト色付き対策処理を行う点(G2、B2、R1)が存在する領域と、ハイライト色付き対策処理を行わない点(G2、B2、R1)が存在する領域との境に位置する面である。G2、B2、R1空間におけるハイライト色付き対策処理は、閾値面TRの外側にある領域(閾値面TRから見て点Ow(rgbMax、0、rgbMax)側の領域)内の点(G2、B2、R1)を、後述するように、閾値面TR上にクリップする処理である。
本例では、閾値面TRは、交線29、交線30及び交線31上にそれぞれ頂点32、頂点33及び頂点34を有する三角形面とされ、閾値面パラメータposA_TR、posB_TR、posC_TRにより位置が示される。閾値面パラメータposA_TRは、点Owと閾値面TRの頂点32との距離を示すものである。閾値面パラメータposB_TRは、点Owと閾値面TRの頂点33との距離を示すものである。閾値面パラメータposC_TRは、点Owと閾値面TRの頂点34との距離を示すものである。
図3は閾値面算出部24がハイライト色付き対策処理部23に設定する閾値面TBrを説明するための図である。図3中、36はG成分G2の値を示すG2軸、37はR成分R2の値を示すR2軸、38はB成分B1の値を示すB1軸である。これらG2軸、R2軸及びB1軸は直交しており、G2、R2、B1空間を構成している。また、39は平面R2=0と平面B1=rgbMaxとの交線、40は平面G2=rgbMaxと平面B1=rgbMaxとの交線、41は平面R2=0と平面G2=rgbMaxとの交線である。
閾値面TBrは、「青飽和による赤抜け現象」を解消するために、G2、R2、B1空間に設定される面であり、G2、R2、B1空間において、ハイライト色付き対策処理を行う点(G2、R2、B1)が存在する領域と、ハイライト色付き対策処理を行わない点(G2、R2、B1)が存在する領域との境に位置する面である。G2、R2、B1空間におけるハイライト色付き対策処理は、閾値面TBrの外側にある領域(閾値面TBrから見て点Ou(rgbMax、0、rgbMax)側の領域)内の点(G2、R2、B1)を、後述するように、閾値面TBr上にクリップする処理である。
本例では、閾値面TBrは、交線39、交線40及び交線41上にそれぞれ頂点42、頂点43及び頂点44を有する三角形面とされ、閾値面パラメータposA_TBr、posB_TBr、posC_TBrにより位置が示される。閾値面パラメータposA_TBrは、点Ouと閾値面TBrの頂点42との距離を示すものである。閾値面パラメータposB_TBrは、点Ouと閾値面TBrの頂点43との距離を示すものである。閾値面パラメータposC_TBrは、点Ouと閾値面TBrの頂点44との距離を示すものである。
図4は閾値面算出部24の構成を示すブロック回路図である。閾値面算出部24は、異常発生パラメータ算出部46、47と、異常発生パラメータ/閾値面パラメータ・テーブル48と、閾値面パラメータ出力部49、50とを有している。
異常発生パラメータ算出部46は、色補正行列設定部18が出力する色補正行列から、(3、2)成分=CC21と、(3、3)成分=CC22とを入力し、「赤飽和による青抜け現象」の発生度合いを示す異常発生パラメータKtrを、
なる演算で算出するものである。
異常発生パラメータ算出部47は、色補正行列設定部18が出力する色補正行列から、(1、1)成分=CC00と、(1、2)成分=CC01とを入力し、「青飽和による赤抜け現象」の発生度合いを示す異常発生パラメータKtbrを、
なる演算で算出するものである。
異常発生パラメータ/閾値面パラメータ・テーブル48は、図5に示すように、異常発生パラメータKtrと、出力すべき閾値面パラメータposA_TR、posB_TR、posC_TRとの関係、及び、異常発生パラメータKtbrと、出力すべき閾値面パラメータposA_TBr、posB_TBr、posC_TBrとの関係を保持するものである。
本例では、異常発生パラメータKtrが大きい場合には、「赤飽和による青抜け現象」の発生度合いが大きくなるので、図2上、閾値面TRは、より内側に設定されるように、即ち、閾値面パラメータposA_TR、posB_TR、posC_TRの値が大きくなるようにされている。また、異常発生パラメータKtrが小さい場合には、「赤飽和による青抜け現象」の発生度合いが小さくなるので、図2上、閾値面TRは、より外側に設定されるように、即ち、閾値面パラメータposA_TR、posB_TR、posC_TRの値が小さくなるようにされている。
また、異常発生パラメータKtbrが大きい場合には、「青飽和による赤抜け現象」の発生度合いが大きくなるので、図3上、閾値面TBrは、より内側に設定されるように、即ち、閾値面パラメータposA_TBr、posB_TBr、posC_TBrの値が大きくなるようにされている。また、異常発生パラメータKtbrが小さい場合には、「青飽和による赤抜け現象」の発生度合いが小さくなるので、図3上、閾値面TBrは、より外側に設定されるように、即ち、閾値面パラメータposA_TBr、posB_TBr、posC_TBrの値が小さくなるようにされている。なお、図5に示すグラフは折れ線に限らない。単調増加関数で、最小値が1であるならば、曲線でも良い。
また、図4に示す閾値面パラメータ出力部49は、異常発生パラメータ算出部46が出力する異常発生パラメータKtrを入力し、異常発生パラメータ/閾値面パラメータ・テーブル48を参照して、異常発生パラメータKtrの値に対応する値の閾値面パラメータposA_TR、posB_TR、posC_TRを出力するものである。
閾値面パラメータ出力部50は、異常発生パラメータ算出部47が出力する異常発生パラメータKtbrを入力し、異常発生パラメータ/閾値面パラメータ・テーブル48を参照して、異常発生パラメータKtbrの値に対応する値の閾値面パラメータposA_TBr、posB_TBr、posC_TBrを出力するものである。
図6はハイライト色付き対策処理部23の構成を示すブロック回路図である。ハイライト色付き対策処理部23は、内部パラメータ算出部52、53と、赤飽和による青抜け対策部であるR1飽和によるG、B補正値算出部54と、青飽和による赤抜け対策部であるB1飽和によるG、R補正値算出部55と、補正値統合部56と、赤飽和による赤抜け対策部であるR1飽和によるR抜け対策部57と、青飽和による青抜け対策部であるB1飽和によるB抜け対策部58と、範囲制限部59とを備えている。
内部パラメータ算出部52は、閾値面算出部24から与えられる閾値面TRの位置を示す閾値面パラメータposA_TR、posB_TR、posC_TRと、制御部22から与えられる後述するクリップ方向パラメータprmP_TR(例えば、0.5)とを入力し、R1飽和によるG、B補正値算出部54に渡す内部パラメータprmA_TR、prmB_TR、prmC_TR、prmCp0_TR、prmCp1_TR、prmCp2_TR、prmCp3_TRを算出するものである。
図7はクリップ方向パラメータprmP_TRを説明するための図である。(A)はG2、B2、R1空間における閾値面TRを示す図、(B)は(A)に示す閾値面TRを上方側から見た図である。ハイライト色付き対策処理部23では、G2、B2、R1空間内の点(G2、B2、R1)が閾値面TRの外側、即ち、閾値面TRと比較して点Ow側にある場合には、点(G2、B2、R1)を閾値面TRにクリップする。このクリップする方向を示すパラメータがクリップ方向パラメータprmP_TRである。
本例では、閾値面TRの外側にある点(G2、B2、R1)は、G2−B2面に平行に、即ち、R成分R1の値は変化させず、B2軸の正方向に対する傾きがp1/q1となる方向に移動させて閾値面TRにクリップされる。そこで、prmP_TR=p1/q1と定義される。
図8は内部パラメータ算出部52の構成を示すブロック回路図である。内部パラメータ算出部52は、演算部61〜63を備えている。演算部61は、閾値面パラメータposA_TR、posB_TR、posC_TRを入力し、
なる演算を行い、内部パラメータprmA_TR、prmB_TR、prmC_TRを算出するものである。但し、rgbNrlzはRGB規格化定数であり、その値は4096である。
演算部62は、演算部61が出力する内部パラメータprmA_TR、prmB_TR、prmC_TRのうち、内部パラメータprmA_TR、prmB_TRと、制御部22から与えられるクリップ方向パラメータprmP_TRとを入力し、
なる演算を行い、内部パラメータtmpRを算出するものである。
演算部63は、演算部61が出力する内部パラメータprmA_TR、prmB_TR、prmC_TRのうち、内部パラメータprmA_TR、prmB_TRと、演算部62が出力する内部パラメータtmpRと、制御部22から与えられるクリップ方向パラメータprmP_TRとを入力し、
なる演算を行い、内部パラメータprmCp0_TR、prmCp1_TR、prmCp2_TR、prmCp3_TRを算出するものである。
また、図6に示す内部パラメータ算出部53は、閾値面算出部24から与えられる閾値面TBrの位置を示す閾値面パラメータposA_TBr、posB_TBr、posC_TBrと、制御部22から与えられる後述するクリップ方向パラメータprmP_TBr(例えば、0.5)とを入力し、B1飽和によるG、R補正値算出部55に渡す内部パラメータprmA_TBr、prmB_TBr、prmC_TBr、prmCp0_TBr、prmCp1_TBr、prmCp2_TBr、prmCp3_TBrを算出するものである。
図9はクリップ方向パラメータprmP_TBrを説明するための図である。(A)はG2、R2、B1空間における閾値面TBrを示す図、(B)は(A)に示す閾値面TBrを上方側から見た図である。ハイライト色付き対策処理部23では、G2、R2、B1空間内の点(G2、R2、B1)が閾値面TBrの外側、即ち、閾値面TBrと比較して点Ou側にある場合には、点(G2、R2、B1)を閾値面TBrにクリップする。このクリップする方向を示すパラメータがクリップ方向パラメータprmP_TBrである。
本例では、閾値面TBrの外側にある点(G2、R2、B1)は、G2−R2面に平行に、即ち、B成分B1の値は変化させず、R2軸の正方向に対する傾きがp2/q2となる方向に移動させて閾値面TRにクリップされる。そこで、prmP_TBr=p2/q2と定義される。
図10は内部パラメータ算出部53の構成を示すブロック回路図である。内部パラメータ算出部53は、演算部65、66、67を備えている。演算部65は、閾値面パラメータposA_TBr、posB_TBr、posC_TBrを入力し、
なる演算を行い、内部パラメータprmA_TBr、prmB_TBr、prmC_TBrを算出するものである。
演算部66は、演算部65が出力する内部パラメータprmA_TBr、prmB_TBr、prmC_TBrのうち、内部パラメータprmA_TBr、prmB_TBrと、制御部22から与えられるクリップ方向パラメータprmP_TBrとを入力し、
なる演算を行い、内部パラメータtmpBrを算出するものである。
演算部67は、演算部65が出力する内部パラメータprmA_TBr、prmB_TBr、prmC_TBrのうち、内部パラメータprmA_TBr、prmB_TBrと、演算部66が出力する内部パラメータtmpBrと、制御部22から与えられるクリップ方向パラメータprmP_TBrとを入力し、
なる演算を行い、内部パラメータprmCp0_TBr、prmCp1_TBr、prmCp2_TBr、prmCp3_TBrを算出するものである。
また、図6に示すR1飽和によるG、B補正値算出部54は、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)中のR成分R1と、色補正処理部12が出力する画像信号(R2、G2、B2)中のG成分G2及びB成分B2と、内部パラメータ算出部52が出力する内部パラメータprmA_TR、prmB_TR、prmC_TR、prmCp0_TR、prmCp1_TR、prmCp2_TR、prmCp3_TRと、制御部22が出力するクリップ方向パラメータprmP_TRとを入力し、補正実行条件フラグflagRと、R1飽和によるG減少補正値corrG_TRと、R1飽和によるB増加補正値corrB_TRとを出力するものである。
図11はR1飽和によるG、B補正値算出部54の構成を示すブロック回路図である。R1飽和によるG、B補正値算出部54は、演算部69〜73を備えている。演算部69は、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)中のR成分R1と、色補正処理部12が出力する画像信号(R2、G2、B2)中のG成分G2及びB成分B2とを入力し、
なる演算を行い、G成分G2、B成分B2及びR成分R1の座標をG2、B2、R1空間の座標からh_TR、j_TR、k_TR空間の座標に座標変換してなるG成分srcH_TR、B成分srcJ_TR及びR成分srcK_TRを算出するものである。
図12はh_TR、j_TR、k_TR空間を説明するための図である。図12中、75はG成分srcH_TRの値を示すh_TR軸、76はB成分srcJ_TRの値を示すj_TR軸、77はR成分srcK_TRの値を示すk_TR軸である。即ち、h_TR、j_TR、k_TR空間は、G2、B2、R1空間における点Ow(rgbMax、0、rgbMax)を原点とし、G2軸26と逆方向の軸をh_TR軸75、B2軸27と同一方向の軸をj_TR軸76、R1軸28と逆方向の軸をk_TR軸77とするものである。
図13は図12に示すh_TR、j_TR、k_TR空間を回転させた状態を示している。図13中、S_TRは、座標を(srcH_TR、srcJ_TR、srcK_TR)とする点であり、この例では、閾値面TRへのクリップの対象となっている。
また、図11に示す演算部70は、演算部69が出力するG成分srcH_TR、B成分srcJ_TR及びR成分srcK_TRと、内部パラメータ算出部52が出力する内部パラメータprmC_TRと、制御部22が出力するクリップ方向パラメータprmP_TRとを入力し、
なる演算を行い、tmp1_TR、tmp2_TRを算出するものである。これらtmp1_TR、tmp2_TRは、図13に示す平面k_TR=srcK_TRと閾値面TRとの交線である直線78と、クリップ方向(p1、q1)を示す直線のうち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)を通る直線79との交点T_TR(dstH_TR、dstJ_TR、srcK_TR)を求めるために、直線78を示す式と直線79を示す式とを連立方程式とした場合に、定数項となるものである。
また、図11に示す演算部71は、演算部70が出力するtmp1_TR、tmp2_TRと、内部パラメータ算出部52が出力する内部パラメータprmCp0_TR、prmCp1_TR、prmCp2_TR、prmCp3_TRと、制御部22が出力するクリップ方向パラメータprmP_TRとを入力し、
なる演算を行い、図13に示す点T_TRのh_TR座標であるdstH_TRと、j_TR座標であるdstJ_TRを算出するものである。
ここで、図14に示すように、平面k_TR=srcK_TR上で考える。数30中の式(30−1)、式(30−2)は、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が直線78と比較して原点Ow側にあれば、点S_TR(srcH_TR、srcJ_TR、srcK_TR)を方向(p1、q1)に向かってシフトし、直線79上の点T_TR(dstH_TR、dstJ_TR、srcK_TR)にクリップするための演算である。
また、数30中の式(30−3)、式(30−4)は、図15に示すように、点S_TR(srcH_TR、srcJ_TR、srcK_TR)を直線78上までシフトした点T_TR(dstH_TR、dstJ_TR、srcK_TR)のh_TR座標がマイナスの場合には、点T_TR(dstH_TR、dstJ_TR、srcK_TR)を、シフトする向きは同じで、j_TR軸と交わる点U_TR(0、dstJ_TR、srcK_TR)まで更にシフトさせるための演算である。
また、図16に示すように、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が直線78と比較して原点Ow側になくとも、点S_TR(srcH_TR、srcJ_TR、srcK_TR)のh_TR座標がマイナスの場合、点S_TR(srcH_TR、srcJ_TR、srcK_TR)を点U_TR(0、dstJ_TR、srcK_TR)までシフトする。
また、図11に示す演算部72は、演算部71が出力するdstH_TR、dstJ_TRを入力し、
なる演算を行い、R1飽和によるG減少補正値corrG_TR及びB増加補正値corrB_TRを算出するものである。これは、シフトした点T_TR(dstH_TR、dstJ_TR、srcK_TR)をh_TR、j_TR、k_TR空間から元のG2、B2、R1空間に座標変換する演算である。
また、演算部73は、演算部69が出力するsrcH_TR、srcJ_TR、srcK_TRと、内部パラメータ算出部52が出力する内部パラメータprmA_TR、prmB_TR、prmC_TRとを入力し、
なる論理演算を行い、補正実行条件フラグflagRの真理値(点S_TRが閾値面TRの外側にあるか否か)を算出するものである。補正実行条件フラグflagRは、真の場合には、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあることを示し、偽の場合には、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあることを示す。即ち、補正実行条件フラグflagRは、真の場合には、G成分G2をG減少補正値corrG_TRに補正し、B成分B2をB増加補正値corrB_TRに補正する条件にあることを示し、偽の場合には、G成分G2及びB成分B2を補正する条件にはないことを示す。
また、図6に示すB1飽和によるG、R補正値算出部55は、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)中のB成分B1と、色補正処理部12が出力する画像信号(R2、G2、B2)中のR成分R2及びG成分G2と、内部パラメータ算出部53が出力する内部パラメータprmA_TBr、prmB_TBr、prmC_TBr、prmCp0_TBr、prmCp1_TBr、prmCp2_TBr、prmCp3_TBrと、制御部22から与えられるクリップ方向パラメータprmP_TBrとを入力し、補正実行条件フラグflagBrと、B1飽和によるG減少補正値corrG_TBrと、B1飽和によるR増加補正値corrR_TBrとを出力するものである。
図17はB1飽和によるG、R補正値算出部55の構成を示すブロック回路図である。B1飽和によるG、R補正値算出部55は、演算部81〜85を備えている。演算部81は、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)中のB成分B1と、色補正処理部12が出力する画像信号(R2、G2、B2)中のR成分R2及びG成分G2とを入力し、
なる演算を行い、G成分G2、R成分R2及びB成分B1をG2、R2、B1空間の座標からh_TBr、j_TBr、k_TBr空間の座標に座標変換してなるG成分srcH_TBr、R成分srcJ_TBr及びB成分srcK_TBrを算出するものである。
図18はh_TBr、j_TBr、k_TBr空間を説明するための図である。図18中、87はG成分srcH_TBrの値を示すh_TBr軸、88はR成分srcJ_TBrの値を示すj_TBr軸、89はB成分srcK_TBrの値を示すk_TBr軸である。即ち、h_TBr、j_TBr、k_TBr空間は、G2、R2、B1空間における点Ou(rgbMax、0、rgbMax)を原点とし、G2軸36と逆方向の軸をh_TBr軸87、R2軸37と同一方向の軸をj_TBr軸88、B1軸38と逆方向の軸をk_TBr軸89とするものである。
図19は図18に示すh_TBr、j_TBr、k_TBr空間を回転させた状態を示している。図19中、S_TBrは、座標を(srcH_TBr、srcJ_TBr、srcK_TBr)とする点であり、この例では、閾値面TBrへのクリップの対象となっている。
また、図17に示す演算部82は、演算部81が出力するG成分srcH_TBr、R成分srcJ_TBr及びB成分srcK_TBrと、内部パラメータ算出部53が出力する内部prmC_TBrと、制御部22が出力するクリップ方向パラメータprmP_TBrとを入力し、
なる演算を行い、tmp1_TBr、tmp2_TBrを算出するものである。これらtmp1_TBr、tmp2_TBrは、図19に示す平面k_TBr=srcK_TBrと閾値面TBrとの交線である直線91と、クリップ方向(p2、q2)を示す直線のうち、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)を通る直線92との交点T_TBr(dstH_TBr、dstJ_TBr、srcK_TBr)を求めるために、直線91を示す式と直線92を示す式とを連立方程式とした場合に、定数項となるものである。
また、図17に示す演算部83は、演算部82が出力するtmp1_TBr、tmp2_TBrと、内部パラメータ算出部53が出力する内部パラメータprmCp0_TBr、prmCp1_TBr、prmCp2_TBr、prmCp3_TBrと、制御部22が出力するクリップ方向パラメータprmP_TBrとを入力し、
なる演算を行い、図19に示す点T_TBrのh_TBr座標であるdstH_TBrと、j_TBr座標であるdstJ_TBrを算出するものである。
ここで、図20に示すように、平面k_TBr=srcK_TBr上で考える。数35中の式(35−1)、式(35−2)は、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が直線91と比較して原点Ou側にあれば、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)を方向(p2、q2)に向かってシフトし、直線91上の点T_TBr(dstH_TBr、dstJ_TBr、srcK_TBr)にクリップするための演算である。
また、数35中の式(35−3)、式(35−4)は、図21に示すように、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)を直線91上までシフトした点T_TBr(dstH_TBr、dstJ_TBr、srcK_TBr)のh_TBr座標がマイナスの場合には、点T_TBr(dstH_TBr、dstJ_TBr、srcK_TBr)を、シフトする向きは同じで、j_TBr軸と交わる点U_TBr(0、dstJ_TBr、srcK_TBr)まで更にシフトさせる演算である。
また、図22に示すように、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が直線91と比較して原点Ou側になくとも、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)のh_TBr座標がマイナスの場合、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)を点U_TBr(0、dstJ_TBr、srcK_TBr)までシフトする。
また、図17に示す演算部84は、演算部83が出力するdstH_TBr、dstJ_TBrを入力し、
なる演算を行い、B1飽和によるG減少補正値corrG_TBr及びR増加補正値corrR_TBrを算出するものである。これは、シフトした点T_TBr(dstH_TBr、dstJ_TBr、srcK_TBr)をh_TBr、j_TBr、k_TBr空間から元のG2、R2、B1空間に座標変換する演算である。
また、演算部85は、演算部81が出力するsrcH_TBr、srcJ_TBr、srcK_TBrと、内部パラメータ算出部53が出力する内部パラメータprmA_TBr、prmB_TBr、prmC_TBrとを入力し、
なる論理演算を行い、補正実行条件フラグflagBrの真理値(点S_TBrが閾値面TBrの外側にあるか否か)を算出するものである。補正実行条件フラグflagBrは、真の場合には、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBrの外側にあることを示し、偽の場合には、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBr上又は閾値面TBrの内側にあることを示す。即ち、補正実行条件フラグflagBrは、真の場合には、G成分G2をG減少補正値corrG_TBrに補正し、R成分R2をR増加補正値corrR_TBrに補正する条件にあることを示し、偽の場合には、G成分G2及びR成分R2を補正する条件にはないことを示す。
また、図6に示す補正値統合部56は、R1飽和によるG、B補正値算出部54が出力する補正実行条件フラグflagR、G減少補正値corrG_TR及びB増加補正値corrB_TRと、B1飽和によるG、R補正値算出部55が出力する補正実行条件フラグflagBr、G減少補正値corrG_TBr及びR増加補正値corrR_TBrと、色補正処理部12が出力する画像信号(R2、G2、B2)とを入力し、R補正値corrR_Tと、G補正値corrG_Tと、B補正値corrB_Tとを出力するものである。
図23は補正値統合部56の構成を示すブロック回路図である。補正値統合部56は、flagR真偽判定部95と、flagBr真偽判定部96と、補正値出力部97とを有している。flagR真偽判定部95は、補正実行条件フラグflagRの真偽を判定するものである。flagBr真偽判定部96は、補正実行条件フラグflagBrの真偽を判定するものである。
補正値出力部97は、flagR真偽判定部95が出力するflagR真偽結果と、flagBr真偽判定部96が出力するflagBr真偽結果と、R1飽和によるG、B補正値算出部54が出力するG減少補正値corrG_TR及びB増加補正値corrB_TRと、B1飽和によるG、R補正値算出部55が出力するG減少補正値corrG_TBr及びR増加補正値corrR_TBrと,色補正処理部12が出力する画像信号(R2、G2、B2)とを入力し、R補正値corrR_Tと、G補正値corrG_Tと、B補正値corrB_Tとを出力するものである。
図24は補正値出力部97の動作を説明するための図である。補正値出力部97は、以下のような動作を行う。まず、(flagR、flagBr)=(偽、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBr上又は閾値面TBrの内側にある場合には、画像信号(R2、G2、B2)を補正せず、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG成分G2を出力し、B補正値corrB_TとしてB成分B2を出力する。
また、(flagR、flagBr)=(真、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBr上又は閾値面TBrの内側にある場合には、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG減少補正値corrG_TRを出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力する。
また、(flagR、flagBr)=(偽、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBrの外側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TBrを出力し、G補正値corrG_TとしてG減少補正値corrG_TBrを出力し、B補正値corrB_TとしてB成分B2を出力する。
また、(flagR、flagBr)=(真、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBrの外側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TBrを出力し、G補正値corrG_TとしてG減少補正値corrG_TR、corrG_TBrのうち、小さい方のG減少補正値を出力し(強い方の補正を選択し)、B補正値corrB_TとしてB増加補正値corrB_TRを出力する。
また、図6に示すR1飽和によるR抜け対策部57は、ホワイトバランス処理部11が出力するR成分R1と、補正値統合部56が出力するR補正値corrR_Tとを入力し、R補正値corrRを出力するものである。
図25はR1飽和によるR抜け対策部57の動作を説明するための図である。即ち、R1飽和によるR抜け対策部57は、R1<rgbMaxの場合には、R補正値corrRとしてR補正値corrR_Tを出力し、rgbMax≦R1の場合には、R補正値corrRとしてrgbMaxを出力する。
また、図6に示すB1飽和によるB抜け対策部58は、ホワイトバランス処理部11が出力するB成分B1と、補正値統合部56が出力するB補正値corrB_Tとを入力し、B補正値corrBを出力するものである。
図26はB1飽和によるB抜け対策部58の動作を説明するための図である。即ち、B1飽和によるB抜け対策部58は、B1<rgbMaxの場合には、B補正値corrBとしてB補正値corrB_Tを出力し、rgbMax≦B1の場合には、B補正値corrBとしてrgbMaxを出力する。
また、図6に示す範囲制限部59は、R1飽和によるR抜け対策部57が出力するR補正値corrRと、補正値統合部56が出力するG補正値corrG_Tと、B1飽和によるB抜け対策部58が出力するB補正値corrBとを入力し、R成分R3と、G成分G3と、B成分B3とを出力するものである。
図27は範囲制限部59の構成を示すブロック回路図である。範囲制限部59は、R成分R3、G成分G3及びB成分B3がオーバフローしないように、R成分R3、G成分G3及びB成分B3の範囲を0〜rgbMaxの範囲に制限するものであり、R範囲制限部100と、G範囲制限部101と、B範囲制限部102とを有している。
R範囲制限部100は、R成分R3がオーバフローしないようにR成分R3の範囲を0〜rgbMaxの範囲に制限するものであり、corrR≦0の場合には、R成分R3として0を出力し、0<corrR<rgbMaxの場合には、R成分R3としてR補正値corrRを出力し、rgbMax≦corrRの場合には、R成分R3としてrgbMaxを出力する。
G範囲制限部101は、G成分G3がオーバフローしないようにG成分G3の範囲を0〜rgbMaxの範囲に制限するものであり、corrG_T≦0の場合には、G成分G3として0を出力し、0<corrG_T<rgbMaxの場合には、G成分G3としてG補正値corrG_Tを出力し、rgbMax≦corrG_Tの場合には、G成分G3としてrgbMaxを出力する。
B範囲制限部102は、B成分B3がオーバフローしないようにB成分B3の範囲を0〜rgbMaxの範囲に制限するものであり、corrB≦0の場合には、B成分B3として0を出力し、0<corrB<rgbMaxの場合には、B成分B3としてB補正値corrBを出力し、rgbMax≦corrBの場合には、B成分B3としてrgbMaxを出力する。
以上のように、本発明の第1実施形態である画像処理部21においては、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)中のR成分R1及びB成分B1と、色補正処理部12が出力する画像信号(R2、G2、B2)は、ハイライト色付き対策処理部23に与えられる。
そして、ハイライト色付き対策処理部23においては、R1飽和によるG、B補正値算出部54は、G2、B2、R1空間において閾値面TRの外側にある点(G2、B2、R1)を閾値面TRにクリップし、B成分B2を増加補正したB増加補正値corrB_TRと、G成分G2を減少補正したG減少補正値corrG_TRと、点(G2、B2、R1)が閾値面TRの外側にあるか否か(補正を実行する条件にあるか否か)を示す補正実行条件フラグflagRとを算出するとしている。
また、B1飽和によるG、R補正値算出部55は、G2、R2、B1空間において閾値面TBrの外側にある点(G2、R2、B1)を閾値面TBrにクリップし、R成分R2を増加補正したR増加補正値corrR_TBrと、G成分G2を減少補正したG減少補正値corrG_TBrと、点(G2、R2、B1)が閾値面TBの外側にあるか否か(補正を実行する条件にあるか否か)を示す補正実行条件フラグflagBrとを算出するとしている。
また、補正値統合部56は、(flagR、flagBr)=(偽、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBr上又は閾値面TBrの内側にある場合には、画像信号(R2、G2、B2)を補正せず、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG成分G2を出力し、B補正値corrB_TとしてB成分B2を出力するとしている。
また、(flagR、flagBr)=(真、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBr上又は閾値面TBrの内側にある場合には、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG減少補正値corrG_TRを出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力するとしている。これにより、赤飽和による青抜け現象を解消することができる。
また、(flagR、flagBr)=(偽、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBrの外側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TBrを出力し、G補正値corrG_TとしてG減少補正値corrG_TBrを出力し、B補正値corrB_TとしてB成分B2を出力するとしている。これにより、青飽和による赤抜け現象を解消することができる。
また、(flagR、flagBr)=(真、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBrの外側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TBrを出力し、G補正値corrG_TとしてG減少補正値corrG_TR、corrG_TBrのうち、小さい方のG減少補正値を出力し(強い方の補正を選択し)、B補正値corrB_TとしてB増加補正値corrB_TRを出力するとしている。これにより、赤飽和による青抜け現象及び青飽和による赤抜け現象のうち、異常が大きい方の対策を優先しているが、赤飽和による青抜け減少及び青飽和による赤抜け減少を解消することができる。
また、R1飽和によるR抜け対策部57は、R1<rgbMaxの場合には、R補正値corrRとしてR補正値corrR_Tを出力し、rgbMax≦R1の場合には、R補正値corrRとしてrgbMaxを出力するとしている。これにより、赤飽和による赤抜け現象を解消することができる。
また、B1飽和によるB抜け対策部58は、B1<rgbMaxの場合には、B補正値corrBとしてB補正値corrB_Tを出力し、rgbMax≦B1の場合には、B補正値corrBとしてrgbMaxを出力するとしている。これにより、青飽和による青抜け現象を解消することができる。
このように、本発明の第1実施形態である画像処理部21によれば、色補正処理部12による色補正処理により発生した「赤飽和による青抜け現象」、「青飽和による赤抜け現象」、「赤飽和による赤抜け現象」及び「青飽和による青抜け現象」を解消することができるので、これらの異常現象による表示画像上の偽色を回避し、自然な画像表示を行うことができる。
(本発明の第2実施形態)
図28は本発明の第2実施形態を備えるデジタルカメラの概略的構成図である。図28に示すデジタルカメラは、図67に示す従来のデジタルカメラが備える画像処理部5及び制御部9の代わりに、本発明の第2実施形態である画像処理部104及び制御部105を備え、その他については、図67に示す従来のデジタルカメラと同様に構成したものである。
画像処理部104は、色補正処理部12とガンマ補正部13との間に、ハイライト色付き対策処理部106を設け、図67に示す画像処理部5のように色補正処理部12が出力する画像信号(R2、G2、B2)をガンマ補正部13に与える代わりに、ハイライト色付き対策処理部106が出力する画像信号(R3、G3、B3)をガンマ補正部13に与えるようにし、その他については、図67に示す画像処理部5と同様に構成したものである。
ハイライト色付き対策処理部106は、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)と、色補正処理部12が出力する画像信号(R2、G2、B2)とを入力し、画像信号(R2、G2、B2)が、「赤飽和による青抜け現象」、「緑飽和による赤抜け現象」、「赤飽和による赤抜け現象」又は「青飽和による青抜け現象」を起こしている場合に、これら異常現象を解消するための処理(即ち、ハイライト色付き対策処理)を行うものである。
制御部105は、閾値面算出部107を設け、その他については、図67に示す制御部9と同様に構成したものである。閾値面算出部107は、色補正行列設定部18が出力する色補正行列を入力し、この色補正行列に適した前述した閾値面TR及び後述する閾値面TGを算出し、これら閾値面TR、TGをハイライト色付き対策処理部106に設定するものである。なお、閾値面算出部107は画像処理部104に含めるようにしても良い。
図29は閾値面算出部107がハイライト色付き対策処理部106に設定する閾値面TGを説明するための図である。図29中、110はB成分B2の値を示すB2軸、111はR成分R2の値を示すR2軸、112はG成分G1の値を示すG1軸である。これらB2軸、R2軸及びG1軸は直交しており、B2、R2、G1空間を構成している。また、113は平面R2=0と平面G1=rgbMaxとの交線、114は平面B2=rgbMaxと平面G1=rgbMaxとの交線、115は平面R2=0と平面B2=rgbMaxとの交線である。
閾値面TGは、「緑飽和による赤抜け現象」を解消するために、B2、R2、G1空間に設定される面であり、B2、R2、G1空間において、ハイライト色付き対策処理を行う点(B2、R2、G1)が存在する領域と、ハイライト色付き対策処理を行わない点(B2、R2、G1)が存在する領域との境に位置する面である。B2、R2、G1空間におけるハイライト色付き対策処理は、閾値面TGの外側にある領域(閾値面TGから見て点Oe(rgbMax、0、rgbMax)側の領域)内の点(B2、R2、G1)を、後述するように、閾値面TG上にクリップする処理である。
本例では、閾値面TGは、交線113、交線114及び交線115上にそれぞれ頂点116、頂点117及び頂点118を有する三角形面とされ、閾値面パラメータposA_TG、posB_TG、posC_TGにより位置が示される。閾値面パラメータposA_TGは、点Oeと閾値面TGの頂点116との距離を示すものである。閾値面パラメータposB_TGは、点Oeと閾値面TGの頂点117との距離を示すものである。閾値面パラメータposC_TGは、点Oeと閾値面TGの頂点118との距離を示すものである。
図30は閾値面算出部107の構成を示すブロック回路図である。閾値面算出部107は、異常発生パラメータ算出部46、120と、異常発生パラメータ/閾値面パラメータ・テーブル121と、閾値面パラメータ出力部49、122とを備えている。異常発生パラメータ算出部46及び閾値面パラメータ出力部49は、前述したものである。
異常発生パラメータ算出部120は、色補正行列設定部18が出力する色補正行列から、(1、1)成分=CC00と、(1、3)成分=CC02とを入力し、「緑飽和による赤抜け現象」の発生度合いを示す異常発生パラメータKtgを、
なる演算で算出するものである。
異常発生パラメータ/閾値面パラメータ・テーブル121は、図31に示すように、異常発生パラメータKtrと、出力すべき閾値面パラメータposA_TR、posB_TR、posC_TRとの関係、及び、異常発生パラメータKtgと、出力すべき閾値面パラメータposA_TG、posB_TG、posC_TGとの関係を保持するものである。
本例では、異常発生パラメータKtrが大きい場合には、「赤飽和による青抜け現象」の発生度合いが大きくなるので、図2上、閾値面TRは、より内側に設定されるように、即ち、閾値面パラメータposA_TR、posB_TR、posC_TRの値が大きくなるようにされている。また、異常発生パラメータKtrが小さい場合には、「赤飽和による青抜け現象」の発生度合いが小さくなるので、図2上、閾値面TRは、より外側に設定されるように、即ち、閾値面パラメータposA_TR、posB_TR、posC_TRの値が小さくなるようにされている。
また、異常発生パラメータKtgが大きい場合には、「緑飽和による赤抜け現象」の発生度合いが大きくなるので、図29上、閾値面TGは、より内側に設定されるように、即ち、閾値面パラメータposA_TG、posB_TG、posC_TGが大きくなるようにされている。また、異常発生パラメータKtgが小さい場合には、「緑飽和による赤抜け現象」の発生度合いが小さくなるので、図29上、閾値面TGは、より外側に設定されるように、即ち、閾値面パラメータposA_TG、posB_TG、posC_TGが小さくなるようにされている。なお、図31に示すグラフは折れ線に限らない。単調増加関数で、最小値が1なら、曲線でも良い。
また、図30に示す閾値面パラメータ出力部122は、異常発生パラメータ算出部120が出力する異常発生パラメータKtgを入力し、異常発生パラメータ/閾値面パラメータ・テーブル121を参照して、異常発生パラメータKtgの値に対応する値の閾値面パラメータposA_TG、posB_TG、posC_TGを出力するものである。
図32はハイライト色付き対策処理部106の構成を示すブロック回路図である。ハイライト色付き対策処理部106は、内部パラメータ算出部52、124と、R1飽和によるG、B補正値算出部54と、G1飽和によるB、R補正値算出部125と、補正値統合部126と、R1飽和によるR抜け対策部57と、B1飽和によるB抜け対策部58と、範囲制限部59とを備えている。内部パラメータ算出部52、R1飽和によるG、B補正値算出部54、R1飽和によるR抜け対策部57、B1飽和によるB抜け対策部58及び範囲制限部59は、前述したものである。
内部パラメータ算出部124は、閾値面算出部107から与えられる閾値面TGの位置を示す閾値面パラメータposA_TG、posB_TG、posC_TGと、制御部105から与えられる後述するクリップ方向パラメータprmP_TG(例えば、0.5)とを入力し、G1飽和によるB、R補正値算出部125に渡す内部パラメータprmA_TG、prmB_TG、prmC_TG、prmCp0_TG、prmCp1_TG、prmCp2_TG、prmCp3_TGを算出するものである。
図33はクリップ方向パラメータprmP_TGを説明するための図である。(A)はB2、R2、G1空間における閾値面TGを示す図、(B)は(A)に示す閾値面TGを上方側から見た図である。ハイライト色付き対策処理部106では、B2、R2、G1空間内の点(B2、R2、G1)が閾値面TGの外側、即ち、閾値面TGと比較して点Oe側にある場合には、点(B2、R2、G1)を閾値面TGにクリップする。このクリップする方向を示すパラメータがクリップ方向パラメータprmP_TGである。
本例では、閾値面TGの外側にある点(B2、R2、G1)は、B2−R2面に平行に、即ち、G成分G1の値は変化させず、R2軸の正方向に対する傾きがp3/q3となる方向に移動させて閾値面TGにクリップされる。そこで、prmP_TG=p3/q3と定義される。
図34は内部パラメータ算出部124の構成を示すブロック回路図である。内部パラメータ算出部124は、演算部128〜130を備えている。演算部128は、閾値面パラメータposA_TG、posB_TG、posC_TGを入力し、
なる演算を行い、内部パラメータprmA_TG、prmB_TG、prmC_TGを算出するものである。
演算部129は、演算部128が出力する内部パラメータprmA_TG、prmB_TG、prmC_TGのうち、内部パラメータprmA_TG、prmB_TGと、制御部105から与えられるクリップ方向パラメータprmP_TGとを入力し、
なる演算を行い、内部パラメータtmpGを算出するものである。
演算部130は、演算部128が出力する内部パラメータprmA_TG、prmB_TG、prmC_TGのうち、内部パラメータprmA_TG、prmB_TGと、演算部129が出力する内部パラメータtmpGと、制御部105から与えられるクリップ方向パラメータprmP_TGとを入力し、
なる演算を行い、内部パラメータprmCp0_TG、prmCp1_TG、prmCp2_TG、prmCp3_TGを算出するものである。
また、図32に示すG1飽和によるB、R補正値算出部125は、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)中のG成分G1と、色補正処理部12が出力する画像信号(R2、G2、B2)中のB成分B2及びR成分R2と、内部パラメータ算出部124が出力する内部パラメータprmA_TG、prmB_TG、prmC_TG、prmCp0_TG、prmCp1_TG、prmCp2_TG、prmCp3_TGと、制御部105から与えられるクリップ方向パラメータprmP_TGとを入力し、補正実行条件フラグflagGと、G1飽和によるB減少補正値corrB_TGと、G1飽和によるR増加補正値corrR_TGとを出力するものである。
図35はG1飽和によるB、R補正値算出部125の構成を示すブロック回路図である。G1飽和によるB、R補正値算出部125は、演算部132〜136を備えている。演算部132は、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)中のG成分G1と、色補正処理部12が出力する画像信号(R2、G2、B2)中のB成分B2及びR成分R2とを入力し、
なる演算を行い、B成分B2、R成分R2及びG成分G1の座標をB2、R2、G1空間の座標からh_TG、j_TG、k_TG空間の座標に座標変換してなるB成分srcH_TG、R成分srcJ_TG及びG成分srcK_TGを算出するものである。
図36はh_TG、j_TG、k_TG空間を説明するための図である。図36中、138はB成分srcH_TGの値を示すh_TG軸、139はR成分srcJ_TGの値を示すj_TG軸、140はG成分srcK_TGの値を示すk_TG軸である。即ち、h_TG、j_TG、k_TG空間は、B2、R2、G1空間における点Oeを原点とし、B2軸110と逆方向の軸をh_TG軸138、R2軸111と同一方向の軸をj_TG軸139、G1軸112と逆方向の軸をk_TG軸140とするものである。
図37は図36に示すh_TG、j_TG、k_TG空間を回転させた状態を示している。図37中、S_TGは、座標を(srcH_TG、srcJ_TG、srcK_TG)とする点であり、この例では、閾値面TGへのクリップの対象となっている。
また、図35に示す演算部133は、演算部132が出力するB成分srcH_TG、R成分srcJ_TG及びG成分srcK_TGと、内部パラメータ算出部124が出力する閾値面パラメータprmC_TGと、制御部105が出力するクリップ方向パラメータprmP_TGとを入力し、
なる演算を行い、tmp1_TG、tmp2_TGを算出するものである。これらtmp1_TG、tmp2_TGは、図37に示す平面k_TG=srcK_TGと閾値面TGとの交線である直線142と、クリップ方向(p3、q3)を示す直線のうち、点S_TG(srcH_TG、srcJ_TG、srcK_TG)を通る直線143との交点T_TG(dstH_TG、dstJ_TG、srcK_TG)を求めるために、直線142を示す式と直線143を示す式とを連立方程式とした場合に、定数項となるものである。
また、図35に示す演算部134は、演算部133が出力するtmp1_TG、tmp2_TGと、内部パラメータ算出部124が出力する内部パラメータprmCp0_TG、prmCp1_TG、prmCp2_TG、prmCp3_TGと、制御部105から与えられるクリップ方向パラメータprmP_TGとを入力し、
なる演算を行い、図37に示す点T_TGのh_TG座標であるdstH_TGと、j_TG座標であるdstJ_TGを算出するものである。
ここで、図38に示すように、平面k_TG=srcK_TG上で考える。数44中の式(44−1)、式(44−2)は、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が直線142と比較して原点Oe側にあれば、点S_TG(srcH_TG、srcJ_TG、srcK_TG)を方向(p3、q3)に向かってシフトし、直線142上の点T_TG(dstH_TG、dstJ_TG、srcK_TG)にクリップするための演算である。
また、数44中の式(44−3)、式(44−4)は、図39に示すように、点S_TG(srcH_TG、srcJ_TG、srcK_TG)を直線142上までシフトした点T_TG(dstH_TG、dstJ_TG、srcK_TG)のh_TG座標がマイナスの場合には、点T_TG(dstH_TG、dstJ_TG、srcK_TG)を、シフトする向きは同じで、j_TG軸と交わる点U_TG(0、dstJ_TG、srcK_TG)まで更にシフトさせる演算である。
また、図40に示すように、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が直線142と比較して原点Oe側になくとも、点S_TG(srcH_TG、srcJ_TG、srcK_TG)のh_TG座標がマイナスの場合、点S_TG(srcH_TG、srcJ_TG、srcK_TG)を点U_TG(0、dstJ_TG、srcK_TG)までシフトする。
また、図35に示す演算部135は、演算部134が出力するdstH_TG、dstJ_TGを入力し、
なる演算を行い、G1飽和によるB減少補正値corrB_TG及びR増加補正値corrR_TGを算出するものである。これは、シフトした点T_TG(dstH_TG、dstJ_TG、srcK_TG)をh_TG、j_TG、k_TG空間から元のB2、R2、G1空間に座標変換するものである。
また、演算部136は、演算部132が出力するsrcH_TG、srcJ_TG、srcK_TGと、内部パラメータ算出部124が出力する内部パラメータprmA_TG、prmB_TG、prmC_TGとを入力し、
なる論理演算を行い、補正実行条件フラグflagGの真理値(点S_TGが閾値面TGの外側にあるか否か)を算出するものである。補正実行条件フラグflagGは、真の場合には、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TGの外側にあることを示し、偽の場合には、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TG上又は閾値面TGの内側にあることを示す。即ち、補正実行条件フラグflagGは、真の場合には、B成分B2をB減少補正値corrB_TGに補正し、R成分R2をR増加補正値corrR_TGに補正する条件にあることを示し、偽の場合には、B成分B2及びR成分R2を補正する条件にはないことを示す。
図32に示す補正値統合部126は、R1飽和によるG、B補正値算出部54が出力する補正実行条件フラグflagR、G減少補正値corrG_TR及びB増加補正値corrB_TRと、G1飽和によるB、R補正値算出部125が出力する補正実行条件フラグflagG、B減少補正値corrB_TG及びR増加補正値corrR_TGとを入力し、R補正値corrR_T、G補正値corrG_T及びB補正値corrB_Tを出力するものである。
図41は補正値統合部126の構成を示すブロック回路図である。補正値統合部126は、flagR真偽判定部95と、flagG真偽判定部145と、補正値出力部146とを備えている。flagR真偽判定部95は、前述したものである。flagG真偽判定部145は、補正実行条件フラグflagGの真偽を判定するものである。
補正値出力部146は、flagR真偽判定部95が出力するflagR真偽結果と、flagG真偽判定部145が出力するflagG真偽結果と、R1飽和によるG、B補正値算出部54が出力するG減少補正値corrG_TR及びB増加補正値corrB_TRと、G1飽和によるB、R補正値算出部125が出力するB減少補正値corrB_TG及びR増加補正値corrR_TGとを入力し、R補正値corrR_Tと、G補正値corrG_Tと、B補正値corrB_Tとを出力するものである。
図42は補正値出力部146の動作を説明するための図である。補正値出力部146は、以下のような動作を行う。まず、(flagR、flagG)=(偽、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TG上又は閾値面TGの内側にある場合には、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG成分G2を出力し、B補正値corrB_TとしてB成分B2を出力する。
また、(flagR、flagG)=(真、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TG上又は閾値面TGの内側にある場合には、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG減少補正値corrG_TRを出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力する。
また、(flagR、flagG)=(偽、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TGの外側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TGを出力し、G補正値corrG_TとしてG成分G2を出力し、B補正値corrB_TとしてB減少補正値corrB_TGを出力する。
また、(flagR、flagG)=(真、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TGの外側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TGを出力し、G補正値corrG_TとしてG減少補正値corrG_TR、B補正値corrB_Tとして(B増加補正値corrB_TR+B減少補正値corrB_TG)/2を出力する。
このように構成された本発明の第2実施形態である画像処理部104においては、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)と、色補正処理部12が出力する画像信号(R2、G2、B2)は、ハイライト色付き対策処理部106に与えられる。
そして、ハイライト色付き対策処理部106においては、R1飽和によるG、B補正値算出部54は、G2、B2、R1空間において閾値面TRの外側にある点(G2、B2、R1)を閾値面TRにクリップし、B成分B2を増加補正したB増加補正値corrB_TRと、G成分G2を減少補正したG減少補正値corrG_TRと、点(G2、B2、R1)が閾値面TRの外側にあるか否か(補正を実行する条件にあるか否か)を示す補正実行条件フラグflagRとを算出するとしている。
また、G1飽和によるB、R補正値算出部125は、B2、R2、G1空間において閾値面TGの外側にある点(B2、R2、G1)を閾値面TGにクリップし、R成分R2を増加補正したR増加補正値corrR_TGと、B成分B2を減少補正したB減少補正値corrB_TGと、点(B2、R2、G1)が閾値面TGの外側にあるか否か(補正を実行する条件にあるか否か)を示す補正実行条件フラグflagGとを算出するとしている。
また、補正値統合部126は、(flagR、flagG)=(偽、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TG上又は閾値面TGの内側にある場合には、画像信号(R2、G2、B2)を補正せず、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG成分G2を出力し、B補正値corrB_TとしてB成分B2を出力するとしている。
また、(flagR、flagG)=(真、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TG上又は閾値面TGの内側にある場合には、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG減少補正値corrG_TRを出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力するとしている。これにより、赤飽和による青抜け現象を解消することができる。
また、(flagR、flagG)=(偽、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TGの外側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TGを出力し、G補正値corrG_TとしてG成分G2を出力し、B補正値corrB_TとしてB減少補正値corrB_TGを出力するとしている。これにより、緑飽和による赤抜け現象を解消することができる。
また、(flagR、flagG)=(真、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TGの外側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TGを出力し、G補正値corrG_TとしてG減少補正値corrG_TRを出力し、B補正値corrB_Tとして(B増加補正値corrB_TR+B減少補正値corrB_TG)/2を出力するとしている。これにより、赤飽和による青抜け現象及び緑飽和による赤抜け現象を解消することができる。
また、R1飽和によるR抜け対策部57は、R1<rgbMaxの場合には、R補正値corrRとしてR補正値corrR_Tを出力し、rgbMax≦R1の場合には、R補正値corrRとしてrgbMaxを出力するとしている。これにより、赤飽和による赤抜け現象を解消することができる。
また、B1飽和によるB抜け対策部58は、B1<rgbMaxの場合には、B補正値corrBとしてB補正値corrB_Tを出力し、rgbMax≦B1の場合には、B補正値corrBとしてrgbMaxを出力するとしている。これにより、青飽和による青抜け現象を解消することができる。
このように、本発明の第2実施形態である画像処理部104によれば、色補正処理部12による色補正処理により発生した「赤飽和による青抜け現象」、「緑飽和による赤抜け現象」、「赤飽和による赤抜け現象」及び「青飽和による青抜け現象」を解消することができるので、これらの異常現象による表示画像上の偽色を回避し、自然な画像表示を行うことができる。
(本発明の第3実施形態)
図43は本発明の第3実施形態を備えるデジタルカメラの概略的構成図である。図43に示すデジタルカメラは、図67に示す従来のデジタルカメラが備える画像処理部5及び制御部9の代わりに、本発明の第3実施形態である画像処理部148及び制御部149を備え、その他については、図67に示す従来のデジタルカメラと同様に構成したものである。
画像処理部148は、色補正処理部12とガンマ補正部13との間に、ハイライト色付き対策処理部150を設け、図67に示す画像処理部5のように色補正処理部12が出力する画像信号(R2、G2、B2)をガンマ補正部13に与える代わりに、ハイライト色付き対策処理部150が出力する画像信号(R3、G3、B3)をガンマ補正部13に与えるようにし、その他については、図67に示す画像処理部5と同様に構成したものである。
ハイライト色付き対策処理部150は、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)と、色補正処理部12が出力する画像信号(R2、G2、B2)とを入力し、画像信号(R2、G2、B2)が、「赤飽和による青抜け現象」、「緑飽和による赤抜け現象」、「青飽和による緑抜け現象」、「赤飽和による赤抜け現象」、「緑飽和による緑抜け現象」又は「青飽和による青抜け現象」を起こしている場合に、これら異常現象を解消するための処理(即ち、ハイライト色付き対策処理)を行うものである。
制御部149は、閾値面算出部151を設け、その他については、図67に示す制御部9と同様に構成したものである。閾値面算出部151は、色補正行列設定部18が出力する色補正行列を入力し、この色補正行列に適した前述した閾値面TR、TG及び後述する閾値面TBgを算出し、これら閾値面TR、TG、TBgをハイライト色付き対策処理部150に設定するものである。なお、閾値面算出部151は、画像処理部148に含めるようにしても良い。
図44は閾値面算出部151がハイライト色付き対策処理部150に設定する閾値面TBgを説明するための図である。図44中、153はR成分R2の値を示すR2軸、154はG成分G2の値を示すG2軸、155はB成分B1の値を示すB1軸である。これらR2軸、G2軸及びB1軸は直交しており、R2、G2、B1空間を構成している。また、156は平面G2=0と平面B1=rgbMaxとの交線、157は平面R2=rgbMaxと平面B1=rgbMaxとの交線、158は平面G2=0と平面R2=rgbMaxとの交線である。
閾値面TBgは、「青飽和による緑抜け現象」を解消するために、R2、G2、B1空間に設定される面であり、R2、G2、B1空間において、ハイライト色付き対策処理を行う点(R2、G2、B1)が存在する領域と、ハイライト色付き対策処理を行わない点(R2、G2、B1)が存在する領域との境に位置する面である。R2、G2、B1空間におけるハイライト色付き対策処理は、閾値面TBgの外側にある領域(閾値面TBgから見て点Of(rgbMax、0、rgbMax)側の領域)内の点(R2、G2、B1)を、後述するように、閾値面TBg上にクリップする処理である。
本例では、閾値面TBgは、交線156、交線157及び交線158上にそれぞれ頂点159、頂点160及び頂点161を有する三角形面とされ、閾値面パラメータposA_TBg、posB_TBg、posC_TBgにより位置が示される。閾値面パラメータposA_TBgは、点Ofと閾値面TBgの頂点159との距離を示すものである。閾値面パラメータposB_TBgは、点Ofと閾値面TBgの頂点160との距離を示すものである。閾値面パラメータposC_TBgは、点Ofと閾値面TBgの頂点161との距離を示すものである。
図45は閾値面算出部151の構成を示すブロック回路図である。閾値面算出部151は、異常発生パラメータ算出部46、120、163と、異常発生パラメータ/閾値面パラメータ・テーブル164と、閾値面パラメータ出力部49、121、165とを備えている。異常発生パラメータ算出部46、120及び閾値面パラメータ出力部49、121は、前述したものである。
異常発生パラメータ演算部163は、色補正行列設定部18が出力する色補正行列から、(2、1)成分=CC10と、(2、2)成分=CC11とを入力し、「青飽和による緑抜け現象」の発生度合いを示す異常発生パラメータKtbgを、
なる演算で算出するものである。
異常発生パラメータ/閾値面パラメータ・テーブル164は、図46に示すように、異常発生パラメータKtrと、出力すべき閾値面パラメータposA_TR、posB_TR、posC_TRとの関係、異常発生パラメータKtgと、出力すべき閾値面パラメータposA_TG、posB_TG、posC_TGとの関係、及び、異常発生パラメータKtbgと、出力すべき閾値面パラメータposA_TBg、posB_TBg、posC_TBgとの関係を保持するものである。
本例では、異常発生パラメータKtrが大きい場合には、「赤飽和による青抜け現象」の発生度合いが大きくなるので、図2上、閾値面TRは、より内側に設定されるように、即ち、閾値面パラメータposA_TR、posB_TR、posC_TRが大きくなるようにされている。また、異常発生パラメータKtrが小さい場合には、「赤飽和による青抜け現象」の発生度合いが小さくなるので、図2上、閾値面TRは、より外側に設定されるように、即ち、閾値面パラメータposA_TR、posB_TR、posC_TRが小さくなるようにされている。
また、異常発生パラメータKtgが大きい場合には、「緑飽和による赤抜け現象」の発生度合いが大きくなるので、図29上、閾値面TGは、より内側に設定されるように、即ち、閾値面パラメータposA_TG、posB_TG、posC_TGが大きくなるようにされている。また、異常発生パラメータKtgが小さい場合には、「緑飽和による赤抜け現象」の発生度合いが小さくなるので、図29上、閾値面TGは、より外側に設定されるように、即ち、閾値面パラメータposA_TG、posB_TG、posC_TGが小さくなるようにされている。
また、異常発生パラメータKtbgが大きい場合には、「青飽和による緑抜け現象」の発生度合いが大きくなるので、図44上、閾値面TBgは、より内側に設定されるように、即ち、閾値面パラメータposA_TBg、posB_TBg、posC_TBgが大きくなるようにされている。また、異常発生パラメータKtbgが小さい場合には、「青飽和による緑抜け現象」の発生度合いが小さくなるので、図44上、閾値面TBgは、より外側に設定されるように、即ち、閾値面パラメータposA_TBg、posB_TBg、posC_TBgが小さくなるようにされている。なお、図46に示すグラフは折れ線に限らない。単調増加関数で、最小値が1なら、曲線でも良い。
また、図45に示す閾値面パラメータ出力部165は、異常発生パラメータ算出部163が出力する異常発生パラメータKtbgを入力し、異常発生パラメータ/閾値面パラメータ・テーブル164を参照して、異常発生パラメータKtbgの値に対応する値の閾値面パラメータposA_TBg、posB_TBg、posC_TBgを出力するものである。
図47はハイライト色付き対策処理部150の構成の一部分を示すブロック回路図である。ハイライト色付き対策処理部150は、内部パラメータ算出部52、124、167(内部パラメータ算出部52、124は図示を省略)と、R1飽和によるG、B補正値算出部54と、G1飽和によるB、R補正値算出部125と、B1飽和によるR、G補正値算出部168と、補正値統合部169と、R1飽和によるR抜け対策部57と、G1飽和によるG抜け対策部170と、B1飽和によるB抜け対策部58と、範囲制限部59とを備えている。内部パラメータ算出部52、124、R1飽和によるG、B補正値算出部54、G1飽和によるB、R補正値算出部125、R1飽和によるR抜け対策部57、B1飽和によるB抜け対策部58及び範囲制限部59は、前述したものである。
内部パラメータ算出部167は、閾値面算出部151から与えられる閾値面TBgの位置を示す閾値面パラメータposA_TBg、posB_TBg、posC_TBgと、制御部149から与えられる後述するクリップ方向パラメータprmP_TBgとを入力し、B1飽和によるR、G補正値算出部168に渡す内部パラメータprmA_TBg、prmB_TBg、prmC_TBg、prmCp0_TBg、prmCp1_TBg、prmCp2_TBg、prmCp3_TBgを算出するものである。
図48はクリップ方向パラメータprmP_TBgを説明するための図である。(A)はR2、G2、B1空間における閾値面TBgを示す図、(B)は(A)に示す閾値面TBgを上方側から見た図である。ハイライト色付き対策処理部150では、R2、G2、B1空間内の点(R2、G2、B1)が閾値面TBgの外側、即ち、閾値面TBgと比較して点Of側にある場合には、点(R2、G2、B1)を閾値面TBgにクリップする。このクリップする方向を示すパラメータがクリップ方向パラメータprmP_TBgである。
本例では、閾値面TBgの外側にある点(R2、G2、B1)は、R2−G2面に平行に、即ち、B成分B1の値は変化させず、G2軸の正方向に対する傾きがp4/q4となる方向に移動させて閾値面TBgにクリップされる。そこで、prmP_TBg=p4/q4と定義される。
図49は内部パラメータ算出部167の構成を示すブロック回路図である。内部パラメータ算出部167は、演算部172〜174を備えている。演算部172は、閾値面パラメータposA_TBg、posB_TBg、posC_TBgを入力し、
なる演算を行い、内部パラメータprmA_TBg、prmB_TBg、prmC_TBgを算出するものである。
演算部173は、演算部172が出力する内部パラメータprmA_TBg、prmB_TBg、prmC_TBgのうち、内部パラメータprmA_TBg、prmB_TBgと、制御部149から与えられるクリップ方向パラメータprmP_TBgとを入力し、
なる演算を行い、内部パラメータtmpBgを算出するものである。
演算部174は、演算部172が出力する内部パラメータprmA_TBg、prmB_TBg、prmC_TBgのうち、内部パラメータprmA_TBg、prmB_TBgと、演算部173が出力する内部パラメータtmpBgと、制御部149から与えられるクリップ方向パラメータprmP_TBgとを入力し、
なる演算を行い、内部パラメータprmCp0_TBg、prmCp1_TBg、prmCp2_TBg、prmCp3_TBgを算出するものである。
また、図47に示すB1飽和によるR、G補正値算出部168は、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)中のB成分B1と、色補正処理部12が出力する画像信号(R2、G2、B2)中のR成分R2及びG成分G2と、内部パラメータ算出部167が出力する内部パラメータprmA_TBg、prmB_TBg、prmC_TBg、prmCp0_TBg、prmCp1_TBg、prmCp2_TBg、prmCp3_TBgと、制御部149から与えられるクリップ方向パラメータprmP_TBgとを入力し、補正実行条件フラグflagBgと、B1飽和によるR減少補正値corrR_TBgと、B1飽和によるG増加補正値corrG_TBgとを出力するものである。
図50はB1飽和によるR、G補正値算出部168の構成を示すブロック回路図である。B1飽和によるR、G補正値算出部168は、演算部176〜180を備えている。演算部176は、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)中のB成分B1と、色補正処理部12が出力する画像信号(R2、G2、B2)中のR成分R2及びG成分G2とを入力し、
なる演算を行い、R成分R2、G成分G2及びB成分B1の座標をR2、G2、B1空間の座標からh_TBg、j_TBg、k_TBg空間の座標に座標変換してなるR成分srcH_TBg、G成分srcJ_TBg及びB成分srcK_TBgを算出するものである。
図51はh_TBg、j_TBg、k_TBg空間を説明するための図である。図51中、182はR成分srcH_TBgの値を示すh_TBg軸、183はG成分srcJ_TBgの値を示すj_TBg軸、184はB成分srcK_TBgの値を示すk_TBg軸である。即ち、h_TBg、j_TBg、k_TBg空間は、R2、G2、B1空間における点Ofを原点とし、R2軸153と逆方向の軸をh_TBg軸182、G2軸154と同一方向の軸をj_TBg軸183、B1軸155と逆方向の軸をk_TBg軸184とするものである。
図52は図51に示すh_TBg、j_TBg、k_TBg空間を回転させた状態を示している。図52中、S_TBgは、座標を(srcH_TBg、srcJ_TBg、srcK_TBg)とする点であり、この例では、閾値面TBgへのクリップの対象となっている。
また、図50に示す演算部177は、演算部176が出力するR成分srcH_TBg、G成分srcJ_TBg及びB成分srcK_TBgと、内部パラメータ算出部167が出力する閾値面パラメータprmC_TBgと、制御部149が出力するクリップ方向パラメータprmP_TBgとを入力し、
なる演算を行い、tmp1_TBg、tmp2_TBgを算出するものである。これらtmp1_TBg、tmp2_TBgは、図52に示す平面k_TBg=srcK_TBgと閾値面TBgとの交線である直線185と、クリップ方向(p4、q4)を示す直線のうち、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)を通る直線186との交点T_TBg(dstH_TBg、dstJ_TBg、srcK_TBg)を求めるために、直線185を示す式と直線186を示す式とを連立方程式とした場合に、定数項となるものである。
また、図50に示す演算部178は、演算部177が出力するtmp1_TBg、tmp2_TBgと、内部パラメータ算出部167が出力する内部パラメータprmCp0_TBg、prmCp1_TBg、prmCp2_TBg、prmCp3_TBgと、制御部149から与えられるクリップ方向パラメータprmP_TBgとを入力し、
なる演算を行い、図52に示す点T_TBgのh_TBg座標であるdstH_TBgと、j_TBg座標であるdstJ_TBgを算出するものである。
ここで、図53に示すように、平面k_TBg=srcK_TBgの上で考える。数53中の式(53−1)、式(53−2)は、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が直線185と比較して原点Of側にあれば、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)をクリップ方向(p4、q4)に向かってシフトし、直線185上の点T_TBg(dstH_TBg、dstJ_TBg、srcK_TBg)にクリップするための演算である。
また、図54に示すように、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)を直線185上までシフトした点T_TBg(dstH_TBg、dstJ_TBg、srcK_TBg)のh_TBg座標がマイナスの場合には、点T_TBg(dstH_TBg、dstJ_TBg、srcK_TBg)を、シフトする向きは同じで、j_TBg軸と交わる点U_TBg(0、dstJ_TBg、srcK_TBg)まで更にシフトする。
また、数53中の式(53−3)、式(53−4)は、図55に示すように、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が直線185と比較して原点Of側になくとも、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)のh_TBg座標がマイナスの場合、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)を点U_TBg(0、dstJ_TBg、srcK_TBg)までシフトさせる演算でもある。
また、図50に示す演算部179は、演算部178が出力するdstH_TBg、dstJ_TBgを入力し、
なる演算を行い、B1飽和によるR減少補正値corrR_TBg及びG増加補正値corrG_TBgを算出するものである。これは、シフトした点T_TBg(dstH_TBg、dstJ_TBg、srcK_TBg)をh_TBg、j_TBg、k_TBg空間から元のR2、G2、B1空間に座標変換するものである。
また、演算部180は、演算部176が出力するsrcH_TBg、srcJ_TBg、srcK_TBgを入力し、
なる論理演算を行い、補正実行条件フラグflagBgの真理値(点S_TBgが閾値面TBgの外側にあるか否か)を算出するものである。補正実行条件フラグflagBgは、真の場合には、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TGの外側にあることを示し、偽の場合には、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg又は閾値面TBgの内側にあることを示す。即ち、補正実行条件フラグflagBgは、真の場合には、R成分R2をR減少補正値corrR_TBgに補正し、G成分G2をG増加補正値corrG_TBgに補正する条件にあることを示し、偽の場合には、R成分R2及びG成分G2を補正する条件にはないことを示す。
また、図47に示す補正値統合部169は、R1飽和によるG、B補正値算出部54が出力する補正実行条件フラグflagR、G減少補正値corrG_TR及びB増加補正値corrB_TRと、G1飽和によるB、R補正値算出部125が出力する補正実行条件フラグflagG、B減少補正値corrB_TG及びR増加補正値corrR_TGと、B1飽和によるR、G補正値算出部168が出力する補正実行条件フラグflagBg、R減少補正値corrR_TBg及びG増加補正値corrG_TBgとを入力し、R補正値corrR_T、G補正値corrG_T及びB補正値corrB_Tを出力するものである。
図56は補正値統合部169の構成を示すブロック回路図である。補正値統合部169は、flagR真偽判定部95と、flagG真偽判定部145と、flagBg真偽判定部188と、補正値出力部189とを備えている。flagR真偽判定部95及びflagG真偽判定部145は、前述したものである。flagBg真偽判定部188は、補正実行条件フラグflagBgの真偽を判定するものである。
補正値出力部189は、flagR真偽判定部95が出力するflagR真偽判定結果と、flagG真偽判定部145が出力するflagG真偽判定結果と、flagBg真偽判定部188が出力するflagBg真偽判定結果と、R1飽和によるG、B補正値算出部54が出力するG減少補正値corrG_TR及びB増加補正値corrB_TRと、G1飽和によるB、R補正値算出部125が出力するB減少補正値corrB_TG及びR増加補正値corrR_TGと、B1飽和によるR、G補正値算出部168が出力するR減少補正値corrR_TBg及びG増加補正値corrG_TBgとを入力し、R補正値corrR_Tと、G補正値corrG_Tと、B補正値corrB_Tとを出力するものである。
図57は補正値出力部189の動作を説明するための図である。補正値出力部189は、以下のような動作を行う。まず、(flagR、flagG、flagBg)=(偽、偽、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TG上又は閾値面TGの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、画像信号(R2、G2、B2)を補正せず、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG成分G2を出力し、B補正値corrB_TとしてB成分B2を出力する。
また、(flagR、flagG、flagBg)=(真、偽、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TG上又は閾値面TGの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG減少補正値corrG_TRを出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力する。
また、(flagR、flagG、flagBg)=(偽、真、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TGの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TGを出力し、G補正値corrG_TとしてG成分G2を出力し、B補正値corrB_TとしてB減少補正値corrB_TGを出力する。
また、(flagR、flagG、flagBg)=(偽、偽、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TG上又は閾値面TGの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_TとしてR減少補正値corrR_TBgを出力し、G補正値corrG_TとしてG増加補正値corrG_TBgを出力し、B補正値corrB_TとしてB成分B2を出力する。
また、(flagR、flagG、flagBg)=(真、真、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TGの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TGを出力し、G補正値corrG_TとしてG減少補正値corrG_TRを出力し、B補正値corrB_Tとして(B増加補正値corrB_TR+B減少補正値corrB_TG)/2を出力する。
また、(flagR、flagG、flagBg)=(偽、真、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TGの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_Tとして(R増加補正値corrR_TG+R減少補正値corrR_TBg)/2を出力し、G補正値corrG_TとしてG増加補正値corrG_TBgを出力し、B補正値corrB_TとしてB減少補正値corrB_TGを出力する。
また、(flagR、flagG、flagBg)=(真、偽、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TG上又は閾値面TGの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_TとしてR減少補正値corrR_TBgを出力し、G補正値corrG_Tとして(G増加補正値corrG_TBg+G減少補正値corrG_TR)/2を出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力する。
また、(flagR、flagG、flagBg)=(真、真、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TGの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_Tとして(R増加補正値corrR_TG+R減少補正値corrR_TBg)/2を出力し、G補正値corrG_Tとして(G増加補正値corrG_TBg+G減少補正値corrG_TR)/2を出力し、B補正値corrB_Tとして(B増加補正値corrB_TR+B減少補正値corrB_TG)/2を出力する。
また、図47に示すG1飽和によるG抜け対策部170は、ホワイトバランス処理部11が出力するG成分G1と、補正値統合部169が出力するG補正値corrG_Tとを入力し、G補正値corrGを出力するものである。
図58はG1飽和によるG抜け対策部170の動作を説明するための図である。即ち、G1飽和によるG抜け対策部170は、G1<rgbMaxの場合には、G補正値corrGとしてG補正値corrG_Tを出力し、rgbMax≦G1の場合には、G補正値corrGとしてrgbMaxを出力する。
このように構成された本発明の第3実施形態である画像処理部148においては、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)と、色補正処理部12が出力する画像信号(R2、G2、B2)は、ハイライト色付き対策処理部150に与えられる。
そして、ハイライト色付き対策処理部150においては、R1飽和によるG、B補正値算出部54は、閾値面TRの外側にある点(G2、B2、R1)を閾値面TRにクリップし、B成分B2の増加補正値corrB_TRと、G成分G2の減少補正値corrG_TRと、点(G2、B2、R1)が閾値面TRの外側にあるか否か(補正を実行する条件があるか否か)を示す補正実行条件フラグflagRとを算出するとしている。
また、G1飽和によるB、R補正値算出部125は、閾値面TGの外側にある点(B2、R2、G1)を閾値面TGにクリップし、R成分R2の増加補正値corrR_TGと、B成分B2の減少補正値corrB_TGと、点(B2、R2、G1)が閾値面TGの外側にあるか否か(補正を実行する条件があるか否か)を示す補正実行条件フラグflagGとを算出するとしている。
また、B1飽和によるR、G補正値算出部168は、閾値面TBgの外側にある点(R2、G2、B1)を閾値面TBgにクリップし、G成分G2の増加補正値corrG_TBgと、R成分R2の減少補正値corrR_TBgと、点(R2、G2、B1)が閾値面TBgの外側にあるか否か(補正を実行する条件があるか否か)を示す補正実行条件フラグflagBgとを算出するとしている。
また、補正値統合部169は、(flagR、flagG、flagBg)=(偽、偽、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TG上又は閾値面TGの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、画像信号(R2、G2、B2)を補正せず、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG成分G2を出力し、B補正値corrB_TとしてB成分B2を出力するとしている。
また、(flagR、flagG、flagBg)=(真、偽、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TG上又は閾値面TGの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG減少補正値corrG_TRを出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力するとしている。これにより、赤飽和による青抜け現象を解消することができる。
また、(flagR、flagG、flagBg)=(偽、真、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TGの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TGを出力し、G補正値corrG_TとしてG成分G2を出力し、B補正値corrB_TとしてB減少補正値corrB_TGを出力するとしている。これにより、緑飽和による赤抜け現象を解消することができる。
また、(flagR、flagG、flagBg)=(偽、偽、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TG上又は閾値面TGの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_TとしてR減少補正値corrR_TBgを出力し、G補正値corrG_TとしてG増加補正値corrG_TBgを出力し、B補正値corrB_TとしてB成分B2を出力するとしている。これにより、青飽和による緑抜け現象を解消することができる。
また、(flagR、flagG、flagBg)=(真、真、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TGの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TGを出力し、G補正値corrG_TとしてG減少補正値corrG_TRを出力し、B補正値corrB_Tとして(B増加補正値corrB_TR+B減少補正値corrB_TG)/2を出力するとしている。これにより、赤飽和による青抜け現象及び緑飽和による赤抜け現象を解消することができる。
また、(flagR、flagG、flagBg)=(偽、真、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TGの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_Tとして(R増加補正値corrR_TG+R減少補正値corrR_TBg)/2を出力し、G補正値corrG_TとしてG増加補正値corrG_TBgを出力し、B補正値corrB_TとしてB減少補正値corrB_TGを出力するとしている。これにより、緑飽和による赤抜け現象及び青飽和による緑抜け現象を解消することができる。
また、(flagR、flagG、flagBg)=(真、偽、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TG上又は閾値面TGの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_TとしてR減少補正値corrR_TBgを出力し、G補正値corrG_Tとして(G増加補正値corrG_TBg+G減少補正値corrG_TR)/2を出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力するとしている。これにより、赤飽和による青抜け現象及び青飽和による緑抜け現象を解消することができる。
また、(flagR、flagG、flagBg)=(真、真、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TG(srcH_TG、srcJ_TG、srcK_TG)が閾値面TGの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_Tとして(R増加補正値corrR_TG+R減少補正値corrR_TBg)/2を出力し、G補正値corrG_Tとして(G増加補正値corrG_TBg+G減少補正値corrG_TR)/2を出力し、B補正値corrB_Tとして(B増加補正値corrB_TR+B減少補正値corrB_TG)/2を出力するとしている。これにより、赤飽和による青抜け現象、緑飽和による赤抜け現象及び青飽和による緑抜け現象を解消することができる。
また、R1飽和によるR抜け対策部57は、R1<rgbMaxの場合には、R補正値corrRとしてR補正値corrR_Tを出力し、rgbMax≦R1の場合には、R補正値corrRとしてrgbMaxを出力するとしている。これにより、赤飽和による赤抜け現象を解消するとしている。
また、G1飽和によるG抜け対策部170は、G1<rgbMaxの場合には、G補正値corrGとしてG補正値corrG_Tを出力し、rgbMax≦G1の場合には、G補正値corrGとしてrgbMaxを出力するとしている。これにより、緑飽和による緑抜け現象を解消するとしている。
また、B1飽和によるB抜け対策部58は、B1<rgbMaxの場合には、B補正値corrBとしてB補正値corrB_Tを出力し、rgbMax≦B1の場合には、B補正値corrBとしてrgbMaxを出力するとしている。これにより、青飽和による青抜け現象を解消するとしている。
このように、本発明の第3実施形態である画像処理部148によれば、色補正処理部12による色補正処理により発生した「赤飽和による青抜け現象」、「緑飽和による赤抜け現象」、「青飽和による緑抜け現象」、「赤飽和による赤抜け現象」、「緑飽和による緑抜け現象」及び「青飽和による青抜け現象」を解消することができるので、これらの異常現象による表示画像上の偽色を回避し、自然な画像表示を行うことができる。
(本発明の第4実施形態)
図59は本発明の第4実施形態を備えるデジタルカメラの概略的構成図である。図59に示すデジタルカメラは、図67に示す従来のデジタルカメラが備える画像処理部5及び制御部9の代わりに、本発明の第4実施形態である画像処理部191及び制御部192を備え、その他については、図67に示す従来のデジタルカメラと同様に構成したものである。
画像処理部191は、色補正処理部12とガンマ補正部13との間に、ハイライト色付き対策処理部193を設け、図67に示す画像処理部5のように色補正処理部12が出力する画像信号(R2、G2、B2)をガンマ補正部13に与える代わりに、ハイライト色付き対策処理部193が出力する画像信号(R3、G3、B3)をガンマ補正部13に与えるようにし、その他については、図67に示す画像処理部5と同様に構成したものである。
ハイライト色付き対策処理部193は、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)と、色補正処理部12が出力する画像信号(R2、G2、B2)とを入力し、画像信号(R2、G2、B2)が、「赤飽和による青抜け現象」、「青飽和による赤抜け現象」、「青飽和による緑抜け現象」、「赤飽和による赤抜け現象」、「緑飽和による緑抜け現象」又は「青飽和による青抜け現象」を起こしている場合に、これら異常現象を解消するための処理(即ち、ハイライト色付き対策処理)を行うものである。
制御部192は、閾値面算出部194を設け、その他については、図67に示す制御部9と同様に構成したものである。閾値面算出部194は、色補正行列設定部18が出力する色補正行列を入力し、この色補正行列に適した前述した閾値面TR、閾値面TBr、TBgを算出し、これら閾値面TR、TBr、TBgをハイライト色付き対策処理部193に設定するものである。なお、閾値面算出部193は、画像処理部191に含めるようにしても良い。
図60は閾値面算出部194の構成を示すブロック回路図である。閾値面算出部194は、前述した異常発生パラメータ算出部46、47、163と、異常発生パラメータ/閾値面パラメータ・テーブル196と、前述した閾値面パラメータ出力部49、50、165とを備えている。
異常発生パラメータ/閾値面パラメータ・テーブル196は、図61に示すように、異常発生パラメータKtrと、出力すべき閾値面パラメータposA_TR、posB_TR、posC_TRとの関係、異常発生パラメータKtbrと、出力すべき閾値面パラメータposA_TBr、posB_TBr、posC_TBrとの関係、及び、異常発生パラメータKtbgと、出力すべき閾値面パラメータposA_TBg、posB_TBg、posC_TBgとの関係を保持するものである。
本例では、異常発生パラメータKtrが大きい場合には、「赤飽和による青抜け現象」の発生度合いが大きくなるので、図2上、閾値面TRは、より内側に設定されるように、即ち、閾値面パラメータposA_TR、posB_TR、posC_TRが大きくなるようにされている。また、異常発生パラメータKtrが小さい場合には、「赤飽和による青抜け現象」の発生度合いが小さくなるので、図2上、閾値面TRは、より外側に設定されるように、即ち、閾値面パラメータposA_TR、posB_TR、posC_TRが小さくなるようにされている。
また、異常発生パラメータKtbrが大きい場合には、「青飽和による赤抜け現象」の発生度合いが大きくなるので、図3上、閾値面TBrは、より内側に設定されるように、即ち、閾値面パラメータposA_TBr、posB_TBr、posC_TBrが大きくなるようにされている。また、異常発生パラメータKtbrが小さい場合には、「青飽和による赤抜け現象」の発生度合いが小さくなるので、図3上、閾値面TBrは、より外側に設定されるように、即ち、閾値面パラメータposA_TBr、posB_TBr、posC_TBrが小さくなるようにされている。
また、異常発生パラメータKtbgが大きい場合には、「青飽和による緑抜け現象」の発生度合いが大きくなるので、図44上、閾値面TBgは、より内側に設定されるように、即ち、閾値面パラメータposA_TBg、posB_TBg、posC_TBgが大きくなるようにされている。また、異常発生パラメータKtbgが小さい場合には、「青飽和による緑抜け現象」の発生度合いが小さくなるので、図44上、閾値面TBgは、より外側に設定されるように、即ち、閾値面パラメータposA_TBg、posB_TBg、posC_TBgが小さくなるようにされている。なお、図61に示すグラフは折れ線に限らない。単調増加関数で、最小値が1なら、曲線でも良い。
図62はハイライト色付き対策処理部193の構成の一部分を示すブロック回路図である。ハイライト色付き対策処理部193は、前述した内部パラメータ算出部52、53、167(図示せず)と、前述したR1飽和によるG、B補正値算出部54と、前述したB1飽和によるG、R補正値算出部55と、前述したB1飽和によるR、G補正値算出部168と、補正値統合部198と、前述したR1飽和によるR抜け対策部57と、前述したG1飽和によるG抜け対策部170と、前述したB1飽和によるB抜け対策部58と、前述した範囲制限部59とを備えている。
図63は補正値統合部198の構成を示すブロック回路図である。補正値統合部198は、前述したflagR真偽判定部95と、前述したflagBr真偽判定部96と、前述したflagBg真偽判定部188と、補正値出力部200とを備えている。
図64は補正値出力部200の動作を説明するための図である。補正値出力部200は、以下のような動作を行う。即ち、(flagR、flagBr、flagBg)=(偽、偽、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBr上又は閾値面TBrの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、画像信号(R2、G2、B2)を補正せず、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG成分G2を出力し、B補正値corrB_TとしてB成分B2を出力する。
また、(flagR、flagBr、flagBg)=(真、偽、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBr上又は閾値面TBrの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG減少補正値corrG_TRを出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力する。
また、(flagR、flagBr、flagBg)=(偽、真、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBrの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TBrを出力し、G補正値corrG_TとしてG減少補正値corrG_TBrを出力し、B補正値corrB_TとしてB成分B2を出力する。
また、(flagR、flagBr、flagBg)=(偽、偽、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBr上又は閾値面TBrの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_TとしてR減少補正値corrR_TBgを出力し、G補正値corrG_TとしてG増加補正値corrG_TBgを出力し、B補正値corrB_TとしてB成分B2を出力する。
また、(flagR、flagBr、flagBg)=(真、真、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBrの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TBrを出力し、G補正値corrG_Tとして(G減少補正値corrG_TR、G減少補正値corrG_TBr)のうち、小さい方の値を出力し(強い方の補正を選択し)、B補正値corrB_TとしてB増加補正値corrB_TRを出力する。
また、(flagR、flagBr、flagBg)=(偽、真、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBrの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_Tとして(R減少補正値corrR_TBr+R増加補正値corrR_TBg)/2を出力し、G補正値corrG_Tとして(G減少補正値corrG_TBg+G増加補正値corrG_TBr)/2を出力し、B補正値corrB_TとしてB成分B2を出力する。
また、(flagR、flagBr、flagBg)=(真、偽、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBr上又は閾値面TBrの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_TとしてR減少補正値corrR_TBgを出力し、G補正値corrG_Tとして(G増加補正値corrG_TBg+G減少補正値corrG_TR)/2を出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力する。
また、(flagR、flagBr、flagBg)=(真、真、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBrの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_Tとして(R増加補正値corrR_TBr+R減少補正値corrR_TBg)/2を出力し、G補正値corrG_Tとして{G増加補正値corrG_TBg+(G減少補正値corrG_TRとG減少補正値corrG_TBrのうち、小さい方)}/2を出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力する。
このように構成された本発明の第4実施形態の画像処理部191においては、ホワイトバランス処理部11が出力する画像信号(R1、G1、B1)と、色補正処理部12が出力する画像信号(R2、G2、B2)は、ハイライト色付き対策処理部193に与えられる。
そして、ハイライト色付き対策処理部193においては、R1飽和によるG、B補正値算出部54は、閾値面TRの外側にある点(G2、B2、R1)を閾値面TRにクリップし、B成分B2の増加補正値corrB_TRと、G成分G2の減少補正値corrG_TRと、点(G2、B2、R1)が閾値面TRの外側にあるか否か(補正を実行する条件があるか否か)を示す補正実行条件フラグflagRとを算出するとしている。
また、B1飽和によるG、R補正値算出部55は、閾値面TBrの外側にある点(G2、R2、B1)を閾値面TBrにクリップし、R成分R2の増加補正値corrR_TBrと、G成分G2の減少補正値corrG_TGと、点(G2、R2、B1)が閾値面TBrの外側にあるか否か(補正を実行する条件があるか否か)を示す補正実行条件フラグflagBrとを算出するとしている。
また、B1飽和によるR、G補正値算出部168は、閾値面TBgの外側にある点(R2、G2、B1)を閾値面TBgにクリップし、G成分G2の増加補正値corrG_TBgと、R成分R2の減少補正値corrR_TBgと、点(R2、G2、B1)が閾値面TBgの外側にあるか否か(補正を実行する条件があるか否か)を示す補正実行条件フラグflagBgとを算出するとしている。
また、補正値統合部198は、(flagR、flagBr、flagBg)=(偽、偽、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBr上又は閾値面TBrの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、画像信号(R2、G2、B2)を補正せず、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG成分G2を出力し、B補正値corrB_TとしてB成分B2を出力するとしている。
また、(flagR、flagBr、flagBg)=(真、偽、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBr上又は閾値面TBrの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、R補正値corrR_TとしてR成分R2を出力し、G補正値corrG_TとしてG減少補正値corrG_TRを出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力するとしている。これにより、赤飽和による青抜け現象を解消することができる。
また、(flagR、flagBr、flagBg)=(偽、真、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBrの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TBrを出力し、G補正値corrG_TとしてG減少補正値corrG_TBrを出力し、B補正値corrB_TとしてB成分B2を出力するとしている。これにより、青飽和による赤抜け現象を解消することができる。
また、(flagR、flagBr、flagBg)=(偽、偽、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBr上又は閾値面TBrの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_TとしてR減少補正値corrR_TBgを出力し、G補正値corrG_TとしてG増加補正値corrG_TBgを出力し、B補正値corrB_TとしてB成分B2を出力する。これにより、青飽和による緑抜け現象を解消することができる。
また、(flagR、flagBr、flagBg)=(真、真、偽)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBrの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBg上又は閾値面TBgの内側にある場合には、R補正値corrR_TとしてR増加補正値corrR_TBrを出力し、G補正値corrG_Tとして(G減少補正値corrG_TR、G減少補正値corrG_TBr)のうち、小さい方の値を出力し(強い方の補正を選択し)、B補正値corrB_TとしてB増加補正値corrB_TRを出力するとしている。これにより、赤飽和による青抜け現象及び青飽和による赤抜け現象を解消することができる。
また、(flagR、flagBr、flagBg)=(偽、真、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TR上又は閾値面TRの内側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBrの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_Tとして(R減少補正値corrR_TBr+R増加補正値corrR_TBg)/2を出力し、G補正値corrG_Tとして(G減少補正値corrG_TBg+G増加補正値corrG_TBr)/2を出力し、B補正値corrB_TとしてB成分B2を出力するとしている。これにより、青飽和による赤抜け現象及び青飽和による緑抜け現象を解消することができる。
また、(flagR、flagBr、flagBg)=(真、偽、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBr上又は閾値面TBrの内側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_TとしてR減少補正値corrR_TBgを出力し、G補正値corrG_Tとして(G増加補正値corrG_TBg+G減少補正値corrG_TR)/2を出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力するとしている。これにより、赤飽和による青抜け現象及び青飽和による緑抜け現象を解消することができる。
また、(flagR、flagBr、flagBg)=(真、真、真)の場合、即ち、点S_TR(srcH_TR、srcJ_TR、srcK_TR)が閾値面TRの外側にあり、点S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)が閾値面TBrの外側にあり、点S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)が閾値面TBgの外側にある場合には、R補正値corrR_Tとして(R増加補正値corrR_TBr+R減少補正値corrR_TBg)/2を出力し、G補正値corrG_Tとして{G増加補正値corrG_TBg+(G減少補正値corrG_TRとG減少補正値corrG_TBrのうち、小さい方)}/2を出力し、B補正値corrB_TとしてB増加補正値corrB_TRを出力するとしている。これにより、赤飽和による青抜け現象、青飽和による赤抜け現象及び青飽和による緑抜け現象を解消することができる。
また、R1飽和によるR抜け対策部57は、R1<rgbMaxの場合には、R補正値corrRとしてR補正値corrR_Tを出力し、rgbMax≦R1の場合には、R補正値corrRとしてrgbMaxを出力するとしている。これにより、赤飽和による赤抜け現象を解消することができる。
また、G1飽和によるG抜け対策部170は、G1<rgbMaxの場合には、G補正値corrGとしてG補正値corrG_Tを出力し、rgbMax≦G1の場合には、G補正値corrGとしてrgbMaxを出力するとしている。これにより、緑飽和による緑抜け現象を解消することができる。
また、B1飽和によるB抜け対策部58は、B1<rgbMaxの場合には、B補正値corrBとしてB補正値corrB_Tを出力し、rgbMax≦B1の場合には、B補正値corrBとしてrgbMaxを出力するとしている。これにより、青飽和による青抜け現象を解消することができる。
このように、本発明の第4実施形態である画像処理部191によれば、色補正処理部12による色補正処理により発生した「赤飽和による青抜け現象」、「青飽和による赤抜け現象」、「青飽和による緑抜け現象」、「赤飽和による赤抜け現象」、「緑飽和による緑抜け現象」及び「青飽和による青抜け現象」を解消することができるので、これらの異常現象による表示画像上の偽色を回避し、自然な画像表示を行うことができる。
なお、本発明の第1実施形態〜第4実施形態においては、閾値面TRを三角形面とした場合について説明したが、閾値面TRは、三角形面に限らず、種々の形状を取り得るものである。図65は閾値面TRが取り得る他の形状の一部を示している。ここで、閾値面TRと平面R1=rgbMaxとの交線を閾値線と呼ぶと、閾値面TRは、以下の条件を満たすものである。(1)閾値線は、0≦G2≦rgbMax、0≦B2≦rgbMaxの領域に引かれる。(2)閾値線は、始点から終点まで、右には曲がらない、(3)閾値線は、始点から終点まで、左曲がりの曲線(折れ線を含む)で描かれる。閾値面TG、TBr、TBgについても、同様のことが言える。
また、図2において、posC_TR=0とする場合には、閾値面TRは、R1=rgbMax上の平面となる。この場合には、頂点32と頂点33とを結ぶ線を閾値線とし、点(G2、B2、rgbMax)が閾値線の外側にある場合には、閾値線にクリップする処理を行うことにより、赤飽和による青抜け現象を解消するようにしても良い。posC_TG=0、posC_TBr=0、posC_TBg=0とする場合も同様である。
また、本発明の第1実施形態〜第4実施形態では、点S_TR(srcH_TR、srcJ_TR、srcK_TR)をクリップする方向p1/q1を、例えば、0.5とした場合について説明したが、点S_TR(srcH_TR、srcJ_TR、srcK_TR)をクリップする方向は、これに限らない。図66は点S_TR(srcH_TR、srcJ_TR、srcK_TR)をクリップする方向の他の例を示している。点S_TG(srcH_TG、srcJ_TG、srcK_TG)、S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)、S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)をクリップする方向についても同様である。
ここで、クリップする方向を示す線をクリップ線と定義すると、クリップ線は、以下の条件を満たすものである。(1)閾値面よりも外側に存在する。(2)クリップ線の矢印の先は閾値面上にある。(3)隣り合うクリップ線は交差しない。但し、重なりは許容される。(4)クリップ線は、直線のみならず、折れ線、曲線でも良い。(5)G2−B2面では、B2軸プラス方向から反時計回りにG2軸マイナス方向までの90度の範囲内に必ずある。点S_TG(srcH_TG、srcJ_TG、srcK_TG)、S_TBr(srcH_TBr、srcJ_TBr、srcK_TBr)、S_TBg(srcH_TBg、srcJ_TBg、srcK_TBg)をクリップするクリップ線についても同様である。
また、本明細書では、本発明の第1実施形態〜第4実施形態を説明したが、本発明は、第1実施形態〜第4実施形態に限定されない。本発明は、赤飽和による青抜け対策部、赤飽和による緑抜け対策部、青飽和による赤抜け対策部、青飽和による緑抜け対策部、緑飽和による赤抜け対策部及び緑飽和による青抜け対策部の1つ以上を設ける場合に適用することができるものである。
ここで、本発明の画像処理装置を整理すると、本発明の画像処理装置には、少なくとも、以下の画像処理装置が含まれる。
(付記1)色補正処理を受けていない第1のカラー画像信号を入力して前記色補正処理を行い、第2のカラー画像信号を出力する第1の色補正処理部を備える画像処理装置であって、
前記第1のカラー画像信号中の第1の色成分値の飽和により前記第2のカラー画像信号中の第2の色成分値が小さくなる第1の現象が起きているときは、前記第2のカラー画像信号中の第2の色成分値を増加補正する第2の色補正処理部を備えることを特徴とする画像処理装置。
(付記2)前記第2の色補正処理部は、前記第2のカラー画像信号中の第3の色成分値を示す軸と、前記第2のカラー画像信号中の第2の色成分値を示す軸と、前記第1のカラー画像信号中の第1の色成分値を示す軸とが直交する第1の色成分値空間を設定し、かつ、該第1の色成分値空間に、前記第1のカラー画像信号中の第1の色成分値及び前記第2のカラー画像信号中の第3の色成分値との関係において、前記第2のカラー画像信号中の第2の色成分値を増加補正する必要がある領域と、前記第2のカラー画像信号中の第2の色成分値を増加補正する必要がない領域との境に、第1の閾値面を設定し、前記第2のカラー画像信号中の第2の色成分値が前記増加補正する必要がある領域に存在する場合に、前記第2のカラー画像信号中の第2の色成分値を増加補正する演算部を有することを特徴とする付記1に記載の画像処理装置。
(付記3)前記第1のカラー画像信号中の第2の色成分値の飽和により前記第2のカラー画像信号中の第1の色成分値が小さくなる第2の現象が起きているときは、前記第2のカラー画像信号中の第1の色成分値を増加補正する第3の色補正処理部を備えることを特徴とする付記1又は2に記載の画像処理装置。
(付記4)前記第3の色補正処理部は、前記第2のカラー画像信号中の第3の色成分値を示す軸と、前記第2のカラー画像信号中の第1の色成分値を示す軸と、前記第1のカラー画像信号中の第2の色成分値を示す軸とが直交する第2の色成分値空間を設定し、かつ、該第2の色成分値空間に、前記第1のカラー画像信号中の第2の色成分値及び前記第2のカラー画像信号中の第3の色成分値との関係において、前記第2のカラー画像信号中の第1の色成分値を増加補正する必要がある領域と、前記第2のカラー画像信号中の第1の色成分値を増加補正する必要がない領域との境に、第2の閾値面を設定し、前記第2のカラー画像信号中の第1の色成分値が前記増加補正する必要がある領域に存在する場合に、前記第2のカラー画像信号中の第1の色成分値を増加補正する演算部を有することを特徴とする付記3に記載の画像処理装置。
(付記5)前記第1の現象が起きているときは、前記第2の色補正処理部の補正結果を選択して出力し、前記第2の現象が起きているときは、前記第3の色補正処理部の補正結果を選択して出力し、前記第1の現象と前記第2の現象とが起きているときは、前記第2の色補正処理部の色補正結果と前記第3の色補正処理部の色補正結果とを合成した補正結果を出力する補正値統合部を備えることを特徴とする付記3又は4に記載の画像処理装置。
(付記6)前記第1のカラー画像信号中の第3の色成分値の飽和により前記第2のカラー画像信号中の第1の色成分値が小さくなる第3の現象が起きているときは、前記第2のカラー画像信号中の第1の色成分値を増加補正する第4の色補正処理部を備えることを特徴とする付記1又は2に記載の画像処理装置。
(付記7)前記第4の色補正処理部は、前記第2のカラー画像信号中の第2の色成分値を示す軸と、前記第2のカラー画像信号中の第1の色成分値を示す軸と、前記第1のカラー画像信号中の第3の色成分値を示す軸とが直交する第3の色成分値空間を設定し、かつ、該第3の色成分値空間に、前記第1のカラー画像信号中の第3の色成分値及び前記第2のカラー画像信号中の第2の色成分値との関係において、前記第2のカラー画像信号中の第1の色成分値を増加補正する必要がある領域と、前記第2のカラー画像信号中の第1の色成分値を増加補正する必要がない領域との境に、第3の閾値面を設定し、前記第2のカラー画像信号中の第1の色成分値が前記増加補正する必要がある領域に存在する場合に、前記第2のカラー画像信号中の第1の色成分値を増加補正する演算部を有することを特徴とする付記6に記載の画像処理装置。
(付記8)前記第1の現象が起きているときは、前記第2の色補正処理部の補正結果を選択して出力し、前記第3の現象が起きているときは、前記第4の色補正処理部の補正結果を選択して出力し、前記第1の現象と前記第3の現象とが起きているときは、前記第2の色補正処理部の補正結果と前記第4の色補正処理部の色補正結果とを合成した補正結果を出力する補正値統合部を備えることを特徴とする付記6又は7に記載の画像処理装置。
(付記9)前記第1のカラー画像信号中の第3の色成分値の飽和により前記第2のカラー画像信号中の第1の色成分値が小さくなる第3の現象が起きているときは、前記第2のカラー画像信号中の第1の色成分値を増加補正する第4の色補正処理部と、
前記第1のカラー画像信号中の第2の色成分値の飽和により前記第2のカラー画像信号中の第3の色成分値が小さくなる第4の現象が起きているときは、前記第2のカラー画像信号中の第3の色成分値を増加補正する第5の色補正処理部とを備えることを特徴とする付記1又は2に記載の画像処理装置。
(付記10)前記第4の色補正処理部は、前記第2のカラー画像信号中の第2の色成分値を示す軸と、前記第2のカラー画像信号中の第1の色成分値を示す軸と、前記第1のカラー画像信号中の第3の色成分値を示す軸とが直交する第3の色成分値空間を設定し、かつ、該第3の色成分値空間に、前記第1のカラー画像信号中の第3の色成分値及び前記第2のカラー画像信号中の第2の色成分値との関係において、前記第2のカラー画像信号中の第1の色成分値を増加補正する必要がある領域と、前記第2のカラー画像信号中の第1の色成分値を増加補正する必要がない領域との境に、第3の閾値面を設定し、前記第2のカラー画像信号中の第1の色成分値が前記増加補正する必要がある領域に存在する場合に、前記第2のカラー画像信号中の第1の色成分値を増加補正する演算部を有し、
前記第5の色補正処理部は、前記第2のカラー画像信号中の第1の色成分値を示す軸と、前記第2のカラー画像信号中の第3の色成分値を示す軸と、前記第1のカラー画像信号中の第2の色成分値を示す軸とが直交する第4の色成分値空間を設定し、かつ、該第4の色成分値空間に、前記第1のカラー画像信号中の第2の色成分値及び前記第2のカラー画像信号中の第1の色成分値との関係において、前記第2のカラー画像信号中の第3の色成分値を増加補正する必要がある領域と、前記第2のカラー画像信号中の第3の色成分値を増加補正する必要がない領域との境に、第4の閾値面を設定し、前記第2のカラー画像信号中の第3の色成分値が前記増加補正する必要がある領域に存在する場合に、前記第2のカラー画像信号中の第3の色成分値を増加補正する演算部を有することを特徴とする付記9に記載の画像処理装置。
(付記11)前記第1の現象が起きているときは、前記第2の色補正処理部の補正結果を選択して出力し、前記第3の現象が起きているときは、前記第4の色補正処理部の補正結果を選択して出力し、前記第4の現象が起きているときは、前記第5の色補正処理部の補正結果を選択して出力し、前記第1の現象と前記第3の現象と前記第4の現象のうち、二つの現象が起きているときは、前記第2の色補正処理部、前記第4の色補正処理部及び前記第5の色補正処理部のうち、対応する色補正処理部の補正結果を合成した補正結果を出力し、前記第1の現象と前記第3の現象と前記第4の現象とが起きているときは、前記第2の色補正処理部の補正結果と、前記第4の色補正処理部の補正結果と、前記第5の色補正処理部の補正結果とを合成した補正結果を出力する補正値統合部を備えることを特徴とする付記9又は10に記載の画像処理装置。
(付記12)前記第1のカラー画像信号中の第2の色成分値の飽和により前記第2のカラー画像信号中の第1の色成分値が小さくなる第2の現象が起きているときは、前記第2のカラー画像信号中の第1の色成分値を増加補正する第3の色補正処理部と、
前記第1のカラー画像信号中の第2の色成分値の飽和により前記第2のカラー画像信号中の第3の色成分値が小さくなる第4の現象が起きているときは、前記第2のカラー画像信号中の第3の色成分値を増加補正する第5の色補正処理部とを備えることを特徴とする付記1に記載の画像処理装置。
(付記13)前記第3の色補正処理部は、前記第2のカラー画像信号中の第3の色成分値を示す軸と、前記第2のカラー画像信号中の第1の色成分値を示す軸と、前記第1のカラー画像信号中の第2の色成分値を示す軸とが直交する第2の色成分値空間を設定し、かつ、該第2の色成分値空間に、前記第1のカラー画像信号中の第2の色成分値及び前記第2のカラー画像信号中の第3の色成分値との関係において、前記第2のカラー画像信号中の第1の色成分値を増加補正する必要がある領域と、前記第2のカラー画像信号中の第1の色成分値を増加補正する必要がない領域との境に、第2の閾値面を設定し、前記第2のカラー画像信号中の第1の色成分値が前記増加補正する必要がある領域に存在する場合に、前記第2のカラー画像信号中の第1の色成分値を増加補正する演算部を有し、
前記第5の色補正処理部は、前記第2のカラー画像信号中の第1の色成分値を示す軸と、前記第2のカラー画像信号中の第3の色成分値を示す軸と、前記第1のカラー画像信号中の第2の色成分値を示す軸とが直交する第4の色成分値空間を設定し、かつ、該第4の色成分値空間に、前記第1のカラー画像信号中の第2の色成分値及び前記第2のカラー画像信号中の第1の色成分値との関係において、前記第2のカラー画像信号中の第3の色成分値を増加補正する必要がある領域と、前記第2のカラー画像信号中の第3の色成分値を増加補正する必要がない領域との境に、第4の閾値面を設定し、前記第2のカラー画像信号中の第3の色成分値が前記増加補正する必要がある領域に存在する場合に、前記第2のカラー画像信号中の第3の色成分値を増加補正する演算部を有することを特徴とする付記12に記載の画像処理装置。
(付記14)前記第1の現象が起きているときは、前記第2の色補正処理部の補正結果を選択して出力し、前記第2の現象が起きているときは、前記第3の色補正処理部の補正結果を選択して出力し、前記第4の現象が起きているときは、前記第5の色補正処理部の補正結果を選択して出力し、前記第1の現象と前記第2の現象と前記第4の現象のうち、二つの現象が起きているときは、前記第2の色補正処理部と、前記第3の色補正処理部と、前記第5の色補正処理部のうち、対応する2個の色補正処理部の補正結果を合成した補正結果を出力し、前記第1の現象と前記第2の現象と前記第4の現象とが起きているときは、前記第2の色補正処理部の補正結果と、前記第3の色補正処理部の補正結果と、前記第5の色補正処理部との補正結果を合成した補正結果を出力する補正値統合部を備えることを特徴とする付記12又は13に記載の画像処理装置。
(付記15)前記第1のカラー画像信号中の第1の色成分値の飽和により前記第2のカラー画像信号中の第1の色成分値が小さくなる第5の現象が起きているときは、前記第2のカラー画像信号中の第1の色成分の強度を飽和値に補正する第6の色補正処理部と、前記第1のカラー画像信号中の第2の色成分値の飽和により前記第2のカラー画像信号中の第2の色成分値が小さくなる第6の現象が起きているときは、前記第2のカラー画像信号中の第2の色成分の強度を飽和値に補正する第7の色補正処理部と、前記第1のカラー画像信号中の第3の色成分値の飽和により前記第2のカラー画像信号中の第3の色成分値が小さくなる第7の現象が起きているときは、前記第2のカラー画像信号中の第3の色成分の強度を飽和値に補正する第8の色補正処理部との、いずれか1以上の色補正処理部を備えることを特徴とする付記1〜14のいずれか一項に記載の画像処理装置。
(付記16)色補正処理を受けていない第1のカラー画像信号を入力して前記色補正処理を行い、第2のカラー画像信号を出力する第1の色補正処理部を備える画像処理装置であって、
前記第1のカラー画像信号中の第1の色成分値の飽和により前記第2のカラー画像信号中の第1の色成分値が小さくなる第5の現象が起きているときは、前記第2のカラー画像信号中の第1の色成分の強度を飽和値に補正する第6の色補正処理部を備えることを特徴とする画像処理装置。
1…レンズ光学系、2…撮像素子、3…増幅部、4…A/D変換部、5…画像処理部、6…被写体情報検出部、7…メモリ部、8…モニタ部、9…制御部、10…オフセット調整部、11…ホワイトバランス処理部、12…色補正処理部、13…ガンマ補正部、14…圧縮部、15…ノイズ抑制部、16…エッジ強調部、17…色補間処理部、18…色補正行列設定部、21…画像処理部(本発明の第1実施形態)、22…制御部、23…ハイライト色付き対策処理部、24…閾値面算出部、26…G2軸、27…B2軸、28…R1軸、29〜31…交線、32〜34…頂点、36…G2軸、37…R2軸、38…B1軸、39〜41…交線、42〜44…頂点、46、47…異常発生パラメータ算出部、48…異常発生パラメータ/閾値面パラメータ・テーブル、49、50…閾値面パラメータ出力部、52、53…内部パラメータ算出部、54…R1飽和によるG、B補正値算出部、55…B1飽和によるG、R補正値算出部、56…補正値統合部、57…R1飽和によるR抜け対策部、58…B1飽和によるB抜け対策部、59…範囲制限部、61〜63、65〜67、69〜73…演算部、75…h_TR軸、76…j_TR軸、77…k_TR軸、78、79…直線、81〜85…演算部、87…h_TBr軸、88…j_TBr軸、89…k_TBr軸、91、92…直線、95…flagR真偽判定部、96…flagBr真偽判定部、97…補正値出力部、100…R範囲制限部、101…G範囲制限部、102…B範囲制限部、104…画像処理部(本発明の第2実施形態)、105…制御部、106…ハイライト色付き対策処理部、107…閾値面算出部、110…B2軸、111…R2軸、112…G1軸、113〜115…交線、116〜118…頂点、120…異常発生パラメータ算出部、121…異常発生パラメータ/閾値面パラメータ・テーブル、122…閾値面パラメータ出力部、124…内部パラメータ算出部、125…G1飽和によるB、R補正値算出部、126…補正値統合部、128〜130、132〜136…演算部、138…h_TG軸、139…j_TG軸、140…k_TG軸、142、143…直線、145…flagG真偽判定部、146…補正値出力部、148…画像処理部(本発明の第3実施形態)、149…制御部、150…ハイライト色付き対策処理部、151…閾値面算出部、153…R2軸、154…G2軸、155…B1軸、156〜158…交線、159〜161…頂点、163…異常発生パラメータ算出部、164…異常発生パラメータ/閾値面パラメータ・テーブル、165…閾値面パラメータ出力部、167…内部パラメータ算出部、168…B1飽和によるR、G補正値算出部、169…補正値統合部、170…B1飽和によるB抜け対策部、172〜174、176〜180…演算部、182…h_TBg軸、183…j_TBg軸、184…k_TBg軸、185、186…直線、188…flagBg真偽判定部、189…補正値出力部、191…画像処理部(本発明の第4実施形態)、192…制御部、193…ハイライト色付き対策処理部、194…閾値面算出部、196…異常発生パラメータ/閾値面パラメータ・テーブル、198…補正値統合部、200…補正値出力部