我正在使用OpenCV和Python进行三维图像处理。把二维数组中的三维世界坐标
我可以从两个图像(左侧和右侧)的世界坐标(X,Y,Z)两点制作。
对于我剩余的程序: 有一个二维数组对应于左(或右)图像像素是很重要的。
他需要识别正常2D图像中的对象。当完成时,给出建立对象的x,y,z世界坐标。他确实给这个图像的(x,y)用这个(x,y)得到x,y,z世界坐标。
我的问题是:是否有一个特殊的功能,或者我该怎么做?
我正在使用OpenCV和Python进行三维图像处理。把二维数组中的三维世界坐标
我可以从两个图像(左侧和右侧)的世界坐标(X,Y,Z)两点制作。
对于我剩余的程序: 有一个二维数组对应于左(或右)图像像素是很重要的。
他需要识别正常2D图像中的对象。当完成时,给出建立对象的x,y,z世界坐标。他确实给这个图像的(x,y)用这个(x,y)得到x,y,z世界坐标。
我的问题是:是否有一个特殊的功能,或者我该怎么做?
你要使用此功能的差异的计算:
disp = stereo.compute(imgL, imgR).astype(np.float32)/16.0
当你想用3D的阵列指向你需要使用此功能,输出的是大小相同的图片。在每一个像素,你看到的x,y,z位置:
points = cv2.reprojectImageTo3D(disp, Q)
如果你选择了一个点,他给出了一个怪异的回报或没有,那么就没有斧头,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安装libglm-dev的
但你当然,你可以只创建一个点上安装GLM struct/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;
我不明白你的问题 - 有两个图像,你需要一个函数,它会在第一个图像(X,Y)中找到一个对象,并使用它从不同角度的图像中找到Z坐标?这些是什么样的图像? – MackM 2015-01-05 17:35:50
我在建筑物内进行线路检测;我有一台3D相机,因此我找到了这条线。仅用于应用程序,我需要一个二维数组,因此对于我找到的像素位置,我想查看二维数组中的x,y,z点。 – 2015-01-05 19:05:26