- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想创建一个 Opencv CvSVM 对象的 std::vector
。当我编译这段代码时:
typedef vector<CvSVM> svm_vec;
svm_vec svm_data = svm_vec();
发生错误:
In file included from 2dpca.cpp:5:0:
/usr/include/c++/4.8/bits/stl_construct.h: In instantiation of ‘void std::_Construct(_T1*, const _T2&) [with _T1 = CvSVM; _T2 = CvSVM]’:
/usr/include/c++/4.8/bits/stl_uninitialized.h:75:53: required from ‘static _ForwardIterator std::__uninitialized_copy<_TrivialValueTypes>::__uninit_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const CvSVM*, std::vector<CvSVM> >; _ForwardIterator = CvSVM*; bool _TrivialValueTypes = false]’
/usr/include/c++/4.8/bits/stl_uninitialized.h:117:41: required from ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const CvSVM*, std::vector<CvSVM> >; _ForwardIterator = CvSVM*]’
/usr/include/c++/4.8/bits/stl_uninitialized.h:258:63: required from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const CvSVM*, std::vector<CvSVM> >; _ForwardIterator = CvSVM*; _Tp = CvSVM]’
/usr/include/c++/4.8/bits/stl_vector.h:316:32: required from ‘std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = CvSVM; _Alloc = std::allocator<CvSVM>]’
2dpca.cpp:79:29: required from here
/usr/local/include/opencv2/ml/ml.hpp:553:5: error: ‘CvSVM::CvSVM(const CvSVM&)’ is private
CvSVM(const CvSVM&);
^
In file included from /usr/include/c++/4.8/bits/stl_tempbuf.h:60:0,
from /usr/include/c++/4.8/bits/stl_algo.h:62,
from /usr/include/c++/4.8/algorithm:62,
from /usr/local/include/opencv2/core/core.hpp:56,
from 2dpca.cpp:1:
/usr/include/c++/4.8/bits/stl_construct.h:83:7: error: within this context
::new(static_cast<void*>(__p)) _T1(__value);
编译器:g++ 4.8OpenCV 版本 2.4.8
最佳答案
由于 CvSVM(又名 SVM)不可复制,您需要在 vector 中存储指向它的指针。您可以使用 OpenCV 智能指针 cv::Ptr<> 来做到这一点。请记住使用运算符 -> then 访问 SVM 的方法。
这是一个解决方法。
这解决了问题。
#include <opencv2\opencv.hpp>
#include <vector>
using namespace std;
using namespace cv;
int main()
{
vector<Ptr<SVM>> svm_bank;
for (int i = 0; i < 3; ++i)
{
Mat trainData;
Mat responses;
/*Code for trainingData and
responses */
SVM *new_model;
new_model = new SVM;
new_model->train(trainData, responses);
svm_bank.push_back(new_model);
}
for (int i = 0; i < 3; ++i)
{
Mat samples;
Mat results;
svm_bank[i]->predict(samples, results);
}
return 0;
}
关于c++ - 如何创建 CvSVM vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21590540/
我正在尝试使用特征包模型、训练和支持 vector 机。我正在使用 this教程和this示例代码。我正在使用 Windows 8 和 OpenCV 2.4.10。我在 Visual Studio 2
在使用线路时... map classes_classifiers; classes_classifiers.insert(pair(class_,CvSVM())); 当我编译它时,我收到了错误..
使用opencv CvSVM的一些问题 它使用的是哪种支持向量机?是用svmlight吗? OpenCV2.2 有 svmlight,但我找不到太多关于它的引用资料。 如果我使用 CvSVM,我是否需
我正在尝试使用 this 来熟悉 CvSVM包含 590 张图像的手动标记数据库,从 0-5 分级(0 为模糊,5 为完美)。如果等级 =3,我将其标记为 1(清晰)。 对于功能,我只是使用五种不同的
我正在使用 OpenCV 3.0.0 我已经包含了所有这些库和命名空间,但我仍然收到“CvSVM 未在此范围内声明”的错误 #include #include #include "opencv2/
我使用openCV。我已经训练了SVM,但是输出文件太大(在svm.save()之后)。我想在iPhone的应用程序中使用经过训练的SVM,但文件约为300 Mb。存档后文件大小约为6 Mb。 所以,
我已经在 opencv 中为人脸创建了一个 SVM 检测器。我想分开训练和预测的过程。因此,我想找到一种方法将 CvSVM SVM 对象存储在我的硬盘中,以便在我不需要再次训练新模型的情况下随时访问它
我想创建一个 Opencv CvSVM 对象的 std::vector。当我编译这段代码时: typedef vector svm_vec; svm_vec svm_data = svm_vec();
我找不到关于如何将 SVM 参数传递给 opencv cvSvm 类的正确引用。我得到了参数列表,但没有任何关于如何将参数转换为 CV 数据结构的教程。 请问有什么帮助吗? 最佳答案 构造一个CvSV
我正在使用 Bag of Words 训练图像。但是,每次我更改 if 语句或符号中的条件值时,例如来自 if(response0)或来自 if(responsekeypoints;
我的目标是训练 SVM 并获得支持 vector ,我可以将其插入 opencv 的 HOGdescriptor 以进行对象检测。 我收集了 4000~ 个正样本和 15000~ 个负样本,并使用 o
我是 opencv 的新手。我正在尝试在 opencv 中使用 HOGDescriptor 提取图像的特征。我正在尝试使用 Opencv2.2 训练支持 vector 机,它能够检测图像中的人类。我正
这是一个愚蠢的问题,因为我对 SVM 还很陌生, 我已经成功地使用 OpenCV 的 HoGDescriptor 提取特征和位置: vector features; vector locations;
我使用 CvSVM 仅对两种类型的面部表情进行分类。我使用基于 LBP(局部二进制模式)的直方图从图像中提取特征,并使用 cvSVM::train(data_mat,labels_mat,Mat(),
我正在做一个项目,我需要使用 HOG 特征检测汽车的尾部。计算出 HOG 特征后,我使用正样本和负样本训练了 cvsvm。 cvsvm 正确地对新数据进行了分类。这是我用来训练 cvsvm 的代码。
我想知道如何创建“CvSVM”对象的 vector 。我试过使用: vector svm_bank; 但每当我使用: new_model.train(training_inputs, targets,
我正在使用 OpenCV LibSVM 开发手写字符识别系统。我已经为特征向量提取了 14 个特征,包括 Hu 矩、仿射不变矩、角数等。对于每个字符,我使用 5 个样本(对于字母“A”,有 5 种类型
我是一名优秀的程序员,十分优秀!