Doxygen Source Code Documentation
mri_max.c File Reference
#include "mrilib.h"#include <math.h>Go to the source code of this file.
Functions | |
| double | mri_max (MRI_IMAGE *im) |
| double | mri_maxabs (MRI_IMAGE *im) |
| double | mri_min (MRI_IMAGE *im) |
Function Documentation
|
|
Definition at line 12 of file mri_max.c. References MRI_DATA::byte_data, MRI_DATA::complex_data, CSQR, MRI_DATA::double_data, double_max, MRI_DATA::float_data, float_max, MRI_IMAGE::im, MRI_DATA::int_data, int_max, MRI_IMAGE::kind, MAX, MRI_IMAGE::nvox, MRI_DATA::rgb_data, MRI_DATA::short_data, short_max, and top. Referenced by HISTO_main(), ISQ_process_mri(), ISQ_statify_one(), main(), mri_3dalign_one(), mri_3dalign_setup(), mri_align_crao(), mri_dup2D(), mri_edit_image(), mri_maxabs(), mri_quantile(), mri_rgb_transform_nD(), mri_sharpen(), mri_to_byte(), mri_to_byte_scl(), mri_to_mri(), mri_to_short_sclip(), mri_warp3D_align_setup(), mri_write_analyze(), T3D_read_images(), and write_images().
00013 {
00014 register int ii , npix ;
00015 byte byte_max = 0 ;
00016 short short_max = -32767 ; /* 23 Oct 1998: changed from 0 */
00017 int int_max = -2147483647 ; /* ditto */
00018 float float_max = -1.e+38 ; /* changed from -9999999.0 */
00019 double double_max = -1.e+38 ; /* ditto */
00020
00021 npix = im->nvox ;
00022
00023 switch( im->kind ){
00024
00025 case MRI_byte:
00026 for( ii=0 ; ii < npix ; ii++ )
00027 byte_max = MAX( byte_max , im->im.byte_data[ii] ) ;
00028 return (double) byte_max ;
00029
00030 case MRI_short:
00031 for( ii=0 ; ii < npix ; ii++ )
00032 short_max = MAX( short_max , im->im.short_data[ii] ) ;
00033 return (double) short_max ;
00034
00035 case MRI_int:
00036 for( ii=0 ; ii < npix ; ii++ )
00037 int_max = MAX( int_max , im->im.int_data[ii] ) ;
00038 return (double) int_max ;
00039
00040 case MRI_float:
00041 for( ii=0 ; ii < npix ; ii++ )
00042 float_max = MAX( float_max , im->im.float_data[ii] ) ;
00043 return (double) float_max ;
00044
00045 case MRI_double:
00046 for( ii=0 ; ii < npix ; ii++ )
00047 double_max = MAX( double_max , im->im.double_data[ii] ) ;
00048 return double_max ;
00049
00050 case MRI_complex:
00051 for( ii=0 ; ii < npix ; ii++ )
00052 float_max = MAX( float_max , CSQR(im->im.complex_data[ii]) ) ;
00053 return sqrt(float_max) ;
00054
00055 case MRI_rgb:{
00056 byte *rgb = im->im.rgb_data ;
00057 double val , top=0.0 ;
00058 for( ii=0 ; ii < npix ; ii++ ){ /* scale to brightness */
00059 val = 0.299 * rgb[3*ii] /* between 0 and 255 */
00060 + 0.587 * rgb[3*ii+1]
00061 + 0.114 * rgb[3*ii+2] ;
00062 if( val > top ) top = val ;
00063 }
00064 return top ;
00065 }
00066
00067 default:
00068 fprintf( stderr , "mri_max: unknown image kind\n" ) ;
00069 }
00070 return 0 ;
00071 }
|
|
|
Definition at line 73 of file mri_max.c. References abs, MRI_DATA::byte_data, MRI_DATA::complex_data, CSQR, MRI_DATA::double_data, double_max, MRI_DATA::float_data, MRI_IMAGE::im, MRI_DATA::int_data, int_max, MRI_IMAGE::kind, MAX, mri_max(), MRI_IMAGE::nvox, and MRI_DATA::short_data. Referenced by AFNI_func_overlay(), main(), mri_brainormalize(), mri_to_mri(), mri_to_short(), PH_loadim(), PR_type_scale(), and THD_cliplevel().
00074 {
00075 register int ii , npix ;
00076 byte byte_max = 0 ;
00077 int int_max = 0 ;
00078 double double_max = 0.0 ;
00079
00080 npix = im->nvox ;
00081
00082 switch( im->kind ){
00083
00084 case MRI_byte:
00085 for( ii=0 ; ii < npix ; ii++ )
00086 byte_max = MAX( byte_max , im->im.byte_data[ii] ) ;
00087 return (double) byte_max ;
00088
00089 case MRI_short:
00090 for( ii=0 ; ii < npix ; ii++ )
00091 int_max = MAX( int_max , abs(im->im.short_data[ii]) ) ;
00092 return (double) int_max ;
00093
00094 case MRI_int:
00095 for( ii=0 ; ii < npix ; ii++ )
00096 int_max = MAX( int_max , abs(im->im.int_data[ii]) ) ;
00097 return (double) int_max ;
00098
00099 case MRI_float:
00100 for( ii=0 ; ii < npix ; ii++ )
00101 double_max = MAX( double_max , fabs(im->im.float_data[ii]) ) ;
00102 return double_max ;
00103
00104 case MRI_double:
00105 for( ii=0 ; ii < npix ; ii++ )
00106 double_max = MAX( double_max , fabs(im->im.double_data[ii]) ) ;
00107 return double_max ;
00108
00109 case MRI_complex:
00110 for( ii=0 ; ii < npix ; ii++ )
00111 double_max = MAX( double_max , CSQR(im->im.complex_data[ii]) ) ;
00112 return sqrt(double_max) ;
00113
00114 case MRI_rgb:
00115 return mri_max( im ) ;
00116
00117 default:
00118 fprintf( stderr , "mri_max: unknown image kind\n" ) ;
00119 }
00120 return 0 ;
00121 }
|
|
|
Definition at line 123 of file mri_max.c.
00124 {
00125 register int ii , npix ;
00126 byte byte_min = 255 ;
00127 short short_min = 32767 ;
00128 int int_min = 2147483647 ;
00129 float float_min = 1.e+38 ;
00130 double double_min = 1.e+38 ;
00131
00132 npix = im->nvox ;
00133
00134 switch( im->kind ){
00135
00136 case MRI_byte:
00137 for( ii=0 ; ii < npix ; ii++ )
00138 byte_min = MIN( byte_min , im->im.byte_data[ii] ) ;
00139 return (double) byte_min ;
00140
00141 case MRI_short:
00142 for( ii=0 ; ii < npix ; ii++ )
00143 short_min = MIN( short_min , im->im.short_data[ii] ) ;
00144 return (double) short_min ;
00145
00146 case MRI_int:
00147 for( ii=0 ; ii < npix ; ii++ )
00148 int_min = MIN( int_min , im->im.int_data[ii] ) ;
00149 return (double) int_min ;
00150
00151 case MRI_float:
00152 for( ii=0 ; ii < npix ; ii++ )
00153 float_min = MIN( float_min , im->im.float_data[ii] ) ;
00154 return (double) float_min ;
00155
00156 case MRI_double:
00157 for( ii=0 ; ii < npix ; ii++ )
00158 double_min = MIN( double_min , im->im.double_data[ii] ) ;
00159 return double_min ;
00160
00161 case MRI_complex:
00162 for( ii=0 ; ii < npix ; ii++ )
00163 float_min = MIN( float_min , CSQR(im->im.complex_data[ii]) ) ;
00164 return sqrt(float_min) ;
00165
00166 case MRI_rgb:{
00167 byte *rgb = im->im.rgb_data ;
00168 double val , bot=255.9 ;
00169 for( ii=0 ; ii < npix ; ii++ ){ /* scale to brightness */
00170 val = 0.299 * rgb[3*ii] /* between 0 and 255 */
00171 + 0.587 * rgb[3*ii+1]
00172 + 0.114 * rgb[3*ii+2] ;
00173 if( val < bot ) bot = val ;
00174 }
00175 return bot ;
00176 }
00177
00178 default:
00179 fprintf( stderr , "mri_min: unknown image kind\n" ) ;
00180 }
00181 return 0 ;
00182 }
|