<div dir="ltr">Hi David,<div><br></div><div>Thanks for your explanation, very clear as usual !</div><div>However, this look like a bug to me, at least from the user point of view. When the linear or cubic interpolation is activated, the user expect to get an interpolation even for simple case where is could be assimilated to a decimation.<br>

</div><div><br></div><div>Will try out your new vtkImageResize that seems promising !<br><br>Thanks</div><div>Simon</div><div><br><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-07-08 14:08 GMT+02:00 David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@gmail.com</a>></span>:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Simon,<br>
<br>
If you are downsampling the image by simply changing the output<br>
spacing, without introducing a shift in the positions of the samples,<br>
then downsampling is a decimation operation (i.e. downsampling<br>
by a factor of three is the same as taking every 3rd voxel).   This is<br>
true whether you use linear, cubic, or NN interpolation.  The code<br>
optimizes such decimations by turning off the interpolation.<br>
<br>
In VTK, the Origin is at the center of the first voxel, so a straightforward<br>
downsampling places centers each output voxel at exactly the position<br>
of one of the input voxels, which is why downsampling becomes<br>
decimation.  To avoid this, you must shift the output Origin relative to<br>
the input Origin.<br>
<br>
The new vtkImageResize filter has BorderOn()/BorderOff() methods<br>
to control this behavior.  If Border is Off (the default) the behavior is<br>
like vtkImageReslice.  If Border in On, then the output origin is<br>
automatically shifted relative to the input origin so that the shrink<br>
factors are applied relative to the outer corner of the first voxel,<br>
rather than relative to the center of the first voxel.<br>
<br>
I'm not sure if that was a clear explanation, so let me know if you<br>
still have questions.<br>
<span class="HOEnZb"><font color="#888888"><br>
  - David<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On Tue, Jul 8, 2014 at 3:41 AM, Simon ESNEAULT <<a href="mailto:simon.esneault@gmail.com">simon.esneault@gmail.com</a>> wrote:<br>
> Hi All,<br>
><br>
> We use vtkImageResample/vtkImageReslice (from vtk 5.8.1) quite a lot here,<br>
> and I've noticed a strange behavior.<br>
><br>
> If we down sample a volume by a factor of 2 in all 3 directions, the output<br>
> image will be the exact same if we use a nearest neighborhood, linear or<br>
> cubic interpolation. There seems to be no interpolation at all if the<br>
> reduction factor is a power of two.<br>
> If the reduction factor is set to 2.00001, the interpolation is performed<br>
> correctly when asked for linear or cubic.<br>
><br>
> Is this an intended behavior ?<br>
><br>
> After some debugging :<br>
> In the file vtkImageReslice.cxx, method vtkTricubicInterpCoeffs (line 1503)<br>
> with a power of 2 factor we always fall back to the part with the comment //<br>
> no interpolation (line 1510), but I don't understand why.<br>
><br>
> And last question : there is a new vtkImageResize that was introduced in vtk<br>
> 5.10, will the behavior be the same ?<br>
><br>
> Thanks for your help<br>
><br>
> -Simon<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>------------------------------------------------------------------<br>Simon Esneault<div>13 rue Vasselot<br>35000 Rennes, France<br>Tel : 06 64 61 30 94<br>

Mail : <a href="mailto:simon.esneault@gmail.com" target="_blank">simon.esneault@gmail.com</a><br>------------------------------------------------------------------</div>
</div>