function rok_evaluation_anonymous_display (evaluationData)
    % ROK_EVALUATION_ANONYMOUS_DISPLAY (evaluationData)
    %
    % Display the results of anonymous detection evaluation.
    %
    % Input:
    %  - evaluationData = evaluation data structure, obtained by
    %    ROK_EVALUATION_ANONYMOUS_INITIALIZE
    %
    % See also: ROK_EVALUATION_ANONYMOUS_CREATE, 
    % ROK_EVALUATION_ANONYMOUS_UPDATE
    %
    % Cpyright (C) 2012, Rok Mandeljc <rok.mandeljc@fe.uni-lj.si>
        
    %% Overall precision and recall
    precision = sum(evaluationData.counterAssigned) / evaluationData.counterDetections;
    fprintf('Precision: %f\n', precision);
    
    recall = sum(evaluationData.counterAssigned) ./ sum(evaluationData.counterGround);
    fprintf('Recall: %f\n', recall);
    fprintf('\n');
    
    %% Overall localization error
    d = cell2mat( evaluationData.distances' ); % Merge all
    fprintf('Localization error:\nmean: %f\nstd: %f\n', mean(d), std(d));

    fprintf('\n');

    %% Per-person recall    
    fprintf('Per-person recall:\n');
    recall = evaluationData.counterAssigned ./ evaluationData.counterGround;
    for p = 1:numel(recall),
        fprintf('#%d\t%f\n', p, recall(p));
    end
    fprintf('\n');

    %% Per-person localization error
    fprintf('Per-person localization error:\n');
    recall = evaluationData.counterAssigned ./ evaluationData.counterGround;
    for p = 1:numel(recall),
        fprintf('#%d\tmean: %f\tstd: %f\n', p, mean(evaluationData.distances{p}), std(evaluationData.distances{p}));
    end
    fprintf('\n');
end