<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman,new york,times,serif;font-size:14pt"><div>Hi All,<br><br>I have a question about one of functions of itk::BSplineDeformableTransform and I would be thankful if somebody answers:<br><br>I would like to simulate some deformation fields by changing the <span class="yshortcuts" id="lw_1268068804_0">identity transformation</span>
locally. I thought that perhaps BSpline model is a good candidate but I
don't know how to use&nbsp; "SetCoefficientImages"&nbsp; function. It seems that
if I want to know which part of image is perturbed from identity map
this is a good option because using parameter type is very implicit.
Here is how I tried but apparently it is not correct:<br><br>[...]<br>typedef itk::BSplineDeformableTransform&lt;
 double,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dimension,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3 &gt;&nbsp;&nbsp;&nbsp;&nbsp; BSplineTransformType;<br><br>&nbsp;&nbsp;&nbsp; BSplineTransformType::Pointer bsplineTransform = BSplineTransformType::New();<br><br><br>&nbsp;&nbsp;&nbsp; typedef BSplineTransformType::RegionType RegionType;<br>&nbsp;&nbsp;&nbsp; RegionType bsplineRegion;<br>&nbsp;&nbsp;&nbsp; RegionType::SizeType&nbsp;&nbsp; gridSizeOnImage;<br>&nbsp;&nbsp;&nbsp; RegionType::SizeType&nbsp;&nbsp;
 gridBorderSize;<br>&nbsp;&nbsp;&nbsp; RegionType::SizeType&nbsp;&nbsp; totalGridSize;<br><br>&nbsp;&nbsp;&nbsp; gridSizeOnImage.Fill( 8 );<br>&nbsp;&nbsp;&nbsp; gridBorderSize.Fill( 3 );&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; totalGridSize = gridSizeOnImage + gridBorderSize;<br><br>&nbsp;&nbsp;&nbsp; bsplineRegion.SetSize( totalGridSize );<br><br>&nbsp;&nbsp;&nbsp; typedef BSplineTransformType::SpacingType SpacingType;<br>&nbsp;&nbsp;&nbsp; SpacingType bsplineSpacing = reader-&gt;GetOutput()-&gt;GetSpacing();<br><br>&nbsp;&nbsp;&nbsp; typedef BSplineTransformType::OriginType OriginType;<br>&nbsp;&nbsp;&nbsp; OriginType bsplineOrigin = reader-&gt;GetOutput()-&gt;GetOrigin();;<br><br>&nbsp;&nbsp;&nbsp; InputImageType::SizeType ImageSize = reader-&gt;GetOutput()-&gt;GetLargestPossibleRegion().GetSize();<br><br>&nbsp;&nbsp;&nbsp; for(unsigned int r=0; r&lt;Dimension; r++)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bsplineSpacing[r] *=
 floor( static_cast&lt;double&gt;(ImageSize[r] )&nbsp; /<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static_cast&lt;double&gt;(gridSizeOnImage[r] ) );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bsplineOrigin[r]&nbsp; -=&nbsp; bsplineSpacing[r];<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; bsplineTransform-&gt;SetGridSpacing( bsplineSpacing );<br>&nbsp;&nbsp;&nbsp; bsplineTransform-&gt;SetGridOrigin( bsplineOrigin );<br>&nbsp;&nbsp;&nbsp; bsplineTransform-&gt;SetGridRegion( bsplineRegion );<br>&nbsp; <br><br>&nbsp;&nbsp;&nbsp; typedef BSplineTransformType::ImageType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParamImageType ;<br><br><br>&nbsp;&nbsp;&nbsp; ParamImageType::Pointer&nbsp; bsplineImageParameters[3] ;<br><br>[...]<br><br>then
I don't know what to do next! should I go ahead and define image
size,origin.direction and then allocate memory for each
bsplineImageParameters[0,1,2] but I have already specified grid size!
how do they relate?&nbsp; I am confused how to use it.<br><br>Any comment is highly appreciated.<br><br>Regards,<br>kaveh</div>
</div><br>

      </body></html>