我正在尝试在 Android 手机上使用 OpenCV 识别和区分黑色背景下 LED 的颜色,但目前正在苦苦挣扎。我迄今为止的调查指向两个不同的问题:
- 使用 OpenCV,相机似乎默认为自动白平衡,这使得难以区分某些颜色。使用本机 Android 相机,在白平衡设置为“多云”的情况下,可以生成最佳图像。
- OpenCV 提供 RGB 颜色空间中的图像,但 RGB 与人类感知的颜色之间的距离不匹配,这意味着欧几里德 RGB 距离度量不是最佳解决方案(请参阅如何比较两种颜色)。
因此,我有三个问题:
- Android Java 或 OpenCV 中有没有办法设置相机的白平衡,以便影响 OpenCV 返回的结果图像?
- 如果没有,是否有可用的算法(最好是在 Java 中)来修改 OpenCV 图像的白平衡?
- 是否有可用的算法(同样,最好是在 Java 中)将 RGB 颜色转换为可以更好地匹配人类感知的颜色之间距离的替代颜色空间?
谢谢