Opencv,具有已知旋转和平移的逆透视映射

时间:2014-05-13 16:35:52

标签: opencv transform perspective homography

我需要从所需的角度获得图像的新视图(鸟眼视图的一般情况)。想象一下,我们通过已知的旋转和转换来改变相机的位置。什么是同一场景的新形象?

我们可以用另一种方式说:我们如何通过旋转和平移矩阵来计算单应矩阵

以下是示例图片:

sample image http://oi60.tinypic.com/2a98t3b.jpg

我真的很感激任何帮助!

1 个答案:

答案 0 :(得分:0)

这是我作为PlayChessWithAWebCam的一部分创建的一些示例代码

请参阅https://github.com/WolfgangFahl/play-chess-with-a-webcam/blob/master/examples/opencv/warp.py

输入:Chessboard

命令:

var basic_angles = [0,30,45,60,90,120,135,150,180,210,224,240,270,300,315,330];

var separation = 20;  // distance between each point
var num_points;       // number of points per angle

for (var angle = 0; angle < basic_angles.length; angle++) {
  var theta = Math.PI/180.0*basic_angles[angle];
  var cos_t = Math.cos(theta);
  var sin_t = Math.sin(theta);
  for (var point = 0; point < num_points; point++) {
    var x = centerX + distance * point * cos_t;
    var y = centerY + distance * point * sin_t;
    cxt.fillText("o",x,y);
  }
}

结果: Warped image

该代码最初来自https://www.pyimagesearch.com/2014/08/25/4-point-opencv-getperspective-transform-example/