LCD白平衡调试说明
- 格式:doc
- 大小:569.50 KB
- 文档页数:12
初学者白平衡和白平衡的设置技巧初学者白平衡和白平衡的设置技巧白平衡,字面上的理解是白色的平衡。
白平衡是描述显示器中红、绿、蓝三基色混合生成后白色精确度的一项指标。
白平衡是电视摄像领域一个非常重要的概念,通过它可以解决色彩还原和色调处理的一系列问题。
初学者白平衡和白平衡的设置技巧是怎么样的?下面一切解析白平衡基础应用技巧吧!在数码初学者白平衡和白平衡的设置技巧的像素刚超过百万的时候,使用自动白平衡(下文简称AWB)拍摄晚霞,其独特的红色被完全地修正了,变成了普通的阴天的样子,这就是AWB的过度修正。
再例如,画面中满是黄色的油菜花,如果单纯地修正的话,全都会变成蓝色。
以前的AWB是“还原正常的颜色”,而不理会不同被摄体的特性。
当然,现在的AWB已然不是这样了。
拍摄晚霞的时候,会还原出天空中残留的红色。
这一技术进步,花费了厂商们大量心血。
现在的AWB在画面的黑、白或者灰色等无色彩部分的精度或者说是准确度会提高。
也就是说照初学者白平衡和白平衡的设置技巧更容易从这些无色彩部分推断出光源的色温,所以无色彩部分越多越能正确地进行修正。
自动白平衡发展趋势AWB最近的新动向是理光的GR-D III和GXR上搭载的“复合AWB(Multipatternauto white balance)”机能。
在此之前的AWB是一调整就是整个画面都调整,复合AWB机能是说“向阳处和背阴处”这种一个画面内存在多种色温区域的场合下,可以分别为每个区域匹配最合适的色温。
白平衡的比拼不同品牌、不同档次的初学者白平衡和白平衡的设置技巧、不同的预设白平衡模式,是否有优劣之分?就让我们做个简单的比较。
原来每台初学者白平衡和白平衡的设置技巧的白平衡预设值都不同不同厂商的荧光灯白平衡对比预设白平衡设定,具体修正多少,是由厂商决定的。
表格中的数字单位为K(开尔文)。
色温低的偏红,色温高的偏蓝。
拍摄对象的色温不同,结果自然不同。
拍摄时以松下的石英水银灯作光源,x-Rite的'色彩检测仪拍摄而成。
《白平衡的调整》一、调整白平衡白平衡调整(Whitebal)是摄像机工作中一个很重要的环节。
在室内钨丝灯光下,白色物体看起来会带有橘黄色色调,在这样的光照条件下拍摄出来的景物就会偏黄;但如果是在蔚蓝天空下,则会带有蓝色色调,在这样的光照条件下拍摄出来的景物会偏蓝。
为了尽可能减少外来光线对目标颜色造成的影响,就需要摄像机进行色彩校正,以达成正确的色彩平衡,就称为白平衡调整。
以下一些光照条件需要调整白平衡:如在夜间拍摄蜡烛光或室外拍摄烟火时;在某些水银灯、钠蒸汽灯或其他极亮照明下时;在两种不同色温的光源混合时;在强逆光拍摄时以及运用微距功能拍摄时;在雪地拍摄时;在环境亮度低于摄像机的规定照度时;日落、日出或带有强烈的红色调时;摄像机和被摄景物不是处在同一光源下,且光比相差很大时。
自动白平衡调整功能是现在摄像机都有的功能,当摄像机对着被摄体时,随着照明光的色温不同,摄像机的白平衡被自动调整,而不必手动控制。
然而,当拍摄时的光线超出所设定的范围时,自动白平衡功能就不能正常工作,就需要手动调整。
在使用Sony DCR-TRV17E数码摄像机时,手动调整白平衡的方法为:首先在“Camera”或“Memory”方式下,从菜单设定中选择“Wht Bal”;然后在菜单设定中选择所需的白平衡方式,其中:“Indoor”表示拍摄的地方为照明条件快速变化、摄像室等太明亮的地方或者是在钠灯或水银灯下;“Outdoor”表示拍摄的条件为在日落/日出、日落后、日出前、霓虹灯或焰火;“Hold”表示拍摄单色对象或前景,可以将白平衡设置为“Outdoor”模式。
在手动调整白平衡中,如果要返回自动白平衡方式,将菜单设定的“Wht Bal”项目设定为“Auto”即可。
二、调整曝光摄像机的光圈调整分手动与自动两种方式,一般我们把光圈设定在自动状态。
有了自动光圈方式,只要摄像机对准被摄物体,镜头光圈就会自动调整到最适当的位置,拍摄出影像清晰的画面。
I2C信号模式结构:RomSubIcSub初值最大值最小值有效位CardNum 开始位LG Sub信号类型LB Slave亮度数值初值彩色高亮算法动态彩色低亮算法x1y1Y1合格范围nAjdMethorx2y2说明:Y2nAdjustHigh ………………0 //先高亮,后低亮有次数AjustTimes1 //先低亮,后高亮有次数基准色2 //只有高亮无次数IsUseBase3 //只有低亮无次数w_cut ………………………保留bOkStopSignal………………保留每种信号模式都必须有高亮或低亮或高亮、低亮都有。
基准色包括高亮、低亮IsUseBase包括高亮、低亮合格区设定:高亮合格区低亮合格区显示修正:高亮修正低亮修正程序系统工作原理:系统数据结构://色温结构typedef struct _COLOR_WARM{float fHx; //高亮x值float fHy; //高亮y值float fHY; //高亮Y值float fLx; //低亮x值float fLy; //低亮y值float fLY; //低亮Y值float fDrvRange; //高亮范围float fCutRange; //低亮范围}COLOR_WARM, *PCOLOR_WARM;//IC结构typedef struct _IC_ADD_SET{int iSubRom; //IC Romint iSubIc; //IC Subint iInitialVal; //初值int iMaxVal; //最大值int iMixVal; //最小值int iEffectBit; //有效位int iStartBit; //开始位}IC_ADD_SET, *PIC_ADD_SET;//色度结构typedef struct _IC_COLOR_SET{int iSub; //Subint iValue; //Slaveint iSlave; //数值int iIniVal; //初值}IC_COLOR_SET, *PIC_COLOR_SET;//模式设置结构typedef struct _MODE_SET{int iWDrv; //w_Drvint iWCut; //w_Cutint iIcRom; //IC Romint iIcSlave; //IC SlaveBOOL bOkStopSignal; //调试完成后是否停止保留IC_ADD_ SET asHR; //IIC总线地址设置 HRIC_ADD_ SET asHG; //IIC总线地址设置 HGIC_ADD_ SET asHB; //IIC总线地址设置 HBIC_ADD_ SET asLR; //IIC总线地址设置 LRIC_ADD_ SET asLG; //IIC总线地址设置 LGIC_ADD_ SET asLB; //IIC总线地址设置 LBCOLOR_WARM cwColorType; //色温设置IC_COLOR_SET icBright; //色度设置亮度IC_COLOR_SET icContrast; //色度设置对比度IC_COLOR_SET icMutiClr; //色度设置彩色IC_COLOR_SET icDynaClr; //色度设置动态彩色}MODE_SET, *PMODE_SET;//信号类型结构typedef struct _SIGNAL_SET{int iIndex; //信号索引//int iSignalTotal; //保留char szSigType[128]; //信号类型char szSigFormat[128]; //信号格式char szSignalSet[128]; //信号全称int iSignalMode; //信号模式int iSigContent; //信号内容int iHighVal; //高亮幅值int iLowVal; //低亮幅值BOOL bIsExteSignal; //使用外部信号BOOL bIsAddSigSet; //是否设置了信号模式标志int iHighLumAlgo; //高亮算法//--------- 0 加法弱色//--------- 1 减法强色//--------- 2 加减法int iLowLumAlgo; //低亮算法同上BOOL bHighBaseClr; //是否使用了高亮基准int iHighClr; //若用了高亮基准色,它的次序 0---红// 1---绿// 2---蓝BOOL bLowBaseClr; //是否使用了低亮基准int iLowClr; //若用了低亮基准色,它的次序同上WORD wAdjTimes; //调整次数WORD wAdjMethord; // --------- 0 先高亮,后低亮有次数// --------- 1 先低亮,后高亮有次数// --------- 2 只有高亮无次数// --------- 3 只有低亮无次数int iTvSlave; //State Slaveint iTvSub; //State Subint iTvInitData; //State InitDataMODE_SET msSet; //一个测量信号的总的结构}SIGNAL_SET, *PSIGNAL_SET;//遥控码结构设置typedef struct _CONTROL_CODE{char szCodeName[MAX_PATH]; //遥控码名称typedef struct _CODE_SET{BYTE byCode1; //Code1BYTE byCode2; //Code2BYTE byCode3; //Code3BYTE byCode4; //Code4int iDalayTime; //Delayint iSendTimes; //发送次数}CODE_SET, *PCODE_SET;CODE_SET codeSet;}CONTROL_CODE, *PCONTROL_CODE;//动作码列表结构设置typedef struct _ACT_LIST{char szActName[MAX_PATH]; //动作列表名称vector<CString>CodeList; //动作码列表}ACT_LIST, *PACT_LIST;//遥控器数据结构设置typedef struct _REMOTE_CONTROL_SET{int iIndex; //信号索引char szSigType[128]; //信号类型char szSigFormat[128]; //信号格式char szSignalSet[128]; //信号全称int iSignalMode; //信号模式int iSigContent; //信号内容int iHighVal; //高亮幅值int iLowVal; //低亮幅值BOOL bIsExteSignal; //使用外部信号BOOL bIsAddSigSet; //是否设置了信号模式标志int iHighLumAlgo; //高亮算法//--------- 0 加法弱色//--------- 1 减法强色//--------- 2 加减法int iLowLumAlgo; //低亮算法同上BOOL bHighBaseClr; //是否使用了高亮基准int iHighClr; //若用了高亮基准色,它的次序 0---红// 1---绿// 2---蓝BOOL bLowBaseClr; //是否使用了低亮基准int iLowClr; //若用了低亮基准色,它的次序同上WORD wAdjMethord; // --------- 0 先高亮,后低亮有次数// --------- 1 先低亮,后高亮有次数// --------- 2 只有高亮无次数// --------- 3 只有低亮无次数WORD wAdjTimes; //调整次数COLOR_WARM cwControl; //色温vector<CONTROL_CODE> ControlCode; //遥控码列表vector<ACT_LIST> ActList; //动作码列表}REMOTE_CONTROL_SET,*PREMOTE_CONTROL_SET;//数值设置typedef struct _NUMERIC_SET{char szNumType[128]; //数值类型int iInitialVal; //初值int iMaxVal; //最大值int iMixVal; //最小值}NUMERIC_SET, *PNUMERIC_SET;//命令设置typedef struct _COMMAND_SET{char szCommType[128]; //命令类型int iCode1; //code1int iCode2; //code2int iCode3; //code3int iCode4; //code4int iDalayTime; //delay}COMMAND_SET, *PCOMMAND_SET;//串口设置typedef struct _SERIAL_SET{int iIndex; //信号索引char szSigType[128]; //信号类型char szSigFormat[128]; //信号格式char szSignalSet[128]; //信号全称int iSignalMode; //信号模式int iSigContent; //信号内容int iHighVal; //高亮幅值int iLowVal; //低亮幅值BOOL bIsExteSignal; //使用外部信号BOOL bIsAddSigSet; //是否设置了信号模式标志int iHighLumAlgo; //高亮算法int iLowLumAlgo; //低亮算法同上BOOL bHighBaseClr; //是否使用了高亮基准int iHighClr; //若用了高亮基准色,它的次序 0---红BOOL bLowBaseClr; //是否使用了低亮基准int iLowClr; //若用了低亮基准色,它的次序同上WORD wAdjMethord; // --------- 0 先高亮,后低亮有次数WORD wAdjTimes; //调整次数COLOR_WARM cwSerial; //色温vector<COMMAND_SET> CommandSet; //命令设置vector<NUMERIC_SET> NumericSet;}SERIAL_SET, *PSERIAL_SET;typedef struct _CODE_SET{BYTE byAddHR; //AddHRBYTE byAddHG; //AddHGBYTE byAddHB; //AddHBBYTE byAddLR; //AddLRBYTE byAddLG; //AddLGBYTE byAddLB; //AddLBBYTE bySubHR; //SubHRBYTE bySubHG; //SubHGBYTE bySubHB; //SubHBBYTE bySubLR; //SubLRBYTE bySubLG; //SubLGBYTE bySubLB; //SubLB}CODE_SET, *PCODE_SET;typedef struct _PARALLEL_PORT{int iIndex; //index of signalchar szSigType[128]; //信号类型char szSigFormat[128]; //信号格式char szSignalSet[128]; //信号全称int iSignalMode; //信号模式int iSigContent; //信号内容int iHighVal; //高亮幅值int iLowVal; //低亮幅值BOOL bIsExteSignal; //使用外部信号BOOL bIsAddSigSet; //是否设置了信号模式标志int iHighLumAlgo; //高亮算法int iLowLumAlgo; //低亮算法同上BOOL bHighBaseClr; //是否使用了高亮基准int iHighClr; //若用了高亮基准色,它的次序 0---红BOOL bLowBaseClr; //是否使用了低亮基准int iLowClr; //若用了低亮基准色,它的次序同上WORD wAdjMethord; // --------- 0 先高亮,后低亮有次数WORD wAdjTimes; //调整次数BYTE byHLum; //高亮码BYTE byLLum; //低亮码int iLumDelay; //Lum delayBYTE byModeCode; //mode codeint iModeDelay; //mode delayint iAddHR;int iAddHG;int iAddHB;int iAddLR;int iAddLG;int iAddLB;int iSubHR;int iSubHG;int iSubHB;int iSubLR;int iSubLG;int iSubLB;COLOR_WARM cwParallel;}PARALLEL_PORT, *PPARALLEL_PORT;信号调试:单一模式测量仪器决定探头采集数据的方式如:CA210 定时器事件 K10 通讯事件 COM 测量仪器不能决定通讯方式。
用好你的白平衡-正确调整DC白平衡的方法不同的光源发出光的色调是不同的。
不同光的色调是用色温来描述的,单位是开尔文(K),它是这样定义的:在常温下把一块理想的纯黑色金属物质加热,随着温度不断上升物体会呈现出不同的颜色,人们把呈现不同颜色下的温度叫色温,以此标准来定义可见光的色调。
万里无云的蓝天的色温约为10000 K,阴天约为7000-9000 K,晴天日光直射下的色温约为5600K,荧光灯的色温约为4700 K,碘钨灯的色温约为3200k,钨丝灯的色温约为2600 K,日出或日落时的色温约为2000 K,烛光下的色温约为1000 K。
白平衡即White Balance,这个概念来自数码相机的运用中。
在数码摄影中,如果白色还原正确,其他颜色还原也就基本正确了,否则就会出现偏色。
我们知道:不同的光源发出光的色调是不同的,物体的颜色会因投射光线颜色的不同而产生改变,同一个物体在不同光线的场合下拍摄出的照片会有不同的颜色。
人眼可以辨别各种颜色,而DC的CCD不具备这种功能;为了能让DC拍摄出的图像色彩与人眼所看到的基本一样,就需要“白平衡”来调整。
白平衡能使DC在各种光线条件下拍摄出的照片色彩和人眼所见的基本相同。
如果使用传统相机,我们只能用日光型或灯光型胶卷加上一些滤色镜来调整色温。
DC在调整色温方面的方便之处就是可以在相机内直接设置白平衡,使景物的色彩比较准确地重现。
通常我们在拍摄时可以简单地使用自动白平衡,自动白平衡是DC根据当前画面,找出最亮点(白点)和最暗点(黑点),然后以此两点算出色温。
使用自动白平衡能应付许多通常的拍摄任务,拍出照片的效果也不错。
不过,自动白平衡虽然方便,但准确度有限,所以现在的DC除了自动白平衡以外还预置了日光、阴天、白炽灯、日光灯等多种自定义白平衡,让拍摄者可以根据不同的光照条件选择合适的白平衡。
在现实生活中,光线条件是多种多样的,灯光类型也各不相同,于是许多DC又增加了手动白平衡功能,即按标准白色设置白平衡参数。
本技术公开了一种自动调整LCD拼接的白平衡实现方法及系统,方法包括:将选定的测试图片显示在LCD拼接屏上;设定目标色域的100%R、G、B、W画面的目标x、y色坐标值,伽马曲线,并转化为目标X、Y、Z值;通过色温仪获取LCD拼接屏中每一LCD屏的实际X、Y、Z值,与目标X、Y、Z值比较和计算得到色域补偿值,并根据色域补偿值进行色域校正;将预先存储的指定图片显示在LCD拼接屏上;通过色彩分析仪采集多个像素点,与像素点中的中间点进行差值运算得到光补偿值,并根据光补偿值进行色度和亮度的均匀性校正。
本技术中无需将LCD拼接屏拆装,可同时调试屏多块区域,提高了白平衡调整的效率。
权利要求书1.一种自动调整LCD拼接的白平衡实现方法,其特征在于,包括:A、将选定的测试图片显示在LCD拼接屏上;B、设定目标色域的100%R、G、B、W画面的目标x、y色坐标值,伽马曲线,并转化为目标X、Y、Z值;C、通过色温仪获取LCD拼接屏中每一LCD屏的实际X、Y、Z值,与目标X、Y、Z值比较和计算得到色域补偿值,并根据色域补偿值进行色域校正;D、将预先存储的指定图片显示在LCD拼接屏上;E、通过色彩分析仪采集多个像素点,与像素点中的中间点进行差值运算得到光补偿值,并根据光补偿值进行色度和亮度的均匀性校正。
2.根据权利要求1所述自动调整LCD拼接的白平衡实现方法,其特征在于,所述步骤A中选取100%白画面作为测试图片。
3.根据权利要求2所述自动调整LCD拼接的白平衡实现方法,其特征在于,所述步骤B具体包括:B1、设定目标色域的100%R、G、B、W画面的目标x,y色坐标值分别为xR,yR,zR,xG,yG,zG,xB,yB,zB,xW,yW,zW;B2、R、G、B、W均采集256灰阶,并归一化得到r、g、b,并根据r、g、b得到目标伽马曲线;B3、根据计算目标X、Y、Z值;其中4.根据权利要求3所述自动调整LCD拼接的白平衡实现方法,其特征在于,所述步骤D中指定图片为100%白画面。
I2C信号模式结构:RomSubIcSub初值最大值最小值有效位开始位LG Sub信号类型LB Slave亮度数值初值彩色高亮算法动态彩色低亮算法x1Warm y1Std Y1Cool 合格范围nAjdMethorx2y2 说明:Y2 nAdjustHigh ………………0 //先高亮,后低亮有次数AjustTimes1 //先低亮,后高亮有次数基准色2 //只有高亮无次数IsUseBase3 //只有低亮无次数w_cut ………………………保留bOkStopSignal………………保留每种信号模式都必须有高亮或低亮或高亮、低亮都有。
基准色包括高亮、低亮IsUseBase包括高亮、低亮合格区设定:高亮合格区低亮合格区显示修正:高亮修正低亮修正程序系统工作原理:系统数据结构://色温结构typedef struct _COLOR_W ARM{float fHx; //高亮x值float fHy; //高亮y值float fHY; //高亮Y值float fLx; //低亮x值float fLy; //低亮y值float fL Y; //低亮Y值float fDrvRange; //高亮范围float fCutRange; //低亮范围}COLOR_W ARM, *PCOLOR_W ARM;//IC结构typedef struct _IC_ADD_SET{int iSubRom; //IC Romint iSubIc; //IC Subint iInitialVal; //初值int iMaxVal; //最大值int iMixVal; //最小值int iEffectBit; //有效位int iStartBit; //开始位}IC_ADD_SET, *PIC_ADD_SET;//色度结构typedef struct _IC_COLOR_SET{int iSub; //Subint iValue; //Slaveint iSlave; //数值int iIniVal; //初值}IC_COLOR_SET, *PIC_COLOR_SET;//模式设置结构typedef struct _MODE_SET{int iWDrv; //w_Drvint iWCut; //w_Cutint iIcRom; //IC Romint iIcSlave; //IC SlaveBOOL bOkStopSignal; //调试完成后是否停止保留 IC_ADD_ SET asHR; //IIC总线地址设置HRIC_ADD_ SET asHG; //IIC总线地址设置HGIC_ADD_ SET asHB; //IIC总线地址设置HBIC_ADD_ SET asLR; //IIC总线地址设置LRIC_ADD_ SET asLG; //IIC总线地址设置LGIC_ADD_ SET asLB; //IIC总线地址设置LBCOLOR_W ARM cwColorType; //色温设置IC_COLOR_SET icBright; //色度设置亮度IC_COLOR_SET icContrast; //色度设置对比度IC_COLOR_SET icMutiClr; //色度设置彩色IC_COLOR_SET icDynaClr; //色度设置动态彩色}MODE_SET, *PMODE_SET;//信号类型结构typedef struct _SIGNAL_SET{int iIndex; //信号索引//int iSignalTotal; //保留char szSigType[128]; //信号类型char szSigFormat[128]; //信号格式char szSignalSet[128]; //信号全称int iSignalMode; //信号模式int iSigContent; //信号内容int iHighVal; //高亮幅值int iLowVal; //低亮幅值BOOL bIsExteSignal; //使用外部信号BOOL bIsAddSigSet; //是否设置了信号模式标志int iHighLumAlgo; //高亮算法//--------- 0 加法弱色//--------- 1 减法强色//--------- 2 加减法int iLowLumAlgo; //低亮算法同上BOOL bHighBaseClr; //是否使用了高亮基准int iHighClr; //若用了高亮基准色,它的次序0---红// 1---绿// 2---蓝 BOOL bLowBaseClr; //是否使用了低亮基准int iLowClr; //若用了低亮基准色,它的次序同上 WORD wAdjTimes; //调整次数WORD wAdjMethord; // --------- 0 先高亮,后低亮有次数// --------- 1 先低亮,后高亮有次数// --------- 2 只有高亮无次数// --------- 3 只有低亮无次数int iTvSlave; //State Slaveint iTvSub; //State Subint iTvInitData; //State InitDataMODE_SET msSet; //一个测量信号的总的结构}SIGNAL_SET, *PSIGNAL_SET;//遥控码结构设置typedef struct _CONTROL_CODE{char szCodeName[MAX_PATH]; //遥控码名称typedef struct _CODE_SET{BYTE byCode1; //Code1BYTE byCode2; //Code2BYTE byCode3; //Code3BYTE byCode4; //Code4int iDalayTime; //Delayint iSendTimes; //发送次数}CODE_SET, *PCODE_SET;CODE_SET codeSet;}CONTROL_CODE, *PCONTROL_CODE;//动作码列表结构设置typedef struct _ACT_LIST{char szActName[MAX_PA TH]; //动作列表名称vector<CString>CodeList; //动作码列表}ACT_LIST, *PACT_LIST;//遥控器数据结构设置typedef struct _REMOTE_CONTROL_SET{int iIndex; //信号索引char szSigType[128]; //信号类型char szSigFormat[128]; //信号格式char szSignalSet[128]; //信号全称int iSignalMode; //信号模式int iSigContent; //信号内容int iHighVal; //高亮幅值int iLowVal; //低亮幅值BOOL bIsExteSignal; //使用外部信号BOOL bIsAddSigSet; //是否设置了信号模式标志int iHighLumAlgo; //高亮算法//--------- 0 加法弱色//--------- 1 减法强色//--------- 2 加减法int iLowLumAlgo; //低亮算法同上BOOL bHighBaseClr; //是否使用了高亮基准int iHighClr; //若用了高亮基准色,它的次序0---红// 1---绿// 2---蓝BOOL bLowBaseClr; //是否使用了低亮基准int iLowClr; //若用了低亮基准色,它的次序同上 WORD wAdjMethord; // --------- 0 先高亮,后低亮有次数// --------- 1 先低亮,后高亮有次数// --------- 2 只有高亮无次数// --------- 3 只有低亮无次数 WORD wAdjTimes; //调整次数COLOR_W ARM cwControl; //色温vector<CONTROL_CODE> ControlCode; //遥控码列表vector<ACT_LIST> ActList; //动作码列表}REMOTE_CONTROL_SET,*PREMOTE_CONTROL_SET;//数值设置typedef struct _NUMERIC_SET{char szNumType[128]; //数值类型int iInitialVal; //初值int iMaxVal; //最大值int iMixVal; //最小值}NUMERIC_SET, *PNUMERIC_SET;//命令设置typedef struct _COMMAND_SET{char szCommType[128]; //命令类型int iCode1; //code1int iCode2; //code2int iCode3; //code3int iCode4; //code4int iDalayTime; //delay}COMMAND_SET, *PCOMMAND_SET;//串口设置typedef struct _SERIAL_SET{int iIndex; //信号索引char szSigType[128]; //信号类型char szSigFormat[128]; //信号格式char szSignalSet[128]; //信号全称int iSignalMode; //信号模式int iSigContent; //信号内容int iHighVal; //高亮幅值int iLowVal; //低亮幅值BOOL bIsExteSignal; //使用外部信号BOOL bIsAddSigSet; //是否设置了信号模式标志int iHighLumAlgo; //高亮算法int iLowLumAlgo; //低亮算法同上BOOL bHighBaseClr; //是否使用了高亮基准int iHighClr; //若用了高亮基准色,它的次序0---红 BOOL bLowBaseClr; //是否使用了低亮基准int iLowClr; //若用了低亮基准色,它的次序同上 WORD wAdjMethord; // --------- 0 先高亮,后低亮有次数 WORD wAdjTimes; //调整次数COLOR_W ARM cwSerial; //色温vector<COMMAND_SET> CommandSet; //命令设置vector<NUMERIC_SET> NumericSet;}SERIAL_SET, *PSERIAL_SET;typedef struct _CODE_SET{BYTE byAddHR; //AddHRBYTE byAddHG; //AddHGBYTE byAddHB; //AddHBBYTE byAddLR; //AddLRBYTE byAddLG; //AddLGBYTE byAddLB; //AddLBBYTE bySubHR; //SubHRBYTE bySubHG; //SubHGBYTE bySubHB; //SubHBBYTE bySubLR; //SubLRBYTE bySubLG; //SubLGBYTE bySubLB; //SubLB}CODE_SET, *PCODE_SET;typedef struct _PARALLEL_PORT{int iIndex; //index of signalchar szSigType[128]; //信号类型char szSigFormat[128]; //信号格式char szSignalSet[128]; //信号全称int iSignalMode; //信号模式int iSigContent; //信号内容int iHighVal; //高亮幅值int iLowVal; //低亮幅值BOOL bIsExteSignal; //使用外部信号BOOL bIsAddSigSet; //是否设置了信号模式标志int iHighLumAlgo; //高亮算法int iLowLumAlgo; //低亮算法同上BOOL bHighBaseClr; //是否使用了高亮基准int iHighClr; //若用了高亮基准色,它的次序0---红 BOOL bLowBaseClr; //是否使用了低亮基准int iLowClr; //若用了低亮基准色,它的次序同上 WORD wAdjMethord; // --------- 0 先高亮,后低亮有次数 WORD wAdjTimes; //调整次数BYTE byHLum; //高亮码BYTE byLLum; //低亮码int iLumDelay; //Lum delayBYTE byModeCode; //mode codeint iModeDelay; //mode delayint iAddHR;int iAddHG;int iAddHB;int iAddLR;int iAddLG;int iAddLB;int iSubHR;int iSubHG;int iSubHB;int iSubLR;int iSubLG;int iSubLB;COLOR_W ARM cwParallel;}PARALLEL_PORT, *PPARALLEL_PORT;信号调试:单一模式测量仪器决定探头采集数据的方式如:CA210 定时器事件K10 通讯事件COM 测量仪器不能决定通讯方式。
浅谈D70的白平衡设置一、色温的基础知识自然界的光线不总是相同的。
可感知到的一个物体颜色依赖于照射到他的光源。
人类的大脑可以很好地“校正”这些颜色变化,但是我们所使用的胶片或CCD/CMOS感光器却不能完成这样的任务。
如果一个物体燃烧起来,首先火焰是红色的,随着温度升高然后它变成了橙黄色,然后变成白色,最后呢,蓝色出现了。
苏格兰数学家和物理学家lord kelvin在1848年最早发现了热与颜色的紧密结合关系,并且留给世界了一个伟大的“绝对零度”(-273.16摄氏度)概念。
从此创立了开氏温标(Kelvin temperature scale)。
这就是我们今天谈论色温的理论基础。
下图为开氏温标示意图:开氏温标用K(kelvin的缩写)单位来表示温度,越低的数值表示越“红”,越高的数值表示越“蓝”。
红和蓝并不是光线本身颜色,只是表明光谱中的红或蓝成分较多。
下面看看开氏温标中的常见标准:“绝对零度”在开试温标中表示为0K,对应的是-273.16摄氏度或-459华氏度,在这个温度下物质的热活性完全停止。
蜡烛的色温一般在1800K白炽灯在3000K晴天为5200K阳光直射下5000K阴天下6500-9000K深蓝的天空本身可以到20000K!接下来应该谈一下和D70相机设置有关的另一个基本概念:微倒数度(mired, micro-reciprocal degree)。
D70在对色温作正负3微调的时候就是依据的这个微倒数度。
它是任何一个色温除以100万得出来的。
由此看出,由于D70每一个内置白平衡模式所对应的色温有所不同,所以他们各自的白平衡微调值也不同。
在D70机内,每一个正负1的调节对应的是10个微倒数度。
下面看看具体D70各模式白平衡下微调的变化:从以上图表中可以看出,白平衡的微调值每一个模式都是不同的,我们再把这个图表简单化一下:注:由于荧光灯色温变化受多方面影响所以微调部分不完全以微倒数度为准。
LCD白平衡调试说明I2C信号模式结构:RomSubIcSub初值最大值最小值有效位开始位LG Sub信号类型LB Slave亮度数值初值彩色高亮算法动态彩色低亮算法x1Warm y1Std Y1Cool 合格范围nAjdMethorx2y2 说明:Y2 nAdjustHigh ………………0 //先高亮,后低亮有次数AjustTimes1 //先低亮,后高亮有次数基准色2 //只有高亮无次数IsUseBase3 //只有低亮无次数w_cut ………………………保留bOkStopSignal………………保留每种信号模式都必须有高亮或低亮或高亮、低亮都有。
基准色包括高亮、低亮IsUseBase包括高亮、低亮合格区设定:高亮合格区低亮合格区显示修正:高亮修正低亮修正程序系统工作原理:系统数据结构://色温结构typedef struct _COLOR_W ARM{float fHx; //高亮x值float fHy; //高亮y值float fHY; //高亮Y值float fLx; //低亮x值float fLy; //低亮y值float fL Y; //低亮Y值float fDrvRange; //高亮范围float fCutRange; //低亮范围}COLOR_W ARM, *PCOLOR_W ARM;//IC结构typedef struct _IC_ADD_SET{int iSubRom; //IC Romint iSubIc; //IC Subint iInitialVal; //初值int iMaxVal; //最大值int iMixVal; //最小值int iEffectBit; //有效位int iStartBit; //开始位}IC_ADD_SET, *PIC_ADD_SET;//色度结构typedef struct _IC_COLOR_SET{int iSub; //Subint iValue; //Slaveint iSlave; //数值int iIniVal; //初值}IC_COLOR_SET, *PIC_COLOR_SET;//模式设置结构typedef struct _MODE_SET{int iWDrv; //w_Drvint iWCut; //w_Cutint iIcRom; //IC Romint iIcSlave; //IC SlaveBOOL bOkStopSignal; //调试完成后是否停止保留 IC_ADD_ SET asHR; //IIC总线地址设置HRIC_ADD_ SET asHG; //IIC总线地址设置HGIC_ADD_ SET asHB; //IIC总线地址设置HBIC_ADD_ SET asLR; //IIC总线地址设置LRIC_ADD_ SET asLG; //IIC总线地址设置LGIC_ADD_ SET asLB; //IIC总线地址设置LBCOLOR_W ARM cwColorType; //色温设置IC_COLOR_SET icBright; //色度设置亮度IC_COLOR_SET icContrast; //色度设置对比度IC_COLOR_SET icMutiClr; //色度设置彩色IC_COLOR_SET icDynaClr; //色度设置动态彩色}MODE_SET, *PMODE_SET;//信号类型结构typedef struct _SIGNAL_SET{int iIndex; //信号索引//int iSignalTotal; //保留char szSigType[128]; //信号类型char szSigFormat[128]; //信号格式char szSignalSet[128]; //信号全称int iSignalMode; //信号模式int iSigContent; //信号内容int iHighVal; //高亮幅值int iLowVal; //低亮幅值BOOL bIsExteSignal; //使用外部信号BOOL bIsAddSigSet; //是否设置了信号模式标志int iHighLumAlgo; //高亮算法//--------- 0 加法弱色//--------- 1 减法强色//--------- 2 加减法int iLowLumAlgo; //低亮算法同上BOOL bHighBaseClr; //是否使用了高亮基准int iHighClr; //若用了高亮基准色,它的次序0---红// 1---绿// 2---蓝 BOOL bLowBaseClr; //是否使用了低亮基准int iLowClr; //若用了低亮基准色,它的次序同上 WORD wAdjTimes; //调整次数WORD wAdjMethord; // --------- 0 先高亮,后低亮有次数// --------- 1 先低亮,后高亮有次数// --------- 2 只有高亮无次数// --------- 3 只有低亮无次数int iTvSlave; //State Slaveint iTvSub; //State Subint iTvInitData; //State InitDataMODE_SET msSet; //一个测量信号的总的结构}SIGNAL_SET, *PSIGNAL_SET;//遥控码结构设置typedef struct _CONTROL_CODE{char szCodeName[MAX_PATH]; //遥控码名称typedef struct _CODE_SET{BYTE byCode1; //Code1BYTE byCode2; //Code2BYTE byCode3; //Code3BYTE byCode4; //Code4int iDalayTime; //Delayint iSendTimes; //发送次数}CODE_SET, *PCODE_SET;CODE_SET codeSet;}CONTROL_CODE, *PCONTROL_CODE;//动作码列表结构设置typedef struct _ACT_LIST{char szActName[MAX_PA TH]; //动作列表名称vector<CString>CodeList; //动作码列表}ACT_LIST, *PACT_LIST;//遥控器数据结构设置typedef struct _REMOTE_CONTROL_SET{int iIndex; //信号索引char szSigType[128]; //信号类型char szSigFormat[128]; //信号格式char szSignalSet[128]; //信号全称int iSignalMode; //信号模式int iSigContent; //信号内容int iHighVal; //高亮幅值int iLowVal; //低亮幅值BOOL bIsExteSignal; //使用外部信号BOOL bIsAddSigSet; //是否设置了信号模式标志int iHighLumAlgo; //高亮算法//--------- 0 加法弱色//--------- 1 减法强色//--------- 2 加减法int iLowLumAlgo; //低亮算法同上BOOL bHighBaseClr; //是否使用了高亮基准int iHighClr; //若用了高亮基准色,它的次序0---红// 1---绿// 2---蓝BOOL bLowBaseClr; //是否使用了低亮基准int iLowClr; //若用了低亮基准色,它的次序同上 WORD wAdjMethord; // --------- 0 先高亮,后低亮有次数// --------- 1 先低亮,后高亮有次数// --------- 2 只有高亮无次数// --------- 3 只有低亮无次数 WORD wAdjTimes; //调整次数COLOR_W ARM cwControl; //色温vector<CONTROL_CODE> ControlCode; //遥控码列表vector<ACT_LIST> ActList; //动作码列表}REMOTE_CONTROL_SET,*PREMOTE_CONTROL_SET;//数值设置typedef struct _NUMERIC_SET{char szNumType[128]; //数值类型int iInitialVal; //初值int iMaxVal; //最大值int iMixVal; //最小值}NUMERIC_SET, *PNUMERIC_SET;//命令设置typedef struct _COMMAND_SET{char szCommType[128]; //命令类型int iCode1; //code1int iCode2; //code2int iCode3; //code3int iCode4; //code4int iDalayTime; //delay}COMMAND_SET, *PCOMMAND_SET;//串口设置typedef struct _SERIAL_SET{int iIndex; //信号索引char szSigType[128]; //信号类型char szSigFormat[128]; //信号格式char szSignalSet[128]; //信号全称int iSignalMode; //信号模式int iSigContent; //信号内容int iHighVal; //高亮幅值int iLowVal; //低亮幅值BOOL bIsExteSignal; //使用外部信号BOOL bIsAddSigSet; //是否设置了信号模式标志int iHighLumAlgo; //高亮算法int iLowLumAlgo; //低亮算法同上BOOL bHighBaseClr; //是否使用了高亮基准int iHighClr; //若用了高亮基准色,它的次序0---红 BOOL bLowBaseClr; //是否使用了低亮基准int iLowClr; //若用了低亮基准色,它的次序同上 WORD wAdjMethord; // --------- 0 先高亮,后低亮有次数 WORD wAdjTimes; //调整次数COLOR_W ARM cwSerial; //色温vector<COMMAND_SET> CommandSet; //命令设置vector<NUMERIC_SET> NumericSet;}SERIAL_SET, *PSERIAL_SET;typedef struct _CODE_SET{BYTE byAddHR; //AddHRBYTE byAddHG; //AddHGBYTE byAddHB; //AddHBBYTE byAddLR; //AddLRBYTE byAddLG; //AddLGBYTE byAddLB; //AddLBBYTE bySubHR; //SubHRBYTE bySubHG; //SubHGBYTE bySubHB; //SubHBBYTE bySubLR; //SubLRBYTE bySubLG; //SubLGBYTE bySubLB; //SubLB}CODE_SET, *PCODE_SET;typedef struct _PARALLEL_PORT{int iIndex; //index of signalchar szSigType[128]; //信号类型char szSigFormat[128]; //信号格式char szSignalSet[128]; //信号全称int iSignalMode; //信号模式int iSigContent; //信号内容int iHighVal; //高亮幅值int iLowVal; //低亮幅值BOOL bIsExteSignal; //使用外部信号BOOL bIsAddSigSet; //是否设置了信号模式标志int iHighLumAlgo; //高亮算法int iLowLumAlgo; //低亮算法同上BOOL bHighBaseClr; //是否使用了高亮基准int iHighClr; //若用了高亮基准色,它的次序0---红 BOOL bLowBaseClr; //是否使用了低亮基准int iLowClr; //若用了低亮基准色,它的次序同上 WORD wAdjMethord; // --------- 0 先高亮,后低亮有次数 WORD wAdjTimes; //调整次数BYTE byHLum; //高亮码BYTE byLLum; //低亮码int iLumDelay; //Lum delayBYTE byModeCode; //mode codeint iModeDelay; //mode delayint iAddHR;int iAddHG;int iAddHB;int iAddLR;int iAddLG;int iAddLB;int iSubHR;int iSubHG;int iSubHB;int iSubLR;int iSubLG;int iSubLB;COLOR_W ARM cwParallel;}PARALLEL_PORT, *PPARALLEL_PORT;信号调试:单一模式测量仪器决定探头采集数据的方式如:CA210 定时器事件K10 通讯事件COM 测量仪器不能决定通讯方式。