1 #ifndef SUMA_SEGOPTS_INCLUDED 2 #define SUMA_SEGOPTS_INCLUDED 3 4 #define SEG_LSQFIT 2 5 #define SEG_L1FIT 1 6 7 typedef enum { 8 SEG_BIM, SEG_LSB, SEG_BNN, SEG_BFT 9 } BLUR_METH; 10 11 typedef struct { 12 int N_label; 13 char **label; 14 int *keys; 15 int nP; 16 double **Pv; 17 char **pname; 18 } SUMA_CLASS_STAT; 19 20 typedef struct { 21 float *b; /* bin center */ 22 int *c; /* count in bin */ 23 float *cn; /* count in bin / n */ 24 int K; /* number of bins */ 25 float W; /* bin width */ 26 int n; /* number of samples */ 27 float min; /* min sample value */ 28 float max; /* max sample value */ 29 float cdfmin; /* minimum non zero cdf value */ 30 char *label; /* a string descriptor */ 31 int N_ignored; /* Number of samples out of n that 32 were outside the range and were ignored 33 during histogram build. Normally, values 34 outside range would be assigned to end bins*/ 35 int *isrt; /* bin index for sorting cn from min to max */ 36 } SUMA_HIST; 37 38 typedef enum { SUMA_FEAT_NOT_SET=-1, 39 SUMA_FEAT_GAMMA=0, SUMA_FEAT_NP, 40 SUMA_FEAT_N_DIST_TYPE } SUMA_FEAT_DIST_TYPE; 41 42 typedef struct { 43 char *label; 44 SUMA_FEAT_DIST_TYPE tp; 45 double scpar[5]; 46 double par[5]; 47 SUMA_HIST *hh; 48 } SUMA_FEAT_DIST; 49 50 typedef struct { 51 SUMA_FEAT_DIST **FD; 52 int N_FD; 53 int N_alloc; 54 } SUMA_FEAT_DISTS; 55 56 typedef struct { 57 void (*helpfunc)(int); 58 char *aset_name; 59 char *mset_name; 60 char *sig_name; 61 NI_str_array *sig_names; 62 char *samp_name; 63 NI_str_array *samp_names; 64 char *gold_name; 65 char *gold_bias_name; 66 char *this_pset_name; 67 char *this_cset_name; 68 char *this_fset_name; 69 char *this_xset_name; 70 char *ndist_name; 71 char *proot; 72 char *prefix; 73 char *crefix; 74 char *frefix; 75 char *xrefix; 76 char *cgrefix; 77 char *pgrefix; 78 char uid[256+1]; 79 THD_3dim_dataset *aset; 80 THD_3dim_dataset *mset; 81 THD_3dim_dataset *sig; 82 THD_3dim_dataset *samp; 83 THD_3dim_dataset *pset; 84 THD_3dim_dataset *cset; 85 THD_3dim_dataset *fset; 86 THD_3dim_dataset *xset; 87 THD_3dim_dataset *gset; 88 THD_3dim_dataset *outl; 89 THD_3dim_dataset *gold; 90 THD_3dim_dataset *gold_bias; 91 THD_3dim_dataset *priCgA; 92 double wA; 93 THD_3dim_dataset *priCgL; 94 double wL; 95 THD_3dim_dataset *pCgN; 96 char *priCgLname; 97 char *priCgAname; 98 THD_3dim_dataset *priCgALL; 99 char *priCgALLname; 100 THD_3dim_dataset *Bset; 101 char *Bsetname; 102 THD_3dim_dataset *pstCgALL; 103 char *pstCgALLname; 104 SUMA_FEAT_DISTS *FDV; 105 int debug; 106 int verbose; 107 int idbg, jdbg, kdbg; 108 float binwidth; 109 NI_str_array *feats, *clss, *featsfam; 110 float **feat_exp; 111 int featexpmeth; 112 int featmatchmode; 113 int Other; 114 int *keys; 115 116 float *mixfrac; 117 char *mixopt; 118 int UseTmp; 119 byte logp; 120 int VoxDbg; 121 int VoxDbg3[3]; 122 FILE *VoxDbgOut; 123 byte rescale_p; 124 byte openmp; 125 126 char *labeltable_name; 127 128 int fmode; 129 int smode; 130 float bias_param; 131 char *bias_meth; 132 char *bias_classes; 133 byte pweight; 134 int N_biasgroups; 135 136 byte *cmask; 137 int dimcmask; 138 int cmask_count; 139 float mask_top; 140 float mask_bot; 141 142 byte DO_p; 143 byte DO_f; 144 byte DO_c; 145 byte DO_o; 146 byte DO_x; 147 byte DO_r; 148 byte Writepcg_G_au; 149 150 int fitmeth; 151 int N_enhance_cset_init; 152 int N_main; 153 NI_str_array *group_classes; 154 int *group_keys; 155 SUMA_GENERIC_ARGV_PARSE *ps; 156 157 int clust_cset_init; 158 SUMA_CLASS_STAT *cs; 159 SUMA_CLASS_STAT *Gcs; 160 161 double B; 162 double T; 163 164 int edge; 165 float na; 166 167 char *hist; 168 int *Split; 169 170 BLUR_METH blur_meth; 171 172 char *ShowThisDist; 173 int fast; /* if 1, use faster - I hope - version of p_C_GIV_A */ 174 float range[2]; 175 176 int i1, i2, i3, i4, i5; 177 float f1, f2, f3, f4, f5; 178 179 int erode; 180 int dilate; 181 182 int N_hspec; 183 SUMA_HIST **hspec; 184 185 double mix_frac_floor; 186 } SEG_OPTS; 187 188 void GenPriors_usage(int) ; 189 void Seg_usage(int) ; 190 SEG_OPTS *Seg_ParseInput (SEG_OPTS *Opt, char *argv[], int argc); 191 byte *MaskSetup(SEG_OPTS *Opt, THD_3dim_dataset *aset, int mask_zero_aset, 192 THD_3dim_dataset **msetp, byte **cmaskp, int dimcmask, 193 float mask_bot, float mask_top, int *mcount); 194 THD_3dim_dataset *Seg_load_dset( char *set_name ); 195 THD_3dim_dataset *Seg_load_dset_eng( char *set_name, char *view ); 196 SEG_OPTS *SegOpt_Struct(void ); 197 void *Seg_NI_read_file(char *fname); 198 SEG_OPTS *free_SegOpts(SEG_OPTS *); 199 int Seg_ClssAndKeys_from_dset(THD_3dim_dataset *dset, 200 NI_str_array **nstrp, int **keysp); 201 int SUMA_ShortizeDset(THD_3dim_dataset **dsetp, float thisfac); 202 203 #endif 204