Projects:RegistrationImprovement:RecursiveScheme

From NAMIC Wiki
Revision as of 16:31, 22 September 2009 by Meier (talk | contribs)
Jump to: navigation, search
Home < Projects:RegistrationImprovement:RecursiveScheme

Both multi-resolution and the sequence of calls with increasing DOF could be implemented as a single recursive scheme. The caller provides an array of DOF and a matching array of resolution levels, which is processed by recursive calls with the first/last element taken from the list.

  • A simulation Matlab program and example is here: Media:DOFHierarchy.m
  • Example call: the 256 symbolizes the image data size, [6,9,12] is the sequence of DOF, NoInit is the initial transform (if avail), and [4,3,2] are the multi-resolution levels for each of the DOF runs, respectively.
 a = DOFHierarchy(256, [6,9,12],'NoInit',[4,3,2],0)
 
 running registration for 32 image at 6 DOF with init NoInit
 running registration for 64 image at 6 DOF with init result from 6 DOF run @ 32
 running registration for 128 image at 6 DOF with init result from 6 DOF run @ 64
 running registration for 256 image at 6 DOF with init result from 6 DOF run @ 128
 
 running registration for 64 image at 9 DOF with init result from 6 DOF run @ 256
 running registration for 128 image at 9 DOF with init result from 9 DOF run @ 64
 running registration for 256 image at 9 DOF with init result from 9 DOF run @ 128
 
 running registration for 128 image at 12 DOF with init result from 9 DOF run @ 256
 running registration for 256 image at 12 DOF with init result from 12 DOF run @ 128
  • Same example call with verbose flag set, showing the function calls:
 a = DOFHierarchy(256, [6,9,12],'NoInit',[4,3,2],1)
 	 RunAlignment(256, 6,NoInit,4)
 		input data size 256. smooth & subsample
 	 RunAlignment(128, 6,NoInit,3)
 		input data size 128. smooth & subsample
 	 RunAlignment(64, 6,NoInit,2)
 		input data size 64. smooth & subsample
 	 RunAlignment(32, 6,NoInit,1)
 	 running registration for 32 image at 6 DOF with init NoInit
 	 running registration for 64 image at 6 DOF with init result from 6 DOF run @ 32
 	 running registration for 128 image at 6 DOF with init result from 6 DOF run @ 64
 	 running registration for 256 image at 6 DOF with init result from 6 DOF run @ 128
 DOFHierarchy (256 , [6,9,12,], NoInit )
 	 RunAlignment(256, 9,result from 6 DOF run @ 256,3)
 		input data size 256. smooth & subsample
 	 RunAlignment(128, 9,result from 6 DOF run @ 256,2)
 		input data size 128. smooth & subsample
 	 RunAlignment(64, 9,result from 6 DOF run @ 256,1)
 	 running registration for 64 image at 9 DOF with init result from 6 DOF run @ 256
 	 running registration for 128 image at 9 DOF with init result from 9 DOF run @ 64
 	 running registration for 256 image at 9 DOF with init result from 9 DOF run @ 128
 DOFHierarchy (256 , [9,12,], result from 6 DOF run @ 256 )
 	 RunAlignment(256, 12,result from 9 DOF run @ 256,2)
 		input data size 256. smooth & subsample
 	 RunAlignment(128, 12,result from 9 DOF run @ 256,1)
 	 running registration for 128 image at 12 DOF with init result from 9 DOF run @ 256
 	 running registration for 256 image at 12 DOF with init result from 12 DOF run @ 128
 DOFHierarchy (256 , [12,], result from 9 DOF run @ 256 )

a =

result from 12 DOF run @ 256