How to get the intensity values (data stored) that is stored in the voxels (3D image) at the certain distances from the origin of the sphere?
Show older comments
Hello, I have a 3D medical image with data values stored in its each voxel. I would like to pull out the data values of image at certain radial distances. The origin of my image is (0, 0, 0) and radius of the sphere is 20 mm. I would like to generate 19 concentric shells of equal thickness 1 mm (so total is 20 mm) in between center of sphere and its surface. At each concentric shell, I am interested to extract the value of the data stored in 3D image. How to write simple Matlab code for this situation? Has anyone done this before? Please provide me some ideas and suggestions, may be a little piece of code as well.
3 Comments
Walter Roberson
on 31 Aug 2018
Are these DICOM images? If so then the first thing to do is to pull information about the distance between centers out of the headers. It should not generally be assumed to be the same in all directions, as it is not unusual in some modalities for the Z spacing to be different than the X or Y spacing.
blues
on 31 Aug 2018
Edited: Walter Roberson
on 1 Sep 2018
Walter Roberson
on 1 Sep 2018
It looks like the ElementSpacing has the relevant information about pixel sizes.
Accepted Answer
More Answers (1)
blues
on 3 Sep 2018
0 votes
1 Comment
Walter Roberson
on 3 Sep 2018
Your graph appears to show a y value peaking about 8.4*10^-8
Anyhow, you used the wrong numeric syntax
axis([0 120 5E-11 8E-8])
or
axis([0 120 5*10.^(-11) 8*10.^(-8)]);
With 5E-11 being only about 1/1600 of 8E-8, you should expect that MATLAB will probably round the lower bound to 0. After all, you would need your y resolution to be at least 1600 for it to make a 1 pixel difference.
Categories
Find more on Display Image 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!