Cubic 3D B-Spline

Aria_888

New member
Joined
Jun 15, 2015
Messages
3
I need to implement cubic B spline in 3D in Matlab, I have a control point matrix in 104x54x104 size and my grid is 336x166x336

i know that B-Spline is defined by 64 control points (the data values within a 4X4X4 voxel neighborhood), and evaluated inside the unit cube bounded by the eight central voxels, with t, s and r representing distances in the x, y and z direction respectively. My problem is that i dont know how to get the distance between the control points and grid because this distance should be between 0 and 1.

Anybody can help me?


 
I need to implement cubic B spline in 3D in Matlab, I have a control point matrix in 104x54x104 size and my grid is 336x166x336

i know that B-Spline is defined by 64 control points (the data values within a 4X4X4 voxel neighborhood), and evaluated inside the unit cube bounded by the eight central voxels, with t, s and r representing distances in the x, y and z direction respectively. My problem is that i dont know how to get the distance between the control points and grid because this distance should be between 0 and 1.

Anybody can help me?


Typically a linear scale is used. For example in 1D
\(\displaystyle t(x)\, =\, \frac{x\, -\, x_i}{x_{i+1}\, -\, x_i}\) for \(\displaystyle x_i\, \le\, x\, \le\, x_{i+1}\)
Thus when t=0, x=xi and when t=1, x=xi+1

Note that we can generalize this as
Li: X = Ai (1 - t) + Ai+1 t + t (1-t) ai(t)
where {Ai} is a set of arbitrary (possibly multiple dimensional) points and ai is an arbitrary function of t [of the same dimensionality as A]. If ai is linear and satisfies certain other constraints, the line L defined by the union of the Li is a cubic spline. The variable t can be considered as a scaled distance function inside each voxel (volume element) where X=Ai when t=0 and X=Ai+1 when t=1.
 
Thanks for your info Ishuda,

My question is that how should I know t should be either 0 or 1?

how can I find t value?
 
Top