[Numpy-discussion] Smoothing a Grid
Ian Mallett
geometrian at gmail.com
Fri Apr 9 00:19:50 EDT 2010
Hi,
So I have a 4D grid (x,y,z,vec3), where the vec3 represents a position.
What I want to do is to move vec3 elements of the grid based on surrounding
vec3 elements so that the grid's values overall are more orthogonal.
For example, consider the following 3 x 3 x 3 x vec3 grid:
[[[[-1.0,-1.0,-1.0],[ 0.0,-1.0,-1.0],[ 1.0,-1.0,-1.0]],
[[-1.0,-1.0, 0.0],[ 0.0,-1.0, 0.0],[ 1.0,-1.0, 0.0]],
[[-1.0,-1.0, 1.0],[ 0.0,-1.0, 1.0],[ 1.0,-1.0, 1.0]]],
[[[-1.0, 0.0,-1.0],[ 0.0, 0.0,-1.0],[ 1.0, 0.0,-1.0]],
[[-1.0, 0.0, 0.0],[ 0.2, 0.0, 0.0],[ 1.0, 0.0, 0.0]],
[[-1.0, 0.0, 1.0],[ 0.0, 0.0, 1.0],[ 1.0, 0.0, 1.0]]],
[[[-1.0, 1.0,-1.0],[ 0.0, 1.0,-1.0],[ 1.0, 1.0,-1.0]],
[[-1.0, 1.0, 0.0],[ 0.0, 1.0, 0.0],[ 1.0, 1.0, 0.0]],
[[-1.0, 1.0, 1.0],[ 0.0, 1.0, 1.0],[ 1.0, 1.0, 1.0]]]]
Notice that, with the exception of the middle value, [0.2,0.0,0.0], the vec3
elements in the grid define a 3 x 3 x 3 grid. The middle value should thus
be moved perhaps 10% of the distance to the target location [0.0,0.0,0.0],
which can be inferred from the surrounding vec3 elements. After this
movement, the value is [0.18,0.00,0.00].
To be more precise, the target position of each vec3 is determined from the
surrounding values. Every vec3 moves towards being a certain x_distance
from adjacent vec3s in the x direction. Every vec3 moves towards being a
certain y_distance from adjacent vec3s in the y direction. Every vec3 moves
towards being a certain z_distance from adjacent vec3s in the z direction.
Each vec3 also moves towards a certain diagonal_distance from all vec3s
along a major diagonal.
I am trying to accomplish this. Any ideas?
Thanks,
Ian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20100408/6f0a94e1/attachment.html>
More information about the NumPy-Discussion
mailing list