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 } |