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_min.c File Reference

#include "mrilib.h"

Go to the source code of this file.


Functions

double mri_min (MRI_IMAGE *im)

Function Documentation

double mri_min MRI_IMAGE   im
 

Definition at line 5 of file mri_min.c.

References MRI_DATA::byte_data, MRI_DATA::complex_data, CSQR, MRI_DATA::double_data, double_min, MRI_DATA::float_data, float_min, MRI_IMAGE::im, MRI_DATA::int_data, int_min, MRI_IMAGE::kind, MIN, MRI_IMAGE::nvox, MRI_DATA::rgb_data, MRI_DATA::short_data, and short_min.

Referenced by HISTO_main(), ISQ_process_mri(), ISQ_statify_one(), main(), mri_3dalign_one(), mri_dup2D(), mri_edit_image(), mri_quantile(), mri_sharpen(), mri_to_byte(), mri_to_byte_scl(), mri_to_mri(), mri_to_short_sclip(), mri_write_analyze(), T3D_read_images(), and write_images().

00006 {
00007    register int ii , npix ;
00008    byte   byte_min   = 255 ;
00009    short  short_min  = 32767 ;
00010    int    int_min    = 2000000000 ;
00011    float  float_min  = 99999999.0 ;
00012    double double_min = 99999999.0 ;
00013 
00014    npix = im->nvox ;
00015 
00016    switch( im->kind ){
00017 
00018       case MRI_byte:
00019          for( ii=0 ; ii < npix ; ii++ )
00020             byte_min = MIN( byte_min , im->im.byte_data[ii] ) ;
00021          return (double) byte_min ;
00022 
00023       case MRI_short:
00024          for( ii=0 ; ii < npix ; ii++ )
00025             short_min = MIN( short_min , im->im.short_data[ii] ) ;
00026          return (double) short_min ;
00027 
00028       case MRI_int:
00029          for( ii=0 ; ii < npix ; ii++ )
00030             int_min = MIN( int_min , im->im.int_data[ii] ) ;
00031          return (double) int_min ;
00032 
00033       case MRI_float:
00034          for( ii=0 ; ii < npix ; ii++ )
00035             float_min = MIN( float_min , im->im.float_data[ii] ) ;
00036          return (double) float_min ;
00037 
00038       case MRI_double:
00039          for( ii=0 ; ii < npix ; ii++ )
00040             double_min = MIN( double_min , im->im.double_data[ii] ) ;
00041          return double_min ;
00042 
00043       case MRI_complex:
00044          for( ii=0 ; ii < npix ; ii++ )
00045             float_min = MIN( float_min , CSQR(im->im.complex_data[ii]) ) ;
00046          return sqrt(float_min) ;
00047 
00048       case MRI_rgb:{
00049          byte *rgb = im->im.rgb_data ;
00050          double val , bot=255.9 ;
00051          for( ii=0 ; ii < npix ; ii++ ){  /* scale to brightness */
00052             val =  0.299 * rgb[3*ii]      /* between 0 and 255     */
00053                  + 0.587 * rgb[3*ii+1]
00054                  + 0.114 * rgb[3*ii+2] ;
00055             if( val < bot ) bot = val ;
00056          }
00057          return bot ;
00058       }
00059 
00060       default:
00061          fprintf( stderr , "mri_min:  unknown image kind\n" ) ;
00062       break ;
00063    }
00064    return 0 ;
00065 }
 

Powered by Plone

This site conforms to the following standards: