[vtkusers] Bounds computation of vtkImageData

David Gobbi david.gobbi at gmail.com
Tue Jan 31 08:16:57 EST 2017


Hi Tim,

The bounds go from the center of the first voxel to the center of the last
voxel.  So the code in vtkImageData.cxx is correct.

 - David

On Tue, Jan 31, 2017 at 4:14 AM, Timothee Evain <tevain at telecom-paristech.fr
> wrote:

> Hello everyone,
>
> It may be more a dev issue, but I think there is a small mistake in the
> ComputeBounds() method of vtkImageData
> When computing upper bounds, code read (line 781 of vtkImageData.cxx):
>
> this->Bounds[1] = origin[0] + (extent[1-swapXBounds] * spacing[0]);
> this->Bounds[3] = origin[1] + (extent[3-swapYBounds] * spacing[1]);
> this->Bounds[5] = origin[2] + (extent[5-swapZBounds] * spacing[2]);
>
> Since the upper extent is meant to be the index of the last inside point,
> this leads to upper bounds excluding the upper fringe of data in each
> direction.
> So I guess this part should read something like:
>
> this->Bounds[1] = origin[0] + ( (extent[1-swapXBounds] + 1) * spacing[0]);
> this->Bounds[3] = origin[1] + ( (extent[3-swapYBounds] + 1) * spacing[1]);
> this->Bounds[5] = origin[2] + ( (extent[5-swapZBounds] + 1) * spacing[2]);
>
> Am I mistaken ?
>
> Tim
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20170131/c5a69a6a/attachment.html>


More information about the vtkusers mailing list