使用OpenCV导出颜色校正矩阵

时间:2015-05-30 22:07:18

标签: c++ opencv matrix

我想用C ++找到OpenCV的色彩校正矩阵。我在LED阵列中有16 * 32个不同颜色的LED,我知道它们的实际(B,G,R)值。然后用视频记录工作的led阵列,我可以得到视频的像素值(B',G',R')。 (B,G,R)和(B',G',R')之间的关系是颜色校正矩阵。(process is similar to here)我如何在图像中找到与LED对应的像素?如果我知道这一点,我可以实现将(B',G',R')转换为(B,G,R)的色彩校正矩阵。 任何建议都会非常有用。

修改

是否有任何OpenCV函数或示例代码可以找到最近的(B,G,R)值 - 例如(0,0,255) - 在帧中?我意识到最接近的值变为(B',G',R')

1 个答案:

答案 0 :(得分:0)

我认为,机械测试设置是静态的(相机总是与LED面板相同的位置)

在这种情况下,请手动定义LED的坐标和区域。例如。在应评估LED强度的区域上创建一个具有1的二元掩模。使用这种掩模,您可以使用简单的矩形区域评估LED强度。

修改

找到一个LED,当所有其他LED关闭时,通过简单的阈值处理,找到轮廓并计算轮廓的中心。如果您发布图像,您肯定会得到代码示例。

我建议,在开始实现坐标和颜色的自动识别之前,进行一些测试。

绘制LED的强度及其计算值。找出,对计算出的(通过OpenCV)值影响实际强度或闪电条件,摄像机角度,摄像机区域,特定摄像机(如果软件将与多台摄像机一起使用),温度,相机运行了多长时间等 只有在设定值和测量值之间达到令人满意的对应关系/准确度时才开始实施软件。

P.S。 如果我有机会简化事情,我不会依赖自动计算。