<div dir="ltr">Hi Esmeralda,<br><br>I'm not sure what your aim to achieve with the registration. But if a 3d affine cannot model the deformations you expect to be present in the data, you can try a deformable (B-spline) registration. The coarseness of the deformations can be controlled by the B-spline grid spacing (schedule).<br> <br>In general, I would only use a slice by slice approach if it is known that the 3d data is actually a loosely aligned stack of 2d images. Is that in your case?<br><br>Have you looked at other cross sections of your data, e.g. sagitally or coronally?<br>That may give insight in what transformation you might need.<br><br>Some tips on your tranformation parameters so far:<br><br>Have you considered AdaptiveStochasticGradientDescent instead of StandardGradientDescent? With this optimizer you don't need (to tune) SP_a, SP_A and SP_alpha.<br><br>TransformBendingEnergyPenalty is not needed in combination with AffineTransform. It only increases computation time. For a BSplineTransform I would only recommend to use this penalty if you use a very fine gridspacing (i.e. up to a few voxels)<br><br>You are aware that the settings listed at "********** Metric" are not applicable to <br>AdvancedNormalizedCorrelation? However, they don't do harm either.<br><br>Best,<br>Floris<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 3, 2015 at 5:54 PM, Esmeralda Ruiz Pujadas <span dir="ltr"><<a href="mailto:esmeralda.ruizpujadas@gmail.com" target="_blank">esmeralda.ruizpujadas@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>Dear Floris,<br><br></div>You are right, the problem is that it makes a global scale and I am working in 3d so<br></div>I cannot increase the size separately. I also get shifted in z and in the first frame<br></div>appears nothing even when there was a very similar shape. I wonder if<br>the best option is to go slice by slice.<br><br></div><div>Thank you so much<br></div><div><br></div>The parameter file<br>//ImageTypes<br>(FixedInternalImagePixelType "float")<br>(FixedImageDimension 3)<br>(MovingInternalImagePixelType "float")<br>(MovingImageDimension 3)<br><br>//Components<br>(Registration "MultiMetricMultiResolutionRegistration")<br>(FixedImagePyramid "FixedSmoothingImagePyramid")<br>(MovingImagePyramid "MovingSmoothingImagePyramid")<br>(Interpolator "BSplineInterpolator")<br>(Metric "AdvancedNormalizedCorrelation" "TransformBendingEnergyPenalty")<br>(Optimizer "StandardGradientDescent")<br>(ResampleInterpolator "FinalBSplineInterpolator")<br>(Resampler "DefaultResampler")<br>(Transform "AffineTransform")<br>// ********** Pyramid<br><br>// Total number of resolutions<br>(NumberOfResolutions 4)<br><br><br>// ********** Transform<br><br>//(Scaler 500000.0)<br>//(CenterOfRotation 128 128 ??) center by default<br>(AutomaticTransformInitialization "true")<br>(HowToCombineTransforms "Compose")<br><br><br>// ********** Optimizer<br><br>// Maximum number of iterations in each resolution level:<br>(MaximumNumberOfIterations 600 600 600 900)<br><br>//SP: Param_a in each resolution level. a_k = a/(A+k+1)^alpha<br>(SP_a 1000.0 1000.0 500.0 500.0)<br><br>//SP: Param_alpha in each resolution level. a_k = a/(A+k+1)^alpha<br>(SP_alpha 0.602)<br><br>//SP: Param_A in each resolution level. a_k = a/(A+k+1)^alpha<br>(SP_A 50.0)<br><br><br>// ********** Metric<br><br>//Number of grey level bins in each resolution level:<br>(NumberOfHistogramBins 32)<br>(FixedLimitRangeRatio 0.0)<br>(MovingLimitRangeRatio 0.0)<br>(FixedKernelBSplineOrder 1)<br>(MovingKernelBSplineOrder 3)<br><br><br>// ********** Several<br><br>(WriteTransformParametersEachIteration "false")<br>(WriteTransformParametersEachResolution "false")<br>(ShowExactMetricValue "false")<br>(ErodeMask "true")<br>(UseDifferentiableOverlap "false")<br><br><br>// ********** ImageSampler<br><br>//Number of spatial samples used to compute the mutual information in each resolution level:<br>(ImageSampler "RandomCoordinate")<br>(NumberOfSpatialSamples 3000)<br>(NewSamplesEveryIteration "true")<br><br><br><br>// ********** Interpolator and Resampler<br><br>//Order of B-Spline interpolation used in each resolution level:<br>(BSplineInterpolationOrder 1)<br><br>//Order of B-Spline interpolation used for applying the final deformation:<br>(FinalBSplineInterpolationOrder 0)<br><br>//Default pixel value for pixels that come from outside the picture:<br>(DefaultPixelValue 0)<br><br><br>// Choose whether to generate the deformed moving image.<br>// You can save some time by setting this to false, if you are<br>// not interested in the final deformed moving image, but only<br>// want to analyze the deformation field for example.<br>(WriteResultImage "true")<br><div><div><div><br></div></div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 3, 2015 at 5:02 PM, Floris Berendsen <span dir="ltr"><<a href="mailto:floris@isi.uu.nl" target="_blank">floris@isi.uu.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Esmeralda,<br><br>The large object will indeed affect the affine registration, since affine is a global transform (i.e. its scaling, shearing, etc. applies in the same amount everywhere in the image).<br>I do expect a better registration too when you removed the large object (you made the intensities similar to the background?). Can you provide more information about your registration settings? I.e. what metric do you use, what is the pyramid schedule, etc. The easiest is to send your parameter file. And what are the sizes of you images (voxels and/or millimeters). Or can it be that the small circle is only a cross section of a bigger structure in 3d, which are registered to each other? <br><br>Best,<br>Floris<br></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Tue, Feb 3, 2015 at 1:34 PM, Esmeralda Ruiz Pujadas <span dir="ltr"><<a href="mailto:esmeralda.ruizpujadas@gmail.com" target="_blank">esmeralda.ruizpujadas@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Dear all,<br><br>I have a doubt as shown in the image. I am using an affine registration and<br>I have a 3d volume as shown in the image with fixed, moving and result, respectively.<br>I would expect that the result of the small circle (third) to grow and be scaled<br>as the small circle in the first image as it is larger. And the registration does not<br>do any transformation instead. Why is it not scaling?. Is it affected by the big circle?.<br>I also try to obtain the small circle and delete the big one but even like this, I<br>did not find any result of the affine registration.<br><br>Thanks<br>Sincerely<span><font color="#888888"><br>Esmeralda<br></font></span></div>
<br></div></div>_______________________________________________<br>
Elastix mailing list<br>
<a href="mailto:Elastix@bigr.nl" target="_blank">Elastix@bigr.nl</a><br>
<a href="http://lists.bigr.nl/cgi-bin/mailman/listinfo/elastix" target="_blank">http://lists.bigr.nl/cgi-bin/mailman/listinfo/elastix</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>