Volumetric Interpolation using Slice function, how to obtain colour values from the image of the plane

4 views (last 30 days)
Hi guys,
I have been playing around with the flow example provided on this link http://www.mathworks.com/help/techdoc/visualize/f5-3558.html and at the part where we take a slice of the 3d data set using
rotate(hslice,[-1,0,0],-45)
xd = get(hslice,'XData');
yd = get(hslice,'YData');
zd = get(hslice,'ZData');
h = slice(x,y,z,v,xd,yd,zd);
I was wondering if it is possible to get the V values of the function at the points of xd,yd and zd or atleast get the colour values at these points that are generated in the image. Since MatLAB documentation says the slice function uses 3d interpolation to colour the image I was wondering if there is a way to extract the interpolated values that it gets for the function V (the values at the points xd,yd,zd) before it does the colouration.

Accepted Answer

Patrick Kalita
Patrick Kalita on 19 Sep 2011
You can extract the CData property of the slice surface h:
get(h, 'CData')
That should get you the values you're looking for.
However, if you only want those values and you aren't interested in the visualization at all, you can just use interp3.
  2 Comments
Rafay
Rafay on 19 Sep 2011
I dont understand the data outputted by CData it gives me a 2 dimensional set from with many NaN followed by some numbers, surprisingly when i run vi = interp3(x,y,z,v,xd,yd,zd); i get the exact same output. what do these outputs represent?
Patrick Kalita
Patrick Kalita on 20 Sep 2011
Those are the values found by interpolating your original data ( v = f(x,y,z) ) at the points defined by the mesh (xd, yd, zd).

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!