You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

64 lines
1.6 KiB

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