2016-04-27 40 views
0

我想要做的是匹配線性軸系統(軸座標)與照片的圖像像素。首先,我想使用對應的2D軸座標(Z = 0平面中的3D座標)使用圓形網格來校準相機。這一次完成,相機穩定。稍後,我想在圖像中查找輪廓並獲取其相應的座標軸。在Python中,我使用:opencv - 簡單的2D <-> 2D變換

ret, corners = cv2.findCirclesGrid(gray, (16,8)) 
imgpoints.append(corners) 
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1],None,None) 

在objpoints我把相應的座標。例如。

objp[:,:2] = np.mgrid[0:16,0:8].T.reshape(-1,2) 
objpoints.append(objp) 

的代碼是從本教程或多或少:http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_calib3d/py_calibration/py_calibration.html

我知道的比我可以使用projectPoints來獲得圖像像素軸座標的點。但我想做相反的處理,並從圖像像素中獲取軸座標。我在這裏閱讀了很多有關該主題的stackoverflow,但是我沒有找到明確的答案。從想要的我明白的是,我必須不破壞我的照片,並使用solvePnP來獲取相機座標。我不得不承認,我不明白如何解釋這些步驟。我不確定哪個圖像應該不失真(我的圓形網格用於校準或稍後處理圖像)以及如何將它與solvePnP結合使用。或者甚至有可能在不破壞完整圖像的情況下不破壞輪廓點?我也不知道如何從solvePnP的結果中獲得圖像像素的位置。此外,我需要通過至少4點解決PNP,但我想要的是轉換單點。也許我理解錯了什麼,我需要做一些完全不同的事情。 我將非常感謝您的幫助。

回答

0

好的,對不起,夥計們。問題解決了。我明白整個概念是錯誤的。我已經從校準程序中取出了相機姿態。我計算了一個射線z = 0平面的射線,現在我得到了正確的3D點。在做這件事之前,我還使用了非真實點,它完美地工作。也許這也可以幫助有同樣問題的人。