我在this page上看到了这两个类似/相同的功能 在CvSVM::train标题下
C++: bool CvSVM::train(const Mat& trainData, const Mat& responses,
const Mat& varIdx=Mat(), const Mat& sampleIdx=Mat(), CvSVMParams
params=CvSVMParams() )
C++: bool CvSVM::train(const CvMat* trainData, const CvMat* responses,
const CvMat* varIdx=0, const CvMat* sampleIdx=0, CvSVMParams params=CvSVMParams() )
它们相同但只使用const Mat&
和其他CvMat*
。
我正在为OpenCV编写一个包装器,我想知道是否要完成它:
我的印象是C ++在OpenCV中使用了类和C结构,但如果有人能够阐明这一点我会很感激。
同样在OpenCV cpp samples文件夹letter_recog.cpp中,还有很多CvMat *。代码刚刚更新的Rs还没有更新?
Opencv docs说CvMat已被弃用。
答案 0 :(得分:1)
CvMat
版本仅用于连接旧代码。
CvSVM内部使用CvMat,因此上面的第一个函数只是将Mat参数转换为CvMat并将它们传递给第二个函数。
我不确定“为OpenCV编写包装器”是什么意思,但除非您明确需要使用CvMat,否则只使用Mat。一旦你在你的包装器中包含CvMat并且有人使用它,就很难在以后摆脱它。