使用多个静止图像校正GoPro的桶形失真?

时间:2014-02-21 23:39:01

标签: java opencv image-processing photogrammetry

我有一个大型的2000帧系列夜空图像取自gopro hero3。 这本身就很愚蠢,因为GoPros的光线性能很差。我对图像进行了一些浅色数学运算,并在2小时内确定了星形位置“弧线”。

有没有办法,使用星球运动来解决镜头失真和星形旋转?也许使用OpenCV或桶形失真校正公式?

我觉得应该有一种通用的方法来解决像素偏移方程,无论镜头失真和星形旋转之间的相互作用如何。任何想法?相信我拥有所需的所有信息,大约250个星的30k数据点:(star_id,time,x,y),覆盖率很高,请参阅快速图形图像下方。

star tracks

2 个答案:

答案 0 :(得分:1)

要计算失真参数,您需要有一个特定的场景。只要有足够的积分并不意味着它们是有用的。在您的情况下,它甚至需要额外的数学工作来计算时间校正的对象坐标。

另一方面,您并不需要使用数据集来计算失真参数(DP)。使用这款相机,您可能无法获得比~1/20像素更好的精度,因为它根本无法测量。

我建议创建一个好的校准场景并校准相机,在这里你可以计算焦距,偏移(x0,y0)和立方函数A1,A2,A3中的至少三个桶形失真参数。之后,您可以将桶参数应用于图像。

请注意,校准方案会产生(始终)本地DP参数,该参数最适合当前场景,而不适用于夜间场景。但由于凸轮/镜头组合不是为了精确测量而制作的,因此当您从夜景中计算DP时,您将无法获得更好的效果。

答案 1 :(得分:0)

如果您只需要纠正相机失真(并且不想使用其他困难的方法,因为"科学很漂亮"),您可以使用camera calibration from openCV