bool CvMatrix::load( const char* filename, const char* matname, int color ) { CvMat* m = 0; if( icvIsXmlOrYaml(filename) ) { m = icvRetrieveMatrix(cvLoad(filename,0,matname)); if( (CV_MAT_CN(m->type) > 1) != (color == 0) ) CV_Error( CV_StsNotImplemented, "RGB<->Grayscale conversion is not implemented for matrices stored in XML/YAML" ); /*{ CvMat* temp_mat; temp_mat = cvCreateMat( m->rows, m->cols, CV_MAKETYPE(CV_MAT_DEPTH(m->type), color > 0 ? 3 : 1 ))); cvCvtColor( m, temp_mat, color > 0 ? CV_GRAY2BGR : CV_BGR2GRAY ); cvReleaseMat( &m ); m = temp_mat; }*/ } #ifdef HAVE_OPENCV_HIGHGUI else m = cvLoadImageM( filename, color ); #endif set( m, false ); return m != 0; }
bool CvMatrix::load( const char* filename, const char* matname, int color ) { CvMat* m = 0; if( icvIsXmlOrYaml(filename) ) { m = icvRetrieveMatrix(cvLoad(filename,0,matname)); if( (CV_MAT_CN(m->type) > 1) != (color == 0) ) CV_Error( CV_StsNotImplemented, "RGB<->Grayscale conversion is not implemented for matrices stored in XML/YAML" ); /*{ CvMat* temp_mat; temp_mat = cvCreateMat( m->rows, m->cols, CV_MAKETYPE(CV_MAT_DEPTH(m->type), color > 0 ? 3 : 1 ))); cvCvtColor( m, temp_mat, color > 0 ? CV_GRAY2BGR : CV_BGR2GRAY ); cvReleaseMat( &m ); m = temp_mat; }*/ } else { if( load_image_m ) m = load_image_m( filename, color ); else CV_Error( CV_StsNotImplemented, "Loading an image stored in such a format requires HigGUI.\n" "Link it to your program and call any function from it\n" ); } set( m, false ); return m != 0; }
bool CvMatrix::read( CvFileStorage* fs, const char* seqname, int idx ) { void* obj = 0; CvMat* m = 0; CvFileNode* seqnode = seqname ? cvGetFileNodeByName( fs, 0, seqname ) : cvGetRootFileNode(fs,0); if( seqnode && CV_NODE_IS_SEQ(seqnode->tag) ) obj = cvRead( fs, (CvFileNode*)cvGetSeqElem( seqnode->data.seq, idx )); m = icvRetrieveMatrix(obj); set( m, false ); return m != 0; }
bool CvMatrix::read( CvFileStorage* fs, const char* mapname, const char* matname ) { void* obj = 0; CvMat* m = 0; if( mapname ) { CvFileNode* mapnode = cvGetFileNodeByName( fs, 0, mapname ); if( !mapnode ) obj = cvReadByName( fs, mapnode, matname ); } else obj = cvReadByName( fs, 0, matname ); m = icvRetrieveMatrix(obj); set( m, false ); return m != 0; }