我目前在Java中使用OpenCV,但如果需要,我可以切换到其他版本。
我在世界坐标系中有一组已知点,在图像坐标系中也有已知点。这些点不是用校准目标获得的。它们可能非常不准确。我可以假设它们接近共面。
我正试图从中获得单应性和透镜校正。这台相机很便宜,所以镜头有问题。
我一直在努力让OpenCV函数在没有校准目标的情况下帮助我。有很多类似的问题被问到(我发现最相似的是这个:在Matlab中使用单个校准图像校正镜头失真),但没有一个完全符合要求。
我想我可以反复地找到单应性,纠正,找到镜头失真,纠正并重复,直到我得到一个好的结果。即便如此,我似乎无法在OpenCV中单独完成这些操作。
我是OpenCV的新手,所以请温柔一点。
openCV具有此功能
相机校准
函数"calibrateCamera"将世界坐标和相应的图像坐标作为输入,并返回相机固有(也是失真)
至少需要"看到"已知共线的特征,无论它们是否为共面点的图像。这是因为,根据定义,为了估计(和消除)透镜的径向失真,需要最小化的误差信号是共线点与直线的偏差。
另请参阅此答案。