Doxygen Source Code Documentation
mri_to_float.c File Reference
#include "mrilib.h"
Go to the source code of this file.
Defines | |
#define | FAC(q) ( (fac[q] != 0.0) ? fac[q] : 1.0 ) |
Functions | |
MRI_IMAGE * | mri_to_float (MRI_IMAGE *oldim) |
MRI_IMAGE * | mri_scale_to_float (float scl, MRI_IMAGE *oldim) |
MRI_IMAGE * | mri_mult_to_float (float *fac, MRI_IMAGE *oldim) |
Define Documentation
|
Definition at line 161 of file mri_to_float.c. Referenced by mri_mult_to_float(), and THD_insert_series(). |
Function Documentation
|
Definition at line 163 of file mri_to_float.c. References MRI_DATA::byte_data, CABS, MRI_DATA::complex_data, MRI_DATA::double_data, ENTRY, FAC, MRI_DATA::float_data, MRI_IMAGE::im, MRI_DATA::int_data, MRI_IMAGE::kind, MRI_COPY_AUX, MRI_FATAL_ERROR, mri_new_conforming, MRI_IMAGE::nvox, RETURN, and MRI_DATA::short_data. Referenced by FD_brick_to_series(), and THD_extract_many_series().
00164 { 00165 MRI_IMAGE *newim ; 00166 register int ii , npix ; 00167 00168 ENTRY("mri_mult_to_float") ; 00169 00170 newim = mri_new_conforming( oldim , MRI_float ) ; 00171 npix = oldim->nvox ; 00172 00173 switch( oldim->kind ){ 00174 00175 case MRI_byte: 00176 for( ii=0 ; ii < npix ; ii++ ) 00177 newim->im.float_data[ii] = FAC(ii) * oldim->im.byte_data[ii] ; 00178 break ; 00179 00180 case MRI_short: 00181 for( ii=0 ; ii < npix ; ii++ ) 00182 newim->im.float_data[ii] = FAC(ii) * oldim->im.short_data[ii] ; 00183 break ; 00184 00185 case MRI_int: 00186 for( ii=0 ; ii < npix ; ii++ ) 00187 newim->im.float_data[ii] = FAC(ii) * oldim->im.int_data[ii] ; 00188 break ; 00189 00190 case MRI_float: 00191 for( ii=0 ; ii < npix ; ii++ ) 00192 newim->im.float_data[ii] = FAC(ii) * oldim->im.float_data[ii] ; 00193 break ; 00194 00195 case MRI_double: 00196 for( ii=0 ; ii < npix ; ii++ ) 00197 newim->im.float_data[ii] = FAC(ii) * oldim->im.double_data[ii] ; 00198 break ; 00199 00200 case MRI_complex: 00201 for( ii=0 ; ii < npix ; ii++ ) 00202 newim->im.float_data[ii] = FAC(ii) * CABS(oldim->im.complex_data[ii]) ; 00203 break ; 00204 00205 default: 00206 fprintf( stderr , "mri_to_float: unrecognized image kind\n" ) ; 00207 MRI_FATAL_ERROR ; 00208 } 00209 00210 MRI_COPY_AUX(newim,oldim) ; 00211 RETURN( newim ); 00212 } |
|
Definition at line 84 of file mri_to_float.c. References MRI_DATA::byte_data, CABS, MRI_DATA::complex_data, MRI_DATA::double_data, ENTRY, far, MRI_DATA::float_data, MRI_IMAGE::im, MRI_DATA::int_data, MRI_IMAGE::kind, MRI_COPY_AUX, MRI_FATAL_ERROR, MRI_FLOAT_PTR, mri_new_conforming, MRI_RGB_PTR, MRI_RGBA_PTR, MRI_IMAGE::nvox, RETURN, and MRI_DATA::short_data. Referenced by AFNI_dataset_slice(), FD_brick_to_mri(), main(), mri_to_mri_scl(), PH_loadim(), plot_image_surface(), THD_mean_brick(), THD_median_brick(), THD_rms_brick(), and THD_warp3D().
00085 { 00086 MRI_IMAGE *newim ; 00087 register int ii , npix ; 00088 register float fac ; 00089 00090 ENTRY("mri_scale_to_float") ; 00091 00092 if( oldim == NULL ) RETURN( NULL ); /* 09 Feb 1999 */ 00093 00094 fac = scl ; if( fac == 0.0 ) fac = 1.0 ; 00095 newim = mri_new_conforming( oldim , MRI_float ) ; 00096 npix = oldim->nvox ; 00097 00098 switch( oldim->kind ){ 00099 00100 case MRI_byte: 00101 for( ii=0 ; ii < npix ; ii++ ) 00102 newim->im.float_data[ii] = fac * oldim->im.byte_data[ii] ; 00103 break ; 00104 00105 case MRI_short: 00106 for( ii=0 ; ii < npix ; ii++ ) 00107 newim->im.float_data[ii] = fac * oldim->im.short_data[ii] ; 00108 break ; 00109 00110 case MRI_int: 00111 for( ii=0 ; ii < npix ; ii++ ) 00112 newim->im.float_data[ii] = fac * oldim->im.int_data[ii] ; 00113 break ; 00114 00115 case MRI_float: 00116 for( ii=0 ; ii < npix ; ii++ ) 00117 newim->im.float_data[ii] = fac * oldim->im.float_data[ii] ; 00118 break ; 00119 00120 case MRI_double: 00121 for( ii=0 ; ii < npix ; ii++ ) 00122 newim->im.float_data[ii] = fac * oldim->im.double_data[ii] ; 00123 break ; 00124 00125 case MRI_complex: 00126 for( ii=0 ; ii < npix ; ii++ ) 00127 newim->im.float_data[ii] = fac * CABS(oldim->im.complex_data[ii]) ; 00128 break ; 00129 00130 case MRI_rgb:{ 00131 byte * rgb = MRI_RGB_PTR(oldim) ; 00132 float * far = MRI_FLOAT_PTR(newim) ; 00133 for( ii=0 ; ii < npix ; ii++ ) 00134 far[ii] = fac*( 0.299 * rgb[3*ii] 00135 + 0.587 * rgb[3*ii+1] 00136 + 0.114 * rgb[3*ii+2] ) ; 00137 } 00138 break ; 00139 00140 case MRI_rgba:{ 00141 byte * rgb = (byte *) MRI_RGBA_PTR(oldim) ; 00142 float * far = MRI_FLOAT_PTR(newim) ; 00143 for( ii=0 ; ii < npix ; ii++ ) 00144 far[ii] = fac *( 0.299 * rgb[4*ii] 00145 + 0.587 * rgb[4*ii+1] 00146 + 0.114 * rgb[4*ii+2] ) ; 00147 } 00148 break ; 00149 00150 default: 00151 fprintf( stderr , "mri_to_float: unrecognized image kind %d\n",oldim->kind ) ; 00152 MRI_FATAL_ERROR ; 00153 } 00154 00155 MRI_COPY_AUX(newim,oldim) ; 00156 RETURN( newim ); 00157 } |
|
Definition at line 11 of file mri_to_float.c. References MRI_DATA::byte_data, CABS, MRI_DATA::complex_data, MRI_DATA::double_data, ENTRY, far, MRI_DATA::float_data, MRI_IMAGE::im, MRI_DATA::int_data, MRI_IMAGE::kind, MRI_COPY_AUX, MRI_FATAL_ERROR, MRI_FLOAT_PTR, mri_new_conforming, MRI_RGB_PTR, MRI_RGBA_PTR, MRI_IMAGE::nvox, RETURN, and MRI_DATA::short_data. Referenced by AFNI_func_overlay(), AFNI_gra_send_CB(), avg_epochs(), CORREL_main(), FTOSH_getopts(), get_line_opt(), GRA_opt_CB(), GRA_pick_xaxis_CB(), ISQ_getimage(), ISQ_process_mri(), main(), mri_2dalign_one(), mri_2dalign_setup(), mri_3dalign_one(), mri_3dalign_setup(), mri_affine_bicubic(), mri_align_dfspace(), MRI_autobbox(), mri_automask_image(), mri_automask_imarr(), mri_dup2D(), mri_edit_image(), mri_filt_fft(), mri_flatten(), mri_flatten_rgb(), mri_get_cmass_2D(), mri_get_cmass_3D(), mri_histogram(), mri_lsqfit(), mri_medianfilter(), mri_pair_to_complex(), mri_percents(), mri_quantile(), mri_read3D_analyze75(), mri_read_analyze75(), mri_rgb_transform_nD(), mri_rota(), mri_rota_bilinear(), mri_rota_shear(), mri_sharpen(), mri_sharpen_rgb(), mri_shift2D_bilinear(), mri_shift_1D(), mri_sobel(), mri_stat_seq(), mri_to_mri(), mri_warp3d_align_one(), mri_warp3D_align_setup(), mri_warp3D_cubic(), mri_warp3D_linear(), mri_warp3D_NN(), mri_warp3D_quintic(), mri_warp_bicubic(), mri_warp_bilinear(), plot_graphs(), plot_image_surface(), PLUTO_register_timeseries(), process_NIML_MRI_IMAGE(), REG_command_line(), T3D_read_images(), text_graphs(), TFIM_getopts(), THD_cmass(), THD_extract_many_series(), UC_read_opts(), VL_command_line(), and VOLREG_main().
00012 { 00013 MRI_IMAGE *newim ; 00014 register int ii , npix ; 00015 00016 ENTRY("mri_to_float") ; 00017 00018 if( oldim == NULL ) RETURN( NULL ) ; /* 09 Feb 1999 */ 00019 00020 newim = mri_new_conforming( oldim , MRI_float ) ; 00021 npix = oldim->nvox ; 00022 00023 switch( oldim->kind ){ 00024 00025 case MRI_byte: 00026 for( ii=0 ; ii < npix ; ii++ ) 00027 newim->im.float_data[ii] = oldim->im.byte_data[ii] ; 00028 break ; 00029 00030 case MRI_short: 00031 for( ii=0 ; ii < npix ; ii++ ) 00032 newim->im.float_data[ii] = oldim->im.short_data[ii] ; 00033 break ; 00034 00035 case MRI_int: 00036 for( ii=0 ; ii < npix ; ii++ ) 00037 newim->im.float_data[ii] = oldim->im.int_data[ii] ; 00038 break ; 00039 00040 case MRI_float: 00041 (void) memcpy( newim->im.float_data , 00042 oldim->im.float_data , sizeof(float) * npix ) ; 00043 break ; 00044 00045 case MRI_double: 00046 for( ii=0 ; ii < npix ; ii++ ) 00047 newim->im.float_data[ii] = oldim->im.double_data[ii] ; 00048 break ; 00049 00050 case MRI_complex: 00051 for( ii=0 ; ii < npix ; ii++ ) 00052 newim->im.float_data[ii] = CABS(oldim->im.complex_data[ii]) ; 00053 break ; 00054 00055 case MRI_rgb:{ /* 11 Feb 1999 */ 00056 byte * rgb = MRI_RGB_PTR(oldim) ; 00057 float * far = MRI_FLOAT_PTR(newim) ; 00058 for( ii=0 ; ii < npix ; ii++ ) /* scale to brightness */ 00059 far[ii] = 0.299 * rgb[3*ii] /* between 0 and 255 */ 00060 + 0.587 * rgb[3*ii+1] 00061 + 0.114 * rgb[3*ii+2] ; 00062 } 00063 break ; 00064 00065 case MRI_rgba:{ /* 15 Apr 2002 */ 00066 byte * rgb = (byte *) MRI_RGBA_PTR(oldim) ; 00067 float * far = MRI_FLOAT_PTR(newim) ; 00068 for( ii=0 ; ii < npix ; ii++ ) /* scale to brightness */ 00069 far[ii] = 0.299 * rgb[4*ii] /* between 0 and 255 */ 00070 + 0.587 * rgb[4*ii+1] 00071 + 0.114 * rgb[4*ii+2] ; 00072 } 00073 break ; 00074 00075 default: 00076 fprintf( stderr , "mri_to_float: unrecognized image kind %d\n",oldim->kind ) ; 00077 MRI_FATAL_ERROR ; 00078 } 00079 00080 MRI_COPY_AUX(newim,oldim) ; 00081 RETURN( newim ); 00082 } |