Hello,<div><br></div><div>I&#39;m working on a Matlab mex-implementation of an ITK registration. This means that instead of loading the images from files I will load them from memory as 3D matrices. All the DICOM information needs to be passed to ITK from Matlab as well, and this is where my problems begin. The information that I thought was essential for a correct registration is:</div>
<div><br></div><div>* Origin </div><div>* Spacing  </div><div>* Direction </div><div><br></div><div>I set these using the &quot;ChangeInformationImageFilter&quot; and it is working; the images have the origin, spacing and directional cosines that are assigned to them, and they are the same as if the dicom images were loaded from files. </div>


<div><br></div><div>However, the result of the registration is different from that when loading the images from files, with all other components set the same, (of course I reinitialize the seed). Not by much, but they should be exactly the same! I use Mattes mutual information metric, linear interpolation, Versor rigid 3D transform and the accompanying Versor rigid 3D optimizer together with the &quot;CenteredTransformInitializer&quot;. </div>


<div><br></div><div>I know that the difference in results are due to the way I read the data. If I change the input from memory to reading the dicom files I get the same result as with a stand-alone .exe-application, so this is where the error is.</div>


<div><br></div><div>Does anyone have any idea as to what other information I need to pass from matlab to get identical results? </div><div><br></div><div>Thanks in advance</div><div><div>-- <br>Patrik Brynolfsson<br><br>

<br>

</div></div>