From acbdc3e31013e9af1161cf6baeb113ac7085deb1 Mon Sep 17 00:00:00 2001 From: Tim Behrens <behrens@fmrib.ox.ac.uk> Date: Thu, 22 Jul 2004 08:04:36 +0000 Subject: [PATCH] *** empty log message *** --- miscmaths.cc | 22 ++++++++++++++++++++++ miscmaths.h | 3 ++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/miscmaths.cc b/miscmaths.cc index e6f0237..3988cbb 100644 --- a/miscmaths.cc +++ b/miscmaths.cc @@ -1429,6 +1429,28 @@ ReturnMatrix SD(const Matrix& mat1,const Matrix& mat2) } +ReturnMatrix vox_to_vox(const ColumnVector& xyz1,const ColumnVector& dims1,const ColumnVector& dims2,const Matrix& xfm){ + ColumnVector xyz1_mm(4),xyz2_mm,xyz2(3); + xyz1_mm<<xyz1(1)*dims1(1)<<xyz1(2)*dims1(2)<<xyz1(3)*dims1(3)<<1; + xyz2_mm=xfm*xyz1_mm; + xyz2_mm=xyz2_mm/xyz2_mm(4); + xyz2<<xyz2_mm(1)/dims2(1)<<xyz2_mm(2)/dims2(2)<<xyz2_mm(3)/dims2(3); + xyz2.Release(); + return xyz2; +} + + +ReturnMatrix mni_to_imgvox(const ColumnVector& mni,const ColumnVector& mni_origin,const Matrix& mni2img, const ColumnVector& img_dims){ + ColumnVector mni_new_origin(4),img_mm;//homogeneous + ColumnVector img_vox(3); + mni_new_origin<<mni(1)+mni_origin(1)<<mni(2)+mni_origin(2)<<mni(3)+mni_origin(3)<<1; + img_mm=mni2img*mni_new_origin; + img_vox<<img_mm(1)/img_dims(1)<<img_mm(2)/img_dims(2)<<img_mm(3)/img_dims(3); + img_vox.Release(); + return img_vox; +} + + ReturnMatrix remmean(const Matrix& mat, const int dim) diff --git a/miscmaths.h b/miscmaths.h index 123d4ba..5ea0705 100644 --- a/miscmaths.h +++ b/miscmaths.h @@ -187,7 +187,8 @@ namespace MISCMATHS { ReturnMatrix eq(const Matrix& mat1,const Matrix& mat2); ReturnMatrix neq(const Matrix& mat1,const Matrix& mat2); ReturnMatrix SD(const Matrix& mat1,const Matrix& mat2); // Schur (element-wise) divide - + ReturnMatrix vox_to_vox(const ColumnVector& xyz1,const ColumnVector& dims1,const ColumnVector& dims2,const Matrix& xfm); + ReturnMatrix mni_to_imgvox(const ColumnVector& mni,const ColumnVector& mni_origin,const Matrix& mni2img, const ColumnVector& img_dims); void remmean(const Matrix& mat, Matrix& demeanedmat, Matrix& Mean, const int dim = 1); ReturnMatrix remmean(const Matrix& mat, const int dim = 1); ReturnMatrix stdev(const Matrix& mat, const int dim = 1); -- GitLab