Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ opencv中二维到三维的变换矩阵_C++_Opencv_3d_2d_Transformation - Fatal编程技术网

C++ opencv中二维到三维的变换矩阵

C++ opencv中二维到三维的变换矩阵,c++,opencv,3d,2d,transformation,C++,Opencv,3d,2d,Transformation,我有一些2D点集(X,Y)对应于3D点集(X,Y,Z)。 二维点是从摄像机中捕获的,三维点是根据世界基准的真实坐标。我想找到它们之间的转换矩阵,也就是说,如何将其他2D点转换为3D点 我尝试过getPespectiveTransform函数,但在这个问题上它不起作用 如何编写回归以找到此变换矩阵?您可以使用OpenCV的solvePnP,它提供旋转和平移矩阵。在这个答案中,您可以看到更详细的信息: 尽管需要注意的是,图像中的一个点对应于三维空间中的一条射线,因此你需要在这两条射线之间进行“变换”

我有一些2D点集(X,Y)对应于3D点集(X,Y,Z)。 二维点是从摄像机中捕获的,三维点是根据世界基准的真实坐标。我想找到它们之间的转换矩阵,也就是说,如何将其他2D点转换为3D点

我尝试过getPespectiveTransform函数,但在这个问题上它不起作用


如何编写回归以找到此变换矩阵?

您可以使用
OpenCV
solvePnP
,它提供旋转和平移矩阵。在这个答案中,您可以看到更详细的信息:

尽管需要注意的是,图像中的一个点对应于三维空间中的一条射线,因此你需要在这两条射线之间进行“变换”…你可以(基本上)找到三维点截取的射线并将其映射到二维空间中,但换一种方式并不容易。我的意思是,我设置了两个点,一个是二维(x,y),另一个是三维的(x,y,z)。我想找到这两个集合之间的关系,我不使用任何相机校准来转换。对不起,我的英语不好。这似乎是
solvePnP
(请参阅)的问题。不过,您需要知道相机矩阵和内部系数。