<br>Hi Ken,<br><br>Thanks for sharing your findings.<br><br>I&#39;m a bit lost in the details though...<br><br>What I&#39;m reading from your email is that the image<br>origin and spacing got lost during the process of<br>
writing out the data to a DICOM file.<br><br>Is that right ?<br><br><br>You could make an additional verification by <br>replacing the ImageSeriesWriter with an<br>ImageFileWriter and saving the resampled moving<br>image as a 3D single file, by using the MetaImage<br>
file format (.mhd), or Nrrd (.nrrd), or Nifti (nii).<br><br>All of these file formats should preserve origin,<br>spacing and orientation.   (DICOM should preserve<br>it too... so.. once you run this verfication, we should<br>
go back an take a closer look at how you are writing<br>out the DICOM series).<br><br><br>     Regards,<br><br><br>         Luis<br><br><br>-------------------------------------------------------------------------<br><div class="gmail_quote">
On Fri, May 28, 2010 at 7:33 AM, Ken Urish <span dir="ltr">&lt;<a href="mailto:ken.urish@gmail.com">ken.urish@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Luis<br>
<br>
Thanks for your response. Ive always been impressed by the excellent<br>
support in the itk community.<br>
<br>
Indeed, you are right. My z-axis spacing and origin is getting lost.......<br>
Im using dicom so I am surprised this is happening.<br>
<br>
When I look at the output of the registered and resampled output of<br>
the moving image - the spacing and origin is identical to the input of<br>
he fixed image. This is expected. I am doing a mattes registration so<br>
my code is similar to the example itk code. I am using the verser<br>
transform.<br>
<br>
When I take that identical output registered image and use it as input<br>
for the checkerboard filter program the z-axis origin and spacing are<br>
changed to 0 and 1 respectively.<br>
<br>
My registration output image info is collected from the resampled<br>
image just before it is sent to the image series writer using gdcmIO.<br>
The checkerboard input image info is collected just after the input<br>
reader. Thus my registration output writer is somehow loosing this<br>
z-axis info. Im keeping it in dicom so Im stuck on how Im loosing it.<br>
<br>
One solution would be to change the spacing and origin on my<br>
checkerboard program. But I would be interested in having this fixed<br>
on the initial registration program. Any thoughts on my error? I<br>
appreciate the help. I included the specific output below.<br>
<br>
Thanks<br>
--Ken--<br>
<br>
<br>
Registration Fixed input image:<br>
  Spacing: [0.3125, 0.3125, 3.48]<br>
  Origin: [-18.1241, -60.8059, 58.0112]<br>
  Direction:<br>
-0.0348995 0 -0.999391<br>
0.999391 0 -0.0348995<br>
0 -1 0<br>
<br>
Registration Moving input image:<br>
  Spacing: [0.364583, 0.364583, 0.7]<br>
  Origin: [-3.39372, -70.4365, 70]<br>
  Direction:<br>
-0.0348995 0 -0.999391<br>
0.999391 0 -0.0348995<br>
0 -1 0<br>
<br>
Registration OUTPUT Image of the resampled moving image:<br>
  Spacing: [0.3125, 0.3125, 3.48]<br>
  Origin: [-18.1241, -60.8059, 58.0112]<br>
  Direction:<br>
1 0 0<br>
0 1 0<br>
0 0 1<br>
<br>
<br>
=====================================================================<br>
Output of when the registered images are put straight through a checker filter:<br>
<br>
Checker Input image of the registrated output moving image<br>
  Spacing: [0.3125, 0.3125, 1]<br>
  Origin: [-18.1241, -60.8059, 0]<br>
  Direction:<br>
1 0 0<br>
0 1 0<br>
0 0 1<br>
<br>
Checker Input image of the fixed<br>
  Spacing: [0.3125, 0.3125, 3.48]<br>
  Origin: [-18.1241, -60.8059, 58.0112]<br>
  Direction:<br>
-0.0348995 0 -0.999391<br>
0.999391 0 -0.0348995<br>
0 -1 0<br>
<br>
<br>
Checker Output with no resampling<br>
  Spacing: [0.3125, 0.3125, 1]<br>
  Origin: [-18.1241, -60.8059, 0]<br>
  Direction:<br>
1 0 0<br>
0 1 0<br>
0 0 1<br>
</blockquote></div><br>