Doxygen Source Code Documentation
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
|
|
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 }
|