当曝光设置和白平衡不断变化时,是否有人有过色彩匹配和视频帧到帧跟踪的经验?
我正致力于使用iPad 2正面相机拍摄视频的色彩跟踪应用。我需要在每个帧上检测彩色对象(我们之前采用的预定义颜色)。我的问题是相机软件喜欢调整每帧的WB和曝光。因此,如果我们记住N帧处的一种颜色,那么在N + 10帧上,WB会有所不同,这会导致颜色差异很大。
使用 LAB 颜色空间和 CIE76 公式计算颜色距离I'
是的,我知道有更好的CIEDE2000距离功能,但是我正在使用ARM处理器,我担心这个公式太重了,即使对于我已经使用的ARM NEON手动优化的汇编代码也是如此。
CIE76一般会提供良好的效果,但在较差或非常明亮的照明场景中,相机会产生过多噪音或过度饱和图像,因此颜色与原始颜色相差太远。除了使用颜色距离的简单阈值处理之外,我还基于校准颜色的标准偏差实现了LAB像素值的每个分量阈值处理。这也增加了检测的正确性,但是,这并不能解决主要问题。
相机本身提供RGB色彩空间中的帧,但API不提供获取当前帧的白点或色温的功能。目前我假设D50光源执行RGB - > LAB转换。
这是我的主要怀疑。 我的想法是计算给定RGB图像的白点,然后将其转换为XYZ颜色空间,然后使用计算的白点将XYZ转换为LAB。是否可能?
来自维基百科:白点
在LMS颜色空间中将颜色表示为三刺激坐标,可以"翻译"根据von Kries变换的对象颜色简单地通过将LMS坐标缩放两个白点处的三刺激值的最大值的比率来进行变换。这提供了一个简单但粗略的估计。
http://en.wikipedia.org/wiki/White_point
这会起作用吗?或者有更好的方法来计算白点(甚至大致)?顺便说一下,我出来了Retinex算法,它在阴影中表现出良好的色彩增强,是否有人使用它?它的优点和缺点是什么?