CT #s corresponding to spatial coordinates
3 views (last 30 days)
Show older comments
I have a CT image data(transverse slices),CT of 512*512*30. I know how to find CT # for any slice k corresponding to ith row and jth column, CT#=CT(i,j,k).I now trace a ray,starting from source point(0,0,100) then goes through CT image data and finally strikes to detector point(say 10,25,-50). Spatial coordinates for source and detector points are determined with isocenter taken at (0,0,0).Using linspace I can find spatial coordinates(i.e.,x,y,z)of points between source point and detector point. So, I have,say 105 intermediate points and I know their x,y,z coordinates.Say, 15 points lie outside of CT image data(i.e.in air) before passing through it and another 15 points also lie outside of CT image data(i.e.in air) after exiting through it. For remaining 75 points(assuming a ray goes through each slice), how can I assign CT # to each points(with their known spatial coordinates). Basically it means how can I get CT#=CT(x,y,z,15)for a point in 15th slice with its spatial coordinates x,y,z. I tried with, c = improfile(I,xi,yi,n)but got error message when tried to extend it, c = improfile(I,xi,yi,zi,n). Any help will be appreciated. Thanks!!
6 Comments
Image Analyst
on 28 Dec 2011
Those are the digital numbers the Computed Tomography unit gives, called Hounsfield Units: http://en.wikipedia.org/wiki/Hounsfield_scale.
Bibek, how did my suggestion work out for you?
Answers (1)
Image Analyst
on 27 Dec 2011
Why not just use trilinear interpolation? I don't think there's a built-in function for it, but it would be easy enough to program up yourself.
0 Comments
See Also
Categories
Find more on Environment and Clutter in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!