Hi Graham,
Actually, it sounds like nearest neighbor is exactly what you want.
The new value for a voxel at a specific set of coordinates is given
by the value of the original voxel that lands closest to the new one.
There is no rounding. There is no interpolation of values (there is
only interpolation of coordinates).
One thing that means is if your original dataset has values of 0, 2,
11 and 26 in it, then your new dataset will have values of 0, 2, 11
and 26 in it.
The other thing that means is the original voxel that occupies the
biggest portion of the new voxel should give its value to the new
voxel. If the center is the closest one, then it should also have the
greatest overlap.
Perhaps I'm missing something that you are after, but this seems
like what you want.
- rick