How can I extract 3D features form a stack of 2D images?
Show older comments
I am conducting a lung nodule detection form CT scan images. I extract the nodule candidates form series of 2D CT images. Then I stack the extracted ROIs to get a 3D image. After that I want to extract 3D features, but I don't know how can I extract the features from 3D directly or from each layers of 2D images. Please kindly suggest me how can I extract 3D features form a stack of 2D images.
srcFiles = dir('R_006S\*.jpg'); % the folder in which images exists
n = length(srcFiles);
a={}; slices={};
for i = 1:n
fileName = strcat('R_006S\',srcFiles(i).name);
a{i} = imread(fileName);
slices{i} = (a{i});
end
X = cat(3,slices{1:end});
map = hsv(90);
XR = X;
Ds = smooth3(XR);
hiso = patch(isosurface(Ds,5),'FaceColor','green','EdgeColor','none');
hcap = patch(isocaps(XR,5),'FaceColor','interp','EdgeColor','none');
colormap(map)
daspect(gca,[1,1,.4])
lightangle(305,30);
fig = gcf;
fig.Renderer = 'zbuffer';
lighting phong
isonormals(Ds,hiso)
hcap.AmbientStrength = .6;
hiso.SpecularColorReflectance = 0;
hiso.SpecularExponent = 50;
ax = gca;
ax.View = [215,30];
ax.Box = 'On';
axis tight
title('Original Data');
2 Comments
Massimo Zanetti
on 24 Feb 2017
Edited: Massimo Zanetti
on 24 Feb 2017
What do you mean by "exctracting features"? What features are you referrfing to?
PS. In your code there is some redundancy in loading images and making X, consider this to simplify it:
srcFiles = dir('R_006S\*.jpg'); % the folder in which images exists
n = length(srcFiles);
X = zeros(512,512,n);
for i = 1:n
fileName = ['R_006S\',srcFiles(i).name];
X(:,:,i) = imread(fileName);
end
Now X is your 3D image.
May
on 4 Mar 2017
Accepted Answer
More Answers (1)
MDanit
on 15 Mar 2017
0 votes
Could you please provide your full answer here? As I have the same problem.
Thanks,
4 Comments
May
on 15 Mar 2017
Image Analyst
on 15 Mar 2017
Mina, see my Image Segmentation Tutorial : http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862
Thanks for your comments! Image Analyst, I have different stacks from a single cell and I want to reconstruct the 3d image of cell using those stacks so that I can extract data from its surface in form of (x, y, z). Do you possibly have any idea? Thanks,
Image Analyst
on 21 Mar 2017
Categories
Find more on ROI-Based Processing in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!