我目前正在Android上使用OpenCV开发道路标志检测应用程序,并发现在实时处理帧时,我的相机经常会关注更亮的图像部分,例如天空,以及下面的所有内容(道路,树木和标志)变得黑暗。因此,我的应用程序无法检测到这些迹象,因为在这种特殊情况下它们太暗。 有没有人有这样的问题,找到了合适的解决方案?如果是这样,我会很感激任何线索(特别是在实时处理中具有良好的性能)。
答案 0 :(得分:1)
作为预处理,您可以应用强度标准化。作为特定示例,可以应用直方图均衡: http://docs.opencv.org/doc/tutorials/imgproc/histograms/histogram_equalization/histogram_equalization.html
使用java中的示例代码: http://answers.opencv.org/question/7490/i-want-a-code-for-histogram-equalization/?answer=11014#post-id-11014
请注意,此类附加步骤可能会降低整体检测操作速度。要提高整体速度,您可以通过天空检测来减少您感兴趣的区域。
答案 1 :(得分:1)
你说相机会聚焦在天空等明亮的物体上。 在大多数现代手机中,您可以设置自动对焦计算中包含的图像区域。由于天空始终位于图像的上半部分(在您处理电话方向后),您可以将对焦区域设置为图像的最低半部分。这将首先解决问题。
但是,如果您认为相机没有聚焦在明亮的物体上,而是使用白色物体进行白平衡,则可以采用与聚焦所述相同的方式解决此问题。如果这没有帮助,请尝试直方图均衡和伽马校正技术。这有助于提高对比度