2013-09-21 18 views
0

我正在实施一种通用的方法来处理具有相机校准功能的图像。OpenCV中的Remap或InitUndistortRectifyMap的默认值

我想要一个总是调用重映射的基本例程。 因此,即使我没有校准过的相机,我也想用默认值调用相同的例程,以便重新映射。

有人可以指导我将什么默认值传递到InitUndistortRectifyMap,当输出传递到重映射时将导致图像无法修改?

这将允许我有一个通用的方法,当相机未校准或保存的校准文件没有找到。

感谢您的任何帮助。

回答

0

嗯,我还没有在OpenCv site测试,但......从文档,您有以下公式:

initUndistortRectifyMap

所以,如果你设置:

fx = fy = f'x = f'y = 1 
cx = cy = c'x =c'y = 0 

也就是说,相机矩阵= 3x3标识,并且

R = 3x3 identity 

和零失真:

k1 = k2 = k3 = p1 = p2 = 0 

你应该结束了

mapx(u,v) = u 
mapy(u,v) = v 

也就是说,对于地图的每个点的原始坐标。

+0

我相信多年前我可以完成那个数学,但那是几年前。谢谢你的帮助。让我试试看它是否有效。再次感谢。 – user1805103