📄 splitclasses.cpp
字号:
#include "clust_defs.h"#include "alloc_util.h"#include "clust_util.h"#include "clust_io.h"int SplitClasses(int argc, char *argv[]) { FILE *fp; int i,j,k,l; SigSet Sin,Sout; ClassSig *Sig; char *paramfnameIn,*paramfnameOut; if( argc!=3 ) { fprintf(stderr,"\nUsage: %s InputParameters OutputParameters Error\n",argv[0]); exit(-1); } /* Read Command Line */ paramfnameIn = argv[1]; paramfnameOut = argv[2]; /* Read SigSet from parameter file */ if((fp=fopen(paramfnameIn,"r"))==NULL) { fprintf(stderr, "\nError: Can't open parameter file %s",paramfnameIn); exit(-1); } I_ReadSigSet (fp,&Sin); fclose(fp); /* Initialize SigSet data structure */ I_InitSigSet (&Sout); I_SigSetNBands (&Sout, Sin.nbands); I_SetSigTitle (&Sout, "signature set for unsupervised clustering"); /* Copy each subcluster (subsignature) from input to cluster (class signature) of output */ for(k=0; k<Sin.nclasses; k++) { for(l=0; l<(Sin.classSig[k].nsubclasses); l++) { Sig = I_NewClassSig(&Sout); I_SetClassTitle (Sig, "Single Model Class"); I_NewSubSig (&Sout, Sig); Sig->subSig[0].pi = 1.0; for(i=0; i<Sin.nbands; i++) { Sig->subSig[0].means[i] = Sin.classSig[k].subSig[l].means[i]; } for(i=0; i<Sin.nbands; i++) for(j=0; j<Sin.nbands; j++) { Sig->subSig[0].R[i][j] = Sin.classSig[k].subSig[l].R[i][j]; } } } /* Write out result to output parameter file */ if((fp=fopen(paramfnameOut,"w"))==NULL) { fprintf(stderr, "\nError: Can't open parameter file %s",paramfnameOut); } I_WriteSigSet(fp, &Sout); fclose(fp); /* De-allocate cluster signature memory */ I_DeallocSigSet (&Sin); I_DeallocSigSet (&Sout); return(0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -