Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F122571344
spm_vol_access.c
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Jul 20, 13:08
Size
14 KB
Mime Type
text/x-c
Expires
Tue, Jul 22, 13:08 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
27503014
Attached To
R5163 Slepians
spm_vol_access.c
View Options
/*
* $Id: spm_vol_access.c 4453 2011-09-02 10:47:25Z guillaume $
* John Ashburner
*/
/* matlab independent image access routines;
gateway to routines compiled from spm_vol_utils.c */
#include <math.h>
#include <stdio.h>
#include "spm_vol_access.h"
#include "spm_datatypes.h"
int
get_datasize
(
int
type
)
{
if
(
type
==
SPM_UNSIGNED_CHAR
||
type
==
SPM_SIGNED_CHAR
)
return
(
8
);
if
(
type
==
SPM_SIGNED_SHORT
||
type
==
SPM_SIGNED_SHORT_S
)
return
(
16
);
if
(
type
==
SPM_UNSIGNED_SHORT
||
type
==
SPM_UNSIGNED_SHORT_S
)
return
(
16
);
if
(
type
==
SPM_SIGNED_INT
||
type
==
SPM_SIGNED_INT_S
)
return
(
32
);
if
(
type
==
SPM_UNSIGNED_INT
||
type
==
SPM_UNSIGNED_INT_S
)
return
(
32
);
if
(
type
==
SPM_FLOAT
||
type
==
SPM_FLOAT_S
)
return
(
32
);
if
(
type
==
SPM_DOUBLE
||
type
==
SPM_DOUBLE_S
)
return
(
64
);
return
(
0
);
}
int
resample
(
int
m
,
MAPTYPE
*
vol
,
double
*
out
,
double
*
x
,
double
*
y
,
double
*
z
,
int
hold
,
double
background
)
{
extern
void
resample_uchar
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_schar
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_short
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_ushort
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_int
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_uint
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_float
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_double
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_short_s
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_ushort_s
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_int_s
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_uint_s
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_float_s
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_double_s
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
if
(
vol
->
dtype
==
SPM_UNSIGNED_CHAR
)
resample_uchar
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_CHAR
)
resample_schar
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_SHORT
)
resample_short
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_UNSIGNED_SHORT
)
resample_ushort
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_INT
)
resample_int
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_UNSIGNED_INT
)
resample_uint
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_FLOAT
)
resample_float
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_DOUBLE
)
resample_double
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_SHORT_S
)
resample_short_s
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_UNSIGNED_SHORT_S
)
resample_ushort_s
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_INT_S
)
resample_int_s
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_UNSIGNED_INT_S
)
resample_uint_s
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_FLOAT_S
)
resample_float_s
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_DOUBLE_S
)
resample_double_s
(
m
,
vol
->
data
,
out
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
{
(
void
)
fprintf
(
stderr
,
"%d: Unknown datatype.
\n
"
,
vol
->
dtype
);
return
(
1
);
}
return
(
0
);
}
int
resample_d
(
int
m
,
MAPTYPE
*
vol
,
double
*
out
,
double
*
gradx
,
double
*
grady
,
double
*
gradz
,
double
*
x
,
double
*
y
,
double
*
z
,
int
hold
,
double
background
)
{
extern
void
resample_d_uchar
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_d_schar
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_d_short
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_d_ushort
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_d_int
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_d_uint
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_d_float
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_d_double
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_d_short_s
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_d_ushort_s
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_d_int_s
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_d_uint_s
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_d_float_s
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
void
resample_d_double_s
(
int
,
void
**
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
double
*
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
if
(
vol
->
dtype
==
SPM_UNSIGNED_CHAR
)
resample_d_uchar
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_CHAR
)
resample_d_schar
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_SHORT
)
resample_d_short
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_UNSIGNED_SHORT
)
resample_d_ushort
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_INT
)
resample_d_int
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_UNSIGNED_INT
)
resample_d_uint
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_FLOAT
)
resample_d_float
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_DOUBLE
)
resample_d_double
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_SHORT_S
)
resample_d_short_s
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_UNSIGNED_SHORT_S
)
resample_d_ushort_s
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_INT_S
)
resample_d_int_s
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_UNSIGNED_INT_S
)
resample_d_uint_s
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_FLOAT_S
)
resample_d_float_s
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_DOUBLE_S
)
resample_d_double_s
(
m
,
vol
->
data
,
out
,
gradx
,
grady
,
gradz
,
x
,
y
,
z
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
{
(
void
)
fprintf
(
stderr
,
"%d: Unknown datatype.
\n
"
,
vol
->
dtype
);
return
(
1
);
}
return
(
0
);
}
int
slice
(
double
*
mat
,
double
*
image
,
int
xdim1
,
int
ydim1
,
MAPTYPE
*
vol
,
int
hold
,
double
background
)
{
extern
int
slice_uchar
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
int
slice_schar
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
int
slice_short
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
int
slice_ushort
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
int
slice_int
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
int
slice_uint
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
int
slice_float
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
int
slice_double
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
int
slice_short_s
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
int
slice_ushort_s
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
int
slice_int_s
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
int
slice_uint_s
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
int
slice_float_s
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
extern
int
slice_double_s
(
double
*
,
double
*
,
int
,
int
,
void
**
,
int
,
int
,
int
,
int
,
double
,
double
*
,
double
*
);
int
sts
=
1
;
if
(
vol
->
dtype
==
SPM_UNSIGNED_CHAR
)
sts
=
slice_uchar
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_CHAR
)
sts
=
slice_schar
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_SHORT
)
sts
=
slice_short
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_UNSIGNED_SHORT
)
sts
=
slice_ushort
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_INT
)
sts
=
slice_int
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_UNSIGNED_INT
)
sts
=
slice_uint
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_FLOAT
)
sts
=
slice_float
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_DOUBLE
)
sts
=
slice_double
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_SHORT_S
)
sts
=
slice_short_s
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_UNSIGNED_SHORT_S
)
sts
=
slice_ushort_s
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_SIGNED_INT_S
)
sts
=
slice_int_s
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_UNSIGNED_INT_S
)
sts
=
slice_uint_s
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_FLOAT_S
)
sts
=
slice_float_s
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
if
(
vol
->
dtype
==
SPM_DOUBLE_S
)
sts
=
slice_double_s
(
mat
,
image
,
xdim1
,
ydim1
,
vol
->
data
,
vol
->
dim
[
0
],
vol
->
dim
[
1
],
vol
->
dim
[
2
],
hold
,
background
,
vol
->
scale
,
vol
->
offset
);
else
{
(
void
)
fprintf
(
stderr
,
"%d: Unknown datatype.
\n
"
,
vol
->
dtype
);
sts
=
1
;
}
return
(
sts
);
}
Event Timeline
Log In to Comment