Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

3destpdf.c File Reference

#include "mrilib.h"
#include "estpdf3.c"

Go to the source code of this file.


Defines

#define PROGRAM_NAME   "3destpdf"
#define PROGRAM_AUTHOR   "B. D. Ward"
#define PROGRAM_DATE   "20 January 2000"
#define MAX_STRING_LENGTH   80
#define MTEST(ptr)

Functions

void estPDF_error (char *message)
void display_help_menu ()
void get_options (int argc, char **argv)
void initialize_program (int argc, char **argv)
int main (int argc, char **argv)

Variables

char * anat_filename = NULL
THD_3dim_datasetanat
float min_val_float
float max_val_float
Boolean quiet = FALSE

Define Documentation

#define MAX_STRING_LENGTH   80
 

Definition at line 46 of file 3destpdf.c.

Referenced by get_options().

#define MTEST ptr   
 

Value:

if((ptr)==NULL) \
( estPDF_error ("Cannot allocate memory") )
macro to test a malloc-ed pointer for validity *

Definition at line 65 of file 3destpdf.c.

Referenced by allocate_memory(), allocate_pieces(), attach_sub_brick(), auto_initialize(), average_extrema(), calc_sspe(), calculate_results(), check_for_valid_inputs(), connectivity_tests(), create_voxel(), DC_main(), estimate_field(), form_clusters(), FWT_1d_pass_filter(), FWT_1d_stop_filter(), get_options(), identify_repeats(), init_delay(), init_regression_analysis(), initialize(), initialize_cluster(), initialize_extrema(), initialize_glt_options(), initialize_options(), initialize_program(), initialize_stim_options(), main(), merge_clusters(), new_voxel(), output_results(), output_ts_array(), process_all_datasets(), process_subbrick(), process_volume(), rank_array(), rank_darray(), read_input_data(), read_one_time_series(), read_options(), read_table(), read_time_series(), reset_options(), save_results(), set_fim_thr_level(), uniformize(), wavelet_analysis(), weight_extrema(), write_3dtime(), write_bucket(), write_bucket_data(), write_results(), write_ts_array(), and zero_fill_volume().

#define PROGRAM_AUTHOR   "B. D. Ward"
 

Definition at line 20 of file 3destpdf.c.

Referenced by main().

#define PROGRAM_DATE   "20 January 2000"
 

Definition at line 21 of file 3destpdf.c.

Referenced by main().

#define PROGRAM_NAME   "3destpdf"
 

Definition at line 19 of file 3destpdf.c.

Referenced by estPDF_error(), and main().


Function Documentation

void display_help_menu  
 

Definition at line 82 of file 3destpdf.c.

00083 {
00084   printf 
00085     (
00086      "This program estimates the PDF for a dataset.\n\n"
00087      "Usage: \n"
00088      "3destpdf \n"
00089      "-anat filename    Filename of anat dataset to be segmented            \n"
00090       );
00091   
00092   exit(0);
00093 }

void estPDF_error char *    message
 

Definition at line 53 of file 3destpdf.c.

References PROGRAM_NAME.

Referenced by get_options(), and initialize_program().

00054 {
00055   fprintf (stderr, "\n");
00056   fprintf (stderr, "%s Error: %s \n", PROGRAM_NAME, message);
00057   exit(1);
00058 }

void get_options int    argc,
char **    argv
 

Definition at line 102 of file 3destpdf.c.

References anat_filename, argc, THD_3dim_dataset::dblk, display_help_menu(), DSET_ARRAY, estPDF_error(), ISVALID_3DIM_DATASET, malloc, MAX_STRING_LENGTH, MTEST, THD_load_datablock(), and THD_open_one_dataset().

00107 {
00108   int nopt = 1;                     /* input option argument counter */
00109   int ival, index;                  /* integer input */
00110   float fval;                       /* float input */
00111   char message[MAX_STRING_LENGTH];  /* error message */
00112 
00113 
00114   /*----- does user request help menu? -----*/
00115   if (argc < 2 || strncmp(argv[1], "-help", 5) == 0)  display_help_menu();  
00116    
00117 
00118   /*----- main loop over input options -----*/
00119   while (nopt < argc )
00120     {
00121 
00122       /*-----   -anat filename   -----*/
00123       if (strncmp(argv[nopt], "-anat", 5) == 0)
00124         {
00125           nopt++;
00126           if (nopt >= argc)  estPDF_error ("need argument after -anat ");
00127           anat_filename = malloc (sizeof(char) * MAX_STRING_LENGTH);
00128           MTEST (anat_filename);
00129           strcpy (anat_filename, argv[nopt]);
00130 
00131           anat = THD_open_one_dataset (anat_filename);
00132           if (!ISVALID_3DIM_DATASET (anat))
00133             {
00134               sprintf (message, "Can't open dataset: %s\n", anat_filename); 
00135               estPDF_error (message); 
00136             } 
00137           THD_load_datablock (anat->dblk); 
00138           if (DSET_ARRAY(anat,0) == NULL)
00139             {
00140               sprintf (message, "Can't access data: %s\n", anat_filename); 
00141               estPDF_error (message); 
00142             }
00143 
00144           nopt++;
00145           continue;
00146         }
00147       
00148 
00149       /*----- unknown command -----*/
00150       sprintf(message,"Unrecognized command line option: %s\n", argv[nopt]);
00151       estPDF_error (message);
00152       
00153     }
00154 
00155   
00156 }

void initialize_program int    argc,
char **    argv
 

Definition at line 165 of file 3destpdf.c.

References anat_filename, argc, DSET_BRICK_ARRAY, DSET_NX, DSET_NY, DSET_NZ, estPDF_error(), estpdf_short(), get_options(), malloc, max_val_float, min_val_float, MTEST, nz, and quiet.

00170 {
00171   float parameters [DIMENSION];    /* parameters for PDF estimation */
00172   Boolean ok = TRUE;               /* flag for successful PDF estimation */
00173 
00174   int nx, ny, nz, nxy, nxyz, ixyz;       /* voxel counters */
00175   int n;                                 /* histogram bin index */
00176   short * sfim = NULL;                   /* pointer to anat data */
00177   short * rfim = NULL;                   /* truncated data */ 
00178   int icount;
00179   int lower_cutoff = 25;
00180 
00181   /*----- Get operator inputs -----*/
00182   get_options (argc, argv);
00183 
00184 
00185   /*----- Initialize local variables -----*/
00186   if (anat == NULL)  estPDF_error ("Unable to read anat dataset");
00187   nx = DSET_NX(anat);   ny = DSET_NY(anat);   nz = DSET_NZ(anat);
00188   nxy = nx*ny;   nxyz = nxy*nz;
00189   sfim  = (short *) DSET_BRICK_ARRAY(anat,0) ;
00190   if (sfim == NULL)  estPDF_error ("Unable to read anat dataset");
00191   rfim = (short *) malloc (sizeof(short) * nxyz);   MTEST (rfim);
00192 
00193 
00194   /*----- Just use voxels whose intensity is above the lower cutoff -----*/
00195   icount = 0;
00196   for (ixyz = 0;  ixyz < nxyz;  ixyz++)
00197     if (sfim[ixyz] > lower_cutoff)
00198       {
00199         rfim[icount] = sfim[ixyz];
00200         icount++;
00201       }
00202   printf ("%d voxels above lower cutoff = %d \n", icount, lower_cutoff);
00203 
00204 
00205   /*----- Get PDF estimate and set voxel intensity limits -----*/
00206   estpdf_short (icount, rfim, parameters);
00207   min_val_float = parameters[4] - 2.0*parameters[5];
00208   max_val_float = parameters[7] + 2.0*parameters[8];
00209   
00210    
00211   if (! quiet)
00212     {
00213       printf ("\n");
00214       printf ("Control inputs: \n");
00215       printf ("anat filename = %s \n", anat_filename);
00216       printf ("min value = %f \n", min_val_float);
00217       printf ("max value = %f \n", max_val_float);
00218     }
00219 
00220 
00221 }

int main int    argc,
char **    argv
 

Definition at line 230 of file 3destpdf.c.

References argc, initialize_program(), PROGRAM_AUTHOR, PROGRAM_DATE, and PROGRAM_NAME.

00235 {
00236 
00237   /*----- Identify software -----*/
00238   printf ("\n\n");
00239   printf ("Program: %s \n", PROGRAM_NAME);
00240   printf ("Author:  %s \n", PROGRAM_AUTHOR);
00241   printf ("Date:    %s \n", PROGRAM_DATE);
00242   printf ("\n");
00243 
00244   
00245   /*----- Program initialization -----*/
00246   initialize_program (argc, argv);
00247 
00248   
00249 
00250 }

Variable Documentation

THD_3dim_dataset* anat [static]
 

Definition at line 39 of file 3destpdf.c.

char* anat_filename = NULL [static]
 

Definition at line 37 of file 3destpdf.c.

Referenced by get_options(), and initialize_program().

float max_val_float [static]
 

Definition at line 42 of file 3destpdf.c.

Referenced by initialize_program().

float min_val_float [static]
 

Definition at line 41 of file 3destpdf.c.

Referenced by initialize_program().

Boolean quiet = FALSE [static]
 

Definition at line 44 of file 3destpdf.c.

Referenced by initialize_program().

 

Powered by Plone

This site conforms to the following standards: