OpenCv3.0+SVM的使用心得(一)
来源:互联网 发布:网络视频监控方案 编辑:程序博客网 时间:2024/06/04 19:26
1.open cv3.0版本中没有了CvSVM类的定义,而是将其写入到一个document中,但是使用也并不复杂,代码示例如下:
ml::SVM::Params params;params.svmType = ml::SVM::C_SVC;params.kernelType = ml::SVM::POLY;params.gamma = 3;Ptr<ml::SVM> svm = ml::SVM::create(params);Mat trainData; // 每行为一个样本Mat labels; svm->train( trainData , ml::ROW_SAMPLE , labels );// ...Mat query; // 输入, 1个通道Mat res; // 输出svm->predict(query, res);
另外,svm的定义和训练可以写到一起:
Ptr<SVM> svm=StatModel::train<SVM>(trainData,ml::ROW_SAMPLE,labels,params)
2.使用statModel::train(针对所有的机器学习 )的时候,要注意里面的参数(训练样本、训练标签)格式为InputArray,这个格式可以从Mat格式自动生成,但是不能从CvMat格式生成。
3.因此,必要的时候要进行两者的转换。当CvMat->Mat时:
Mat Matfeatures=cv::cvarrToMat(CvMatFeatures)
PS: 从IplImage格式转成Mat格式时也是调用此函数,从Mat转到IplImage格式时:
Mat mat=&IplImage(img);//其中img是IplImage格式数据
不知道这个方法对从Mat到CvMat的转换是否同样适用(估计是可以的)
4.由于3.0不存在为机器学习定义的类,因此不能用调用函数的方法对分类器进行操作,而代之使用:
svm->save("....");//文件形式为xml,可以保存在txt或者xml文件中svm->getVarCount();//获取SVM支持向量的维数svm->getSupportVectors;//返回Mat类型,获取SVM的支持向量
5.可以对保存在xml或txt文件中的分类器进行加载。
Ptr<SVM> svm=statModel::load<SVM>("....");
6.在编写程序过程中,使用hog.compute()计算会报内存错误,折磨了一整天,最后将“项目属性”-“链接器”-“输入”中的”附加依赖项”中的ts300.lib和world300.lib删除掉了,只保留ts300d.lib和world300d.lib。具体原因,不详。
7.遇到”error LNK2019: unresolved external symbol __imp___CrtDbgReportW referenced in function “public: double & __thiscall std::vector…..”这种错误时,需要将” C/C++”->”代码生成”的运行库由 “多线程调试(/MTd)” 改为“多线程调试DLL (/MDd)”
8.构建字符串时有时需要将“1,2,3……23,24,25…….”显示成为“001,002,003…..023,024”,可使用’%3d’,如:
spintf(neName,"person_%3d.bmp",i);
9.使用OpenCv里面的机器学习算法时,要保证给的labelData的数据格式为”有符号的整型数”,”CV_32FC1”就是错误的一种形式,应该使用”CV_32SC1”
- OpenCv3.0+SVM的使用心得(一)
- OpenCv3.0+SVM的使用心得(一)
- OpenCv3.0+SVM的使用心得(二)
- OpenCv3.0+SVM的使用心得(二)
- opencv3.1 svm(支持向量机)使用心得
- 模式识别之(一)SVM的opencv3.0实现
- opencv3.3 svm的使用
- opencv3.0-支持向量机(svm)使用介绍
- opencv3.1中svm的使用范例
- OpenCV3中使用SVM
- OpenCV3.0或OpenCV3.1的SVM操作
- OpenCV3.0或OpenCV3.1的SVM操作
- OpenCV3.0或OpenCV3.1的SVM操作
- OpenCV3.0或OpenCV3.1的SVM操作
- OpenCV3.0 中SVM的使用方法
- opencv3.0.0的安装(Mac)与svm新变化
- SVM多分类器的实现(Opencv3,C++)
- opencv3 SVM
- 日拱一卒(三十六)
- PLSQL连接oracel数据库_用户无法登陆_oci.dll_配置问题(32位64位问题)
- lufylegend引擎 rpg开发之2D地图的碰撞检测
- Android SDK更新 及 所有SDK文件共享
- 产品模式总结
- OpenCv3.0+SVM的使用心得(一)
- ArrayList源码剖析
- int *const p与int const *p的区别简析
- 第十六题
- 无法安装 Visual Studio 2010 Service Pack 1,因为此计算机的状态不支持
- _stdcall ,_cdecl,__fastcall 深入解析
- java基础1:异常
- JS验证控件jQuery Validate
- windows下获取mac地址的两种方法