2012-02-16 51 views
1

我現在用的是C++ OpenCV的接口,但需要使用還沒有被重新實現的接口函數,以便使用舊的約定(功能cvFindExtrinsicCameraParams2如果它的事項)在OpenCV中將矢量<Point3f>轉換爲CvMat *?

所以我需要一個vector<Point3f>轉換爲CvMat* ...我該怎麼做?

回答

0

我不知道結果應該是什麼,但如果我讀documentation正確的,你可以把你鍵入幾個步驟:

首先,創建新的對口MatCvMat*

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的經驗,所以我只是引用文檔。這可能並不能反映你想要做什麼,在這種情況下,你可能需要澄清你的問題。

+0

技術上正確的答案,雖然我會用上面的。謝謝。 – Cheetah 2012-02-17 12:48:48

+0

// @本:我肯定會建議你這樣做! – bitmask 2012-02-18 04:37:54

3

希望這有助於cv::solvePnP()

cvFindExtrinsicCameraParams2已更名爲solvePnP

+0

Upvoted正是我所期待的。 – Cheetah 2012-02-17 12:48:24