<div dir="ltr">Hi all,<br><br>I&#39;m trying to implement the itkTransformMeshFilter and i run into some problems. I have a deformation field (bspline parameters from an image to image registration) and I want to deform a mesh using the Bspline transform and its final parameters. I also tried using an affine transform and it gave me the same error on the .txx file. I tried the same thing using the Identity Transform and the filter compiled with no problems. I was wondering if I can get some help on what I&#39;m doing wrong or just on how I can deform a mesh using my registration results. I attached the code and the error below. <br>
<br>Thanks,<br><br>.txx line where error appears:<br><br>m_Transform-&gt;TransformPoint( inputPoint.Value() );<br><br>e:\Federico\CT\Source\Insight\Code\BasicFilters\itkTransformMeshFilter.txx(96) : error C2664: &#39;itk::BSplineDeformableTransform&lt;TScalarType,NDimensions,VSplineOrder&gt;::OutputPointType itk::BSplineDeformableTransform&lt;TScalarType,NDimensions,VSplineOrder&gt;::TransformPoint(const itk::BSplineDeformableTransform&lt;TScalarType,NDimensions,VSplineOrder&gt;::InputPointType &amp;) const&#39; : cannot convert parameter 1 from &#39;const itk::MapContainer&lt;TElementIdentifier,TElement&gt;::Element&#39; to &#39;const itk::BSplineDeformableTransform&lt;TScalarType,NDimensions,VSplineOrder&gt;::InputPointType &amp;&#39;<br>
<br><br><br><br><br>Here&#39;s the code:<br><br>&nbsp;&nbsp;&nbsp; typedef itk::BSplineDeformableTransform&lt; CoordinateRepType, SpaceDimension, SplineOrder &gt;&nbsp;&nbsp;&nbsp; BsplineTransformType;<br>&nbsp;&nbsp;&nbsp; BsplineTransformType::Pointer&nbsp;&nbsp;&nbsp; bsplineFinalTransform = BsplineTransformType::New();<br>
&nbsp;&nbsp;&nbsp; RegistrationType2::ParametersType&nbsp;&nbsp;&nbsp; finalPar = registration2-&gt;GetLastTransformParameters();<br>&nbsp;&nbsp;&nbsp; bsplineFinalTransform-&gt;SetParameters( finalPar );<br><br>&nbsp;&nbsp;&nbsp; //Transform Meshes<br>&nbsp;&nbsp;&nbsp; typedef itk::TransformMeshFilter&lt; HeartMeshType, HeartMeshType, BsplineTransformType &gt; TransformHeartMeshFilterType;<br>
&nbsp;&nbsp;&nbsp; TransformHeartMeshFilterType::Pointer&nbsp;&nbsp;&nbsp; transformHeartMesh = TransformHeartMeshFilterType::New();<br><br>&nbsp;&nbsp;&nbsp; transformHeartMesh-&gt;SetInput( heartMesh );<br>&nbsp; &nbsp; transformHeartMesh-&gt;SetTransform( bsplineFinalTransform );<br>
&nbsp;&nbsp;&nbsp; transformHeartMesh-&gt;Update();<br><br>The error:<br>e:\Federico\CT\Source\Insight\Code\BasicFilters\itkTransformMeshFilter.txx(96) : error C2664: &#39;itk::BSplineDeformableTransform&lt;TScalarType,NDimensions,VSplineOrder&gt;::OutputPointType itk::BSplineDeformableTransform&lt;TScalarType,NDimensions,VSplineOrder&gt;::TransformPoint(const itk::BSplineDeformableTransform&lt;TScalarType,NDimensions,VSplineOrder&gt;::InputPointType &amp;) const&#39; : cannot convert parameter 1 from &#39;const itk::MapContainer&lt;TElementIdentifier,TElement&gt;::Element&#39; to &#39;const itk::BSplineDeformableTransform&lt;TScalarType,NDimensions,VSplineOrder&gt;::InputPointType &amp;&#39;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; with<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TScalarType=CoordinateRepType,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NDimensions=3,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VSplineOrder=3<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TElementIdentifier=itk::DefaultDynamicMeshTraits&lt;float,3,3&gt;::PointIdentifier,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TElement=itk::DefaultDynamicMeshTraits&lt;float,3,3&gt;::PointType<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TScalarType=CoordinateRepType,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NDimensions=3,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VSplineOrder=3<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Reason: cannot convert from &#39;const itk::MapContainer&lt;TElementIdentifier,TElement&gt;::Element&#39; to &#39;const itk::BSplineDeformableTransform&lt;TScalarType,NDimensions,VSplineOrder&gt;::InputPointType&#39;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; with<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TElementIdentifier=itk::DefaultDynamicMeshTraits&lt;float,3,3&gt;::PointIdentifier,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TElement=itk::DefaultDynamicMeshTraits&lt;float,3,3&gt;::PointType<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TScalarType=CoordinateRepType,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NDimensions=3,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VSplineOrder=3<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No constructor could take the source type, or constructor overload resolution was ambiguous<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xtree(267) : while compiling class-template member function &#39;void itk::TransformMeshFilter&lt;TInputMesh,TOutputMesh,TTransform&gt;::GenerateData(void)&#39;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; with<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TInputMesh=HeartMeshType,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TOutputMesh=HeartMeshType,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TTransform=TransformType3<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \Federico\CT\C\DeformHeart3D\DeformHeart3D.cxx(467) : see reference to class template instantiation &#39;itk::TransformMeshFilter&lt;TInputMesh,TOutputMesh,TTransform&gt;&#39; being compiled<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; with<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TInputMesh=HeartMeshType,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TOutputMesh=HeartMeshType,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TTransform=TransformType3<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]<br><br clear="all"><br>-- <br>Federico J. Lopez Bertoni<br>
Graduate Research Assistant<br>Duke University<br>Department of Biomedical Engineering<br>Office: &nbsp;1373 CIEMAS<br>Phone: &nbsp;919-660-5125<br><a href="mailto:fjlb@duke.edu">fjlb@duke.edu</a><br>
</div>