Skip to content
Snippets Groups Projects
PrepMeasure.m 1.79 KiB
Newer Older
  • Learn to ignore specific revisions
  • bepi's avatar
    bepi committed
    %% The code is written by Behnaz Pirzamanbein, bepi@dtu.dk last version 2020.08.04
    
    bepi's avatar
    bepi committed
    %% measuring the distance betwee two sruface and length of each surface
    
    addpath(genpath('.\Functions'))
    
    bepi's avatar
    bepi committed
    
    save_folder = 'Results\measure\';
    if ~exist(save_folder,'dir')
        mkdir(save_folder)
    end 
    
    
    %% load the surfaces
    samples = {'out_out_CD','out_out_MD','in_in_CD','in_in_MD'};
    degree = {'0','45','90','180'};
    
    % if you want to run the measure separately you can use the for loop
    % for i = 1:4
    %     for j = 1:4
            sample = samples{i};
            dg = degree{j};
    
            fprintf('%s_%s \n',sample,dg)
            
            inner = load(['Results\layer\inner_converted_layer_',sample,'_',dg]);
            outer = load(['Results\layer\outer_converted_layer_',sample,'_',dg]);       
    
            %% smooth the layers
            disp('Smoothing Layers ...')
            
            p1 = mean(inner.surface_XYZ,4);
            p2 = mean(outer.surface_XYZ,4);
    
            Ba = regularization_matrix_open(size(p1,1),100,5000);
            p1_smooth = [];
            p2_smooth = [];
            for m = 1:size(p1,2)
                p1_smooth(:,m,:) = (squeeze(p1(:,m,:))'*Ba')';
                p2_smooth(:,m,:) = (squeeze(p2(:,m,:))'*Ba')';
            end
    
            Bb = regularization_matrix_open(size(p1,2),1000,5000);
            p1_s = [];
            p2_s = [];
            for n = 1:size(p1,1)
                p1_s(n,:,:) = (squeeze(p1_smooth(n,:,:))'*Bb')';
                p2_s(n,:,:) = (squeeze(p2_smooth(n,:,:))'*Bb')';
            end
            
            clear p1_smooth p2_smooth
    
            %% Euclidean distances
            disp('Computing Euclidean Distances ...')
    
            dist = [];
            for s = 1:size(p1,2)
                dist(:,s) = sqrt(sum((p1_s(:,s,1:2) - p2_s(:,s,1:2)).^2,3));
            end
    
            if flag_save
                save([save_folder,'Dist_',sample,'_',dg],'dist')
            end
    
    %     end
    % end
    close all