嘈杂图像中的特征检测
-
28-10-2019 - |
题
我已经建立了一个带有网络摄像头和功能匹配的成像系统,以便在我四处移动摄像头时使用。我可以跟踪相机的运动。我正在做类似于此处,除了网络摄像头框架作为输入。
它对于“好”图像确实非常有效,但是在非常低的光线下拍摄图像时,会出现很多噪点(相机高增益),并且干扰了特征检测和匹配。基本上,它不会检测到任何好的功能,而当它检测到时,就无法在帧之间正确匹配它们。
解决方案
我认为相位相关将是您最好的选择。它旨在告诉您两个图像之间的相移(即平移)。它比特征检测更具弹性(但不能幸免),因为它在频率空间中运行。而特征检测器在空间上运行。另一个好处是,与特征检测方法相比,它非常很快。我在OpenCV干线中有一个实现,该实现的亚像素精度位于此处。
但是,除了中间的折痕之外,图像几乎没有任何“特征”,因此即使相位相关也可能会带来一些麻烦。可以将其视为试图在暴风雪中检测翻译。如果您只能看到白色,则完全无法说出您已经翻译了,因此术语停电。在您的情况下,该算法可能会遭受“ Greenout”问题:)
您可以调整相机设置以在弱光条件下更好地工作。您是否完全打开了虹膜?可以使用较低的帧率吗?设置更长的曝光时间将使相机能够收集更多的光线,从而以增加运动模糊为代价为您提供更多功能。或者,如果默认光线是您的默认环境,则可能需要为此设计的东西,例如红外热像仪,但这可能会很昂贵。除此之外,您的朋友还有一个大镜头和长时间曝光:)
直方图均衡可能对改善图像对比度很有帮助。但是,有时它只会增强噪音。 OpenCV具有称为 equalizeHist 。对于更本地化的实现,您需要查看对比受限的自适应直方图均衡化或 CLAHE 短的。 此处是一篇不错的文章。 此页上有一些漂亮的示例和一些代码。 / p>