Doxygen Source Code Documentation
mayo_analyze.c File Reference
#include "mrilib.h"#include "mayo_analyze.h"Go to the source code of this file.
| Functions | |
| void | ShowHdr (char *, struct dsr *) | 
| void | swap_long (void *) | 
| void | swap_short (void *) | 
| int | main (int argc, char *argv[]) | 
| swap_hdr (struct dsr *pntr) | |
| Variables | |
| int | swapped | 
Function Documentation
| 
 | ||||||||||||
| \** File : SUMA.c 
 Input paramters : 
 
 
 Definition at line 11 of file mayo_analyze.c. References argc, image_dimension::dim, dsr::dime, ShowHdr(), swap_hdr(), and swapped. 
 00012 {
00013     struct dsr hdr;
00014     int size, nn ;
00015     double cmax, cmin;
00016     FILE *fp;
00017 
00018     if( argc < 2 || strcmp(argv[1],"-help") == 0 ){
00019       printf("Usage: mayo_analyze file.hdr ...\n"
00020              "Prints out info from the Mayo Analyze 7.5 header file(s)\n"
00021       ) ;
00022       exit(0) ;
00023     }
00024 
00025     for( nn=1 ; nn < argc ; nn++ ){
00026 
00027        if((fp=fopen(argv[nn],"r"))==NULL){
00028            fprintf(stderr,"Can't open:<%s>\n", argv[1]);
00029            continue ;
00030        }
00031        fread(&hdr,1,sizeof(struct dsr),fp);
00032 
00033        if(hdr.dime.dim[0] < 0 || hdr.dime.dim[0] > 15){
00034           printf("Byte swapping header %s\n",argv[nn]) ;
00035           swap_hdr(&hdr); swapped = 1 ;
00036        } else {
00037           swapped = 0 ;
00038        }
00039 
00040        ShowHdr(argv[nn], &hdr);
00041        fclose(fp) ;
00042        if( nn < argc-1 )
00043           printf("======================================================\n") ;
00044     }
00045     exit(0) ;
00046 }
 | 
| 
 | ||||||||||||
| 
 Definition at line 49 of file mayo_analyze.c. References data_history::aux_file, image_dimension::bitpix, image_dimension::cal_max, image_dimension::cal_min, image_dimension::compressed, header_key::data_type, image_dimension::datatype, header_key::db_name, data_history::descrip, image_dimension::dim, dsr::dime, data_history::exp_date, data_history::exp_time, header_key::extents, data_history::field_skip, fileName, image_dimension::funused1, image_dimension::funused2, image_dimension::funused3, data_history::generated, image_dimension::glmax, image_dimension::glmin, dsr::hist, data_history::hist_un0, dsr::hk, header_key::hkey_un0, i, data_history::omax, data_history::omin, data_history::orient, data_history::originator, data_history::patient_id, image_dimension::pixdim, header_key::regular, data_history::scannum, header_key::session_error, header_key::sizeof_hdr, data_history::smax, data_history::smin, data_history::start_field, swap_short(), image_dimension::verified, data_history::views, data_history::vols_added, and image_dimension::vox_offset. Referenced by main(). 
 00050 {
00051    int i;
00052    char string[128];
00053    printf("Analyze Header Dump of: <%s> \n", fileName);
00054 /* Header Key */
00055    printf("sizeof_hdr: <%d> \n", hdr->hk.sizeof_hdr);
00056    printf("data_type:  <%s> \n", hdr->hk.data_type);
00057    printf("db_name:    <%s> \n", hdr->hk.db_name);
00058    printf("extents:    <%d> \n", hdr->hk.extents);
00059    printf("session_error: <%d> \n", hdr->hk.session_error);
00060    printf("regular:  <%c> \n", hdr->hk.regular);
00061    printf("hkey_un0: <%c> \n", hdr->hk.hkey_un0);
00062 
00063 /* Image Dimension */
00064    for(i=0;i<8;i++)
00065        printf("dim[%d]: <%d> \n", i, hdr->dime.dim[i]);
00066 
00067 #if 0
00068    strncpy(string,hdr->dime.vox_units,4);
00069    printf("vox_units:  <%s> \n", string);
00070 #endif
00071 
00072 #if 0
00073    strncpy(string,hdr->dime.cal_units,8);
00074    printf("cal_units: <%s> \n", string);
00075    printf("unused1:   <%d> \n", hdr->dime.unused1);
00076 #endif
00077    printf("datatype:  <%d> \n", hdr->dime.datatype);
00078    printf("bitpix:    <%d> \n", hdr->dime.bitpix);
00079 
00080    for(i=0;i<8;i++)
00081        printf("pixdim[%d]: <%6.4f> \n",i, hdr->dime.pixdim[i]);
00082 
00083    printf("vox_offset: <%6.4f> \n",  hdr->dime.vox_offset);
00084    printf("funused1:   <%6.4f> \n", hdr->dime.funused1);
00085    printf("funused2:   <%6.4f> \n", hdr->dime.funused2);
00086    printf("funused3:   <%6.4f> \n", hdr->dime.funused3);
00087    printf("cal_max:    <%6.4f> \n", hdr->dime.cal_max);
00088    printf("cal_min:    <%6.4f> \n", hdr->dime.cal_min);
00089    printf("compressed: <%6.4f> \n", hdr->dime.compressed);
00090    printf("verified:   <%6.4f> \n", hdr->dime.verified);
00091    printf("glmax:      <%d>    \n", hdr->dime.glmax);
00092    printf("glmin:      <%d>    \n", hdr->dime.glmin);
00093 
00094 /* Data History */
00095    strncpy(string,hdr->hist.descrip,80);
00096    printf("descrip:  <%s> \n", string);
00097    strncpy(string,hdr->hist.aux_file,24);
00098    printf("aux_file: <%s> \n", string);
00099    printf("orient:   <%d> \n", (int) hdr->hist.orient);
00100 
00101    /* 28 Nov 2001: attempt to decode originator a la SPM */
00102 
00103    { short xyzuv[5] , xx,yy,zz ;
00104      memcpy( xyzuv , hdr->hist.originator , 10 ) ;
00105      if( xyzuv[3] == 0 && xyzuv[4] == 0 ){
00106         xx = xyzuv[0] ; yy = xyzuv[1] ; zz = xyzuv[2] ;
00107         if( swapped ){ swap_short(&xx); swap_short(&yy); swap_short(&zz); }
00108         if( xx > 0 && xx < hdr->dime.dim[1] &&
00109             yy > 0 && yy < hdr->dime.dim[2] &&
00110             zz > 0 && zz < hdr->dime.dim[3]   ){
00111 
00112            printf("SPM originator decodes to %d %d %d\n",xx,yy,zz) ;
00113         }
00114      }
00115    }
00116 
00117    strncpy(string,hdr->hist.originator,10);
00118    printf("originator: <%s> \n", string);
00119 
00120    strncpy(string,hdr->hist.generated,10);
00121    printf("generated: <%s> \n", string);
00122 
00123    strncpy(string,hdr->hist.scannum,10);
00124    printf("scannum: <%s> \n", string);
00125 
00126    strncpy(string,hdr->hist.patient_id,10);
00127    printf("patient_id: <%s> \n", string);
00128 
00129    strncpy(string,hdr->hist.exp_date,10);
00130    printf("exp_date: <%s> \n", string);
00131 
00132    strncpy(string,hdr->hist.exp_time,10);
00133    printf("exp_time: <%s> \n", string);
00134 
00135    strncpy(string,hdr->hist.hist_un0,10);
00136    printf("hist_un0: <%s> \n", string);
00137 
00138    printf("views:      <%d> \n", hdr->hist.views);
00139    printf("vols_added: <%d> \n", hdr->hist.vols_added);
00140    printf("start_field:<%d> \n", hdr->hist.start_field);
00141    printf("field_skip: <%d> \n", hdr->hist.field_skip);
00142    printf("omax: <%d> \n", hdr->hist.omax);
00143    printf("omin: <%d> \n", hdr->hist.omin);
00144    printf("smin: <%d> \n", hdr->hist.smax);
00145    printf("smin: <%d> \n", hdr->hist.smin);
00146 
00147 }
 | 
| 
 | 
| 
 | 
| 
 Definition at line 187 of file mayo_analyze.c. Referenced by swap_hdr(). 
 00188 {
00189    unsigned char *pntr = (unsigned char *) ppp ;
00190         unsigned char b0, b1, b2, b3;
00191 
00192         b0 = *pntr;
00193         b1 = *(pntr+1);
00194         b2 = *(pntr+2);
00195         b3 = *(pntr+3);
00196 
00197         *pntr = b3;
00198         *(pntr+1) = b2;
00199         *(pntr+2) = b1;
00200         *(pntr+3) = b0;
00201 }
 | 
| 
 | 
| 
 Definition at line 203 of file mayo_analyze.c. Referenced by ShowHdr(), and swap_hdr(). 
 00204 {
00205    unsigned char *pntr = (unsigned char *) ppp ;
00206         unsigned char b0, b1;
00207 
00208         b0 = *pntr;
00209         b1 = *(pntr+1);
00210 
00211         *pntr = b1;
00212         *(pntr+1) = b0;
00213 }
 | 
Variable Documentation
| 
 | 
| 
 Definition at line 9 of file mayo_analyze.c. Referenced by main(). | 
 
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
 
 
 
 
       
	   
	   
	   
	  