Description: This function generates patch data (faces d-deDUFd-deDt, vertices d-deDUVd-deDt and color data d-deDUCd-deDt) for 3D images. The patches are only generated for the voxels specified by the linear indices in d-deDUINDd-deDt. The variable d-deDUptyped-deDt indicates the type of patch:
d-de?vd-deOao Voxel (box) d-de?sxd-deOao, d-de?syd-deOao, d-de?szd-deOao Mid-voxel slice for x, y and z direction respectively EXAMPLE clear all; close all; clc;
Simulating 3D image [X,Y,Z]=meshgrid(linspace(-4.77,4.77,75)); phi=(1+sqrt(5))/2; M=2 - (cos(X + phi*Y) + cos(X - phi*Y) + cos(Y + phi*Z) + cos(Y - phi*Z) + cos(Z - phi*X) + cos(Z + phi*X)); M=M./max(M(:)); %Normalise, not required
figure;fig=gcf; clf(fig); colordef (fig, 'white'); units=get(fig,'units'); set(fig,'units','normalized','outerposition',[0 0 1 1]); set(fig,'units',units); set(fig,'Color',[1 1 1]); hold on; xlabel('X-J','FontSize',20);ylabel('Y-I','FontSize',20);zlabel('Z-K','FontSize',20);
Creating and plotting patch data
Setting up indices for slices to plot S=round(size(M,2)./2); L_slices=false(size(M)); L_slices(:,S,:)=1; IND_slices=find(L_slices); [Fs,Vs,C_slice]=ind2patch(IND_slices,M,'sx'); %Creating patch data for x mid-voxel slices hs=patch('Faces',Fs,'Vertices',Vs,'EdgeColor','none', 'CData',C_slice,'FaceColor','flat','FaceAlpha',0.75);
Setting up indices for slices to plot S=round(size(M,1)./2); L_slices=false(size(M)); L_slices(S,:,:)=1; IND_slices=find(L_slices); [Fs,Vs,C_slice]=ind2patch(IND_slices,M,'sy'); %Creating patch data for y mid-voxel slices hs=patch('Faces',Fs,'Vertices',Vs,'EdgeColor','none', 'CData',C_slice,'FaceColor','flat','FaceAlpha',0.75);
Setting up indices for slices to plot S=round(size(M,3)./2); L_slices=false(size(M)); L_slices(:,:,S)=1; IND_slices=find(L_slices); [Fs,Vs,C_slice]=ind2patch(IND_slices,M,'sz'); %Creating patch data for z mid-voxel slices hs=patch('Faces',Fs,'Vertices',Vs,'EdgeColor','none', 'CData',C_slice,'FaceColor','flat','FaceAlpha',0.75);
Setting up indices for voxels to plot IND=find(M>-0.2 & M<=0); [Fs,Vs,C_slice]=ind2patch(IND,M,'v'); %Creating patch data for selection of low voxels hs=patch('Faces',Fs,'Vertices',Vs,'EdgeColor','k', 'CData',C_slice,'FaceColor','flat','FaceAlpha',1);
Setting up indices for voxels to plot IND=find(M>0.9); [Fs,Vs,C_slice]=ind2patch(IND,M,'v'); %Creating patch data for selection of high voxels hs=patch('Faces',Fs,'Vertices',Vs,'EdgeColor','k', 'CData',C_slice,'FaceColor','flat','FaceAlpha',1);
axis equal; view(3); axis tight; colormap jet; colorbar; caxis([0 1]); grid on; set(gca,'FontSize',20); License: Freeware Related: datasetting, Plotting, Creating, slices, sliceshs dpatch faces vertices edgecolor, midvoxel, xlabel fontsize ylabel fontsize zlabel fontsize, hold, White, colordef, clffig, units dgetfig units, setfig units normalized outerposition, setfig color, setfig u O/S:BSD, Linux, Solaris, Mac OS X File Size: 10.0 KB Downloads: 1
|
|