From 021dfb4b08288dec84390ba86db0b65274fc03e3 Mon Sep 17 00:00:00 2001
From: Mark Jenkinson <mark@fmrib.ox.ac.uk>
Date: Mon, 30 May 2005 15:05:43 +0000
Subject: [PATCH] Made cog report sform mm when appropriate

---
 fslstats.cc | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/fslstats.cc b/fslstats.cc
index ee54aa8..a1ee921 100644
--- a/fslstats.cc
+++ b/fslstats.cc
@@ -224,14 +224,20 @@ int fmrib_main(int argc, char* argv[])
 	if (masks_used) cout << vol.min(mask) << " " << vol.max(mask) << " ";
 	else cout << vol.min() << " " << vol.max() << " ";
     } else if (sarg=="-c") {
-	ColumnVector cog = vol[0].cog();
+	ColumnVector cog(4);
+	// convert from fsl mm to voxel to sform coord
+	cog.SubMatrix(1,3,1,1) = vol[0].cog();
+	cog(4) = 1.0;
+	if (vol[0].sform_code()!=NIFTI_XFORM_UNKNOWN) {
+	  cog = vol[0].sform_mat() * (vol[0].sampling_mat()).i() * cog; 
+	}
 	cout << cog(1) << " " << cog(2) << " " << cog(3) << " " ;
     } else if (sarg=="-C") {
-	ColumnVector cog;
-	cog = vol[0].cog();
-	cog(1) /= vol.xdim();
-	cog(2) /= vol.ydim();
-	cog(3) /= vol.zdim();
+	ColumnVector cog(4);
+	// convert from fsl mm to voxel coord
+	cog.SubMatrix(1,3,1,1) = vol[0].cog();
+	cog(4) = 1.0;
+	cog = (vol[0].sampling_mat()).i() * cog;
 	cout << cog(1) << " " << cog(2) << " " << cog(3) << " " ;
     } else if (sarg=="-p") {
       float n;
-- 
GitLab