簡體   English   中英

未在此范圍內聲明CvSVM錯誤

[英]CvSVM was not declared in this scope Error

我正在使用OpenCV 3.0.0

我已經包含了所有這些庫和命名空間,但我仍然得到“CvSVM未在此范圍內聲明”的錯誤

#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include "opencv2/imgcodecs.hpp"
#include <opencv2/highgui.hpp>
#include <opencv2/ml.hpp>

using namespace cv;
using namespace cv::ml;
using namespace std;

當我運行此代碼時:

CvSVM svm;

我收到了錯誤。

在OpenCV 3.0中, CvSVM已重命名為SVM並移至命名空間cv::ml (實際上在先前版本中, SVM也是CvSVM的typedef)。

由於SVM是一個抽象類,因此無法實例化它。 你需要調用SVM::create()

所以你需要這樣做:

cv::Ptr<cv::ml::SVM> svm = cv::ml::SVM::create();

或者干脆:

using namespace cv;
using namespace cv::ml;
...
Ptr<SVM> svm = SVM::create();

你不再需要CvSVMParams了。 只需將參數直接設置為svm

Ptr<SVM> svm = SVM::create();
svm->setType(SVM::C_SVC);
svm->setKernel(SVM::RBF);
// etc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM