Python 将三维世界坐标放置在二维阵列中
我正在使用OpenCV和Python进行3D图像处理 我可以从两幅图像中的两个点(左和右)生成一个世界坐标(X,Y,Z) 对于我剩余的课程: 具有与左(或右)图像像素相对应的2D阵列非常重要 他需要识别普通2D图像中的对象。完成后,给出所创建对象的x、y、z世界坐标。他给出了图像en的(x,y),这个(x,y)得到了x,y,z世界坐标Python 将三维世界坐标放置在二维阵列中,python,opencv,3d,Python,Opencv,3d,我正在使用OpenCV和Python进行3D图像处理 我可以从两幅图像中的两个点(左和右)生成一个世界坐标(X,Y,Z) 对于我剩余的课程: 具有与左(或右)图像像素相对应的2D阵列非常重要 他需要识别普通2D图像中的对象。完成后,给出所创建对象的x、y、z世界坐标。他给出了图像en的(x,y),这个(x,y)得到了x,y,z世界坐标 我的问题是:有没有一个特殊的功能,或者我如何才能做到这一点 如果您想使用glm,可以尝试以下方法: glm::vec3 array[image_resolutio
我的问题是:有没有一个特殊的功能,或者我如何才能做到这一点 如果您想使用glm,可以尝试以下方法:
glm::vec3 array[image_resolution_y][image_resolution_x];
array[0][0][0] = x;
array[0][0][1] = y;
array[0][0][2] = z;
在Linux中,您可以使用apt-get-install-libglm-dev安装glm
当然,您可以创建一个点结构/类并使用它
struct Point3D
{
float x;
float y;
float z;
};
Point3D array [image_resolution_y][image_resolution_x];
array[0][0].x = x;
array[0][0].y = y;
array[0][0].z = z;
您必须使用此函数计算视差:
disp = stereo.compute(imgL, imgR).astype(np.float32) / 16.0
如果希望阵列包含使用此功能所需的三维点,则输出与图像大小相同。在每个像素上都可以看到x、y、z位置:
points = cv2.reprojectImageTo3D(disp, Q)
如果你选择了一个点,他给出了一个奇怪的返回或者什么都没有,那么这个点就没有可用的x,y,z位置 我不明白你的问题-有两个图像,你需要一个函数,在第一个图像(X,Y)中找到一个对象,并使用它从不同角度从图像中找到Z坐标?这些是什么样的图像?我在一栋大楼里做测线;我有一个3D相机,所以左边的图像我找到了线。仅对于应用程序,我需要一个2D数组,因此对于我找到的像素位置,我希望在2D数组中查找x、y、z点。