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
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
|