OpenCV的支持向量机SVM.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenCV的支持向量机SVM

【转】 想写一个关于OpenCV的支持向量机SVM的程序2011-02-25 15:31转载自 dreamflyman最终编辑 dreamflyman作者:彭军 以前写过神经网络方面的程序,当然了,只是简单的BP神经网络了,因为是自己实现的,所以也相对比较简单。以前也曾经想过写个支持向量机的程序,可是看了很长时间还是没有什么概念,索性这次就借着OpenCV写一个支持向量机SVM的程序吧,好至少知道怎么用OpenCV来用支持向量机SVM做分类。 程序如下: ////////////////////////////////////////////////////////////////////////// // File Name: pjSVM.cpp // Author: easyfov(easyfov@) // Company: Lida Optical and Electronic Co.,Ltd. ////////////////////////////////////////////////////////////////////////// #include cv.h #include highgui.h #include ml.h #include iostream #include fstream #include string #include vector using namespace std; #define WIDTH 28 #define HEIGHT 30 int main( /*int argc, char** argv*/ ) { vectorstring img_path; vectorint img_catg; int nLine = 0; string buf; ifstream svm_data( SVM_DATA.txt ); while( svm_data ) { if( getline( svm_data, buf ) ) { nLine ++; if( nLine % 2 == 1 ) { img_catg.push_back( atoi( buf.c_str() ) ); } else { img_path.push_back( buf ); } } } svm_data.close(); CvMat *data_mat, *res_mat; int nImgNum = nLine / 2; data_mat = cvCreateMat( nImgNum, WIDTH * HEIGHT, CV_32FC1 ); cvSetZero( data_mat ); res_mat = cvCreateMat( nImgNum, 1, CV_32FC1 ); cvSetZero( res_mat ); IplImage *srcImg, *sampleImg; float b; DWORD n; for( string::size_type i = 0; i != img_path.size(); i++ ) { srcImg = cvLoadImage( img_path[i].c_str(), CV_LOAD_IMAGE_GRAYSCALE ); if( srcImg == NULL ) { cout can not load the image: img_path[i].c_str()endl; continue; } cout processing img_path[i].c_str()endl; sampleImg = cvCreateImage( cvSize( WIDTH, HEIGHT ), IPL_DEPTH_8U, 1 ); cvResize( srcImg, sampleImg ); cvSmooth( sampleImg, sampleImg ); n = 0; for( int ii = 0; ii sampleImg-height; ii++ ) { for( int jj = 0; jj sampleImg-width; jj++, n++ ) { b = (float)((int)((uchar)( sampleImg-imageData + sampleImg-widthStep * ii + jj )) / 255.0 ); cvmSet( data_mat, (int)i, n, b ); } } cvmSet( r

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档