颜色的测量准确度实际受多种因素影响,如照明光谱特性及光源方位、物体反射特性、观测位置、以及传感器光谱响应性能等,测量过程中的环境因素变化也会造成测量误差。若对各个误差源分别进行测量误差校正,有一定难度,且工作量较大。
我们在这里将各种误差因素作为一个整体来考虑:对整个系统先采用颜色校正中通常使用的标准24色卡[9](ColorChecker色卡),对其中每一种颜色的R、G、B进行测量得到一个3×24矩阵M,而24色的标准R、G、B数据是已知的,也可构成一个3×24的矩阵S,我们希望由S = C M求出3×3的校正系数矩阵C = S M-1。由于M不是方阵,M的逆矩阵不存在,但可通过Matlab的求伪逆方法来求出近似的M-1,由此得出C。然后使用C矩阵按下式在系统软件中对TCS230的实际颜色测量值进行校正处理,从而大大提高了系统对颜色的辨识精度:
file:///E:/Project/COLOR%20METER/document/颜色识别实例/基于SPCE061A单片机的颜色检测系统的设计.files/20080902160515781.jpg
在普通光照环境下,利用本系统对ColorChecker 24色卡进行测量,其24种颜色的标准R、G、B值、相应的测量值、校正值以及颜色辨别结果如表2所示,图7仅给出了该表中24种颜色的红色分量数据比较图,由此可见,校正后的数据与标准值已相当接近,从而为颜色的正确判别提供了保证。
file:///E:/Project/COLOR%20METER/document/颜色识别实例/基于SPCE061A单片机的颜色检测系统的设计.files/20080902160601703.jpg |