由于我正在尝试计算NDVI,这需要我从红外摄像机和普通彩色摄像机获得对齐的图像,因此我想进一步增强红外捕获和颜色捕获之间的对齐。
这两个摄像机(彩色摄像机和红外摄像机)实际上都是我使用的Intel RealSense摄像机的一部分,因此它们始终保持固定的距离。我正在尝试自动在红外摄像机捕获的每个帧与彩色摄像机捕获的帧之间执行图像配准。
要使用openCV和Python做到这一点,我使用ORB功能查找公共点,并使用RANSAC算法排除异常值并生成单应性矩阵,然后使用cv.warpPerspective将其应用于红外捕获,以便将其对齐与色彩捕捉。我发现这样做会导致图像在帧之间晃动和摇摆。由于两个摄像机之间的差异是固定的物理常数,因此我简单地对多次重复的单应性矩阵求平均,直到收敛为稳定的矩阵。这样产生了很好的结果!但这并不完美...
我注意到图像的相对特征未对齐。例如,背景中有一个支柱。当我将手指放在前景上以使其仅“触摸”彩色捕获中的支柱时,手指与红外捕获中的支柱之间的距离很小但不可忽略(约20像素,有时更多) 。要使图像完美对齐,将需要沿y轴(可能还有其他东西)进行微小(右手)旋转。在对单应性矩阵的每个条目进行少量增加和减少并可视化效果之后,在我看来,没有可能的单应性矩阵可以解决此问题!
左:彩色,中:对准红外,右:原始红外
我希望图像对齐方式的差异可以忽略不计,以使NDVI值不会偏斜。
是否可以使用更完整的解决方案,使来自摄像机的红外图像与彩色图像的摄像机相距固定距离,从而使其完全对准?