opencv下使用SVM进行简单颜色分类
来源:互联网 发布:淘宝网信用怎么刷 编辑:程序博客网 时间:2024/04/29 19:45
在opencv下有个SVM的例子,我把那个例子改了改,试试能否对颜色进行分类,下面我给出代码!
<span style="font-size:18px;">#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/ml/ml.hpp>#include<iostream>using namespace cv;using namespace std;int main(int argc, char *argv[]){ float labels[6]={1.0, 1.0, 1.0, 0, 0, 0}; Mat labelsMat(6,1,CV_32FC1,labels);//设置输出学习样本 float train_Data[6][3]={ {255,0, 0}, {255,0,0}, {255, 0,0}, {0,0,255 },{0,0,255},{0,0,255}}; Mat train_DataMat(6,3,CV_32FC1,train_Data);//设置输入样本 cout<<train_DataMat<<endl;/* 设置参数*/ CvSVMParams params; params.svm_type=CvSVM::C_SVC; params.kernel_type=CvSVM::LINEAR; params.term_crit=cvTermCriteria(CV_TERMCRIT_ITER,20000,1e-6); CvSVM SVM; SVM.train(train_DataMat,labelsMat,Mat(),Mat(),params);//开始训练 /*设定我们测试的数据*/ Mat Red_Mat(100,100,CV_32FC3,Scalar(255,0,0)); circle(Red_Mat,Point(Red_Mat.rows/2,Red_Mat.cols/2),30,Scalar(0,0,255),8); namedWindow("Test_Image",CV_WINDOW_AUTOSIZE); imshow("Test_Image",Red_Mat); uchar *p=Red_Mat.data; Mat T3_M(Red_Mat.rows*Red_Mat.cols,3,CV_32FC1,p);//转化成一维 Mat T3_Out(Red_Mat.rows*Red_Mat.cols,1,CV_32FC1,0);//设定输出矩阵 // cout<<"T3_Out: "<<T3_Out<<endl; /*小数据测试*/ float T1[3]={255,0,0},T2[3]={0,0,255}; Mat T1_M(1,3,CV_32FC1,T1); Mat T2_M(1,3,CV_32FC1,T2); cout<<"T1: "<<SVM.predict(T1_M)<<endl; cout<<"T2: "<<SVM.predict(T2_M)<<endl; cout<<"rows:"<<T3_M.rows<<endl; /*设定的图像进行测试*/ SVM.predict(T3_M,T3_Out);//进行输出预测,也就是进行数据分类 uchar *p_out=T3_Out.data; Mat Out_Image(Red_Mat.rows,Red_Mat.cols,CV_32FC1,p_out);//转换成MAT格式进行输出 namedWindow("Out_Image",CV_WINDOW_AUTOSIZE); imshow("Out_Image",Out_Image); // cout<<"T3: "<<Out_Image<<endl; SVM.save("Red.xml"); waitKey(0);}</span>但是这仅仅是能够对特殊的颜色分类,只是一个简单的尝试,后面怎么训练还需要技巧!
0 0
- opencv下使用SVM进行简单颜色分类
- 使用opencv下的SVM分类器
- opencv用SVM进行多类分类
- opencv用SVM进行多类分类
- OpenCV+SVM简单应用-------路面箭头分类
- 如何使用opencv中的svm分类器
- SVM+HOG对图像进行多分类(OpenCV实现)
- openCV svm分类 基础
- opencv svm分类
- opencv-svm分类
- 基于opencv的hog+svm简单分类实现
- 解密SVM系列(五):matlab下libsvm的简单使用:分类与回归
- OpenCV--SVM多分类问题
- opencv svm 多分类问题
- opencv中的SVM图像分类
- OpenCV实现SVM分类器
- 使用Orange进行数据挖掘之分类(4)------SVM
- 使用SVM对多类多维数据进行分类
- Android中AsyncTask解析
- [0] CMake综述
- React-Native 学习之 Flex布局
- UVALive 4310 Minimal Multiple
- 【机房收费系统】验收
- opencv下使用SVM进行简单颜色分类
- 五种SQL Server分页存储过程的方法及性能比较
- Linux下patch文件的制作
- [1] CMake On Linux - 编译链接可执行程序
- 飞行器材料购买注意事项
- 一个简单的多机器人编队算法实现--PID
- swift算法手记-8
- linux下C程序连接MySQL
- Android-框架使用之-懒惰开发-如何提升开发效率