• 大小: 58.26MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-02-19
  • 语言: 其他
  • 标签: Opencv/SVM  

资源简介

该工程基于Opencv2.4.9和Visual Studio2010搭建,下载下来可直接运行。该工程SVM训练的样本也已在文件里面。

资源截图

代码片段和文件信息

//opencv2.4.13
#include “opencv2/core/core.hpp“
#include “opencv2/highgui/highgui.hpp“
#include “opencv2/imgproc/imgproc.hpp“
#include 
#include 
using namespace cv;
using namespace std;


//全局变量
Size sampleSize(160160);//样本的大小
int train_samples =10;
int classes = 4;
Mat trainData;
Mat trainClasses;

//申明全局函数
Mat readImageSaveContour(Mat src);
void getData();

int main()
{
Mat src = imread(“5.png“ 0);
getData();
//定义SVM
/*CvSVMParams params;
params.svm_type = CvSVM::C_SVC;
params.kernel_type = CvSVM::LINEAR;
params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER 100 1e-6);*/

CvSVMParams SVM_params;  // CvSVMParams结构用于定义基本参数  
SVM_params.svm_type = CvSVM::C_SVC;     // SVM类型  
SVM_params.kernel_type = CvSVM::LINEAR; // 不做映射  
SVM_params.degree = 0;
SVM_params.gamma = 1;
SVM_params.coef0 = 0;
SVM_params.C = 1;
SVM_params.nu = 0;
SVM_params.p = 0;
SVM_params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER 1000 0.01);

CvSVM SVM;
SVM.train(trainData trainClasses Mat() Mat() SVM_params);

//得到图像进行预测
Mat show;
cvtColor(srcshow8);//8 表示灰度图到彩色图
Mat imageWhite;
threshold(src imageWhite 100 255 8);
imageWhite = 255 - imageWhite;
vector > contours;
vector hierarchy;
findContours(imageWhite contours hierarchy RETR_EXTERNAL CHAIN_APPROX_NONE);
for (int index = contours.size() - 1; index >= 0; index--)
{
Rect rectangleTem = boundingRect(contours[index]);
Mat image;
image = Mat::zeros(src.size() CV_8UC1);
drawContours(image contours index Scalar(255) 2 8 hierarchy);
Mat tem = image(rectangleTem);
Mat imageNewSize;
resize(tem imageNewSize sampleSize CV_INTER_LINEAR);
image.release();
image = imageNewSize.reshape(1 1);
image.convertTo(image CV_32FC1);
int response = (int)SVM.predict(image);
if (response == 0)
{
cout << “    circle“ << endl;
string str = “circle“;
putText(show str Point(rectangleTem.x + rectangleTem.width / 2 rectangleTem.y + rectangleTem.height / 2)
FONT_HERSHEY_SIMPLEX 0.5 Scalar(0 0 255) 1 8);
}
else if (response == 1)
{
cout << “    rectangle“ << endl;
string str = “rectangle“;
putText(show str Point(rectangleTem.x + rectangleTem.width / 2 rectangleTem.y + rectangleTem.height / 2)
FONT_HERSHEY_SIMPLEX 0.5 Scalar(0 0 255) 1 8);
}
else if (response == 2)
{
cout << “    triangle“ << endl;
string str = “triangle“;
putText(show str Point(rectangleTem.x + rectangleTem.width / 2 rectangleTem.y + rectangleTem.height / 2)
FONT_HERSHEY_SIMPLEX 0.5 Scalar(0 0 255) 1 8);
}
else if (response == 3)
{
cout << “    cross“ << endl;
string str = “cross“;
putText(show str Point(rectangleTem.x + rectangleTem.width / 2 rectangleTem.y + rectangleTem.height / 2)
FONT_HERSHEY_SIMPLEX 0.5 Scalar(0 0 255) 1 8);
}
}
imshow(“result“sh

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-13 15:47  SVM多样本训练_识别几何体\
     目录           0  2019-01-13 15:47  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\
     目录           0  2019-01-13 15:47  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\Debug\
     文件      104448  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\Debug\predictShape.exe
     文件      578628  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\Debug\predictShape.ilk
     文件     1814528  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\Debug\predictShape.pdb
     目录           0  2019-01-13 15:47  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\
     文件    12058624  2016-09-08 15:47  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape.sdf
     文件         982  2016-09-08 09:27  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape.sln
     文件       30208  2016-09-08 15:47  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape.v12.suo
     文件       16095  2016-09-08 13:52  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\5.png
     目录           0  2019-01-13 15:47  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\Debug\
     文件      316952  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\Debug\main.obj
     文件         982  2019-01-07 16:26  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\Debug\predictShape.log
     目录           0  2019-01-13 15:47  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\Debug\predictShape.tlog\
     文件         812  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\Debug\predictShape.tlog\cl.command.1.tlog
     文件       15310  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\Debug\predictShape.tlog\CL.read.1.tlog
     文件         804  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\Debug\predictShape.tlog\CL.write.1.tlog
     文件        2350  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\Debug\predictShape.tlog\link.command.1.tlog
     文件        5492  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\Debug\predictShape.tlog\link.read.1.tlog
     文件         782  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\Debug\predictShape.tlog\link.write.1.tlog
     文件         205  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\Debug\predictShape.tlog\predictShape.lastbuildstate
     文件      445440  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\Debug\vc120.idb
     文件      847872  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\Debug\vc120.pdb
     目录           0  2019-01-13 15:47  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\ipch\
     目录           0  2019-01-07 16:26  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\ipch\predictshape-1bddd8b1\
     文件        4873  2016-09-08 15:46  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\main.cpp
     文件        4089  2016-09-08 10:03  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\predictShape.vcxproj
     文件         945  2016-09-08 10:03  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\predictShape.vcxproj.filters
     目录           0  2019-01-13 15:47  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\samples\
     目录           0  2019-01-13 15:47  SVM多样本训练_识别几何体\predictShape(CSDN_SVM参考简易程序,48C币)\predictShape\samples\s0\
............此处省略2074个文件信息

评论

共有 条评论

相关资源