gpt4 book ai didi

c++ - CvSVM 未在此范围内声明错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:01:14 24 4
gpt4 key购买 nike

我正在使用 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(实际上在之前的版本中也是如此 SVMCvSVM 的类型定义。

由于 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

关于c++ - CvSVM 未在此范围内声明错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33397429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com