[ITK-users] [ITK] itk Python: origin of DICOM slice does not change
Matt McCormick
matt.mccormick at kitware.com
Tue Sep 20 09:14:56 EDT 2016
Hi Fabio,
As suggested by Tim, call ->UseInputMetaDataDictionaryOff() to use
the Origin from the itk::Image. The MetaDataDictionary tags will
indicate an Origin that is not correct.
HTH,
Matt
On Tue, Sep 20, 2016 at 9:06 AM, D'Isidoro Fabio <fisidoro at ethz.ch> wrote:
> Hi,
>
>
>
> It doesn’t work.
>
>
>
> Filter.GetOuput() already has the new origin (I can print it and it’s
> right). Something wrong is in the writing process.
>
>
>
> By the way, I noticed this problem occurs for change of the origin and of
> rescaling intensities. It does not occur for changes in size and spacing.
>
>
>
> Regards,
>
> Fabio
>
>
>
> From: Dženan Zukić [mailto:dzenanz at gmail.com]
> Sent: Dienstag, 20. September 2016 14:46
> To: D'Isidoro Fabio
> Cc: Timothee Evain; insight-users at itk.org
> Subject: Re: [ITK-users] [ITK] itk Python: origin of DICOM slice does not
> change
>
>
>
> Hi Fabio,
>
>
>
> did you try setting the origin directly on the result image:
>
> filter->Update();
>
> outImage=filter->GetOutput();
>
> outImage->SetOrigin(new_origin);
>
> writer_output->SetInput(outImage);
>
>
>
> Regards,
>
> Dženan
>
>
>
>
>
> On Tue, Sep 20, 2016 at 8:34 AM, D'Isidoro Fabio <fisidoro at ethz.ch> wrote:
>
> Hi,
>
> I am currently using the command:
>
> writer_output.UseInputMetaDataDictionaryOff()
>
> If I don't use it, the image is saved with default origin (0,0) mm and
> default spacing (1., 1.).
>
> According to the manual for UseInputMetaDataDictionaryOff(), "this flag
> defines whether the MetaDataDictionary to use will be the one from the input
> image or the one already set in the ImageIO object." My understanding is
> that if I set it off, the DICOM slice will be written with current values
> (and not the input values), which is what I want. But this seems not to
> happen.
>
> Relevant parts of my code:
>
> filter.SetOutputOrigin( new_origin )
> writer_output.SetInput(filter.GetOutput())
> writer_output.UseInputMetaDataDictionaryOff()
> writer_output.SetImageIO(gdcmImageIO)
> writer_output.Update()
>
> Maybe the function UseInputMetaDataDictionaryOff() does not work properly
> for the itk with Python wrapping?
>
> Thanks for your answer.
>
> Fabio.
>
>
> -----Original Message-----
> From: Timothee Evain [mailto:tevain at telecom-paristech.fr]
> Sent: Dienstag, 20. September 2016 10:35
> To: D'Isidoro Fabio
> Cc: insight-users at itk.org
> Subject: Re: [ITK] [ITK-users] itk Python: origin of DICOM slice does not
> change
>
> Hi,
>
> You refer to the DICOMImageReadWrite example. If you don't change the
> writing part, I think your problem comes from the fact that you assign the
> read metadata directly to the output ( ->UseInputMetaDataDictionaryOff() )
> so the original origin will be saved.
>
> HTH,
>
> Tim
>
> ----- Mail original -----
> De: "D'Isidoro Fabio" <fisidoro at ethz.ch>
> À: insight-users at itk.org
> Envoyé: Lundi 19 Septembre 2016 22:09:39
> Objet: [ITK] [ITK-users] itk Python: origin of DICOM slice does not change
>
>
>
> Hi,
>
>
>
> Following the code ResampleImageFilter2.cxx, I am applying an Identity
> Transform to a single DICOM slice, I change the origin to
>
>
>
> output_origin = reader.GetOutput().GetOrigin() + offset
>
>
>
> and I write the transformed DICOM slice into a new DICOM slice (following
> the code DICOMImageReadAndWrite.cxx).
>
>
>
> I visualize the written DICOM slice with a viewer (it’s an itk-vtk
> segmentation software).
>
>
>
> The transformed DICOM slice looks as it should. Surprisingly however the
> viewer shows the original input values as origin. This is confirmed by the
> fact that if I read with an itk script the written DICOM slice again, and I
> print the information of the DICOM slice, the origin is still the original
> one and not the modified one.
>
>
>
> How could this be?
>
>
>
> Original DICOM slice:
>
>
>
>
>
>
>
> Transformed DICOM slice:
>
>
>
>
>
>
>
>
>
> Thank you for help,
>
>
>
> Fabio.
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/insight-users
>
> _______________________________________________
> Community mailing list
> Community at itk.org
> http://public.kitware.com/mailman/listinfo/community
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/insight-users
>
>
>
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/insight-users
>
More information about the Insight-users
mailing list