码迷,mamicode.com
首页 > 其他好文 > 详细

cvReadTrainData

时间:2015-07-10 16:36:12      阅读:105      评论:0      收藏:0      [点我收藏+]

标签: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

标签:cvreadtraindata

原文地址:http://blog.csdn.net/ding977921830/article/details/46831619

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!