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  

mri_to_mri.c File Reference

#include "mrilib.h"

Go to the source code of this file.


Functions

MRI_IMAGEmri_to_mri (int datum, MRI_IMAGE *oldim)
MRI_IMAGEmri_to_mri_scl (int datum, double factor, MRI_IMAGE *oldim)

Function Documentation

MRI_IMAGE* mri_to_mri int    datum,
MRI_IMAGE   oldim
 

Definition at line 15 of file mri_to_mri.c.

References ENTRY, MRI_IMAGE::kind, mri_max(), mri_maxabs(), mri_min(), mri_to_byte(), mri_to_byte_scl(), mri_to_complex(), mri_to_float(), mri_to_rgb(), mri_to_rgba(), mri_to_short(), mri_to_short_scl(), and RETURN.

Referenced by AFNI_read_images(), IMREG_main(), ISQ_getimage(), main(), mri_cat2D(), mri_dup2D(), mri_scramble(), mri_warp3D_cubic(), mri_warp3D_linear(), mri_warp3D_NN(), mri_warp3D_quintic(), mri_warp_bicubic(), PH_popup_image(), PLUGIN_imseq_getim(), RCREND_imseq_getim(), and REND_imseq_getim().

00016 {
00017    MRI_IMAGE * newim ;
00018 
00019 ENTRY("mri_to_mri") ;
00020 
00021    if( oldim == NULL ) RETURN( NULL );  /* 09 Feb 1999 */
00022 
00023    switch( datum ){
00024       default:
00025          fprintf(stderr,
00026            "\nUnsupported mri_to_mri conversion!\a\n") ;
00027          newim = NULL ;
00028       break ;
00029 
00030       case MRI_short:{
00031          double imtop ;
00032          imtop = mri_maxabs( oldim ) ;
00033 
00034          if( imtop <= 32767.0 )
00035             newim = mri_to_short( 1.0 , oldim ) ;
00036          else
00037             newim = mri_to_short_scl( 0.0 , 10000.0 , oldim ) ;
00038       }
00039       break ;
00040 
00041       case MRI_float:
00042          newim = mri_to_float( oldim ) ;
00043       break ;
00044 
00045       case MRI_byte:{
00046          float immin , immax ;
00047 
00048          if( oldim->kind == MRI_byte ){
00049             newim = mri_to_byte( oldim ) ;
00050          } else {
00051             immin = mri_min( oldim ) ; immax = mri_max( oldim ) ;
00052             if( immin >= 0 && immax < 256 )
00053                newim = mri_to_byte_scl( 1.0 , 0.0 , oldim ) ;
00054             else
00055                newim = mri_to_byte_scl( 0.0 , 255.0 , oldim ) ;
00056         }
00057       }
00058       break ;
00059 
00060       case MRI_complex:
00061          newim = mri_to_complex( oldim ) ;
00062       break ;
00063 
00064       case MRI_rgb:
00065          newim = mri_to_rgb( oldim ) ; /* 11 Feb 1999 */
00066       break ;
00067 
00068       case MRI_rgba:
00069          newim = mri_to_rgba( oldim ) ; /* 20 Mar 2002 */
00070       break ;
00071 
00072   }
00073   RETURN( newim );
00074 }

MRI_IMAGE* mri_to_mri_scl int    datum,
double    factor,
MRI_IMAGE   oldim
 

Definition at line 81 of file mri_to_mri.c.

References ENTRY, complex::i, MRI_COMPLEX_PTR, mri_scale_to_float(), mri_to_byte_scl(), mri_to_complex(), mri_to_short(), MRI_IMAGE::nvox, complex::r, and RETURN.

Referenced by main().

00082 {
00083    MRI_IMAGE * newim ;
00084 
00085 ENTRY("mri_to_mri_scl") ;
00086 
00087    if( oldim == NULL ) RETURN( NULL );  /* 09 Feb 1999 */
00088 
00089    switch( datum ){
00090       default:
00091          fprintf(stderr,
00092            "\nUnsupported mri_to_mri conversion!\a\n") ;
00093          newim = NULL ;
00094       break ;
00095 
00096       case MRI_short:
00097          newim = mri_to_short( factor , oldim ) ;
00098       break ;
00099 
00100       case MRI_float:
00101          newim = mri_scale_to_float( factor , oldim ) ;
00102       break ;
00103 
00104       case MRI_byte:
00105          newim = mri_to_byte_scl( factor , 0.0 , oldim ) ;
00106       break ;
00107 
00108       case MRI_complex:{
00109          complex * cxar ; int ii , nvox ;
00110          newim = mri_to_complex( oldim ) ;
00111          cxar = MRI_COMPLEX_PTR(newim) ;
00112          nvox = newim->nvox ;
00113          for( ii=0 ; ii < nvox ; ii++ ){
00114             cxar[ii].r *= factor ; cxar[ii].i *= factor ;
00115          }
00116       }
00117       break ;
00118   }
00119   RETURN( newim );
00120 }
 

Powered by Plone

This site conforms to the following standards: