Math 摄像机模型已知且固定时的鱼眼畸变校正
我有一个位置固定的摄像机,我们知道摄像机的细节。我读到photoshop可能会对不同相机模型的逆变换进行硬编码,然后逆变换将只是一个查找表Math 摄像机模型已知且固定时的鱼眼畸变校正,math,geometry,computer-vision,projection,camera-calibration,Math,Geometry,Computer Vision,Projection,Camera Calibration,我有一个位置固定的摄像机,我们知道摄像机的细节。我读到photoshop可能会对不同相机模型的逆变换进行硬编码,然后逆变换将只是一个查找表 有谁能指导我如何构造那个查找表吗。我认为我需要有一个扭曲的和它的未扭曲的版本与我在一起。我也不知道该怎么做。如果我从完全相同的位置拍摄普通照片和鱼眼镜头照片,是否正确?拍摄两张具有不同特征点的平面照片。一个失真尽可能小,另一个有鱼眼失真。对于每个特征点,请注意未变形(x,y)和变形(x,y)坐标 然后需要在不规则点上使用一些2D插值方案。您可以考虑使用径向基
有谁能指导我如何构造那个查找表吗。我认为我需要有一个扭曲的和它的未扭曲的版本与我在一起。我也不知道该怎么做。如果我从完全相同的位置拍摄普通照片和鱼眼镜头照片,是否正确?拍摄两张具有不同特征点的平面照片。一个失真尽可能小,另一个有鱼眼失真。对于每个特征点,请注意未变形(x,y)和变形(x,y)坐标 然后需要在不规则点上使用一些2D插值方案。您可以考虑使用径向基函数法或Shepard的逆距离加权法。请记住,将分别对x和y进行插值,并将其视为(x,y)的两个函数
一旦建立插值,畸变图像中的任何像素(具有坐标(X,Y))将引导您找到未畸变图像中相应的(X,Y)。您将把所有预计算的(x,y)存储在一个巨大的LUT中。为了避免在不规则点上插值的可怕成本,我建议您定义一个简单的全局模型,例如低阶的二元多项式(例如3,具有10个自由度)。您将使用现有的点对应,通过最小二乘法拟合模型。这将是一个近似值,而不是真正的插值 经典理论使用围绕相机光轴建立的模型,在靠近图像中心的某个位置,通常具有圆对称性。这导致了一个复杂的非线性最小二乘问题 在我的建议(多项式)中,模型约束较少,方程保持线性
你不会放弃对每一个像素的变形模型的评价,即使增量计算可以节省几个周期。
你的问题有两个单独的问题要考虑:
然而,在通常的实践中,透镜设计和制造的细节是不可用的,必须通过对图像的测量来估计失真。或者,正如您所注意到的,您可以利用其他人所做的工作,查阅已知镜头的畸变参数模型目录(或者使用嵌入此类目录的应用程序) 您链接的文章作者提供的算法不需要查找表。它只需要两个可调参数。是的,但这是一个通用算法,有解决方案。我的问题是,我也知道摄像机的细节和位置。我实际上不想要一个通用的算法,因为它会保留一些失真。我想要一个基于查找表的方法,可以近乎完美(我想,因为我看到了photoshop的质量和它的非常好)。关于那篇文章,作者写道,“用户只是从列表中选择他们的设备,软件使用一个硬编码值表应用一个校正算法。”我想象查找表只是一个点网格,你在每个点上都放上x和y数字,对应于你想要那个特定像素移动的数量和方向。中心的点将始终为0,0。您可以在网格点之间插入像素的位置。您可以使用鱼眼镜头拍摄与相机纵横比相同的网格,以便网格的外缘与图片的外缘对齐。然后,在外缘网格与图片外缘对齐的距离处,使用普通镜头拍摄另一张照片。请记住,我们仍然不知道Photoshop的算法,所以所有这些都可能是错误的。你必须扫描每张照片以找到每一行点,并将每个点的位置与原始点进行比较。这不是一个容易的问题,是吗?你链接的原始文章的作者所写的简单算法开始听起来更有吸引力了。鱼眼扭曲对我来说是一个相对容易用简单的数学建模的问题。你说的不规则点是什么意思?假设我有100对未变形和变形的点。图像的总像素数为256*256。你的意思是我需要对256*256-100点进行插值以获得像素级的对应关系吗?我是指任意排列的点,而不是在直网格上。这使得国际米兰