从2D图像计算3D空间中平面上的角度

问题描述 投票:1回答:1

我有2个输入图像,其中(静态)相机的角度未知。我设法使用opencv提取边缘和兴趣点。但是我一直无法从图像中计算真实角度。

根据图像#1,我需要计算相对于平面的相机角度。我知道在平面上形成等边三角形(60度角)的3个点。三角形的中心点也是平面的中心点。但是,图像上的平面中心点被另一个对象覆盖。

enter image description here

从图像#2,我需要计算平面上的对象(点C)到3个点之一和平面中心点(= A到B线)的真实角度。

enter image description here

我如何计算真实角度β,就像照相机与平面没有角度?

更新:

我正在https://docs.opencv.org/3.4/d9/d0c/group__calib3d.html寻找问题的解决方案有很多功能,但是我不知道如何将它们应用于我的特定问题。

[具有使用具有关键点的两个图像来计算同构图像的功能,但是我没有从不同相机角度拍摄场景的图像。

然后有cv::findHomography,其中Finds a perspective transformation between two planes。我知道4个原始点,但是我的4个原始点是什么?

[我正在查看的另一个是cv::solvePnPcv::solvePnPRansac,但我又只知道平面上的4个源点。我不知道他们的3D对应点。

我想念什么?

@@ Micka:感谢您的输入。我有4个用于处理图像的点(3个静态基点+ C点的对象)。我可以假设这些点都位于z = 0的平面上。但是我没有第二个平面的坐标,也没有对应的3D点的(x,y)。

numpy opencv image-processing image-rotation
1个回答
0
投票

您的描述未明确说明,但是如果您假设AB线段将三角形的底数二等分,那么平面与其图像之间便有4点对应关系,因此可以使用cv :: findHomography。

© www.soinside.com 2019 - 2024. All rights reserved.