计算K矩阵。我提出了一种巧妙的方法,利用自由女神像进行平面相机标定。注意到她站在一个平台上,我们假定这是一个正方形。现在我们将使用这个正方形进行一个粗略的相机标定。假设没有镜头畸变,K 的简化形式为 K = [f,0,cx;0,f,cy;0,0,1]。这意味着纵横比为1(通常对于数码相机而言大致如此),主点位于图像中心:cx=w/2,cy=h/2,其中w和h分别是图像的宽度和高度。尝试估计镜头畸变和更复杂的K矩阵会非常困难。因为图像边缘都大致呈直线,所以可以忽略镜头畸变。
现在我们要计算f值。这将使用基于平面的相机标定来完成。这方面的著名参考资料是Zhang: A Flexible New Technique for Camera Calibration,位于https://www.microsoft.com/en-us/research/publication/a-flexible-new-technique-for-camera-calibration/
具体操作是先在I2中单击自由女神像平面的四个可见角落的四个点。我们称这些点为p1、p2、p3和p4,从左下角开始按顺时针方向标记。然后可以使用OpenCV的相机标定方法从这4个角点得到K的估计值。重要的是我们之所以能够这样做是因为我们知道平台是正方形。如果想深入了解基于平面的标定,请阅读张的论文。如果您有困难,我可以在几分钟内完成并发送K矩阵。
最后,这种方法的一个小变化是使用原始图像进行标定(假设您仍然有它)。原因是H可能会使I2产生畸变,使其纵横比不接近1且主点不靠近图像中心。如果使用原始图像进行标定(我们将矩阵称为K1),则应使用K=HK1。
warpPerspective
函数。https://docs.opencv.org/3.0-beta/modules/imgproc/doc/geometric_transformations.html#warpperspective
因为我们正在讨论纯旋转,没有相机平移,所以您确实可以通过使用单应性来生成与此旋转对应的图像。但是,要找到作为轴方向和旋转角度函数的单应性参数,您需要知道相机内部参数,主要是焦距。findHomography
函数。或者您可以找到匹配点,然后计算单应性。