External Email - Use Caution
Hi Doug, I am following up your reply to this issue as I am still trying to find a solution to this issue. For your questions - yes, I reviewed the images in freeview (and fsleyes) and there are no obvious issues with them (i.e., neither are missing any part of the brain and both are decent T1 images). I also tried using the unmasked (whole head) images, but the same MyMatrix error happens. The --debug output is pasted below and attached as a text file. If it will help, I can share a couple of participant images from our GE scanner.
Interestingly, while including the -affine flag works for some participants, for others I get "MatrixLog Error: Result too imaginary to ignore!" error.
Any help/recommendations are greatly appreciated.
Thanks
Andrew ---- Andrew Beaudin, PhD | Research Associate University of Calgary | Cumming School of Medicine Department of Clinical Neurosciences HSC Rm 2935J, 3330 Hospital Drive N.W. | Calgary, AB | T2N 4N1 Phone: (403) 210-6273
mri_robust_template --mov 2001A_T1.nii.gz 2001B_T1.nii.gz --lta 2001A2template.lta 2001B2template.lta --average 1 --template 2001_template.nii.gz --satit --debug
$Id: mri_robust_template.cpp,v 1.54 2016/05/05 21:17:08 mreuter Exp $
--mov: Using 2001A_T1.nii.gz as movable/source volume. --mov: Using 2001B_T1.nii.gz as movable/source volume. Total: 2 input volumes --lta: Will output LTA transforms --average: Using method 1 for template computation. --template: Using 2001_template.nii.gz as template output volume. --satit: Will estimate SAT iteratively! --debug: Will output debug info and files! reading source '2001A_T1.nii.gz'... converting source '2001A_T1.nii.gz' to bspline ... MRItoBSpline degree 3 reading source '2001B_T1.nii.gz'... converting source '2001B_T1.nii.gz' to bspline ... MRItoBSpline degree 3 Will use TP 1 as random initial target (seed 113817 ).
MultiRegistration::initializing Xforms (init 1 , maxres 0 , iterate 5 , epsit 0.01 ) :
MultiRegistration Parameters
Outdir: ./ TransOnly: false Rigid: true Robust: true Satit: true Iscale: false IscaleOnly: false NoMulti: false SubsampleSize: -1 HighIt: -1 FixVoxel: false KeepType: true Average: 1 DoublePrec: false BackupWeights: false SampleType: 5 CRASCenter: false Debug: 1
[init] ========================= TP 2 to TP 1 ============================== Register TP 2 ( 2001B_T1.nii.gz ) to TP 1 ( 2001A_T1.nii.gz )
Registration::setSourceAndTarget(MRI s, MRI t, keeptype = TRUE ) Type Source : 4 Type Target : 4 keeping type Mov: (1, 1, 1)mm and dim (256, 256, 176) Dst: (1, 1, 1)mm and dim (256, 256, 176) Asserting both images: 1mm isotropic - no Mov reslice necessary - no Dst reslice necessary
Registration::findSaturation - computing centroids - computing initial transform -- using translation info - Get Gaussian Pyramid Limits ( min size: 16 max size: -1 ) - Build Gaussian Pyramid ( Limits min steps: 0 max steps: 3 ) - Build Gaussian Pyramid ( Limits min steps: 0 max steps: 3 )
- Max Resolution used: 2 -- gpS ( 64 , 64 , 44 ) -- gpT ( 64 , 64 , 44 ) - running loop to estimate saturation parameter: -- Iteration: 1 trying sat: 16 min sat: 0 ( -1 ), max sat: 16 ( 0.0798945 ), sat diff: 16, (wlimit=0.16) -- Iteration: 2 trying sat: 8 min sat: 8 ( 0.17712 ), max sat: 16 ( 0.0798945 ), sat diff: 8, (wlimit=0.16) -- Iteration: 3 trying sat: 12 min sat: 8 ( 0.17712 ), max sat: 12 ( 0.109687 ), sat diff: 4, (wlimit=0.16) -- Iteration: 4 trying sat: 10 min sat: 8 ( 0.17712 ), max sat: 10 ( 0.138304 ), sat diff: 2, (wlimit=0.16) -- Iteration: 5 trying sat: 9 min sat: 8 ( 0.17712 ), max sat: 9 ( 0.154011 ), sat diff: 1, (wlimit=0.16) -- Iteration: 6 trying sat: 8.5 - final SAT: 9 ( it: 6 , weight check 0.154011 <= 0.16 )
Registration::computeMultiresRegistration - computing centroids - computing initial transform -- using translation info - Get Gaussian Pyramid Limits ( min size: 16 max size: -1 ) - initial transform: Ti = [ ... 1.0000000000000 0 0 -1.2743032370447 0 1.0000000000000 0 6.3477877176776 0 0 1.0000000000000 1.3765177143265 0 0 0 1.0000000000000 ]
- initial iscale: Ii =1
Resolution: 3 S( 32 32 22 ) T( 32 32 22 ) Iteration(f): 1 -- diff. to prev. transform: 4.3252 Iteration(f): 2 -- diff. to prev. transform: 0.226503 Iteration(f): 3 -- diff. to prev. transform: 0.0809929 Iteration(f): 4 -- diff. to prev. transform: 0.0448288 Iteration(f): 5 -- diff. to prev. transform: 0.0306485 max it: 5 reached!
Resolution: 2 S( 64 64 44 ) T( 64 64 44 ) Iteration(f): 1 -- diff. to prev. transform: 1.21431 Iteration(f): 2 -- diff. to prev. transform: 0.153379 Iteration(f): 3 -- diff. to prev. transform: 0.108256 Iteration(f): 4 -- diff. to prev. transform: 0.0849185 Iteration(f): 5 -- diff. to prev. transform: 0.0709608 max it: 5 reached!
Resolution: 1 S( 128 128 88 ) T( 128 128 88 ) Iteration(f): 1 -- diff. to prev. transform: 0.803945 Iteration(f): 2 -- diff. to prev. transform: 0.19292 Iteration(f): 3 -- diff. to prev. transform: 0.124963 Iteration(f): 4 -- diff. to prev. transform: 0.0841509 Iteration(f): 5 -- diff. to prev. transform: 0.0593591 max it: 5 reached!
Resolution: 0 S( 256 256 176 ) T( 256 256 176 ) Iteration(f): 1 -- diff. to prev. transform: 1.56407 Iteration(f): 2 -- diff. to prev. transform: 0.1626 Iteration(f): 3 -- diff. to prev. transform: 0.0426001 Iteration(f): 4 -- diff. to prev. transform: 0.0296054 Iteration(f): 5 -- diff. to prev. transform: 0.0229654 max it: 5 reached!
- final transform: Tf = [ ... 0.9991201336644 -0.0403162432589 0.0115567744604 13.1803922948678 0.0399069838938 0.9986352667380 0.0336903051890 -5.3133887637339 -0.0128992690853 -0.0331994662113 0.9993655008556 6.0924108135986 0 0 0 1.0000000000000 ]
- final iscale: If = 1
********************************************************** * * WARNING: Registration did not converge in 5 steps! * Problem might be ill posed. * Please inspect output manually! * ********************************************************** CentroidT = [ 144.3744389157496 140.7612889458485 89.5924668508406 1.0000000000000 ]
CentroidSinT = [ 154.3014274378032 137.7010981446322 87.9111681965244 1.0000000000000 ]
Centroid = [ 149.3379331767764 139.2311935452403 88.7518175236825 1.0000000000000 ]
* WARNING: TP 2 to 1 did not converge !! meant = [ 1.1453379004720 -1.3465092209200 -3.1182479079224 ]
Input rotation's max deviation from rotation is: 0.000393412 MyMatrix::RotationMean input(s) not rotation
freesurfer@nmr.mgh.harvard.edu