Skip to content
Snippets Groups Projects
Commit c7a9d4b2 authored by Ben Heasly's avatar Ben Heasly
Browse files

debugging and tweaking

parent 61fd01dc
No related branches found
No related tags found
No related merge requests found
......@@ -48,17 +48,27 @@ for rr = 1:nRecipes
recipeRenderingsA = renderingsA(isRecipeA);
% fetch missing recipe for B?
isRecipeB = strcmp({renderingsB.recipeName}, recipeName);
if isempty(renderingsB)
isRecipeB = false;
else
isRecipeB = strcmp({renderingsB.recipeName}, recipeName);
end
if any(isRecipeB)
recipeRenderingsB = renderingsB(isRecipeB);
elseif fetchReferenceData
recipeRenderingsB = rtbFetchReferenceData(recipeName, varargin{:});
fprintf(' Fetching reference data to <%s>...\n', folderB);
recipeRenderingsB = rtbFetchReferenceData(recipeName, ...
'referenceRoot', folderB, ...
varargin{:});
if isempty(recipeRenderingsB)
fprintf(' Could not fetch reference data for set B, skipping this recipe.\n');
fprintf(' ...could not fetch, skipping this recipe.\n');
continue;
else
fprintf(' ...OK.\n');
end
else
fprintf(' Could not find local data for set B. Skipping this recipe.\n');
fprintf(' Skipping recipe not found in <%s>.\n', folderB);
continue;
end
......
......@@ -37,8 +37,25 @@ renderingA = parser.Results.renderingA;
renderingB = parser.Results.renderingB;
denominatorThreshold = parser.Results.denominatorThreshold;
%% Consistent struct fields for output.
comparison = parser.Results;
comparison.error = '';
comparison.samplingA = [];
comparison.samplingB = [];
comparison.isGoodComparison = false;
comparison.subpixelsA = [];
comparison.subpixelsB = [];
comparison.normA = [];
comparison.normB = [];
comparison.normDiff = [];
comparison.absNormDiff = [];
comparison.relNormDiff = [];
comparison.corrcoef = [];
comparison.A = [];
comparison.B = [];
comparison.aMinusB = [];
comparison.bMinusA = [];
%% Load multispectral images.
......@@ -66,6 +83,7 @@ else
else
comparison.error = ...
'Neither data file A nor B has a multispectralImage.';
disp(comparison.error);
return;
end
end
......
......@@ -30,17 +30,9 @@ errorMax = parser.Results.errorMax;
errorStep = parser.Results.errorStep;
%% Sort the summary by size of error.
goodComparisons = comparisons([comparisons.isGoodComparison]);
relNormDiff = [goodComparisons.relNormDiff];
errorStat = [relNormDiff.max];
[~, order] = sort(errorStat);
goodComparisons = goodComparisons(order);
%% Set up the figure.
figureName = sprintf('Summary of %d rendering comparisons', ...
numel(goodComparisons));
numel(comparisons));
set(fig, ...
'Name', figureName, ...
'NumberTitle', 'off');
......@@ -55,10 +47,10 @@ end
correlationTicks = correlationMin : correlationStep : 1;
correlationTickLabels = num2cell(correlationTicks);
correlationTickLabels{1} = '<=';
correlation = [goodComparisons.corrcoef];
correlation = [comparisons.corrcoef];
correlation(correlation < correlationMin) = correlationMin;
renderingsA = [goodComparisons.renderingA];
renderingsA = [comparisons.renderingA];
names = {renderingsA.identifier};
nLines = numel(names);
ax(1) = subplot(1, 3, 2, ...
......@@ -79,8 +71,8 @@ xlabel(ax(1), 'correlation');
%% Overall title.
name = sprintf('%s vs %s', ...
goodComparisons(1).renderingA.sourceFolder, ...
goodComparisons(1).renderingB.sourceFolder);
comparisons(1).renderingA.sourceFolder, ...
comparisons(1).renderingB.sourceFolder);
title(ax(1), name, 'Interpreter', 'none');
......@@ -89,7 +81,7 @@ errorTicks = 0 : errorStep : errorMax;
errorTickLabels = num2cell(errorTicks);
errorTickLabels{end} = '>=';
relNormDiff = [goodComparisons.relNormDiff];
relNormDiff = [comparisons.relNormDiff];
maxes = [relNormDiff.max];
means = [relNormDiff.mean];
maxes(maxes > errorMax) = errorMax;
......
......@@ -44,7 +44,7 @@ parser.addRequired('folderA', @ischar);
parser.addRequired('folderB', @ischar);
parser.addParameter('plotSummary', true, @islogical);
parser.addParameter('closeSummary', false, @islogical);
parser.addParameter('plotImages', false, @islogical);
parser.addParameter('plotImages', true, @islogical);
parser.addParameter('closeImages', false, @islogical);
parser.addParameter('figureFolder', '', @ischar);
parser.parse(folderA, folderB, varargin{:});
......@@ -64,9 +64,17 @@ figs = [];
varargin{:});
%% Sort the summary by size of error.
goodComparisons = comparisons([comparisons.isGoodComparison]);
relNormDiff = [goodComparisons.relNormDiff];
errorStat = [relNormDiff.max];
[~, order] = sort(errorStat);
goodComparisons = goodComparisons(order);
%% Plot the summary.
if plotSummary
summaryFig = rtbPlotManyRecipeComparisons(comparisons, ...
summaryFig = rtbPlotManyRecipeComparisons(goodComparisons, ...
varargin{:});
if ~isempty(figureFolder);
......@@ -84,14 +92,14 @@ end
%% Plot the detail images for each rendering.
if plotImages
nComparisons = numel(comparisons);
nComparisons = numel(goodComparisons);
imageFigs = cell(1, nComparisons);
for cc = 1:nComparisons
imageFig = rtbPlotRenderingComparison(comparisons(cc), ...
imageFig = rtbPlotRenderingComparison(goodComparisons(cc), ...
varargin{:});
if ~isempty(figureFolder);
identifier = comparisons(cc).renderingA.identifier;
identifier = goodComparisons(cc).renderingA.identifier;
imageFileName = fullfile(figureFolder, identifier);
saveFigure(imageFig, imageFileName);
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment