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!