From c7a9d4b266c571c859f6e2d046c0605b15cab25f Mon Sep 17 00:00:00 2001
From: Ben Heasly <benjamin.heasly@gmail.com>
Date: Tue, 7 Feb 2017 11:45:12 -0500
Subject: [PATCH] debugging and tweaking

---
 Test/Interactive/rtbCompareManyRecipes.m      | 18 +++++++++++++----
 Test/Interactive/rtbCompareRenderings.m       | 18 +++++++++++++++++
 .../rtbPlotManyRecipeComparisons.m            | 20 ++++++-------------
 Test/Interactive/rtbRunEpicComparison.m       | 18 ++++++++++++-----
 4 files changed, 51 insertions(+), 23 deletions(-)

diff --git a/Test/Interactive/rtbCompareManyRecipes.m b/Test/Interactive/rtbCompareManyRecipes.m
index 71c9c0e..c620716 100644
--- a/Test/Interactive/rtbCompareManyRecipes.m
+++ b/Test/Interactive/rtbCompareManyRecipes.m
@@ -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
     
diff --git a/Test/Interactive/rtbCompareRenderings.m b/Test/Interactive/rtbCompareRenderings.m
index 471a7fb..7ca3661 100644
--- a/Test/Interactive/rtbCompareRenderings.m
+++ b/Test/Interactive/rtbCompareRenderings.m
@@ -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
diff --git a/Test/Interactive/rtbPlotManyRecipeComparisons.m b/Test/Interactive/rtbPlotManyRecipeComparisons.m
index 5a6a1c6..72ef80c 100644
--- a/Test/Interactive/rtbPlotManyRecipeComparisons.m
+++ b/Test/Interactive/rtbPlotManyRecipeComparisons.m
@@ -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;
diff --git a/Test/Interactive/rtbRunEpicComparison.m b/Test/Interactive/rtbRunEpicComparison.m
index eb8922d..47bcaa6 100644
--- a/Test/Interactive/rtbRunEpicComparison.m
+++ b/Test/Interactive/rtbRunEpicComparison.m
@@ -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
-- 
GitLab