Doxygen Source Code Documentation
mri_copy.c File Reference
#include "mrilib.h"Go to the source code of this file.
| Functions | |
| MRI_IMAGE * | mri_copy (MRI_IMAGE *oldim) | 
| MRI_IMAGE * | mri_expand_2D (int nup, MRI_IMAGE *imin) | 
Function Documentation
| 
 | 
| 
 | ||||||||||||
| 
 Definition at line 40 of file mri_copy.c. References ENTRY, MRI_IMAGE::kind, mri_copy(), MRI_COPY_AUX, mri_data_pointer(), mri_new(), MRI_IMAGE::nx, MRI_IMAGE::ny, MRI_IMAGE::nz, MRI_IMAGE::pixel_size, and RETURN. 
 00041 {
00042    MRI_IMAGE *newim ;
00043    int nx,ny , nxup,nyup , ii,jj, pp,qq , ds ;
00044    char *nar , *iar ;
00045 
00046 ENTRY("mri_expand") ;
00047 
00048    /*-- sanity checks --*/
00049 
00050    if( nup < 1 || imin == NULL || imin->nz > 1 ) RETURN(NULL);
00051 
00052    if( nup == 1 ){ newim = mri_copy(imin); RETURN(newim); }
00053 
00054    iar = (char *)mri_data_pointer(imin) ; if( iar == NULL ) RETURN(NULL);
00055 
00056    nx = imin->nx ; nxup = nx*nup ;
00057    ny = imin->ny ; nyup = ny*nup ;
00058 
00059    newim = mri_new( nxup,nyup , imin->kind ) ;
00060    nar   = (char *)mri_data_pointer(newim) ;
00061    ds    = imin->pixel_size ;
00062 
00063    for( jj=0 ; jj < nyup ; jj++ ){
00064      qq = jj / nup ;
00065      for( ii=0 ; ii < nxup ; ii++ ){
00066        pp = ii / nup ;
00067        memcpy( nar + (ii+jj*nxup)*ds , iar + (pp+qq*nx)*ds , ds ) ;
00068      }
00069    }
00070 
00071    MRI_COPY_AUX( newim , imin ) ;
00072    RETURN(newim) ;
00073 }
 | 
 
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
 
 
 
 
       
	   
	   
	   
	  