Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
avwutils
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
FSL
avwutils
Commits
3d16160d
Commit
3d16160d
authored
5 years ago
by
Matthew Webster
Browse files
Options
Downloads
Patches
Plain Diff
Changes for NewNifit 3.0.0
parent
4f64c0d1
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
fslcpgeom.cc
+4
-5
4 additions, 5 deletions
fslcpgeom.cc
fslcreatehd.cc
+143
-23
143 additions, 23 deletions
fslcreatehd.cc
fslhd.cc
+2
-3
2 additions, 3 deletions
fslhd.cc
fslmerge.cc
+3
-4
3 additions, 4 deletions
fslmerge.cc
fslnvols.cc
+6
-8
6 additions, 8 deletions
fslnvols.cc
with
158 additions
and
43 deletions
fslcpgeom.cc
+
4
−
5
View file @
3d16160d
...
@@ -17,12 +17,11 @@ void print_usage(const string& progname)
...
@@ -17,12 +17,11 @@ void print_usage(const string& progname)
int
avwcpgeom_main
(
int
argc
,
char
*
argv
[])
int
avwcpgeom_main
(
int
argc
,
char
*
argv
[])
{
{
NiftiIO
reader
;
NiftiHeader
headerSrc
,
headerDest
;
NiftiHeader
headerSrc
,
headerDest
;
string
fullDestinationName
(
return_validimagefilename
(
string
(
argv
[
2
])));
string
fullDestinationName
(
return_validimagefilename
(
string
(
argv
[
2
])));
try
{
try
{
headerSrc
=
reader
.
loadHeader
(
return_validimagefilename
(
string
(
argv
[
1
])));
headerSrc
=
loadHeader
(
return_validimagefilename
(
string
(
argv
[
1
])));
headerDest
=
reader
.
loadHeader
(
fullDestinationName
);
headerDest
=
loadHeader
(
fullDestinationName
);
}
catch
(...)
{
}
catch
(...)
{
perror
(
"Error opening files"
);
perror
(
"Error opening files"
);
return
EXIT_FAILURE
;
return
EXIT_FAILURE
;
...
@@ -38,7 +37,7 @@ int avwcpgeom_main(int argc, char *argv[])
...
@@ -38,7 +37,7 @@ int avwcpgeom_main(int argc, char *argv[])
}
}
vector
<
NiftiExtension
>
extensions
;
vector
<
NiftiExtension
>
extensions
;
reader
.
loadImage
(
fullDestinationName
,
buffer
,
extensions
,
false
);
loadImage
(
fullDestinationName
,
buffer
,
extensions
,
false
);
headerDest
.
sformCode
=
headerSrc
.
sformCode
;
headerDest
.
sformCode
=
headerSrc
.
sformCode
;
headerDest
.
setSForm
(
headerSrc
.
getSForm
());
headerDest
.
setSForm
(
headerSrc
.
getSForm
());
...
@@ -49,7 +48,7 @@ int avwcpgeom_main(int argc, char *argv[])
...
@@ -49,7 +48,7 @@ int avwcpgeom_main(int argc, char *argv[])
if
(
copydim
)
if
(
copydim
)
headerDest
.
dim
=
headerSrc
.
dim
;
headerDest
.
dim
=
headerSrc
.
dim
;
reader
.
saveImage
(
fullDestinationName
,
buffer
,
extensions
,
headerDest
,
FslIsCompressedFileType
(
fslFileType
(
fullDestinationName
)));
saveImage
(
fullDestinationName
,
buffer
,
extensions
,
headerDest
,
FslIsCompressedFileType
(
fslFileType
(
fullDestinationName
)));
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
fslcreatehd.cc
+
143
−
23
View file @
3d16160d
...
@@ -23,10 +23,136 @@ void print_usage(const string& progname)
...
@@ -23,10 +23,136 @@ void print_usage(const string& progname)
}
}
NiftiHeader
headerFromXML
(
vector
<
string
>
XMLreport
)
{
NiftiHeader
header
;
int
xyzUnits
(
0
);
int
tUnits
(
0
);
int
freqDim
(
0
);
int
phaseDim
(
0
);
int
sliceDim
(
0
);
for
(
unsigned
int
setting
=
1
;
setting
<
XMLreport
.
size
()
-
1
;
setting
++
)
{
//Tokenise
size_t
pos1
=
XMLreport
[
setting
].
find_first_of
(
" "
)
+
2
;
size_t
pos2
=
XMLreport
[
setting
].
find_first_of
(
" "
,
pos1
);
size_t
pos3
=
XMLreport
[
setting
].
find_first_of
(
'\''
)
+
1
;
size_t
pos4
=
XMLreport
[
setting
].
find_last_of
(
'\''
);
string
field
(
XMLreport
[
setting
].
substr
(
pos1
,
pos2
-
pos1
));
string
value
(
XMLreport
[
setting
].
substr
(
pos3
,
pos4
-
pos3
));
istringstream
values
(
value
);
if
(
field
==
"datatype"
)
{
values
>>
header
.
datatype
;
}
else
if
(
field
==
"image_offset"
)
{
values
>>
header
.
vox_offset
;
}
else
if
(
field
==
"sto_xyz_matrix"
)
{
mat44
sForm
;
for
(
int
i
=
0
;
i
<
4
;
i
++
)
for
(
int
j
=
0
;
j
<
4
;
j
++
)
values
>>
sForm
.
m
[
i
][
j
];
header
.
setSForm
(
sForm
);
}
else
if
(
field
==
"ndim"
)
{
values
>>
header
.
dim
[
0
];
}
else
if
(
field
==
"nx"
)
{
values
>>
header
.
dim
[
1
];
}
else
if
(
field
==
"ny"
)
{
values
>>
header
.
dim
[
2
];
}
else
if
(
field
==
"nz"
)
{
values
>>
header
.
dim
[
3
];
}
else
if
(
field
==
"nt"
)
{
values
>>
header
.
dim
[
4
];
}
else
if
(
field
==
"nu"
)
{
values
>>
header
.
dim
[
5
];
}
else
if
(
field
==
"nv"
)
{
values
>>
header
.
dim
[
6
];
}
else
if
(
field
==
"nw"
)
{
values
>>
header
.
dim
[
7
];
}
else
if
(
field
==
"qfac"
)
{
values
>>
header
.
pixdim
[
0
];
}
else
if
(
field
==
"dx"
)
{
values
>>
header
.
pixdim
[
1
];
}
else
if
(
field
==
"dy"
)
{
values
>>
header
.
pixdim
[
2
];
}
else
if
(
field
==
"dz"
)
{
values
>>
header
.
pixdim
[
3
];
}
else
if
(
field
==
"dt"
)
{
values
>>
header
.
pixdim
[
4
];
}
else
if
(
field
==
"du"
)
{
values
>>
header
.
pixdim
[
5
];
}
else
if
(
field
==
"dv"
)
{
values
>>
header
.
pixdim
[
6
];
}
else
if
(
field
==
"dw"
)
{
values
>>
header
.
pixdim
[
7
];
}
else
if
(
field
==
"cal_min"
)
{
values
>>
header
.
cal_min
;
}
else
if
(
field
==
"cal_max"
)
{
values
>>
header
.
cal_max
;
}
else
if
(
field
==
"scl_slope"
)
{
values
>>
header
.
sclSlope
;
}
else
if
(
field
==
"scl_inter"
)
{
values
>>
header
.
sclInter
;
}
else
if
(
field
==
"intentCode"
)
{
values
>>
header
.
sclSlope
;
}
else
if
(
field
==
"intent_p1"
)
{
values
>>
header
.
sclInter
;
}
else
if
(
field
==
"intent_p2"
)
{
values
>>
header
.
cal_min
;
}
else
if
(
field
==
"intent_p3"
)
{
values
>>
header
.
cal_max
;
}
else
if
(
field
==
"intent_name"
)
{
values
>>
header
.
intentName
;
}
else
if
(
field
==
"toffset"
)
{
values
>>
header
.
toffset
;
}
else
if
(
field
==
"xyz_units"
)
{
values
>>
xyzUnits
;
}
else
if
(
field
==
"time_units"
)
{
values
>>
tUnits
;
}
else
if
(
field
==
"descrip"
)
{
values
>>
header
.
description
;
}
else
if
(
field
==
"aux_file"
)
{
values
>>
header
.
auxillaryFile
;
}
else
if
(
field
==
"qform_code"
)
{
values
>>
header
.
qformCode
;
}
else
if
(
field
==
"sform_code"
)
{
values
>>
header
.
sformCode
;
}
else
if
(
field
==
"quatern_b"
)
{
values
>>
header
.
qB
;
}
else
if
(
field
==
"quatern_c"
)
{
values
>>
header
.
qC
;
}
else
if
(
field
==
"quatern_d"
)
{
values
>>
header
.
qD
;
}
else
if
(
field
==
"qoffset_x"
)
{
values
>>
header
.
qX
;
}
else
if
(
field
==
"qoffset_y"
)
{
values
>>
header
.
qY
;
}
else
if
(
field
==
"qoffset_z"
)
{
values
>>
header
.
qZ
;
}
else
if
(
field
==
"freq_dim"
)
{
values
>>
freqDim
;
}
else
if
(
field
==
"phase_dim"
)
{
values
>>
phaseDim
;
}
else
if
(
field
==
"slice_dim"
)
{
values
>>
sliceDim
;
}
else
if
(
field
==
"slice_code"
)
{
values
>>
header
.
sliceCode
;
}
else
if
(
field
==
"slice_start"
)
{
values
>>
header
.
sliceStart
;
}
else
if
(
field
==
"slice_end"
)
{
values
>>
header
.
sliceEnd
;
}
else
if
(
field
==
"slice_duration"
)
{
values
>>
header
.
sliceDuration
;
}
else
{
//cerr << XMLreport[setting] << endl;
//cerr << "Unknown" << endl;
}
}
header
.
units
=
xyzUnits
+
tUnits
;
header
.
sliceOrdering
=
freqDim
|
(
phaseDim
<<
2
)
|
(
sliceDim
<<
4
);
header
.
bitsPerVoxel
=
header
.
bpvOfDatatype
();
return
header
;
}
int
fslcreatehd_main
(
int
argc
,
char
*
argv
[])
int
fslcreatehd_main
(
int
argc
,
char
*
argv
[])
{
{
NiftiIO
reader
;
vector
<
NiftiExtension
>
extensions
;
vector
<
NiftiExtension
>
extensions
;
NiftiHeader
header
,
originalHeader
;
NiftiHeader
header
,
originalHeader
;
char
*
buffer
(
NULL
);
char
*
buffer
(
NULL
);
...
@@ -43,7 +169,7 @@ int fslcreatehd_main(int argc, char *argv[])
...
@@ -43,7 +169,7 @@ int fslcreatehd_main(int argc, char *argv[])
if
(
FslFileExists
(
filename
))
{
if
(
FslFileExists
(
filename
))
{
existingImage
=
true
;
existingImage
=
true
;
filename
=
return_validimagefilename
(
filename
);
filename
=
return_validimagefilename
(
filename
);
header
=
reader
.
loadImage
(
filename
,
buffer
,
extensions
);
header
=
loadImage
(
filename
,
buffer
,
extensions
);
originalHeader
=
header
;
originalHeader
=
header
;
}
}
...
@@ -75,33 +201,27 @@ int fslcreatehd_main(int argc, char *argv[])
...
@@ -75,33 +201,27 @@ int fslcreatehd_main(int argc, char *argv[])
if
(
strcmp
(
argv
[
1
],
"-"
)
==
0
)
{
fileread
=
0
;}
if
(
strcmp
(
argv
[
1
],
"-"
)
==
0
)
{
fileread
=
0
;}
newstr
=
(
char
*
)
calloc
(
10000
,
1
);
newstr
=
(
char
*
)
calloc
(
10000
,
1
);
if
(
fileread
)
if
(
fileread
)
{
{
inputfile
.
open
(
argv
[
1
],
ifstream
::
in
|
ifstream
::
binary
);
inputfile
.
open
(
argv
[
1
],
ifstream
::
in
|
ifstream
::
binary
);
if
(
!
inputfile
.
is_open
())
if
(
!
inputfile
.
is_open
())
{
{
cerr
<<
"Cannot open file "
<<
argv
[
1
]
<<
endl
;
cerr
<<
"Cannot open file "
<<
argv
[
1
]
<<
endl
;
return
EXIT_FAILURE
;
return
EXIT_FAILURE
;
}
}
}
}
do
do
{
{
if
(
fileread
)
{
if
(
fileread
)
inputfile
.
getline
(
newstr
,
9999
);
// maybe use > for delimiting character remove while increase size
{
}
else
{
inputfile
.
getline
(
newstr
,
9999
);
// maybe use > for delimiting character remove while increase size
if
(
fgets
(
newstr
,
9999
,
stdin
)
==
NULL
)
break
;
}
}
else
settings
.
push_back
(
string
(
newstr
));
{
if
(
fgets
(
newstr
,
9999
,
stdin
)
==
NULL
)
break
;
}
settings
.
push_back
(
string
(
newstr
));
}
while
(
settings
[
settings
.
size
()
-
1
]
!=
"/>"
);
}
while
(
settings
[
settings
.
size
()
-
1
]
!=
"/>"
);
header
=
NiftiHeader
(
settings
);
header
=
headerFromXML
(
settings
);
if
(
fileread
)
if
(
fileread
)
inputfile
.
close
();
inputfile
.
close
();
}
}
/* reset datatype in case it has been overwritten */
/* reset datatype in case it has been overwritten */
...
@@ -125,7 +245,7 @@ int fslcreatehd_main(int argc, char *argv[])
...
@@ -125,7 +245,7 @@ int fslcreatehd_main(int argc, char *argv[])
header
.
bitsPerVoxel
=
header
.
bpvOfDatatype
();
header
.
bitsPerVoxel
=
header
.
bpvOfDatatype
();
header
.
setNiftiVersion
(
FslNiftiVersionFileType
(
filetype
),
FslIsSingleFileType
(
filetype
));
header
.
setNiftiVersion
(
FslNiftiVersionFileType
(
filetype
),
FslIsSingleFileType
(
filetype
));
reader
.
saveImage
(
filename
,
buffer
,
extensions
,
header
,
FslIsCompressedFileType
(
filetype
));
saveImage
(
filename
,
buffer
,
extensions
,
header
,
FslIsCompressedFileType
(
filetype
));
return
0
;
return
0
;
}
}
...
...
This diff is collapsed.
Click to expand it.
fslhd.cc
+
2
−
3
View file @
3d16160d
// fslhd.cc - show image header
// fslhd.cc - show image header
// Steve Smith, Mark Jenkinson and Matthew Webster, FMRIB Image Analysis Group
// Steve Smith, Mark Jenkinson and Matthew Webster, FMRIB Image Analysis Group
// Copyright (C) 2000-201
2
University of Oxford
// Copyright (C) 2000-201
9
University of Oxford
// CCOPYRIGHT
// CCOPYRIGHT
#include
"newimage/newimageall.h"
#include
"newimage/newimageall.h"
...
@@ -90,10 +90,9 @@ int main(int argc,char *argv[])
...
@@ -90,10 +90,9 @@ int main(int argc,char *argv[])
if
(
argc
<
2
)
if
(
argc
<
2
)
return
print_usage
(
string
(
argv
[
0
]));
return
print_usage
(
string
(
argv
[
0
]));
bool
reportXML
(
argc
==
3
&&
strcmp
(
argv
[
1
],
"-x"
)
==
0
);
bool
reportXML
(
argc
==
3
&&
strcmp
(
argv
[
1
],
"-x"
)
==
0
);
NiftiIO
reader
;
try
{
try
{
string
filename
(
return_validimagefilename
(
argv
[
argc
-
1
]));
string
filename
(
return_validimagefilename
(
argv
[
argc
-
1
]));
NiftiHeader
header
(
reader
.
loadHeader
(
filename
));
NiftiHeader
header
(
loadHeader
(
filename
));
if
(
reportXML
)
if
(
reportXML
)
reportXMLHeader
(
header
);
reportXMLHeader
(
header
);
else
{
else
{
...
...
This diff is collapsed.
Click to expand it.
fslmerge.cc
+
3
−
4
View file @
3d16160d
// fslmerge.cc concatenate AVW files into a single output
// fslmerge.cc concatenate AVW files into a single output
// Steve Smith, David Flitney, Stuart Clare and Matthew Webster, FMRIB Image Analysis Group
// Steve Smith, David Flitney, Stuart Clare and Matthew Webster, FMRIB Image Analysis Group
// Copyright (C) 2000-201
0
University of Oxford
// Copyright (C) 2000-201
9
University of Oxford
// CCOPYRIGHT
// CCOPYRIGHT
#define EXPOSE_TREACHEROUS
#define EXPOSE_TREACHEROUS
#include
"newimage/newimageall.h"
#include
"newimage/newimageall.h"
...
@@ -25,8 +25,7 @@ int fmrib_main(int argc, char *argv[])
...
@@ -25,8 +25,7 @@ int fmrib_main(int argc, char *argv[])
volume4D
<
T
>
input_volume
;
volume4D
<
T
>
input_volume
;
int
direction
,
dimerror
=
0
,
xoffset
=
0
,
yoffset
=
0
,
zoffset
=
0
,
toffset
=
0
;
int
direction
,
dimerror
=
0
,
xoffset
=
0
,
yoffset
=
0
,
zoffset
=
0
,
toffset
=
0
;
NiftiIO
reader
;
NiftiHeader
header
(
loadHeader
(
return_validimagefilename
(
string
(
argv
[
3
]))));
NiftiHeader
header
(
reader
.
loadHeader
(
return_validimagefilename
(
string
(
argv
[
3
]))));
float
newTR
(
header
.
pixdim
[
4
]);
float
newTR
(
header
.
pixdim
[
4
]);
if
(
!
strcmp
(
argv
[
1
],
"-t"
))
direction
=
0
;
if
(
!
strcmp
(
argv
[
1
],
"-t"
))
direction
=
0
;
...
@@ -54,7 +53,7 @@ int fmrib_main(int argc, char *argv[])
...
@@ -54,7 +53,7 @@ int fmrib_main(int argc, char *argv[])
for
(
int
vol
=
4
;
vol
<
argc
;
vol
++
)
for
(
int
vol
=
4
;
vol
<
argc
;
vol
++
)
{
{
header
=
reader
.
loadHeader
(
return_validimagefilename
(
string
(
argv
[
vol
])));
header
=
loadHeader
(
return_validimagefilename
(
string
(
argv
[
vol
])));
if
(
direction
==
0
)
tdimtot
+=
std
::
max
(
header
.
dim
[
4
],(
int64_t
)
1
);
if
(
direction
==
0
)
tdimtot
+=
std
::
max
(
header
.
dim
[
4
],(
int64_t
)
1
);
if
(
direction
==
1
)
xdimtot
+=
std
::
max
(
header
.
dim
[
1
],(
int64_t
)
1
);
if
(
direction
==
1
)
xdimtot
+=
std
::
max
(
header
.
dim
[
1
],(
int64_t
)
1
);
if
(
direction
==
2
)
ydimtot
+=
std
::
max
(
header
.
dim
[
2
],(
int64_t
)
1
);
if
(
direction
==
2
)
ydimtot
+=
std
::
max
(
header
.
dim
[
2
],(
int64_t
)
1
);
...
...
This diff is collapsed.
Click to expand it.
fslnvols.cc
+
6
−
8
View file @
3d16160d
// fslnvols.cc REALLY advanced program for counting the volumes in a 4D file
// fslnvols.cc REALLY advanced program for counting the volumes in a 4D file
// Stephen Smith and Matthew Webster, FMRIB Image Analysis Group
// Stephen Smith and Matthew Webster, FMRIB Image Analysis Group
// Copyright (C) 1999-20
05
University of Oxford
// Copyright (C) 1999-20
19
University of Oxford
// CCOPYRIGHT
// CCOPYRIGHT
#include
"newimage/newimageall.h"
#include
"newimage/newimageall.h"
using
namespace
NEWIMAGE
;
using
namespace
NEWIMAGE
;
void
print_usage
(
const
string
&
progname
)
void
print_usage
(
const
string
&
progname
)
{
{
cout
<<
endl
;
cout
<<
endl
;
cout
<<
"Usage: fslnvols <input>"
<<
endl
;
cout
<<
"Usage: fslnvols <input>"
<<
endl
;
...
@@ -21,14 +21,12 @@ int main(int argc,char *argv[])
...
@@ -21,14 +21,12 @@ int main(int argc,char *argv[])
print_usage
(
progname
);
print_usage
(
progname
);
return
1
;
return
1
;
}
}
if
(
!
FslFileExists
(
string
(
argv
[
1
])))
if
(
!
FslFileExists
(
string
(
argv
[
1
])))
{
{
cout
<<
"0"
<<
endl
;
cout
<<
"0"
<<
endl
;
return
0
;
// the intended usage is to return "0" and not show an error
return
0
;
// the intended usage is to return "0" and not show an error
}
}
NiftiIO
reader
;
NiftiHeader
header
(
loadHeader
(
return_validimagefilename
(
string
(
argv
[
1
]))));
NiftiHeader
header
(
reader
.
loadHeader
(
return_validimagefilename
(
string
(
argv
[
1
]))));
cout
<<
header
.
dim
[
4
]
<<
endl
;
cout
<<
header
.
dim
[
4
]
<<
endl
;
return
0
;
return
0
;
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment