bool CvImage::load( const char* filename, const char* imgname, int color ) { IplImage* img = 0; if( icvIsXmlOrYaml(filename) ) { img = icvRetrieveImage(cvLoad(filename,0,imgname)); if( (img->nChannels > 1) != (color == 0) ) CV_Error( CV_StsNotImplemented, "RGB<->Grayscale conversion is not implemented for images stored in XML/YAML" ); /*{ IplImage* temp_img = 0; temp_img = cvCreateImage( cvGetSize(img), img->depth, color > 0 ? 3 : 1 )); cvCvtColor( img, temp_img, color > 0 ? CV_GRAY2BGR : CV_BGR2GRAY ); cvReleaseImage( &img ); img = temp_img; }*/ } #ifdef HAVE_OPENCV_HIGHGUI else img = cvLoadImage( filename, color ); #endif attach( img ); return img != 0; }
bool CvImage::load( const char* filename, const char* imgname, int color ) { IplImage* img = 0; if( icvIsXmlOrYaml(filename) ) { img = icvRetrieveImage(cvLoad(filename,0,imgname)); if( (img->nChannels > 1) != (color == 0) ) CV_Error( CV_StsNotImplemented, "RGB<->Grayscale conversion is not implemented for images stored in XML/YAML" ); /*{ IplImage* temp_img = 0; temp_img = cvCreateImage( cvGetSize(img), img->depth, color > 0 ? 3 : 1 )); cvCvtColor( img, temp_img, color > 0 ? CV_GRAY2BGR : CV_BGR2GRAY ); cvReleaseImage( &img ); img = temp_img; }*/ } else { if( load_image ) img = load_image( 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" ); } attach( img ); return img != 0; }
bool CvImage::read( CvFileStorage* fs, const char* seqname, int idx ) { void* obj = 0; IplImage* img = 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 )); img = icvRetrieveImage(obj); attach( img ); return img != 0; }
bool CvImage::read( CvFileStorage* fs, const char* mapname, const char* imgname ) { void* obj = 0; IplImage* img = 0; if( mapname ) { CvFileNode* mapnode = cvGetFileNodeByName( fs, 0, mapname ); if( !mapnode ) obj = cvReadByName( fs, mapnode, imgname ); } else obj = cvReadByName( fs, 0, imgname ); img = icvRetrieveImage(obj); attach( img ); return img != 0; }