opencv – 展开单应矩阵的失真

我有两组相应的匹配,我想在它们之间计算Homography Matrix.但是,我发现这些点之间的转换不能仅使用Homography Matrix建模.我通过观察原始点集中的一些线未表示为第二组中的线来计算.

例如:

《opencv – 展开单应矩阵的失真》

以前的状态实际上非常极端,失真远小于此.它通常是失真,因为第一组点是从扫描仪拍摄的图像中提取的,其中另一组点是从手机拍摄的照片中提取的.

问题:

如何扩展或推广Homography矩阵以使其包含此案例?或者换句话说,我想要一个非线性保留转换模型来使用它而不是Homography Matrix,Any Suggestion?

如果有可以使用的东西,首选P.S OpenCV库.

编辑:

消除失真可能不是我的选择,因为照片有点复杂,我没有相同的相机总是加上我应该处理来自未知来源的图像(后端与前端分开).但是,我有一个参考,它是规划器和具有透视扭曲效果的查询,我想在找到相应的配对后纠正它.

最佳答案 如果您提供了一些图像示例会更好,这样我们就能更好地理解您的情况.从描述看来你似乎正在处理
camera distortion.

典型的方法是执行一次相机校准,然后对每个帧进行无失真处理,最后使用直线看起来笔直的图像.使用OpenCV可以完成所有这些任务,请考虑上面的链接.

如果您无法执行摄像机校准来估计失真 – 您无能为力.尝试在未经校正的图像上计算和应用单应性 – 如果相机没有广角镜头,这应该看起来不错(例如考虑this的情况)

点赞