[ITK] [ITK-users] ImageToImageMetric in Python
Prevrhal, Sven
Sven.Prevrhal at philips.com
Mon Apr 14 12:25:28 EDT 2014
Thanks Matt and Jagjeet,
It's better but still not working correctly. Here's what I have now:
metricType = itk.NormalizedCorrelationImageToImageMetric.IF3IF3
transformType = itk.TranslationTransform.D3
interpolatorType = itk.LinearInterpolateImageFunction.IF3D
fixedImage = files['T2']['itkImage'] # I checked, data are fine
metric = metricType.New()
tr = transformType.New()
ip = interpolatorType.New()
metric.SetTransform(tr)
tr.SetIdentity()
metric.SetInterpolator(ip)
metric.SetFixedImage(fixedImage)
# metric.GetFixedImageRegion() is [0,0,0], [0,0,0] without a line like:
#metric.SetFixedImageRegion( fixedImage.GetBufferedRegion() )
metric.SetFixedImageRegion( itk.ImageRegion._3([0,0,0],[10,10,10]) )
zeroDisplacement = itk.OptimizerParameters.D(3)
for i,v in enumerate([0,0,0]): zeroDisplacement.SetElement(i,v)
movingImage = files[typ]['itkImage'] # data are fine and different from fixedImage
metric.SetMovingImage(movingImage)
v = metric.GetValue(zeroDisplacement)
print 'NCC T2 - %s: %f' % (typ, v)
The code crashes without error message at the GetValue call. If I drop the SetFixedImageRegion, it does run but produces v=0.0 no matter what. Any more insight would be greatly appreciated.
Kind regards,
Sven
-----Original Message-----
From: Matt McCormick [mailto:matt.mccormick at kitware.com]
Sent: Dienstag, 8. April 2014 20:10
To: Prevrhal, Sven
Cc: insight-users at itk.org
Subject: Re: [ITK] [ITK-users] ImageToImageMetric in Python
Hi Sven,
To find the type of MetricType::TransformParametersType, look at the Doxygen documentation for NormalizedCorrelationImageToImageMetric [1].
Following the typedef trail [2], the type is OptimizerParameters [3], which can be created with
displacement = itk.OptimizerParameters.F( Dimension )
Hope this helps,
Matt
[1] http://www.itk.org/Doxygen/html/classitk_1_1NormalizedCorrelationImageToImageMetric.html
[2] http://www.itk.org/Doxygen/html/classitk_1_1TransformBaseTemplate.html
[3] http://www.itk.org/Doxygen/html/classitk_1_1OptimizerParameters.html
On Tue, Apr 8, 2014 at 1:34 PM, Prevrhal, Sven <Sven.Prevrhal at philips.com> wrote:
> I am looking at the itk Software Guide to figure out how to implement
> this in Python. I have:
>
>
>
> nccMetric =
> itk.NormalizedCorrelationImageToImageMetric.IF3IF3.New()
>
> nccMetric.SetTransform(itk.IdentityTransform.D3.New())
>
>
> nccMetric.SetInterpolator(itk.NearestNeighborInterpolateImageFunction.
> IF3D.New())
>
> nccMetric.SetFixedImage(fixedImage)
>
> nccMetric.SetMovingImage(movingImage)
>
>
>
> which I believe works fine. I am getting stumped by the translation of
> this to Python:
>
>
>
> # ITK software guide page 390
>
> # C++ code: MetricType::TransformParametersType displacement(
> Dimension );
>
> displacement = nccMetric.??
>
>
>
> After which
>
>
>
> value = nccMetric.GetValue( displacement )
>
>
>
> should work fine. Anybody knows this?
>
>
>
> Regards,
>
> Sven
>
>
>
> Sven Prevrhal
>
> Philips Research
>
>
>
>
> ________________________________
> The information contained in this message may be confidential and
> legally protected under applicable law. The message is intended solely
> for the addressee(s). If you are not the intended recipient, you are
> hereby notified that any use, forwarding, dissemination, or
> reproduction of this message is strictly prohibited and may be
> unlawful. If you are not the intended recipient, please contact the
> sender by return e-mail and destroy all copies of the original message.
>
> _____________________________________
> 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://www.itk.org/mailman/listinfo/insight-users
>
> _______________________________________________
> Community mailing list
> Community at itk.org
> http://public.kitware.com/cgi-bin/mailman/listinfo/community
>
________________________________
The information contained in this message may be confidential and legally protected under applicable law. The message is intended solely for the addressee(s). If you are not the intended recipient, you are hereby notified that any use, forwarding, dissemination, or reproduction of this message is strictly prohibited and may be unlawful. If you are not the intended recipient, please contact the sender by return e-mail and destroy all copies of the original message.
_____________________________________
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://www.itk.org/mailman/listinfo/insight-users
More information about the Community
mailing list