在实时 OpenCV 应用中去除红外相机图像中的太阳光反射

Ali*_*eza 5 opencv image-processing computer-vision

我正在使用 OpencV 开发速度估计和车辆计数应用程序,并使用红外摄像头。

我面临太阳光反射的问题,这会导致图像中出现垂直白色区域或线条,并对我的车辆检测产生不良影响。

我想要一种速度非常快的方法,因为它是一个实时应用程序。

在此输入图像描述

在此输入图像描述

Fra*_*ari 3

这些图像中的垂直条纹缺陷称为“晕染”,当 CCD 中的一个或几个孔饱和到将电荷溢出到同一列中的相邻孔上时,就会发生这种情况。此外,您还具有“常规”饱和度,反射区域周围没有光晕。

如果可以的话,最好的解决方案是控制曝光(更快的快门时间,或者关闭镜头光圈(如果有))。这将减少但不能消除喷霜的发生。

高光溢出总是发生在一个恒定的方向(垂直或水平,取决于您的图像方向),并且通常会完全填充一列或几个连续的列。因此,您可以通过在相反维度进行大量子采样并寻找同一列中重复的最大值来廉价地检测它。例如,在图像中,您可以在图像高度上分布的 10 行左右的同一列中查找饱和最大值。

一旦检测到开花柱,您可以在它们周围的一个小带中跟踪它们,以尝试找到饱和区域。请注意,饱和度并不一定意味着动态范围末端的值(例如,8 位图像为 255)。您的传感器可能会在 A/D 转换分配的值(例如 252)处完全饱和。饱和仅仅意味着图像响应相对于输入亮度变得恒定。