<br>Hi Isabel,<br><br>Please look at the top lines of the ImageRegistration8.cxx example  (lines 25-34).<br>You will find the parameters that were used when running this example when <br>generating the text and images for the ITK Software Guide:
<br><br><br>//&nbsp; Software Guide : BeginCommandLineArgs<br>//&nbsp;&nbsp;&nbsp; INPUTS: {brainweb1e1a10f20.mha}<br>//&nbsp;&nbsp;&nbsp; INPUTS: {brainweb1e1a10f20Rot10Tx15.mha}<br>//&nbsp;&nbsp;&nbsp; ImageRegistration8Output.mhd<br>//&nbsp;&nbsp;&nbsp; ImageRegistration8DifferenceBefore.mhd
<br>//&nbsp;&nbsp;&nbsp; ImageRegistration8DifferenceAfter.mhd<br>//&nbsp;&nbsp;&nbsp; OUTPUTS: {ImageRegistration8Output.png}<br>//&nbsp;&nbsp;&nbsp; OUTPUTS: {ImageRegistration8DifferenceBefore.png}<br>//&nbsp;&nbsp;&nbsp; OUTPUTS: {ImageRegistration8DifferenceAfter.png}<br>//&nbsp; Software Guide : EndCommandLineArgs
<br><br><br>The input images can be downloaded from:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://public.kitware.com/pub/itk/Data/BrainWeb/">http://public.kitware.com/pub/itk/Data/BrainWeb/</a><br><br>get all the .tgz files and extract them with the command&nbsp; &quot;tar -xzf &quot;
<br><br>The misalignment in brainweb1e1a10f20Rot10Tx15.mha was actually produced <br>by using a ResampleImageFilter, along with a VersorRigid3DTransform.<br><br><br>If you are trying to replicate the experiment, you should first use exactly the 
<br>same components used in the ITK Software Guide, in particular, the same <br>input images and the same command line arguments.<br><br><br>&nbsp;&nbsp;&nbsp; Please let us know if you have problems using the <br>&nbsp;&nbsp;&nbsp; parameters indicated at the top of the example.
<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thanks<br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Luis<br><br><br>================================================<br><div><span class="gmail_quote">On 7/27/07, <b class="gmail_sendername">IsabelleNg</b> &lt;<a href="mailto:isabelleNg@homeworking.org">
isabelleNg@homeworking.org</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>Hello,<br><br>I would like to repeat the experiment in 
ImageRegistration8.cxx. According<br>to the code, the input image has been misaligned with a known misalignment.<br>Could you please explain how this was done exactly? I tried to repeat the<br>experiment, but probably because of the use of a set of different inputs, I
<br>didn&#39;t get the same results (or perhaps my code was incorrect). Below is the<br>pipeline I used in an attempt to replicate the experiment. I would<br>appreciate if you could let me know the correctness of this pipeline.
<br><br>Thanks in advance,<br>Isabelle<br><br>****************************<br>Input:<br><br>fImage: 128*128*128; spacing: 5*5*5 mm^3<br>mImage: 512*512*128;&nbsp;&nbsp;spacing: 1*1*3 mm^3<br><br>****************************<br><br>
<br>&nbsp;&nbsp;initializer-&gt;SetTransform(&nbsp;&nbsp; randTransform );<br>&nbsp;&nbsp;initializer-&gt;SetFixedImage(&nbsp;&nbsp;fImage );<br>&nbsp;&nbsp;initializer-&gt;SetMovingImage( mImage );<br>&nbsp;&nbsp;initializer-&gt;GeometryOn();<br>&nbsp;&nbsp;initializer-&gt;InitializeTransform();
<br><br>&nbsp;&nbsp;initializer-&gt;SetTransform(&nbsp;&nbsp; transform );<br>&nbsp;&nbsp;initializer-&gt;SetFixedImage(&nbsp;&nbsp;fImage );<br>&nbsp;&nbsp;initializer-&gt;SetMovingImage( mImage );<br>&nbsp;&nbsp;initializer-&gt;GeometryOn();<br>&nbsp;&nbsp;initializer-&gt;InitializeTransform();
<br><br>&nbsp;&nbsp;AxisType axis;<br>&nbsp;&nbsp;axis[0] = 0.0;<br>&nbsp;&nbsp;axis[1] = 0.0;<br>&nbsp;&nbsp;axis[2] = 1.0;<br>&nbsp;&nbsp;rotation.Set(&nbsp;&nbsp;axis, angle&nbsp;&nbsp;);<br>&nbsp;&nbsp;randomRotation.Set(&nbsp;&nbsp;axis, angle&nbsp;&nbsp;);<br>&nbsp;&nbsp;transform-&gt;SetRotation( rotation );<br>&nbsp;&nbsp;randTransform-&gt;SetRotation( randomRotation );
<br><br>&nbsp;&nbsp;// up to now: randTransform = transform ************<br>&nbsp;&nbsp;// now, introduce misalignment:<br><br>&nbsp;&nbsp;randTransform-&gt;SetTranslation( randTranslation );<br>&nbsp;&nbsp;randomRotation.SetRotationAroundX( randRx * PI / 180.0
&nbsp;&nbsp;);<br><br>&nbsp;&nbsp;// generate the misaligned image<br><br>&nbsp;&nbsp;resampler2-&gt;SetTransform( randTransform );<br>&nbsp;&nbsp;resampler2-&gt;SetInput( mImage );<br>&nbsp;&nbsp;resampler2-&gt;SetSize( size );&nbsp;&nbsp; // note: using the fixed image&#39;s<br>
resolution!!!<br>&nbsp;&nbsp;resampler2-&gt;SetOutputOrigin( origin );<br>&nbsp;&nbsp;resampler2-&gt;SetOutputSpacing( spacing );<br>&nbsp;&nbsp;resampler2-&gt;Update();<br>&nbsp;&nbsp;mImage =&nbsp;&nbsp;resampler2-&gt;GetOutput();<br><br>&nbsp;&nbsp;registration-&gt;SetOptimizer(&nbsp;&nbsp;&nbsp;&nbsp; optimizer&nbsp;&nbsp;&nbsp;&nbsp; );
<br>&nbsp;&nbsp;registration-&gt;SetInterpolator(&nbsp;&nbsp;interpolator&nbsp;&nbsp;);<br>&nbsp;&nbsp;registration-&gt;SetTransform( transform );&nbsp;&nbsp;// using the unmodified<br>transform<br>&nbsp;&nbsp;registration-&gt;SetFixedImageRegion(<br>fixedImageReader-&gt;GetOutput()-&gt;GetBufferedRegion() );
<br>&nbsp;&nbsp;registration-&gt;SetFixedImage(&nbsp;&nbsp;&nbsp;&nbsp;fImage&nbsp;&nbsp;&nbsp;&nbsp;);<br>&nbsp;&nbsp;registration-&gt;SetMovingImage(&nbsp;&nbsp; mImage&nbsp;&nbsp;); //the resampled image<br><br><br><br><br><br>Luis Ibanez wrote:<br>&gt;<br>&gt;<br>&gt; Hi Isabelle,<br>&gt;<br>&gt; The CenteredTransformInitializer will set up the
<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Center<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* Translation<br>&gt;<br>&gt;<br>&gt; of your transform.<br>&gt;<br>&gt; The Center is not part of the set of Parameters,<br>&gt; while the Translation is. This means that when you
<br>&gt; set the parameters of the transform, after getting<br>&gt; it from the initializer, you will modify its Translation<br>&gt; but not its center of rotation.<br>&gt;<br>&gt;<br>&gt;<br>&gt; That being said...<br>&gt;
<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The test of robustness that you are referring to is<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*purely anecdotic* and it doesn&#39;t serve any useful<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;purpose, other than *to fool the reviewers* who still<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;participate in the masquerade of the peer-review system
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that is still practiced in our domain.<br>&gt;<br>&gt;<br>&gt;<br>&gt; Here are some arguments on why such test of robustness<br>&gt; is useless:<br>&gt;<br>&gt;<br>&gt;<br>&gt; 1) The rigid transform has a parametric space of 6 Dimensions
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; If the point of convergence of the registration is a point Q<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; in that six-dimensional space, you are trying to illustrate<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; how large is the region of capture around that 6D point.
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; The assumption is that you can find all the points P such<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; that by starting at P in the parametric space, the optimization<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; will converge to a very close neighborhood of Q.<br>&gt;
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; The loci of all points P could then be considered to be the<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; area of capture of the registration. The larger this are is,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; the more resilient the registration process will be to variations
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; on the initialization conditions of the transform.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; If we look at the Metric as a cost function defined in that 6D<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; space, you are looking for the watershed that is associated to
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; the point of convergence Q.&nbsp;&nbsp;The ideal way of finding the region<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; of capture will be to find the watershed associated to the scalar<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; value of the image metric in that 6d space.<br>&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; The assumption above has the flaw that optimizer are not continuous.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; They do not follow smooth continuous paths on the parametric space.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Instead, most of the optimizers perform sequences of discrete steps
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; that create broken paths on the parametric space.&nbsp;&nbsp;Even when the<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; optimizer is initialized in a point that is inside the capture<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; region, the optimizer settings such as step length, and number
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; of iterations, may lead to early termination of the optimization<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; before the path reaches a neighborhood of the point Q.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; You may find interesting to look at the diagram in the ITK Software
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Guide,<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.itk.org/ItkSoftwareGuide.pdf">http://www.itk.org/ItkSoftwareGuide.pdf</a><br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; that shows how the optimizer parameters and the metric parameters
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; result in very different paths on the transform parametric space.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; See for example figure 8.15 in pdf-page 376.&nbsp;&nbsp;See also the metric<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; plots, and the plots of translations in the parametric space,
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; that are shown for most of the registration in that same chapter.<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; For an illustration of the notion of the capture region in the<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; metric cost function, you may want to look at the figure 
8.46.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; As opposed to all the &quot;peer-reviewed&quot; publications, in the ITK<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Software Guide you will find the actual code, images and full set<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; of parameters that were used for generating these plots.
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; You will also find the instructions for downloading the scripts<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; that were used for generating the GNUPlot diagrams shown in this<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; chapter.<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Note that the plot in figure 
8.46 only explores 2 out of the 6<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; dimensions that you will have to deal with, in a 3D rigid transform.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; This plot is a discretization of that space, (e.g. about 100 x 100 ).<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; The equivalent plot in a 6D space will require you to do 100^6
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; samples, that if you store in float numbers will be an 6D image of<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; 400 Megabytes. In order to find the value for each pixel of such<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; 6D image you will need to compute the metric of the two 3D images
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; for the transform parameters associated to the 6D pixel.<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Even if you compute such image, and then run inside it a watershed<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; from the point Q. That still doesn&#39;t guarantee that starting from
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; any given point P inside the watershed will result in a convergence<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; to the point Q.&nbsp;&nbsp;The specific settings of the optimizer parameters<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; may be or may not be appropriate for producing such discretized path.
<br>&gt;<br>&gt;<br>&gt;<br>&gt; 2) In practice you are suggesting to have a very coarse sampling of<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; the capture region by providing *some* paths, and based on the<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; length of those paths, *induce* that the registration has a certain
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &quot;degree of robustness&quot;.<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; This is an interesting but still *ANECDOTIC* piece of information.<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; It is as useful as to tell you that person X has travel through the
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Amazonian forest 27 times and has never been bitten by a snake.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; That doesn&#39;t mean much, regarding the chances of person Y to make<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; a new trip in the Amazonian forest and being bitten by a snake.
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; It certainly provides some degree of *psychological comfort* to be<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; able to report that you have run the registration under a variety<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; of perturbed conditions and yet achieved convergence. But, that&#39;s
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; the only thing it is.... &quot;psychological comfort&quot;. Because the number<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; of perturbed conditions that you will be able to explore will be<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; infinitesimally small compared to the number of potential paths
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; in the 6D space that surrounds point Q in the parametric space.<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; It is still a piece of information that will looks nice in typical<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; decadent journal, and it will be comic to see reviewers buying into
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; it. Since they never perform the reproduction of the experiments,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; they won&#39;t realize how useless and insignificant such measure<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; of robustness will be.<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; The measure may only start being significant if you manage to
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; perform a dense-enough sampling of the 6D parametric space, and<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; to mathematically evaluate the coverage of such sampling.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; E.g.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; A sampling that covers the equivalent of 60% of the parametric
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; space at a range of&nbsp;&nbsp;+/- 100mm of translations and +/- 10 degrees<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; of otation.<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Now,... even if you manage to cover a large fraction of the<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parametric space you would have done so with only
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *ONE SPECIFIC PAIR of IMAGES*<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;as the input of the image metric.&nbsp;&nbsp;The result can&#39;t hardly be<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extrapolated to *other images*, e.g. image with bias field,
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with other dynamic ranges of intensity, with other pixel spacing,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with different levels of noise.<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; 3) As Richard Feynman put it:<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;It is very hard to actually *know* something&quot;
<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Our imaging community is *very lax* when it comes to differentiate<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; the *appearance* of knowledge from the actual *posession* of<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; knowledge.<br>&gt;<br>&gt;<br>&gt;<br>&gt;
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Please don&#39;t be fooled by the many things that you see<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in Journals and Conference papers. Keep in mind that<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;most of it has been published with the sole purpose of<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;providing material for academic promotions and to fill-up
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;established yearly quotas for intellectual production.<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As a reader, and actual practitioner of the imaging arts<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;you ought to be *more critical* and exigent when it comes
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to the deduce / induce information from what other report<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in venues that do not require to demonstrate reproducibility.<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Regards,<br>&gt;<br>&gt;
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Luis<br>&gt;<br>&gt;<br>&gt;<br>&gt; --------------------<br>&gt; IsabelleNg wrote:<br>&gt;&gt; Thank you Karthik for your reply.<br>&gt;&gt;<br>&gt;&gt; I just realize that I omitted some info. I am using an
<br>&gt;&gt; centered-initializer<br>&gt;&gt; to initialize the transform (rigid 3d). In this case, would the following<br>&gt;&gt; be<br>&gt;&gt; a valid sequence?<br>&gt;&gt;<br>&gt;&gt; rigidTransform-&gt;SetIdentity();
<br>&gt;&gt; resampler-&gt;SetTransform( randomXform );<br>&gt;&gt; initializer-&gt;SetMovingImage( resample-&gt;Getoutput() );<br>&gt;&gt; initializer-&gt;SetTransform( rigidTransform );<br>&gt;&gt;<br>&gt;&gt; registration-&gt;SetInitialTransformParameters(
<br>&gt;&gt; rigidTransform-&gt;GetParameters()<br>&gt;&gt; )<br>&gt;&gt;<br>&gt;&gt; Thanks again,<br>&gt;&gt; Isabelle<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; Karthik Krishnan-2 wrote:<br>
&gt;&gt;<br>&gt;&gt;&gt;On 5/4/07, IsabelleNg &lt;<a href="mailto:isabelleNg@homeworking.org">isabelleNg@homeworking.org</a>&gt; wrote:<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;ITK-users,<br>&gt;&gt;&gt;&gt;
<br>&gt;&gt;&gt;&gt;I wish to test one of the registration algorithm by applying random<br>&gt;&gt;&gt;&gt;transformations to the moving image. This is often done in papers that<br>&gt;&gt;&gt;&gt;report registration results as tests of robustness and capture range. Is
<br>&gt;&gt;&gt;&gt;it<br>&gt;&gt;&gt;&gt;valid to perform these tests by simply initializing the transform with<br>&gt;&gt;&gt;&gt;random numbers? i..e by calling<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;registration-&gt;SetInitialTransformationParameters( randomXform)?
<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;Hi Isabelle<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;Yes. It is identical.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;Or, do we actually need to physically write out the randomly misaligned<br>&gt;&gt;&gt;
<br>&gt;&gt;&gt;&gt;images and then feed back into the algorithm?<br>&gt;&gt;&gt;&gt;<br>&gt;&gt;&gt;&gt;How would results differ with these 2 approaches?<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;There wouldn&#39;t be a difference. There would be a marginal difference
<br>&gt;&gt;&gt;depending on the transform used to resample the moving image before<br>&gt;&gt;&gt;writing<br>&gt;&gt;&gt;to the disk. In the first case, the initial transform is the same as the<br>&gt;&gt;&gt;one<br>&gt;&gt;&gt;used for registration.
<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;--<br>&gt;&gt;&gt;Karthik Krishnan<br>&gt;&gt;&gt;R&amp;D Engineer,<br>&gt;&gt;&gt;Kitware Inc.<br>&gt;&gt;&gt;<br>&gt;&gt;&gt;_______________________________________________
<br>&gt;&gt;&gt;Insight-users mailing list<br>&gt;&gt;&gt;<a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br>&gt;&gt;&gt;<a href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users
</a><br>&gt;&gt;&gt;<br>&gt;&gt;&gt;<br>&gt;&gt;<br>&gt;&gt;<br>&gt; _______________________________________________<br>&gt; Insight-users mailing list<br>&gt; <a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a>
<br>&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</a><br>&gt;<br>&gt;<br>Quoted from:<br><a href="http://www.nabble.com/Testing-Robustness-of-Registration-tf3694891.html#a10346650">
http://www.nabble.com/Testing-Robustness-of-Registration-tf3694891.html#a10346650</a><br><br>--<br>View this message in context: <a href="http://www.nabble.com/Testing-Robustness-of-Registration-tf3694891.html#a11834836">
http://www.nabble.com/Testing-Robustness-of-Registration-tf3694891.html#a11834836</a><br>Sent from the ITK - Users mailing list archive at <a href="http://Nabble.com">Nabble.com</a>.<br><br>_______________________________________________
<br>Insight-users mailing list<br><a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br><a href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</a><br></blockquote>
</div><br>