我正在使用C ++ OpenCV接口但需要使用尚未为接口重新实现的函数,因此使用旧约定(如果重要,则函数为cvFindExtrinsicCameraParams2
)
所以我需要将vector<Point3f>
转换为CvMat*
...我该怎么做?
答案 0 :(得分:3)
希望这有助于cv::solvePnP()
cvFindExtrinsicCameraParams2
已重命名为solvePnP
。
答案 1 :(得分:0)
我不确定结果应该是什么,但是如果我正确阅读了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);
最后调用你的函数
cvFindExtrinsicCameraParams2(...,&cvm,...);
但是,我没有OpenMv的经验,所以我只是引用文档。这可能无法反映您的意图,在这种情况下,您可能需要澄清您的问题。