[Insight-developers] bug in BSplineDeformableTransform?
Luis Ibanez
luis.ibanez at kitware.com
Wed Mar 19 13:24:01 EDT 2008
Stefan, Tomas,
Thanks for pointing this out and for proposing
the fix.
We will take care of it before cutting ITK 3.6.
Thanks
Luis
---------------------
Tomáš Kazmar wrote:
> Hi Stefan,
>
> thanks for sending the link, I attached some more info to the bug
> report and
> hopefully the right way to patch it.
>
> Regards,
> Tomas
>
>
> # Hi Tomas,
> # # This seems to be the same problem as bug 4021, which i reported a
> while ago.
> # # http://www.itk.org/Bug/view.php?id=4021
> # # Apparently it hasn't been fixed yet. :)
> # # Kind regards,
> # Stefan.
> # # At 23:12 18-3-2008, =?iso-8859-2?Q?Tom=E1=B9=20Kazmar?= wrote:
> # >Hi all,
> # >
> # > recently i tried to use second order b-splines to warp images and
> # >the results contained sharp steps (~were not smooth). I am not sure
> # >whether I do something wrong. Has anybody used it successfully?
> # >
> # >It seems to me that there is an error in
> # >BSplineInterpolatingWeightFunction in combination with
> # >BSplineKernelFunction. The first uses kernel in the range -1..2 and
> # >the second defines the support as -1.5..1.5.
> # >
> # >Should I report it as a bug? There is a simple patch but once more
> # >I am not sure whether I use it the right way.
> # >
> # >Here is the relevant part of code:
> # >
> # > const unsigned int SplineOrder = 2;
> # > typedef itk::BSplineDeformableTransform<float, Dimension,
> SplineOrder> # > TransformType;
> # > TransformType::Pointer bsplineTransform = TransformType::New();
> # > typedef TransformType::RegionType RegionType;
> # > RegionType bsplineRegion;
> # > RegionType::SizeType size;
> # > const unsigned int nodesOutsideImage = SplineOrder;
> # > const unsigned int nodesInsideImage = 4;
> # > const unsigned int numberOfGridNodes = nodesInsideImage + # >
> nodesOutsideImage;
> # > size.Fill( numberOfGridNodes );
> # > bsplineRegion.SetSize( size );
> # > typedef TransformType::SpacingType SpacingType;
> # > SpacingType spacing;
> # > spacing[0] = 1.0 * floor( (width-1) / (double)(nodesInsideImage-1) );
> # > spacing[1] = 1.0 * floor( (height-1) /
> (double)(nodesInsideImage-1) );
> # > typedef TransformType::OriginType OriginType;
> # > OriginType origin;
> # > origin[0] = 0.0 - spacing[0];
> # > origin[1] = 0.0 - spacing[1];
> # > bsplineTransform->SetGridSpacing( spacing );
> # > bsplineTransform->SetGridOrigin( origin );
> # > bsplineTransform->SetGridRegion( bsplineRegion );
> # >
> # >
> # >Regards,
> # >Tomas
> # >_______________________________________________
> # >Insight-developers mailing list
> # >Insight-developers at itk.org
> # >http://www.itk.org/mailman/listinfo/insight-developers
> # # # # _______________________________________________
> Insight-developers mailing list
> Insight-developers at itk.org
> http://www.itk.org/mailman/listinfo/insight-developers
>
More information about the Insight-developers
mailing list