标签:declared SVM color been dong cpp home detector CvSVM
编译错误
In file included from /home/dong/color/color-detector/test.cpp:7:0:
/home/dong/color/color-detector/colorDetector.cpp:142:35: error: 'CvSVM' has not been declared
void trainSVM(vector<string> dirs,CvSVM& SVM){
^
/home/dong/color/color-detector/colorDetector.cpp: In function 'void trainSVM(std::vector<std::__cxx11::basic_string<char> >, int&)':
/home/dong/color/color-detector/colorDetector.cpp:179:5: error: 'CvSVMParams' was not declared in this scope
CvSVMParams params;
^
/home/dong/color/color-detector/colorDetector.cpp:180:5: error: 'params' was not declared in this scope
params.svm_type = CvSVM::C_SVC;
^
/home/dong/color/color-detector/colorDetector.cpp:180:26: error: 'CvSVM' has not been declared
params.svm_type = CvSVM::C_SVC;
^
/home/dong/color/color-detector/colorDetector.cpp:181:26: error: 'CvSVM' has not been declared
params.kernel_type = CvSVM::POLY;
^
/home/dong/color/color-detector/colorDetector.cpp:187:9: error: request for member 'train' in 'SVM', which is of non-class type 'int'
SVM.train(trainingData, labels, Mat(), Mat(), params);
^
/home/dong/color/color-detector/colorDetector.cpp: At global scope:
/home/dong/color/color-detector/colorDetector.cpp:191:25: error: 'CvSVM' has not been declared
int testSVM(Mat testImg,CvSVM& SVM){
^
/home/dong/color/color-detector/colorDetector.cpp: In function 'int testSVM(cv::Mat, int&)':
/home/dong/color/color-detector/colorDetector.cpp:194:20: error: request for member 'predict' in 'SVM', which is of non-class type 'int'
response = SVM.predict(testImg);
^
/home/dong/color/color-detector/test.cpp: In function 'int main()':
/home/dong/color/color-detector/test.cpp:18:5: error: 'CvSVM' was not declared in this scope
CvSVM SVM;
^
/home/dong/color/color-detector/test.cpp:19:5: error: 'SVM' was not declared in this scope
SVM.load("../modell.xml");
原因
3.4版本OpenCV的分类器代码有很多的改动,命名方式也有所不同
使用定义 cv::ml::SVM SVM;
// Train the SVM
Ptr<SVM> svm = SVM::create();
svm->setType(SVM::C_SVC);
svm->setKernel(SVM::LINEAR);
svm->setTermCriteria(TermCriteria(TermCriteria::MAX_ITER, 100, 1e-6));
svm->train(trainingDataMat, ROW_SAMPLE, labelsMat);
2.4.9版本的分类器定义如下:
// SVM model
class CV_EXPORTS_W CvSVM : public CvStatModel
{
public:
// SVM type
enum { C_SVC=100, NU_SVC=101, ONE_CLASS=102, EPS_SVR=103, NU_SVR=104 };
// SVM kernel type
enum { LINEAR=0, POLY=1, RBF=2, SIGMOID=3 };
// SVM params type
enum { C=0, GAMMA=1, P=2, NU=3, COEF=4, DEGREE=5 };
}
使用定义 CvSVM SVM;
标签:declared,SVM,color,been,dong,cpp,home,detector,CvSVM 来源: https://blog.51cto.com/fengyuzaitu/2467248
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。