void CvANN_MLP::write( CvFileStorage* fs, const char* name ) { CV_FUNCNAME( "CvANN_MLP::write" ); __BEGIN__; int i, l_count = layer_sizes->cols; if( !layer_sizes ) CV_ERROR( CV_StsError, "The network has not been initialized" ); cvStartWriteStruct( fs, name, CV_NODE_MAP, CV_TYPE_NAME_ML_ANN_MLP ); cvWrite( fs, "layer_sizes", layer_sizes ); write_params( fs ); cvStartWriteStruct( fs, "input_scale", CV_NODE_SEQ + CV_NODE_FLOW ); cvWriteRawData( fs, weights[0], layer_sizes->data.i[0]*2, "d" ); cvEndWriteStruct( fs ); cvStartWriteStruct( fs, "output_scale", CV_NODE_SEQ + CV_NODE_FLOW ); cvWriteRawData( fs, weights[l_count], layer_sizes->data.i[l_count-1]*2, "d" ); cvEndWriteStruct( fs ); cvStartWriteStruct( fs, "inv_output_scale", CV_NODE_SEQ + CV_NODE_FLOW ); cvWriteRawData( fs, weights[l_count+1], layer_sizes->data.i[l_count-1]*2, "d" ); cvEndWriteStruct( fs ); cvStartWriteStruct( fs, "weights", CV_NODE_SEQ ); for( i = 1; i < l_count; i++ ) { cvStartWriteStruct( fs, 0, CV_NODE_SEQ + CV_NODE_FLOW ); cvWriteRawData( fs, weights[i], (layer_sizes->data.i[i-1]+1)*layer_sizes->data.i[i], "d" ); cvEndWriteStruct( fs ); } cvEndWriteStruct( fs ); __END__; }
void save_pseudocolor(char* file, Pseudocolor *psdata) { CvFileStorage* storage = cvOpenFileStorage( file, 0, CV_STORAGE_WRITE_TEXT ); if(storage==NULL){ fprintf(stderr, "Error open file %s to write \n",file); return; } cvStartWriteStruct(storage, "p", CV_NODE_SEQ, NULL, cvAttrList(0,0)); cvWriteRawData(storage, psdata->p,3,"f"); cvEndWriteStruct(storage); cvStartWriteStruct(storage, "t", CV_NODE_SEQ, NULL, cvAttrList(0,0)); cvWriteRawData(storage, psdata->t,3,"f"); cvEndWriteStruct(storage); cvStartWriteStruct(storage, "table", CV_NODE_SEQ, NULL, cvAttrList(0,0)); cvWriteRawData(storage, psdata->table,255,"u"); cvEndWriteStruct(storage); cvReleaseFileStorage( &storage ); }
virtual void SaveState(CvFileStorage* fs) { int b,bN = m_BlobList.GetBlobNum(); cvWriteInt(fs,"BlobNum",m_BlobList.GetBlobNum()); cvStartWriteStruct(fs,"BlobList",CV_NODE_SEQ); for(b=0; b<bN; ++b) { DefBlobTrackerCR* pF = (DefBlobTrackerCR*)m_BlobList.GetBlob(b); cvStartWriteStruct(fs,NULL,CV_NODE_MAP); cvWriteInt(fs,"ID",CV_BLOB_ID(pF)); cvStartWriteStruct(fs,"Blob",CV_NODE_SEQ|CV_NODE_FLOW); cvWriteRawData(fs,&(pF->blob),1,"ffffi"); cvEndWriteStruct(fs); cvStartWriteStruct(fs,"BlobPredict",CV_NODE_SEQ|CV_NODE_FLOW); cvWriteRawData(fs,&(pF->BlobPredict),1,"ffffi"); cvEndWriteStruct(fs); cvStartWriteStruct(fs,"BlobPrev",CV_NODE_SEQ|CV_NODE_FLOW); cvWriteRawData(fs,&(pF->BlobPrev),1,"ffffi"); cvEndWriteStruct(fs); pF->pBlobHyp->Write(fs,"BlobHyp"); cvWriteInt(fs,"Collision",pF->Collision); cvStartWriteStruct(fs,"Predictor",CV_NODE_MAP); pF->pPredictor->SaveState(fs); cvEndWriteStruct(fs); cvStartWriteStruct(fs,"Resolver",CV_NODE_MAP); pF->pResolver->SaveState(fs); cvEndWriteStruct(fs); cvEndWriteStruct(fs); } cvEndWriteStruct(fs); } /* SaveState. */
bool ObjectDefinition::Save(const char* filename) { do{ CvFileStorage* storage = cvOpenFileStorage(filename, 0, CV_STORAGE_WRITE); cvWrite(storage, "keypoints", m_keypoints); cvWrite(storage, "descriptor", m_descriptor); cvStartWriteStruct(storage, "corners", CV_NODE_SEQ, NULL, cvAttrList(0,0)); cvWriteRawData(storage, m_corners, 4, "ii"); cvEndWriteStruct(storage); cvReleaseFileStorage(&storage); m_filename = filename; return true; }while(false); return false; }
void SaveAll() { int ObjNum = m_TrackList.GetBlobNum(); int i; char video_name[1024+1]; char* struct_name = NULL; CvFileStorage* storage = cvOpenFileStorage(m_pFileName,NULL,CV_STORAGE_WRITE_TEXT); if(storage==NULL) { printf("WARNING!!! Cannot open %s file for trajectory output.", m_pFileName); } for(i=0; i<1024 && m_pFileName[i]!='.' && m_pFileName[i]!=0; ++i) video_name[i]=m_pFileName[i]; video_name[i] = 0; for(;i>0; i--) { if(video_name[i-1] == '\\') break; if(video_name[i-1] == '/') break; if(video_name[i-1] == ':') break; } struct_name = video_name + i; cvStartWriteStruct(storage, struct_name, CV_NODE_SEQ); for(i=0; i<ObjNum; ++i) { char obj_name[1024]; DefBlobTrack* pTrack = (DefBlobTrack*)m_TrackList.GetBlob(i); if(pTrack==NULL) continue; sprintf(obj_name,"%s_obj%d",struct_name,i); cvStartWriteStruct(storage, NULL, CV_NODE_MAP); cvWriteInt(storage, "FrameBegin", pTrack->FrameBegin); cvWriteString(storage, "VideoObj", obj_name); cvEndWriteStruct( storage ); pTrack->Saved = 1; } cvEndWriteStruct( storage ); for(i=0;i<ObjNum;++i) { char obj_name[1024]; DefBlobTrack* pTrack = (DefBlobTrack*)m_TrackList.GetBlob(i); CvBlobSeq* pSeq = pTrack->pSeq; sprintf(obj_name,"%s_obj%d",struct_name,i); cvStartWriteStruct(storage, obj_name, CV_NODE_MAP); { /* Write position: */ int j; CvPoint2D32f p; cvStartWriteStruct(storage, "Pos", CV_NODE_SEQ|CV_NODE_FLOW); for(j=0;j<pSeq->GetBlobNum();++j) { CvBlob* pB = pSeq->GetBlob(j); p.x = pB->x/(m_Size.width-1); p.y = pB->y/(m_Size.height-1); cvWriteRawData(storage, &p, 1 ,"ff"); } cvEndWriteStruct( storage ); } { /* Write size: */ int j; CvPoint2D32f p; cvStartWriteStruct(storage, "Size", CV_NODE_SEQ|CV_NODE_FLOW); for(j=0; j<pSeq->GetBlobNum(); ++j) { CvBlob* pB = pSeq->GetBlob(j); p.x = pB->w/(m_Size.width-1); p.y = pB->h/(m_Size.height-1); cvWriteRawData(storage, &p, 1 ,"ff"); } cvEndWriteStruct( storage ); } cvEndWriteStruct( storage ); } cvReleaseFileStorage(&storage); } /* Save All */
void cvWriteStruct(CvFileStorage* fs, const char* name, void* addr, const char* desc, int num) { cvStartWriteStruct(fs,name,CV_NODE_SEQ|CV_NODE_FLOW); cvWriteRawData(fs,addr,num,desc); cvEndWriteStruct(fs); }