压缩包含一个完整的Qt控制台工程,注释详细,调试和运行成功,也可以直接移植到win32中运行。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2167 2015-11-08 22:53 CvSVMTestSVMmain.cpp
文件 1256 2015-11-08 22:36 CvSVMTestSVMSVM.pro
文件 12461 2015-11-08 22:42 CvSVMTestSVMSVM.pro.user
文件 247507 2015-11-08 22:53 CvSVMTestSVM-build-desktopdebugmain.o
文件 3989151 2015-11-08 22:53 CvSVMTestSVM-build-desktopdebugSVM.exe
文件 5954 2015-11-08 22:37 CvSVMTestSVM-build-desktopMakefile
文件 5564 2015-11-08 22:37 CvSVMTestSVM-build-desktopMakefile.Debug
文件 5610 2015-11-08 22:37 CvSVMTestSVM-build-desktopMakefile.Release
目录 0 2015-11-08 22:55 CvSVMTestSVM-build-desktopdebug
目录 0 2015-11-08 22:55 CvSVMTestSVM-build-desktop
elease
目录 0 2015-11-08 22:55 CvSVMTestSVM
目录 0 2015-11-08 22:55 CvSVMTestSVM-build-desktop
目录 0 2015-11-08 22:55 CvSVMTest
----------- --------- ---------- ----- ----
4269670 13
/*****************************
//湖南长沙·2015-11-8
*************************/
#include
#include “opencv2opencv.hpp“
using namespace cv;
//训练样本:红点、蓝点。待识别数据:绿点
int main(int argc char *argv[])
{
QCoreApplication a(argc argv);
// 用于保存可视化数据的矩阵
Mat image = Mat::zeros(512 512 CV_8UC3);
for(int i=0;i for(int j=0;j if(i image.ptr(i)[j]=Vec3b(25500);
else if(i<2*image.rows/3)
image.ptr(i)[j]=Vec3b(02550);
else
image.ptr(i)[j]=Vec3b(00255);
}
}
float labels[3] = {1.0 2.0 3.0};
Mat labelsMat(3 1 CV_32FC1 labels);
float trainingData[3][3] = {{25500} {02550} {00255}};
Mat trainingDataMat(3 3 CV_32FC1 trainingData);
// 设置SVM参数
CvSVMParams params;
params.svm_type = CvSVM::C_SVC;//C支持向量分类机允许用异常值惩罚因子C进行不完全分类
params.kernel_type = CvSVM::LINEAR;//使用线性内核
params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER 100 1e-6);//迭代训练过程的中止条件
// 对SVM进行训练
CvSVM SVM;
SVM.train(trainingDataMat labelsMat Mat() Mat() params);
string str1=“blue“str2=“green“str3=“red“;
for (int i = 100; i < image.rows; i+=image.rows/3){
int j=10;
int c0=image.ptr(i)[j][0];
int c1=image.ptr(i)[j][1];
int c2=image.ptr(i)[j][2];
Mat sampleMat = (Mat_(13) << c0c1c2);
float result = SVM.predict(sampleMat);//进行分类
//结果处理
if (result == 1.0)
putText(imagestr1Point(ji)FONT_HERSHEY_SIMPLEX2Scalar(255255255)28);
else if(result == 2.0)
putText(imagestr2Point(ji)FONT_HERSHEY_SIMPLEX2Scalar(255255255)28);
else if(result == 3.0)
putText(imagestr3Point(ji)FONT_HERSHEY_SIMPLEX2Scalar(255255255)28);
}
imshow(“SVM分类“ image);
waitKey(0);
return a.exec();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2167 2015-11-08 22:53 CvSVMTestSVMmain.cpp
文件 1256 2015-11-08 22:36 CvSVMTestSVMSVM.pro
文件 12461 2015-11-08 22:42 CvSVMTestSVMSVM.pro.user
文件 247507 2015-11-08 22:53 CvSVMTestSVM-build-desktopdebugmain.o
文件 3989151 2015-11-08 22:53 CvSVMTestSVM-build-desktopdebugSVM.exe
文件 5954 2015-11-08 22:37 CvSVMTestSVM-build-desktopMakefile
文件 5564 2015-11-08 22:37 CvSVMTestSVM-build-desktopMakefile.Debug
文件 5610 2015-11-08 22:37 CvSVMTestSVM-build-desktopMakefile.Release
目录 0 2015-11-08 22:55 CvSVMTestSVM-build-desktopdebug
目录 0 2015-11-08 22:55 CvSVMTestSVM-build-desktop
elease
目录 0 2015-11-08 22:55 CvSVMTestSVM
目录 0 2015-11-08 22:55 CvSVMTestSVM-build-desktop
目录 0 2015-11-08 22:55 CvSVMTest
----------- --------- ---------- ----- ----
4269670 13
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)