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  

imdump.c File Reference

#include <stdlib.h>
#include <string.h>
#include "mrilib.h"

Go to the source code of this file.


Functions

int main (int argc, char *argv[])

Function Documentation

int main int    argc,
char *    argv[]
 

\** File : SUMA.c

Author:
: Ziad Saad Date : Thu Dec 27 16:21:01 EST 2001
Purpose :

Input paramters :

Parameters:
param  Usage : SUMA ( )
Returns :
Returns:
Support :
See also:
OpenGL prog. Guide 3rd edition , varray.c from book's sample code
Side effects :

Definition at line 11 of file imdump.c.

References argc, complex::i, MRI_IMAGE::kind, machdep(), mri_data_pointer(), MRI_IS_2D, mri_read_just_one(), MRI_IMAGE::nx, nxim, MRI_IMAGE::ny, nyim, and complex::r.

00012 {
00013    MRI_IMAGE *imin ;
00014    float * maskar ;
00015    int nxim , nyim , ii , npix ;
00016 
00017    if( argc < 2 || strncmp(argv[1],"-help",4) == 0 ){
00018      printf("Usage: imdump input_image\n"
00019             "* Prints out nonzero pixels in an image;\n"
00020             "* Results to stdout; redirect (with >) to save to a file;\n"
00021             "* Format: x-index y-index value, one pixel per line.\n" ) ;
00022      exit(0) ;
00023    }
00024 
00025    machdep() ;
00026 
00027    imin = mri_read_just_one( argv[1] ) ;
00028    if( imin == NULL ) exit(1) ;
00029    if( ! MRI_IS_2D(imin) ){
00030       fprintf(stderr,"can only deal with 2D images!\n") ;
00031       exit(1) ;
00032    }
00033 
00034    nxim = imin->nx ;
00035    nyim = imin->ny ;
00036    npix = nxim * nyim ;
00037 
00038    switch( imin->kind ){
00039 
00040       default:
00041          fprintf(stderr,"Unrecognized input image type!\a\n") ;
00042          exit(1) ;
00043 
00044       case MRI_byte:{
00045          int ix,jy ;
00046          byte * arin , val ;
00047          arin  = mri_data_pointer(imin) ;
00048          for( jy=0 ; jy < nyim ; jy++ ){
00049             for( ix=0 ; ix < nxim ; ix++ ){
00050               val = arin[ix+jy*nxim] ;
00051               if( val != 0 ) printf("%4d %4d %4d\n",ix,jy,val ) ;
00052          }  }
00053       } break ;
00054 
00055       case MRI_short:{
00056          int ix,jy ;
00057          short * arin , val ;
00058          arin  = mri_data_pointer(imin) ;
00059          for( jy=0 ; jy < nyim ; jy++ ){
00060             for( ix=0 ; ix < nxim ; ix++ ){
00061               val = arin[ix+jy*nxim] ;
00062               if( val != 0 ) printf("%4d %4d %4d\n",ix,jy,val ) ;
00063          }  }
00064       } break ;
00065 
00066       case MRI_float:{
00067          int ix,jy ;
00068          float * arin , val ;
00069          arin  = mri_data_pointer(imin) ;
00070          for( jy=0 ; jy < nyim ; jy++ ){
00071             for( ix=0 ; ix < nxim ; ix++ ){
00072               val = arin[ix+jy*nxim] ;
00073               if( val != 0 ) printf("%4d %4d %g\n",ix,jy,val ) ;
00074          }  }
00075       } break ;
00076 
00077       case MRI_int:{
00078          int ix,jy ;
00079          int * arin , val ;
00080          arin  = mri_data_pointer(imin) ;
00081          for( jy=0 ; jy < nyim ; jy++ ){
00082             for( ix=0 ; ix < nxim ; ix++ ){
00083               val = arin[ix+jy*nxim] ;
00084               if( val != 0 ) printf("%4d %4d %4d\n",ix,jy,val ) ;
00085          }  }
00086       } break ;
00087 
00088       case MRI_double:{
00089          int ix,jy ;
00090          double * arin , val ;
00091          arin  = mri_data_pointer(imin) ;
00092          for( jy=0 ; jy < nyim ; jy++ ){
00093             for( ix=0 ; ix < nxim ; ix++ ){
00094               val = arin[ix+jy*nxim] ;
00095               if( val != 0 ) printf("%4d %4d %g\n",ix,jy,val ) ;
00096          }  }
00097       } break ;
00098 
00099       case MRI_complex:{
00100          int ix,jy ;
00101          complex * arin , val ;
00102          arin  = mri_data_pointer(imin) ;
00103          for( jy=0 ; jy < nyim ; jy++ ){
00104             for( ix=0 ; ix < nxim ; ix++ ){
00105               val = arin[ix+jy*nxim] ;
00106               if( val.r != 0 || val.i != 0 )
00107                  printf("%4d %4d %g %g\n",ix,jy,val.r,val.i ) ;
00108          }  }
00109       } break ;
00110    }
00111 
00112    exit(0) ;
00113 }
 

Powered by Plone

This site conforms to the following standards: