我正在使用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