background noise and nearst point
2 次查看(过去 30 天)
显示 更早的评论
hi experts , i have two questions and hope you can help me.
1- i was able to form a 3d image of a brain from a 2d slices. but i want to set all the gray level values out side the brain to zero (i.e eliminate the noise at the background)
2- A(x,y,z) is a point within the 3 D volume , it could be within the brain or outside the brain. i wish to find the nearest point to A(x,y,z) on the surface of the brain.
0 个评论
采纳的回答
Image Analyst
2013-1-9
% Make a mask:
mask3D = image3D > thresholdValue;
% Fill it so we don't change low gray level voxels inside the head.
mask3D = imfill(mask3D, 'holes');
% Mask volume outside the mask
image3D(~mask3D) = 0;
% Then call bwdist() to get the closest distance from each point to the outer surface.
2 个评论
Image Analyst
2013-1-10
Look at the second return argument from bwdist(). I've never used it though. Be aware that there can be several voxels that are the closest one to a particular reference voxel.
更多回答(1 个)
Amith Kamath
2013-1-9
For either case, I would imagine you will need a mask for the brain regions. This can be done either manually using http://www.mathworks.com/help/images/ref/imfreehand.html (which would be painful indeed) or you could also use tools like http://www.mathworks.com/matlabcentral/fileexchange/19567-active-contour-segmentation for a 3D dataset like yours.
for 1. http://www.mathworks.com/help/images/ref/bwareaopen.html is the best way to eliminate small noisy regions.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!