@@ -1781,7 +1782,7 @@ public class OrthoMapsCollection implements Serializable{
...
@@ -1781,7 +1782,7 @@ public class OrthoMapsCollection implements Serializable{
intabs_mode=1;// 0 - keep, 1 keep type and if half +/-1, 2 - keep type, 3 - any, force full pattern
intabs_mode=1;// 0 - keep, 1 keep type and if half +/-1, 2 - keep type, 3 - any, force full pattern
booleanabs_invert=true;// center has lower value than around
booleanabs_invert=true;// center has lower value than around
doubleabs_outliers_frac=0.3;
doubleabs_outliers_frac=0.3;
booleanabs_obscure_warm=true;// obscured can only be by warmer objects
booleanabs_obscure_warm=false;// true; // obscured can only be by warmer objects
doubleabs_obscure_frac=0.25;// obscured threshold between center and outer
doubleabs_obscure_frac=0.25;// obscured threshold between center and outer
// filters
// filters
...
@@ -1800,6 +1801,7 @@ public class OrthoMapsCollection implements Serializable{
...
@@ -1800,6 +1801,7 @@ public class OrthoMapsCollection implements Serializable{
doublefilt_height=0.2;// allow extra negative offset parallel to image offset, corresponding to object above ground
doublefilt_height=0.2;// allow extra negative offset parallel to image offset, corresponding to object above ground
// double [] filt_full_half_frac = {0.7, 0.5}; // second probably not needed, it is for main
// double [] filt_full_half_frac = {0.7, 0.5}; // second probably not needed, it is for main
double[]filt_full_half_frac={0.675,0.5};// second probably not needed, it is for main
double[]filt_full_half_frac={0.675,0.5};// second probably not needed, it is for main
double[]filt_roundness={0.6,0.0};// second currently is not calculated/ used
doublefilt_abs_contrast=80.0;// 50.0;
doublefilt_abs_contrast=80.0;// 50.0;
doublefilt_abs_easepart=1.0;// 1.0-no ease for low AGL. Allow lower absolute contrast for partial patterns (high AGL)
doublefilt_abs_easepart=1.0;// 1.0-no ease for low AGL. Allow lower absolute contrast for partial patterns (high AGL)
booleanconvolve_after=false;// true for old kernel tuning (kernel decimation before convolution)
booleanconvolve_after=false;// true for old kernel tuning (kernel decimation before convolution)
...
@@ -1816,7 +1818,7 @@ public class OrthoMapsCollection implements Serializable{
...
@@ -1816,7 +1818,7 @@ public class OrthoMapsCollection implements Serializable{
phaseCoeff[0]=0.9;
phaseCoeff[0]=0.9;
// adv_radius = 20; // pix?
// adv_radius = 20; // pix?
}else{// 100m defaults
}else{// 100m defaults
min_corrs[0]=0.0119;
min_corrs[0]=0.009;// 119;
abs_edge_frac=0.35;
abs_edge_frac=0.35;
abs_oversize=2.2;
abs_oversize=2.2;
filt_abs_contrast=60;
filt_abs_contrast=60;
...
@@ -1882,6 +1884,8 @@ public class OrthoMapsCollection implements Serializable{
...
@@ -1882,6 +1884,8 @@ public class OrthoMapsCollection implements Serializable{
gd.addNumericField("Maximal object height",filt_height,5,7,"m","Maximal object height to allow extra offset.");
gd.addNumericField("Maximal object height",filt_height,5,7,"m","Maximal object height to allow extra offset.");
gd.addNumericField("Full/half corr minimal ratio, main",filt_full_half_frac[0],5,7,"","Minimal correlation with full pattern strength ratio to correlation with a half-pattern.");
gd.addNumericField("Full/half corr minimal ratio, main",filt_full_half_frac[0],5,7,"","Minimal correlation with full pattern strength ratio to correlation with a half-pattern.");
gd.addNumericField("Full/half corr minimal ratio, other",filt_full_half_frac[1],5,7,"","Minimal correlation with full pattern strength ratio to correlation with a half-pattern.");
gd.addNumericField("Full/half corr minimal ratio, other",filt_full_half_frac[1],5,7,"","Minimal correlation with full pattern strength ratio to correlation with a half-pattern.");
gd.addNumericField("Minimal roundness of round, main",filt_roundness[0],5,7,"","Minimal ratio of worst half-pattern correlation to the full-pattern ones. Only for full patterns.");
gd.addNumericField("Minimal absolute contrast",filt_abs_contrast,5,7,"","Minimal absolute difference between center and peripheral areas of the main scene objects.");
gd.addNumericField("Minimal absolute contrast",filt_abs_contrast,5,7,"","Minimal absolute difference between center and peripheral areas of the main scene objects.");
gd.addNumericField("Ease absolute contrast for halves",filt_abs_easepart,5,7,"","Ease absolute contast requirements for high AGL (low resolution).");
gd.addNumericField("Ease absolute contrast for halves",filt_abs_easepart,5,7,"","Ease absolute contast requirements for high AGL (low resolution).");
//
//
...
@@ -1937,49 +1941,51 @@ public class OrthoMapsCollection implements Serializable{
...
@@ -1937,49 +1941,51 @@ public class OrthoMapsCollection implements Serializable{
filt_height=gd.getNextNumber();
filt_height=gd.getNextNumber();
filt_full_half_frac[0]=gd.getNextNumber();
filt_full_half_frac[0]=gd.getNextNumber();
filt_full_half_frac[1]=gd.getNextNumber();
filt_full_half_frac[1]=gd.getNextNumber();
filt_roundness[0]=gd.getNextNumber();
filt_abs_contrast=gd.getNextNumber();
filt_abs_contrast=gd.getNextNumber();
filt_abs_easepart=gd.getNextNumber();
filt_abs_easepart=gd.getNextNumber();
debugLevel=(int)gd.getNextNumber();
debugLevel=(int)gd.getNextNumber();
returnpatternMatchDual(
returnpatternMatchDual(
indices,// int [] indices, // null or which indices to use (normally just 2 for pairwise comparison)
indices,// int [] indices, // null or which indices to use (normally just 2 for pairwise comparison)
affines,// double [][][] affines, // null or [indices.length][2][3]
affines,// double [][][] affines, // null or [indices.length][2][3]
warp,// FineXYCorr warp);
warp,// FineXYCorr warp);
object_type,// String object_type,
object_type,// String object_type,
min_corrs,// double [] min_corrs, // one per
min_corrs,// double [] min_corrs, // one per
phaseCoeff,// double [] phaseCoeff
phaseCoeff,// double [] phaseCoeff
min_corr_full_rel,// double min_corr_full_rel,
min_corr_full_rel,// double min_corr_full_rel,
full_preference,// double full_preference,
full_preference,// double full_preference,
max_min_ratio,// double max_min_ratio,
max_min_ratio,// double max_min_ratio,
combine_full,// boolean[] combine_full,
combine_full,// boolean[] combine_full,
corr_size,// int corr_size,
corr_size,// int corr_size,
adv_radius,// double adv_radius, //
adv_radius,// double adv_radius, //
search_radius,// double search_radius, //
search_radius,// double search_radius, //
scale_warp,// double scale_warp,
scale_warp,// double scale_warp,
extr_size,// int extr_size,
extr_size,// int extr_size,
remove_dc,// boolean remove_dc,
remove_dc,// boolean remove_dc,
abs_edge_frac,// double abs_edge_frac, // = 0.25;
abs_edge_frac,// double abs_edge_frac, // = 0.25;
abs_oversize,// double abs_oversize, // = 1.8;
abs_oversize,// double abs_oversize, // = 1.8;
abs_force_round,// boolean abs_force_round,
abs_force_round,// boolean abs_force_round,
abs_mode,// int abs_mode, // = 1; // 0 - keep, 1 keep type and if half +/-1, 2 - keep type, 3 - any
abs_mode,// int abs_mode, // = 1; // 0 - keep, 1 keep type and if half +/-1, 2 - keep type, 3 - any
abs_invert,// boolean abs_invert, // = true; // center has lower value than around
abs_invert,// boolean abs_invert, // = true; // center has lower value than around
abs_outliers_frac,// double abs_outliers_frac,
abs_outliers_frac,// double abs_outliers_frac,
abs_obscure_warm,// boolean abs_obscure_warm, // = true; // obscured can only be by warmer objects
abs_obscure_warm,// boolean abs_obscure_warm, // = true; // obscured can only be by warmer objects
abs_obscure_frac,// double abs_obscure_frac, // 0.25; // obscured threshold between center and outer
abs_obscure_frac,// double abs_obscure_frac, // 0.25; // obscured threshold between center and outer
filt_keep,// boolean filt_keep,
filt_keep,// boolean filt_keep,
filt_atonce,// boolean filt_atonce,
filt_atonce,// boolean filt_atonce,
filt_frac_max,// double frac_max, // measure are at fraction of max
filt_frac_max,// double frac_max, // measure are at fraction of max
filt_max_radius,// double [][] filt_max_radius,
filt_max_radius,// double [][] filt_max_radius,
filt_elongation,// double [][] filt_elongation,
filt_elongation,// double [][] filt_elongation,
filt_other_rad,// double filt_other_rad, // should be no disconnected high peaks in this radius (only for halves multiplied)
filt_other_rad,// double filt_other_rad, // should be no disconnected high peaks in this radius (only for halves multiplied)
filt_other_frac,// double [] filt_other_frac, // no pixels around max at filt_other_rad should be higher than this fraction of max
filt_other_frac,// double [] filt_other_frac, // no pixels around max at filt_other_rad should be higher than this fraction of max
// boolean is_partial = best_patt_indx[mn] != 0; // only apply to combined full/half correlations, just full may have nearby maximums near the same size
booleanis_partial=best_patt!=1;// only apply to combined full/half correlations, just full may have nearby maximums near the same size
booleanis_partial=best_patt!=1;// only apply to combined full/half correlations, just full may have nearby maximums near the same size