我現在用的是C++ OpenCV的接口,但需要使用還沒有被重新實現的接口函數,以便使用舊的約定(功能cvFindExtrinsicCameraParams2
如果它的事項)在OpenCV中將矢量<Point3f>轉換爲CvMat *?
所以我需要一個vector<Point3f>
轉換爲CvMat*
...我該怎麼做?
我現在用的是C++ OpenCV的接口,但需要使用還沒有被重新實現的接口函數,以便使用舊的約定(功能cvFindExtrinsicCameraParams2
如果它的事項)在OpenCV中將矢量<Point3f>轉換爲CvMat *?
所以我需要一個vector<Point3f>
轉換爲CvMat*
...我該怎麼做?
我不知道結果應該是什麼,但如果我讀documentation正確的,你可以把你鍵入幾個步驟:
首先,創建新的對口Mat
到CvMat*
:
std::vector<Point3f> myVec = ...;
//template<typename _Tp> explicit Mat(const vector<_Tp>& vec, bool copyData=false);
Mat m = Mat(myVec);
然後使用Mat
的類型轉換操作符:
//operator CvMat() const;
CvMat cvm = static_cast<CvMat>(m);
終於打電話給你functi在
cvFindExtrinsicCameraParams2(...,&cvm,...);
但是,我沒有OpenMv的經驗,所以我只是引用文檔。這可能並不能反映你想要做什麼,在這種情況下,你可能需要澄清你的問題。
希望這有助於cv::solvePnP()
cvFindExtrinsicCameraParams2
已更名爲solvePnP
。
Upvoted正是我所期待的。 – Cheetah 2012-02-17 12:48:24
技術上正確的答案,雖然我會用上面的。謝謝。 – Cheetah 2012-02-17 12:48:48
// @本:我肯定會建議你這樣做! – bitmask 2012-02-18 04:37:54