double[]filt_dist={8.0,3.0};// full offset and perpendicular to images offsets
double[][]filt_elongation={{1.7,1.7},{1.7,1.7}};// [second/main][full/half] ellipse axis ratio
doublefilt_other_rad=25;// should be no disconnected high peaks in this radius (only for halves multiplied)
double[]filt_other_frac={0.8,0.8};// no pixels around max at filt_other_rad should be higher than this fraction of max
// double [] filt_dist = {8.0,5.0}; // full offset and perpendicular to images offsets
// make conditional distance - decrease if small offset (increase for large to accommodate +30/-10cm
double[]filt_dist={10.0,5.0};// full offset and perpendicular to images offsets
doublefilt_height=0.2;// allow extra negative offset parallel to image offset, corresponding to object above ground
intdebugLevel=1;
intdebugLevel=1;
...
@@ -1731,7 +1757,8 @@ public class OrthoMapsCollection implements Serializable{
...
@@ -1731,7 +1757,8 @@ public class OrthoMapsCollection implements Serializable{
gd.addNumericField("Minimal relative full correlation",min_corr_full_rel,5,7,"","Minimal relative correlation value with full circular pattern to keep.");
gd.addNumericField("Minimal relative full correlation",min_corr_full_rel,5,7,"","Minimal relative correlation value with full circular pattern to keep.");
gd.addNumericField("Prefer full pattern",full_preference,3,7,"","Prefer full pattern to partial; scale by this value.");
gd.addNumericField("Prefer full pattern",full_preference,3,7,"","Prefer full pattern to partial; scale by this value.");
gd.addNumericField("Max/min halves ratio",max_min_ratio,3,7,"","Ratio of halves best/worst to use half-pattern.");
gd.addNumericField("Max/min halves ratio",max_min_ratio,3,7,"","Ratio of halves best/worst to use half-pattern.");
gd.addCheckbox("Combine with full pattern",combine_full,"Multiply by normalized full pattern correlation maximum.");
gd.addCheckbox("Combine with full pattern, main",combine_full[0],"Multiply by normalized full pattern correlation maximum.");
gd.addCheckbox("Combine with full pattern, other",combine_full[1],"Multiply by normalized full pattern correlation maximum.");
gd.addNumericField("Correlation size",corr_size,0,4,"pix","Should be power of 2.");
gd.addNumericField("Correlation size",corr_size,0,4,"pix","Should be power of 2.");
gd.addNumericField("Adversarial distance",adv_radius,1,6,"pix","Suppress weaker if they have closer strong ones.");
gd.addNumericField("Adversarial distance",adv_radius,1,6,"pix","Suppress weaker if they have closer strong ones.");
gd.addNumericField("Search other scene max",search_radius,1,6,"pix","Search for other scene max from the main one.");
gd.addNumericField("Search other scene max",search_radius,1,6,"pix","Search for other scene max from the main one.");
...
@@ -1751,8 +1778,15 @@ public class OrthoMapsCollection implements Serializable{
...
@@ -1751,8 +1778,15 @@ public class OrthoMapsCollection implements Serializable{
gd.addNumericField("Max elongation, main, halves",filt_elongation[0][1],5,7,"","Maximal peak ellipse axis ratio at certain height.");
gd.addNumericField("Max elongation, main, halves",filt_elongation[0][1],5,7,"","Maximal peak ellipse axis ratio at certain height.");
gd.addNumericField("Max elongation, other, full",filt_elongation[1][0],5,7,"","Maximal peak ellipse axis ratio at certain height.");
gd.addNumericField("Max elongation, other, full",filt_elongation[1][0],5,7,"","Maximal peak ellipse axis ratio at certain height.");
gd.addNumericField("Max elongation, other, halves",filt_elongation[1][1],5,7,"","Maximal peak ellipse axis ratio at certain height.");
gd.addNumericField("Max elongation, other, halves",filt_elongation[1][1],5,7,"","Maximal peak ellipse axis ratio at certain height.");
gd.addNumericField("Other peak distance",filt_other_rad,5,7,"pix","Should be no disconnected peaks within this radius from the used one. Set to 0 to disable.");
gd.addNumericField("Other peak fraction, main scene",filt_other_frac[0],5,7,"","Maximal near peak fraction of the used maximum. Only for halves.");
gd.addNumericField("Other peak fraction, other scene",filt_other_frac[1],5,7,"","Maximal near peak fraction of the used maximum. Only for halves.");
gd.addNumericField("Maximal offset",filt_dist[0],5,7,"pix","Maximal other scene offset from the main.");
gd.addNumericField("Maximal offset",filt_dist[0],5,7,"pix","Maximal other scene offset from the main.");
gd.addNumericField("Maximal offset perpendicular",filt_dist[1],5,7,"pix","Maximal other scene offset perpendicular to offset between scenes.");
gd.addNumericField("Maximal offset perpendicular",filt_dist[1],5,7,"pix","Maximal other scene offset perpendicular to offset between scenes.");
gd.addNumericField("Maximal object height",filt_height,5,7,"m","Maximal object height to allow extra offset.");