Ok, I tried to replicate your example using one of my FA maps.
So here a.mif is a real FA map and the rest is exactly as your example.
The first run is with the updated mrmetric
code:
mrtransform: [100%] copying from "a.mif" to "b.mif"...
mrcalc: [WARNING] header transformations of input images do not match
mrcalc: [100%] computing: (a.mif - b.mif)
volume mean median stdev min max count
[ 0 ] 0 0 0 0 0 3551862
mrmetric: [100%] preloading data for "a.mif"
mrmetric: [100%] preloading data for "b.mif"
mrmetric: [100%] precomputing cross correlation data...
-0.0062594590568325484
mrmetric: [100%] preloading data for "a.mif"
mrmetric: [100%] preloading data for "b.mif"
0
mrmetric: [100%] preloading data for "a.mif"
mrmetric: [100%] preloading data for "b.mif"
0.0003319023313259135
mrtransform: [100%] reslicing "a.mif"
mrtransform: [100%] reslicing "b.mif"
mrmetric: [100%] preloading data for "a.mif"
mrmetric: [100%] preloading data for "b.mif"
mrmetric: [100%] precomputing cross correlation data...
mrmetric: [100%] preloading data for "a.mif"
mrmetric: [100%] preloading data for "a.mif"
mrmetric: [100%] precomputing cross correlation data...
mrmetric: [100%] preloading data for "b.mif"
mrmetric: [100%] preloading data for "b.mif"
mrmetric: [100%] precomputing cross correlation data...
1.04853
mrcalc: [100%] computing: (ah.mif - bh.mif)^2
0.000328109
The second run is with the buggy mrmetric
code:
mrtransform: [100%] copying from "a.mif" to "b.mif"...
mrcalc: [WARNING] header transformations of input images do not match
mrcalc: [100%] computing: (a.mif - b.mif)
volume mean median stdev min max count
[ 0 ] 0 0 0 0 0 3551862
mrmetric: [100%] preloading data for "a.mif"
mrmetric: [100%] preloading data for "b.mif"
mrmetric: [100%] precomputing cross correlation data...
-0.0011110985686968316
mrmetric: [100%] preloading data for "a.mif"
mrmetric: [100%] preloading data for "b.mif"
0
mrmetric: [100%] preloading data for "a.mif"
mrmetric: [100%] preloading data for "b.mif"
mrmetric: trafo:
1, 0, 0, 0
0, 1, 0, 0
0, 0, 1, 0
mrmetric: trafo_inverse:
1, 0, 0, -0
0, 1, 0, -0
0, 0, 1, -0
mrmetric: trafo_half:
1, 0, 0, 0
0, 1, 0, 0
0, 0, 1, 0
mrmetric: trafo_half_inverse:
1, 0, 0, 0
0, 1, 0, 0
0, 0, 1, 0
mrmetric: centre: 0 0 0
0.00033190233132592939
mrtransform: [100%] reslicing "a.mif"
mrtransform: [100%] reslicing "b.mif"
mrmetric: [100%] preloading data for "a.mif"
mrmetric: [100%] preloading data for "b.mif"
mrmetric: [100%] precomputing cross correlation data...
mrmetric: [100%] preloading data for "a.mif"
mrmetric: [100%] preloading data for "a.mif"
mrmetric: [100%] precomputing cross correlation data...
mrmetric: [100%] preloading data for "b.mif"
mrmetric: [100%] preloading data for "b.mif"
mrmetric: [100%] precomputing cross correlation data...
0.988539
mrcalc: [100%] computing: (ah.mif - bh.mif)^2
0.000328109
It seems that by definition of CC_norm, the buggy code gives a more reasonble output (0.988539) compared to the updated code (1.04853) ???