cvReadTrainData
cvReadTrainData的源代码在opencv的cvboost.cpp文件之中,详细内容例如以下所看到的:
CV_BOOST_IMPL
void cvReadTrainData( const char* filename,
int flags,
CvMat** trainData,
CvMat** trainClasses )
{ CV_FUNCNAME( "cvReadTrainData" ); __BEGIN__; FILE* file;
int m, n;
int i, j;
float val;
int values_read = -1; if( filename == NULL )
{
CV_ERROR( CV_StsNullPtr, "filename must be specified" );
}
if( trainData == NULL )
{
CV_ERROR( CV_StsNullPtr, "trainData must be not NULL" );
}
if( trainClasses == NULL )
{
CV_ERROR( CV_StsNullPtr, "trainClasses must be not NULL" );
} *trainData = NULL;
*trainClasses = NULL;
file = fopen( filename, "r" );
if( !file )
{
CV_ERROR( CV_StsError, "Unable to open file" );
} values_read = fscanf( file, "%d %d", &m, &n );
CV_Assert(values_read == 2); if( CV_IS_ROW_SAMPLE( flags ) )
{
CV_CALL( *trainData = cvCreateMat( m, n, CV_32FC1 ) );
}
else
{
CV_CALL( *trainData = cvCreateMat( n, m, CV_32FC1 ) );
} CV_CALL( *trainClasses = cvCreateMat( 1, m, CV_32FC1 ) ); for( i = 0; i < m; i++ )
{
for( j = 0; j < n; j++ )
{
values_read = fscanf( file, "%f", &val );
CV_Assert(values_read == 1);
if( CV_IS_ROW_SAMPLE( flags ) )
{
CV_MAT_ELEM( **trainData, float, i, j ) = val;
}
else
{
CV_MAT_ELEM( **trainData, float, j, i ) = val;
}
}
values_read = fscanf( file, "%f", &val );
CV_Assert(values_read == 2);
CV_MAT_ELEM( **trainClasses, float, 0, i ) = val;
} fclose( file ); __END__; }
cvReadTrainData的更多相关文章
- opencv源代码之中的一个:cvboost.cpp
我使用的是opencv2.4.9.安装后.我的cvboost..cpp文件的路径是........\opencv\sources\apps\haartraining\cvboost.cpp.研究源代码 ...
- 史上最全opencv源代码解读,opencv源代码具体解读文件夹
本博原创,如有转载请注明本博网址http://blog.csdn.net/ding977921830/article/details/46799043. opencv源代码主要是基于adaboost算 ...
随机推荐
- LeetCode.888-公平的糖果交换(Fair Candy Swap)
这是悦乐书的第339次更新,第363篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第208题(顺位题号是888).Alice和Bob有不同大小的糖果棒:A[i]是Alic ...
- insert into 语句的三种写法 以及批量插入
方式1. INSERT INTO t1(field1,field2) VALUE(v001,v002); // 插入一条 方式2. INSERT INTO t1(field1,f ...
- idea的环境变量设置(Enviroment variables)
- Hadoop MapReduce编程 API入门系列之二次排序(十六)
不多说,直接上代码. -- ::, INFO [org.apache.hadoop.metrics.jvm.JvmMetrics] - Initializing JVM Metrics with pr ...
- BZOJ1060: [ZJOI2007]时态同步(树形dp 贪心)
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3285 Solved: 1286[Submit][Status][Discuss] Descript ...
- [转] 利用git钩子,使用python语言获取提交的文件列表
项目有个需求,需要获取push到远程版本库的文件列表,并对文件进行特定分析.很自然的想到,要利用git钩子来触发一个脚本,实现获取文件列表的功能.比较着急使用该功能,就用python配合一些git命令 ...
- c++常用功能封装
C++文件读写的封装 在C++开发中,文件读写是很常用的功能,出于代码复用的考虑,将它们进行封装. 其中,默认读写的文件是文本文件,并且需要按行处理.调用者只需要关注读取出来的每一行的处理方式.写文件 ...
- Cocos2d-x-3.6学习笔记第一天
系统环境: win7,python2.7 开发工具:vs2013 cocos版本:cocos2d-x-3.6 暂无模拟手机的环境 新建我的第一个cocos2d项目 1.打开cmd,cd到cocos2d ...
- Centos 7 安装图形化界面
Centos 7 默认是没有图形化界面的,但我们很多人在习惯了 Windows 的图形化界面之后,总是希望有一个图形化界面从而方便我们使用,这里介绍一下 CentOS7安装图形化桌面系统的方法. 一. ...
- js进度条插件pace.js
主要用到themes文件夹和pace.js文件