我有两个相同场景的图像,但略有不同这是因为我用两种不同的设备拍了这张照片,其中一种不是完全正确的。
这在照片的某个地方造成了一个小的视差问题。当你比较这两张照片时,它确实很轻微,但足以让我对那些照片做些什么感到不安。
我的问题是:怎样才能使产生的错误最小化?
我想的是:
在第一个图像中拾取X点,在另一个图像中拾取它们的对应点,然后创建一个将第一个点投影到另一个点的函数,然后将此函数应用于场景中的所有点。
像这样的:
c++ - 通过拾取点使视差误差最小化-LMLPHP
(红色点是拾取的点,其他颜色是场景中每个点的变形(可能不正确,因为我做得很快)。
这是个好办法吗?如果是的话,什么样的插值算法比较好呢?
如果没有,我是否可以使用其他算法来最小化错误?
谢谢!

最佳答案

是的,使用4对点可以计算透视变换矩阵,然后将该变换应用于整个图像。
opencv库包含针对这种情况的getPerspectiveTransform函数(也包含findHomography)。您也可以应用warpPerspective来更正图像。
Example

10-06 06:07