myofibrometry / matlab / orientation / maskedCollapseZSmoothing.m
maskedCollapseZSmoothing.m
Raw
function smoothField = maskedCollapseZSmoothing(field,mask)
    field = single(field);
    mask = single(mask);
    smoothField = zeros(size(field,1),size(field,2),size(field,4));
    st = single(zeros(size(field,1),size(field,2),6));
    ch = 1;
    for u = 1:size(field,4)
        for v = u:size(field,4)
            st(:,:,ch) = single(maskedCollapseZFilter(squeeze(field(:,:,:,u).*field(:,:,:,v)),mask));
            ch = ch+1;
        end
    end
    [~,~,~,U,V,W,~,~,~,~,~,~] = EigenVectors3D(squeeze(st(:,:,1)),squeeze(st(:,:,2)),squeeze(st(:,:,3)),...
                                                squeeze(st(:,:,4)),squeeze(st(:,:,5)),squeeze(st(:,:,6)));
    smoothField(:,:,1) = U;
    smoothField(:,:,2) = V;
    smoothField(:,:,3) = W;
end