使用OpenCV将点从一个图像平面转换为另一个平面

使用OpenCV将点从一个图像平面转换为另一个平面,opencv,Opencv,我正在尝试校准一个相机,这样我就可以在相机图像上取一个任意点,并将其变换到另一个二维平面(房间的地板)上,这样我就可以相对于地板上的其他点准确地计算出物体在地板上的位置 到目前为止,我已经研究了几种使用OpenCV的不同方法,但我不清楚哪种方法是最好的 计算基本矩阵,将两个平面上的点关联起来。这种方法看起来很简单,但我不确定一旦我有了基本矩阵,如何对点进行变换 使用同形变换。似乎也有可能用不同的视角将两个平面上的点关联起来 计算透视变换 查找外部相机参数(似乎这种方法需要的信息比我现有的更多)

我正在尝试校准一个相机,这样我就可以在相机图像上取一个任意点,并将其变换到另一个二维平面(房间的地板)上,这样我就可以相对于地板上的其他点准确地计算出物体在地板上的位置

到目前为止,我已经研究了几种使用OpenCV的不同方法,但我不清楚哪种方法是最好的

  • 计算基本矩阵,将两个平面上的点关联起来。这种方法看起来很简单,但我不确定一旦我有了基本矩阵,如何对点进行变换
  • 使用同形变换。似乎也有可能用不同的视角将两个平面上的点关联起来
  • 计算透视变换
  • 查找外部相机参数(似乎这种方法需要的信息比我现有的更多)

  • 这里的正确方法是什么?这似乎是一个非常常见的问题。

    使用单应变换,如果提供4个间隔良好的点,findHomography生成的变换将非常适合您的需要。然后可以使用透视变换应用变换