10871| 6
|
[讨论] TCS34725颜色传感器需要手动白平衡吗 |
我的方法比较粗糙,但能达到一定的效果。 一、买来摄影用的白平衡标准颜色卡,一般有3张,纯黑、纯白、中等灰色。 二、让TCS34725颜色传感器识别白色标准卡,会发现得到的RGB肯定不是(255,255,255),例如为(Rmax,Gmax,Bmax),识别黑色标准卡也不是(0,0,0),例如为(Rmin,Gmin,Bmin)。 三、最大值和最小值之间就是TCS34725颜色传感器所识别的黑色和白色之间的区间,这个应该对应理论上的0-255区间。 四、假设:TCS34725颜色传感器对于颜色识别的数值是均匀、线性分布的,那么可以得到系数:Ry=(Rmax-Rmin)/255,Gy=(Gmax-Gmin)/255,By=(Bmax-Bmin)/255 五、如果TCS34725颜色传感器实际检测到的是(Rt,Gt,Bt),那么可以计算出:R=(Rt-Rmin)*Ry,G=(Gt-Gmin)*Gy,B=(Bt-Bmin)*By 当然,第四步和第五步也可以使用分布函数来计算。 如果想更加精确点,可以增加中等灰色的标准卡(127,127,127)作为中点、分段计算。 以上方式,都基于一个假设:就是传感器识别颜色的结果是均匀线性分布。也许实际不是这样,但我做了一个类似变色龙的实验:用这种方法计算得到RGB的值,然后去驱动RGB灯,显示的颜色和传感器读取的颜色还是十分接近的。(青色、淡蓝色、淡绿色还是有偏差) |
我的方法比较粗糙,但能达到一定的效果。 一、买来摄影用的白平衡标准颜色卡,一般有3张,纯黑、纯白、中等灰色。 二、让TCS34725颜色传感器识别白色标准卡,会发现得到的RGB肯定不是(255,255,255),例如为(Rmax,Gmax,Bmax),识别黑色标准卡也不是(0,0,0),例如为(Rmin,Gmin,Bmin)。 三、最大值和最小值之间就是TCS34725颜色传感器所识别的黑色和白色之间的区间,这个应该对应理论上的0-255区间。 四、假设:TCS34725颜色传感器对于颜色识别的数值是均匀、线性分布的,那么可以得到系数:Ry=(Rmax-Rmin)/255,Gy=(Gmax-Gmin)/255,By=(Bmax-Bmin)/255 五、如果TCS34725颜色传感器实际检测到的是(Rt,Gt,Bt),那么可以计算出:R=(Rt-Rmin)*Ry,G=(Gt-Gmin)*Gy,B=(Bt-Bmin)*By 当然,第四步和第五步也可以使用分布函数来计算。 如果想更加精确点,可以增加中等灰色的标准卡(127,127,127)作为中点、分段计算。 以上方式,都基于一个假设:就是传感器识别颜色的结果是均匀线性分布。也许实际不是这样,但我做了一个类似变色龙的实验:用这种方法计算得到RGB的值,然后去驱动RGB灯,显示的颜色和传感器读取的颜色还是十分接近的。(青色、淡蓝色、淡绿色还是有偏差) |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed