function smooth_compare_volume() nx=60;ny=1;nz=20; resolution=40; tic voxel_before = get_voxel_before(resolution); toc % load VOXEL_beforeSmooth40.mat voxel_before load voxel_afterSmooth40.mat voxel vol_after = zeros(nx,ny,nz); vol_before = zeros(nx,ny,nz); for ix=1:nx for iy=1:ny for iz=1:nz VOXEL_ele = voxel((iy-1)*resolution+1:iy*resolution,... (ix-1)*resolution+1:ix*resolution,... (iz-1)*resolution+1:iz*resolution); vol_after(ix,iy,iz)=mean(VOXEL_ele,'all'); vol_before(ix,iy,iz)=mean(voxel_before{ix,iy,iz},'all'); end end end % figure() % imagesc(squeeze(vol_after(:,1,:)).') % axis equal; axis tight; axis off;colorbar; % set(gca,'YDir','normal') figure() error=abs(vol_after-vol_before)./vol_before; % error=error.*(abs(vol_before)>0.05); imagesc(squeeze(error(:,1,:)).') axis equal; axis tight; axis off;colorbar; set(gca,'YDir','normal') mean(error,'all') end function voxel_before = get_voxel_before(resolution) load('ani_fittingALL_pnorm5.mat') term_choose=68; aPhys=a_log{term_choose,2};bPhys=b_log{term_choose,2};cPhys=c_log{term_choose,2}; nz=size(aPhys,1);ny=size(aPhys,2);nx=size(aPhys,3); h=1.0/resolution; x2=h/2:h:1-h/2; y2=h/2:h:1-h/2; z2=h/2:h:1-h/2; [x,y,z]=meshgrid(x2,y2,z2); voxel_before=cell(nx,ny,nz); for ix=1:nx for iy=1:ny for iz=1:nz a=aPhys(iz,iy,ix);b=bPhys(iz,iy,ix);c=cPhys(iz,iy,ix); p=cos(2*pi.*(x-1/2))+ a.*cos(2*pi.*(y-1/2))+ b.*cos(2*pi.*(z-1/2))- c; VOXEL_ele = p>=0; voxel_before{ix,iy,iz} = VOXEL_ele; % DH{ix,iy,iz} = max(DH{ix,iy,iz},D0.*1e-6); end end end % save VOXEL_beforeSmooth40.mat voxel_before end