展开单应矩阵以进行失真

时间:2015-12-16 14:05:35

标签: opencv computer-vision transformation homography

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

例如:

enter image description here

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

问题:

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

如果有可以使用的东西,则优先使用P.S OpenCV库。

修改

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

1 个答案:

答案 0 :(得分:2)

如果您提供了一些图片示例会更好,这样我们就能更好地理解您的情况。从描述中可以看出,您正在处理camera distortion

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

如果您无法执行相机校准来估算失真 - 您无法做很多事情。尝试在未经校正的图像上计算和应用单应性 - 如果相机没有广角镜头,这应该看起来不错(例如this例如)