[英]Convert vector<Point3f> to CvMat* in OpenCV?
我正在使用C ++ OpenCV接口但需要使用尚未為接口重新實現的函數,因此使用舊約定(如果重要,則函數為cvFindExtrinsicCameraParams2
)
所以我需要將vector<Point3f>
轉換為CvMat*
...我該怎么做?
希望這有助於cv :: solvePnP()
cvFindExtrinsicCameraParams2
已重命名為solvePnP
。
我不確定結果應該是什么,但是如果我正確閱讀了文檔 ,則可以通過幾個步驟來轉換類型:
首先,為CvMat*
創建新的對應Mat
:
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);
最后調用你的功能
cvFindExtrinsicCameraParams2(...,&cvm,...);
但是,我沒有使用OpenMv的經驗,所以我只引用文檔。 這可能無法反映您希望它做什么,在這種情況下,您可能需要澄清您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.