【问题标题】:Deriving the color correction matrix with OpenCV使用 OpenCV 导出颜色校正矩阵
【发布时间】:2015-08-13 15:13:48
【问题描述】:

我想使用 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')

【问题讨论】:

  • 如果您可以附上您正在尝试处理的图像,这将有所帮助。
  • 欢迎来到Stack Overflow!目前还不清楚你在问什么。您是在问如何计算给定(B, G, R)(B', G', R') 的颜色校正,或者如何在图像中找到与LED 对应的像素?我认为主要的困惑是“如何根据 LED 检测像素位置?”这句话。 “地方”是什么意思?
  • @MikeOunsworth:有一个问题:“如何根据led检测像素的位置?”
  • 让我用一个例子来解释。我在 LED 阵列上有一个红色操作 LED,我知道它的 (B, G, R) 值 (0,0,255)。我用电脑上的网络摄像头显示它。我想找到实际像素代表框架上的红色 LED。如果我找到它,我将实现它的值(B',G',R')。最后,我可以计算颜色校正矩阵。我希望“如何根据led检测像素的位置?”现在是合理的。 -这只是一个例子,我想在框架中找到 256 种不同颜色的位置,而不仅仅是红色-@我现在只有视频,我可以在星期一添加照片。

标签: c++ opencv matrix


【解决方案1】:

我假设,机械测试设置是静态的(相机相对于 LED 面板始终处于相同位置)

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

编辑

在所有其他 LED 熄灭时,通过简单的阈值、查找轮廓和计算轮廓中心来查找单个 LED。如果您发布图像,您肯定会得到代码示例。

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

绘制 LED 的强度及其计算值。找出对计算(通过 OpenCV)值影响更大的因素是实际强度或闪电条件、相机角度、相机区域、特定相机(如果该软件将与多个相机一起使用)、温度、相机工作了多长时间等。 仅当您在设定值和测量值之间找到令人满意的对应/准确性时,才开始实施该软件。

附: 如果我有机会简化事情,我不会依赖自动计算。

【讨论】:

  • 我不想做任何手动的事情,但是如果我无法得到解决方案,请你给我更多关于你的想法的信息。
猜你喜欢
  • 2018-06-04
  • 2012-09-02
  • 2016-12-12
  • 1970-01-01
  • 2018-08-19
  • 2018-02-26
  • 2018-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多