Commit 9d47b1c6 authored by Andrey Filippov's avatar Andrey Filippov

Implemented augmentPairwiseAffines() to add more pairwise matches

after all scenes are matched and have defined affines
parent ef8c6ac2
...@@ -164,6 +164,7 @@ public class ComboMatch { ...@@ -164,6 +164,7 @@ public class ComboMatch {
boolean show_combo = false; // true; boolean show_combo = false; // true;
boolean create_pairwise_matches = false; boolean create_pairwise_matches = false;
boolean create_pairwise_affines = false; boolean create_pairwise_affines = false;
boolean augment_pairwise_affines = false; // needs to repeat create_pairwise_matches to update overlaps
boolean equalize_overlaps = false; boolean equalize_overlaps = false;
boolean create_map = false; boolean create_map = false;
boolean create_equalize = false; boolean create_equalize = false;
...@@ -240,6 +241,7 @@ public class ComboMatch { ...@@ -240,6 +241,7 @@ public class ComboMatch {
gd.addCheckbox ("Show combo maps/stats", show_combo, "Generate/save combo maps and stats."); gd.addCheckbox ("Show combo maps/stats", show_combo, "Generate/save combo maps and stats.");
gd.addCheckbox ("Create overlap pairs", create_pairwise_matches, "Create scene pairs overlaps."); gd.addCheckbox ("Create overlap pairs", create_pairwise_matches, "Create scene pairs overlaps.");
gd.addCheckbox ("Create pairwise affines", create_pairwise_affines, "Create affines for scene pairs."); gd.addCheckbox ("Create pairwise affines", create_pairwise_affines, "Create affines for scene pairs.");
gd.addCheckbox ("Augment pairwise affines", augment_pairwise_affines, "Augment pairwise affines after building initial map and re-running create_pairwise_matches.");
gd.addCheckbox ("Equalize overlap pairs", equalize_overlaps, "Equalize intensities in overlaps."); gd.addCheckbox ("Equalize overlap pairs", equalize_overlaps, "Equalize intensities in overlaps.");
gd.addCheckbox ("Create map", create_map, "Create combined map from pairwise matches."); gd.addCheckbox ("Create map", create_map, "Create combined map from pairwise matches.");
gd.addCheckbox ("Equalize intensities", create_equalize, "Create map intensities equalization from pairwise matches."); gd.addCheckbox ("Equalize intensities", create_equalize, "Create map intensities equalization from pairwise matches.");
...@@ -305,6 +307,7 @@ public class ComboMatch { ...@@ -305,6 +307,7 @@ public class ComboMatch {
show_combo = gd.getNextBoolean(); show_combo = gd.getNextBoolean();
create_pairwise_matches = gd.getNextBoolean(); create_pairwise_matches = gd.getNextBoolean();
create_pairwise_affines = gd.getNextBoolean(); create_pairwise_affines = gd.getNextBoolean();
augment_pairwise_affines = gd.getNextBoolean();
equalize_overlaps = gd.getNextBoolean(); equalize_overlaps = gd.getNextBoolean();
create_map = gd.getNextBoolean(); create_map = gd.getNextBoolean();
create_equalize = gd.getNextBoolean(); create_equalize = gd.getNextBoolean();
...@@ -823,17 +826,22 @@ public class ComboMatch { ...@@ -823,17 +826,22 @@ public class ComboMatch {
return ok; // Just exit, do not try other commands. if (!ok) return false; return ok; // Just exit, do not try other commands. if (!ok) return false;
} }
if (create_pairwise_affines) { if (augment_pairwise_affines) {
// boolean ok =maps_collection.getIntersectedPairs( boolean ok =maps_collection.augmentPairwiseAffines(
// clt_parameters, // CLTParameters clt_parameters, clt_parameters, // CLTParameters clt_parameters,
// orthoMapsCollection_savepath); // String orthoMapsCollection_path); orthoMapsCollection_savepath); // String orthoMapsCollection_path);
return ok; // Just exit, do not try other commands. if (!ok) return false;
}
if (create_pairwise_affines) {
boolean ok =maps_collection.generatePairwiseAffines( boolean ok =maps_collection.generatePairwiseAffines(
clt_parameters, // CLTParameters clt_parameters, clt_parameters, // CLTParameters clt_parameters,
orthoMapsCollection_savepath); // String orthoMapsCollection_path); orthoMapsCollection_savepath); // String orthoMapsCollection_path);
return ok; // Just exit, do not try other commands. if (!ok) return false; return ok; // Just exit, do not try other commands. if (!ok) return false;
} }
if (equalize_overlaps) { if (equalize_overlaps) {
boolean ok =maps_collection.equalizeIntersectedPairs( boolean ok =maps_collection.equalizeIntersectedPairs(
clt_parameters, // CLTParameters clt_parameters, clt_parameters, // CLTParameters clt_parameters,
...@@ -876,9 +884,14 @@ public class ComboMatch { ...@@ -876,9 +884,14 @@ public class ComboMatch {
double flt_min_rms = clt_parameters.imp.flt_min_rms; // 0.0; double flt_min_rms = clt_parameters.imp.flt_min_rms; // 0.0;
double flt_max_rms = clt_parameters.imp.flt_max_rms; // 2.0; double flt_max_rms = clt_parameters.imp.flt_max_rms; // 2.0;
boolean flt_nan_rms = clt_parameters.imp.flt_nan_rms; // false; boolean flt_nan_rms = clt_parameters.imp.flt_nan_rms; // false;
boolean flt_filt_zoom = clt_parameters.imp.flt_filt_zoom; // true;
int flt_min_zoom = clt_parameters.imp.flt_min_zoom; // -2;
int flt_max_zoom = clt_parameters.imp.flt_max_zoom; // 10;
boolean flt_show_names = clt_parameters.imp.flt_show_names; // true; boolean flt_show_names = clt_parameters.imp.flt_show_names; // true;
boolean flt_show_overlaps = clt_parameters.imp.flt_show_overlaps; // true; boolean flt_show_overlaps = clt_parameters.imp.flt_show_overlaps; // true;
boolean flt_show_rms = clt_parameters.imp.flt_show_rms; // true; boolean flt_show_rms = clt_parameters.imp.flt_show_rms; // true;
boolean flt_show_zoom = clt_parameters.imp.flt_show_zoom; // true;
boolean flt_update_config = false; boolean flt_update_config = false;
String flt_extra_line = "--- select a single image ---"; String flt_extra_line = "--- select a single image ---";
GenericJTabbedDialog gdf = new GenericJTabbedDialog("Select pairs filter/display",800,500); GenericJTabbedDialog gdf = new GenericJTabbedDialog("Select pairs filter/display",800,500);
...@@ -889,9 +902,15 @@ public class ComboMatch { ...@@ -889,9 +902,15 @@ public class ComboMatch {
gdf.addNumericField("Minimal RMSE", flt_min_rms, 3,7,"", "Minimal LMA RMSE of the scene pair."); gdf.addNumericField("Minimal RMSE", flt_min_rms, 3,7,"", "Minimal LMA RMSE of the scene pair.");
gdf.addNumericField("Maximal RMSE", flt_max_rms, 3,7,"", "Maximal LMA RMSE of the scene pair."); gdf.addNumericField("Maximal RMSE", flt_max_rms, 3,7,"", "Maximal LMA RMSE of the scene pair.");
gdf.addCheckbox ("NaN RMS (failed match)", flt_nan_rms, "Keep only failed matches with RMSE=NaN."); gdf.addCheckbox ("NaN RMS (failed match)", flt_nan_rms, "Keep only failed matches with RMSE=NaN.");
gdf.addCheckbox ("Filter by zoom level" , flt_filt_zoom, "Filter by the zoom level used for matching.");
gdf.addNumericField("Minimal zoom", flt_min_zoom, 0,3,"","Minimal zoom level used for matching.");
gdf.addNumericField("Maximal zoom", flt_max_zoom, 0,3,"","Maximal zoom level used for matching.");
gdf.addCheckbox ("Show scene names", flt_show_names, "Show scene full names (timestamps) in selection drop-down list."); gdf.addCheckbox ("Show scene names", flt_show_names, "Show scene full names (timestamps) in selection drop-down list.");
gdf.addCheckbox ("Show scene overlaps", flt_show_overlaps, "Show scene overlaps (in percents) in selection drop-down list."); gdf.addCheckbox ("Show scene overlaps", flt_show_overlaps, "Show scene overlaps (in percents) in selection drop-down list.");
gdf.addCheckbox ("Show pairs RMSE", flt_show_rms, "Show scene match RMSE in selection drop-down list."); gdf.addCheckbox ("Show pairs RMSE", flt_show_rms, "Show scene match RMSE in selection drop-down list.");
gdf.addCheckbox ("Show zoom level", flt_show_zoom, "Show zoom level.");
gdf.addCheckbox ("Update configuration", flt_update_config, "Update matching configuration parameters to be saved as defaults."); gdf.addCheckbox ("Update configuration", flt_update_config, "Update matching configuration parameters to be saved as defaults.");
gdf.showDialog(); gdf.showDialog();
if (gdf.wasCanceled()) return false; if (gdf.wasCanceled()) return false;
...@@ -902,6 +921,10 @@ public class ComboMatch { ...@@ -902,6 +921,10 @@ public class ComboMatch {
flt_min_rms = gdf.getNextNumber(); flt_min_rms = gdf.getNextNumber();
flt_max_rms = gdf.getNextNumber(); flt_max_rms = gdf.getNextNumber();
flt_nan_rms = gdf.getNextBoolean(); flt_nan_rms = gdf.getNextBoolean();
flt_filt_zoom = gdf.getNextBoolean();
flt_min_zoom =(int) gdf.getNextNumber();
flt_max_zoom =(int) gdf.getNextNumber();
flt_show_names = gdf.getNextBoolean(); flt_show_names = gdf.getNextBoolean();
flt_show_overlaps = gdf.getNextBoolean(); flt_show_overlaps = gdf.getNextBoolean();
flt_show_rms = gdf.getNextBoolean(); flt_show_rms = gdf.getNextBoolean();
...@@ -914,9 +937,13 @@ public class ComboMatch { ...@@ -914,9 +937,13 @@ public class ComboMatch {
clt_parameters.imp.flt_min_rms = flt_min_rms; clt_parameters.imp.flt_min_rms = flt_min_rms;
clt_parameters.imp.flt_max_rms = flt_max_rms; clt_parameters.imp.flt_max_rms = flt_max_rms;
clt_parameters.imp.flt_nan_rms = flt_nan_rms; clt_parameters.imp.flt_nan_rms = flt_nan_rms;
clt_parameters.imp.flt_filt_zoom = flt_filt_zoom;
clt_parameters.imp.flt_min_zoom = flt_min_zoom;
clt_parameters.imp.flt_max_zoom = flt_max_zoom;
clt_parameters.imp.flt_show_names = flt_show_names; clt_parameters.imp.flt_show_names = flt_show_names;
clt_parameters.imp.flt_show_overlaps = flt_show_overlaps; clt_parameters.imp.flt_show_overlaps = flt_show_overlaps;
clt_parameters.imp.flt_show_rms = flt_show_rms; clt_parameters.imp.flt_show_rms = flt_show_rms;
clt_parameters.imp.flt_show_zoom = flt_show_zoom;
} }
if (flt_list) { if (flt_list) {
...@@ -927,7 +954,10 @@ public class ComboMatch { ...@@ -927,7 +954,10 @@ public class ComboMatch {
flt_max_overlap, // double max_overlap, flt_max_overlap, // double max_overlap,
flt_min_rms, // double min_rms, flt_min_rms, // double min_rms,
flt_max_rms, // double max_rms, flt_max_rms, // double max_rms,
flt_nan_rms); // boolean nan_rms) flt_nan_rms, // boolean nan_rms)
flt_filt_zoom, // boolean filt_zoom,
flt_min_zoom, // int min_zoom,
flt_max_zoom); // int max_zoom)
} }
String [] choices_all = maps_collection.textPairs ( String [] choices_all = maps_collection.textPairs (
...@@ -935,19 +965,9 @@ public class ComboMatch { ...@@ -935,19 +965,9 @@ public class ComboMatch {
flt_show_names, // boolean show_names, flt_show_names, // boolean show_names,
flt_show_overlaps, // boolean show_overlap, flt_show_overlaps, // boolean show_overlap,
flt_show_rms, // boolean show_rms, flt_show_rms, // boolean show_rms,
flt_show_zoom, // boolean show_zoom,
flt_extra_line); // String extra_line) flt_extra_line); // String extra_line)
/*
String [] choices = getPairChoices(
available_pairs, // int [][] pairs,
names); // String [] names)
String [] choices_all = new String[choices.length+1];
System.arraycopy(choices, 0, choices_all, 0, choices.length);
choices_all[choices_all.length-1] = "--- select a single image ---";
*/
GenericJTabbedDialog gdc = new GenericJTabbedDialog("Select image pair",1200,100); GenericJTabbedDialog gdc = new GenericJTabbedDialog("Select image pair",1200,100);
int num_choice_lines = 50; int num_choice_lines = 50;
gdc.addChoice("Image pair:", gdc.addChoice("Image pair:",
...@@ -1220,6 +1240,9 @@ public class ComboMatch { ...@@ -1220,6 +1240,9 @@ public class ComboMatch {
} }
return true; return true;
} }
public static PairwiseOrthoMatch initialPairAdjust( public static PairwiseOrthoMatch initialPairAdjust(
CLTParameters clt_parameters, CLTParameters clt_parameters,
OrthoMapsCollection maps_collection, OrthoMapsCollection maps_collection,
......
...@@ -355,9 +355,11 @@ public class OrthoMultiLMA { ...@@ -355,9 +355,11 @@ public class OrthoMultiLMA {
max_rms, // double max_rmse, max_rms, // double max_rmse,
true, // boolean max_resolution, true, // boolean max_resolution,
null); // int [][] remove_pairs null); // int [][] remove_pairs
indices= maps_collection.getScenesFromPairs( indices= maps_collection.getScenesFromPairs(
pairs_defined_abs,// int [][] pairs, pairs_defined_abs,// int [][] pairs,
null); // int [] indices_in) // preselected indices or null null); // int [] indices_in) // preselected indices or null
int [][] defined_pairs = maps_collection.condensePairs (pairs_defined_abs,indices); int [][] defined_pairs = maps_collection.condensePairs (pairs_defined_abs,indices);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment