Hi,
I have made tests with avwmaths++ and avwconv:
/data/test> time avwmaths++ anatomy_sgmt_csf -kernel file hanning_3d_norm
-fmean anatomy_sgmt_csf_avwmaths
-kernel
file
hanning_3d_norm
-fmean
WARNING:: Off-centre convolution being performed as kernel has even dimensions
WARNING:: Off-centre convolution being performed as kernel has even dimensions
real 134m3.828s
user 133m56.466s
sys 0m4.000s
=====================================================================
/data/test> time avwconv --forcefft -v -i anatomy_sgmt_csf -k
hanning_3d_norm -o anatomy_sgmt_csf_avwconv
kernel:: Size = (32,32,32)
kernel:: ROI Size = (32,32,32)
kernel:: Dims = (1,1,1)
kernel:: Minimum and maximum intensities are: 0 and 0.996094
real 2m32.046s
user 2m27.363s
sys 0m2.769s
As you see, avwmaths doesn't use fft, it needs 50 times more time. If I
start avwconv without --forcefft it needs the half of the avwmath++ time.
When you look at the last to answers, there is a opposition opinion of the
even and odd kernel results related to the small shift. What does shift: an
odd or an even kernel?
If I try it for myself with a smaller kernel of 4x4x4 with 2x2x2 white
voxels in the middle, it look like avwmaths++ produces no shift and awvconv
with and without --forcefft each with a shift in the opposite direction in 3D.
Further it's hard to decide which result is right with the iso 32
hanning-kernel, because as you say avwmaths++ contains different computation
options.
Sorry if I make demands on your time ones more. I need a precise answer
about the shift and what utility avoid it. It's important to have an
unshifted result.
Best regards.
Joerg
|