如何使用 Android 手机的摄像头和 OpenCV 最好地检测不同的 LED 颜色?

Dan*_*ble 5 java android opencv colors color-space

我正在尝试在 Android 手机上使用 OpenCV 在黑色背景下识别和区分 LED 的颜色,但目前正在挣扎。我迄今为止的调查指向两个不同的问题:

  1. 使用 OpenCV,相机似乎默认为自动白平衡,这使得很难区分某些颜色。使用原生 Android 相机,最好的图像似乎是在白平衡设置为“阴天”的情况下生成的。
  2. OpenCV 提供 RGB 颜色空间中的图像,但 RGB 与人类感知的颜色之间的距离不匹配,这意味着欧几里得 RGB 距离度量不是最佳解决方案(请参阅如何比较两种颜色)。

因此,我有三个问题:

  1. Android Java 或 OpenCV 中有没有办法设置相机的白平衡,以便影响 OpenCV 返回的结果图像?
  2. 如果没有,是否有可用的算法(最好在 Java 中)来修改 OpenCV 图像的白平衡?
  3. 是否有可用的算法(再次,最好在 Java 中)将 RGB 颜色转换为替代颜色空间,以更好地匹配人类感知的颜色之间的距离?

谢谢

Ahm*_*leh 0

  1. 我认为这与相机的设备驱动程序有关,是否可以通过Android的Camera API来控制它。
  2. 这对您有用:检测颜色

我喜欢电子产品,所以一个简单的光敏电阻器就可以做到这一点,无需任何代码:)。