Draw on a 3D volume in MATLAB
2 次查看(过去 30 天)
显示 更早的评论
I have a 3D brain volume (x, y) coordinates and z=slices. For this volume, I have specific coordinates (that reflects some features) and I want to highlight these coordinates (e.g. through drawing with specific color). I searched and found a code like that:
t=image; % gray scale image
red=t;
green=t;
blue=t;
for i=1:size(indx,1) %indx: indexes of the featured coordinates
red(indx(i,1),indx(i,2))=255;
green(indx(i,1),indx(i,2))=0;
blue(indx(i,1),indx(i,2))=0;
end
out=cat(3,red,green,blue);
The problem is that, this code works with gray scale image. When I tried to generalize it to the volume I got something with the size:(x,y,z,3) through:
for i=1:size(indx,1)
red(indx(i,1),indx(i,2),indx(i,3))=255;
green(indx(i,1),indx(i,2),indx(i,3))=0;
blue(indx(i,1),indx(i,2),indx(i,3))=0;
end
out = cat(4, red, green, blue);
Is this generalization right? if so, how to show the resulting slices with the colored parts?
0 个评论
回答(1 个)
Walter Roberson
2017-1-31
Yes, that should work, if you use it together with a routine such as vol3d v2 from the File Exchange.
Other viewer routines might prefer that the RGB be the 3rd dimension rather than 4th, but vol3d prefers RGB to be the 4th dimension.
3 个评论
Walter Roberson
2017-1-31
I suggest that you have a look in the File Exchange at the various slice routines.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 3-D Volumetric Image Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!