将 3D 世界坐标放入 2D 数组
put 3D world coordinates in 2D array
我正在使用 OpenCV 和 Python 进行 3D 图像处理。
我可以从两个图像(左和右)中的两个点制作一个世界坐标(X,Y,Z)。
对于我剩余的程序:
有一个对应于左(或右)图像像素的二维数组很重要。
他需要识别普通二维图像中的物体。完成后给出创建对象的 x、y、z 世界坐标。他确实给出了图像的 (x, y) 并用这个 (x, y) 得到了 x, y, z 世界坐标。
我的问题是:它有什么特殊功能吗?我该怎么做?
如果你想使用 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
但是在您的课程中,您可以只创建一个点结构 / class 并使用它。
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
当您需要使用此函数的 3D 点数组时,输出与图像大小相同。在每个像素上,您都会看到 x、y、z 位置:
points = cv2.reprojectImageTo3D(disp, Q)
如果您选择了一个点,而他给出了一个奇怪的 return 或什么都没有,那么当然没有该点可用的 x,y,z 位置。
我正在使用 OpenCV 和 Python 进行 3D 图像处理。
我可以从两个图像(左和右)中的两个点制作一个世界坐标(X,Y,Z)。
对于我剩余的程序: 有一个对应于左(或右)图像像素的二维数组很重要。
他需要识别普通二维图像中的物体。完成后给出创建对象的 x、y、z 世界坐标。他确实给出了图像的 (x, y) 并用这个 (x, y) 得到了 x, y, z 世界坐标。
我的问题是:它有什么特殊功能吗?我该怎么做?
如果你想使用 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
但是在您的课程中,您可以只创建一个点结构 / class 并使用它。
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
当您需要使用此函数的 3D 点数组时,输出与图像大小相同。在每个像素上,您都会看到 x、y、z 位置:
points = cv2.reprojectImageTo3D(disp, Q)
如果您选择了一个点,而他给出了一个奇怪的 return 或什么都没有,那么当然没有该点可用的 x,y,z 位置。