2012-06-25 146 views
3

我想通過使用opencv來估計已知3D對象的姿態。如果給出3D模型的點和它們在圖像上的相應點,我可以使用solvePnP。我的問題是:我如何才能找到知道的3D模型與其在圖像上的投影之間的對應關係? 謝謝你基於模型的姿勢估計

+0

你是什麼意思通信?你在談論增強現實嗎? –

+0

我沒有明確地談論AR。 AR可以是您需要姿態估計的用例之一。我的意思是說,知道3D模型的哪個點投影到圖像上的哪個點。例如在這個博客。 http://www.morethantechnical.com/2010/03/19/quick-and-easy-head-pose-estimation-with-opencv-w-code/ 3D模型的點是已知的,這個3D模型的點投影到圖像上的圖像也是已知的。我希望,我能解釋得很好。 –

回答

1

poseMatrix = solvePnP(objectPoints,imagePoints);

imagePoint_computed = objectPoints [I] * poseMatrix * cameraMatrix

找到第j處

imagePoints [j]的〜= imagePoint_computed。

objectPoints [j]和imagePoints [i]是相應的點。

+0

但不解決PNP必須有相應的順序objectpoints和imagepoint?這是問題,他不知道哪個圖像點對應於哪個對象點。你可以通過循環嘗試不同的對應關係,但這不可靠。 – hokiebird

3

一旦你在3D模型中的點和場景中的點有一些匹配,你必須應用cv :: findHomography()。此函數計算將3D模型中的任何點投影到場景中的矩陣。實際上,單應計算只需要4次匹配。