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