ANTs open source provides transform functions that can move(frequently referred as normalizing or registration in neuroscience) one's brain MR image to other's brain MR image. But I got an error below : not all MR images but some MR images make below error. There NEVER exist any differences when I opened those MR images with image viewer like ITK-snap. It seems centain MR images that occurs those error must have mathematical or algebraic differences with images that does not occur error. How can I find out what the problem is?
Error message:
/opt/ANTs/bin/antsRegistrationSyNQuick.sh: line 464:
[[: _MR.nii: syntax error: invalid arithmetic operator (error token is ".nii")
antsRegistration call:
/opt/ANTs/bin//antsRegistration --verbose 1 --dimensionality 3 --float 0 --collapse-output-transforms 1 --output [ T1xPET,T1xPETWarped.nii.gz,T1xPETInverseWarped.nii.gz ]
--interpolation Linear --use-histogram-matching 0 --winsorize-image-intensities [ 0.005,0.995 ] --initial-moving-transform [ _MR.nii,_FBB.nii,1 ] --transform Rigid[ 0.1 ] --metric MI[ _MR.nii,_FBB.nii,1,32,Regular,0.25 ] --convergence [ 1000x500x250x0,1e-6,10 ] --shrink-factors 8x4x2x1 --smoothing-sigmas 3x2x1x0vox
Output:
All_Command_lines_OK Using double precision for computations. Exception caught during reference file reading
itk::ExceptionObject (0x5559bfd38530) Location: "unknown" File: /home/nuc/Desktop/a/build/ITKv5/Modules/IO/NIFTI/src/itkNiftiImageIO.cxx Line: 1980
Description: ITK ERROR: ITK only supports orthonormal direction cosines. No orthonormal definition found!
file _MR.nii Exception Object caught:
itk::ExceptionObject (0x5559bfd38530) Location: "unknown" File: /home/nuc/Desktop/a/build/staging/include/ITK-5.2/itkCenteredTransformInitializer.hxx Line: 40
Description: ITK ERROR: CenteredTransformInitializer(0x5559bfd22e10): Fixed Image has not been set
The short explanation is that the nifti image has unexpected metadata. Perhaps damaged? Or the writing library is buggy? Or some extension to the standard is assumed?
The exception is thrown in NIFTI reader code. You can look at the preceding code to see all the checks made against the orientation matrix before the exception is reached.