Skip to content
Snippets Groups Projects
Commit c8720e2e authored by Mark Jenkinson's avatar Mark Jenkinson
Browse files

Modified to use the new vox2mm functions

parent 7360f972
No related branches found
No related tags found
No related merge requests found
...@@ -30,9 +30,6 @@ Option<bool> verbose(string("-v,--verbose"), false, ...@@ -30,9 +30,6 @@ Option<bool> verbose(string("-v,--verbose"), false,
Option<bool> help(string("-h,--help"), false, Option<bool> help(string("-h,--help"), false,
string("display this message"), string("display this message"),
false, no_argument); false, no_argument);
Option<bool> medxcoords(string("-m,--medx"), false,
string("use MEDx coordinate conventions"),
false, no_argument);
Option<bool> mm(string("--mm"), false, Option<bool> mm(string("--mm"), false,
string("use mm, not voxel, coordinates"), string("use mm, not voxel, coordinates"),
false, no_argument); false, no_argument);
...@@ -123,15 +120,6 @@ void copyconvert(const vector<triple<T> >& oldcoords, ...@@ -123,15 +120,6 @@ void copyconvert(const vector<triple<T> >& oldcoords,
} }
template <class T, class S>
void medx2voxcoord(vector<triple<T> >& coords, const volume<S>& vol)
{
int ymax = vol.ysize();
for (unsigned int n=0; n<coords.size(); n++) {
coords[n].y = (T) (ymax - 1) - coords[n].y;
}
}
template <class S> template <class S>
void vox2mmcoord(vector<triple<float> >& coords, void vox2mmcoord(vector<triple<float> >& coords,
...@@ -143,7 +131,7 @@ void vox2mmcoord(vector<triple<float> >& coords, ...@@ -143,7 +131,7 @@ void vox2mmcoord(vector<triple<float> >& coords,
cc(1) = coords[n].x; cc(1) = coords[n].x;
cc(2) = coords[n].y; cc(2) = coords[n].y;
cc(3) = coords[n].z; cc(3) = coords[n].z;
cc = vol.sform_mat() * cc; cc = vol.vox2mm_mat() * cc;
coords[n].x = cc(1); coords[n].x = cc(1);
coords[n].y = cc(2); coords[n].y = cc(2);
coords[n].z = cc(3); coords[n].z = cc(3);
...@@ -157,7 +145,7 @@ void applyvoxelxfm(vector<triple<T> >& coords, const Matrix& mat, ...@@ -157,7 +145,7 @@ void applyvoxelxfm(vector<triple<T> >& coords, const Matrix& mat,
const volume<S>& source, const volume<S>& dest) const volume<S>& source, const volume<S>& dest)
{ {
Matrix voxmat; Matrix voxmat;
voxmat = dest.sampling_mat().i() * mat * source.sampling_mat(); voxmat = Vox2VoxMatrix(mat,source,dest);
ColumnVector vec(4); ColumnVector vec(4);
for (unsigned int n=0; n<coords.size(); n++) { for (unsigned int n=0; n<coords.size(); n++) {
vec << coords[n].x << coords[n].y << coords[n].z << 1.0; vec << coords[n].x << coords[n].y << coords[n].z << 1.0;
...@@ -306,15 +294,10 @@ void print_results(const vector<int>& idx, ...@@ -306,15 +294,10 @@ void print_results(const vector<int>& idx,
applyvoxelxfm(fcog,trans,zvol,stdvol); applyvoxelxfm(fcog,trans,zvol,stdvol);
if (!copename.unset()) applyvoxelxfm(fcopemaxpos,trans,zvol,stdvol); if (!copename.unset()) applyvoxelxfm(fcopemaxpos,trans,zvol,stdvol);
} }
if ( medxcoords.value() && (!mm.value()) ) {
medx2voxcoord(fmaxpos,zvol);
medx2voxcoord(fcog,zvol);
if (!copename.unset()) medx2voxcoord(fcopemaxpos,cope);
}
if (mm.value()) { if (mm.value()) {
if ( !transformname.unset() && !stdvolname.unset() ) refvol = &stdvol; if ( !transformname.unset() && !stdvolname.unset() ) refvol = &stdvol;
if (verbose.value()) { if (verbose.value()) {
cout << "Using matrix : " << endl << refvol->sform_mat() << endl; cout << "Using matrix : " << endl << refvol->vox2mm_mat() << endl;
} }
vox2mmcoord(fmaxpos,*refvol); vox2mmcoord(fmaxpos,*refvol);
vox2mmcoord(fcog,*refvol); vox2mmcoord(fcog,*refvol);
...@@ -413,8 +396,6 @@ void print_results(const vector<int>& idx, ...@@ -413,8 +396,6 @@ void print_results(const vector<int>& idx,
if ( !transformname.unset() && !stdvolname.unset() ) if ( !transformname.unset() && !stdvolname.unset() )
applyvoxelxfm(lmaxlistR,trans,zvol,stdvol); applyvoxelxfm(lmaxlistR,trans,zvol,stdvol);
if ( medxcoords.value() && (!mm.value()) )
medx2voxcoord(lmaxlistR,zvol);
if (mm.value()) { if (mm.value()) {
vox2mmcoord(lmaxlistR,*refvol); vox2mmcoord(lmaxlistR,*refvol);
} }
...@@ -584,7 +565,6 @@ int main(int argc,char *argv[]) ...@@ -584,7 +565,6 @@ int main(int argc,char *argv[])
options.add(dLh); options.add(dLh);
options.add(fractional); options.add(fractional);
options.add(numconnected); options.add(numconnected);
options.add(medxcoords);
options.add(mm); options.add(mm);
options.add(minv); options.add(minv);
options.add(no_table); options.add(no_table);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment