3 python opencv image-processing python-imaging-library
我拍了一些照片,试图将它们映射到Google Maps的卫星图像上。通常,我只需要4对点就可以有效地应用透视变换。但是,由于两个原因,这在我的情况下没有用:
结果,我想使用4个以上的点对透视变换进行最小二乘估计,以便获得更好的拟合度。但是,我不知道该怎么做。
我为此使用了带有PIL和/或OpenCV的Python,因此使用这些库的解决方案会有所帮助。
同构比仿射稍微强大一点(它不保留平行线)。它需要4点或更多的点(findHomography使用RANSAC并使用线性解决方案选择其最佳的内线集;然后在最小二乘意义上对距离残差进行非线性优化)。您必须提供尽可能多的匹配项(> = 4),但要避免出现太多不正确的匹配项。
最小二乘的原始统计模型是ML(最大似然),该模型在存在噪声的情况下找到最佳解决方案。RANSAC补偿异常值的存在。尽管算法中没有任何东西可以补偿系统偏差。如果不能将它们建模为噪声或离群值,则解决方案定义不明确。如果内部值(在排除外部值之后)少于4,则找不到解决方案。