gd.addNumericField("Low-pass sigma main",lpf_sigma[0],3,7,"","Low-pass sigma for phase correlation. 0 - no filtering, 0.25 - 4 pix.");
gd.addNumericField("Low-pass sigma other",lpf_sigma[1],3,7,"","Low-pass sigma for phase correlation. 0 - no filtering, 0.25 - 4 pix.");
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 half correlation",min_corr_half_rel,5,7,"","Increase correlation threshold for partial patterns relative to min_corrs.");
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.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("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("Scale warp",scale_warp,1,6,"x","Scale second image warping.");
gd.addNumericField("Extract object size",extr_size,0,4,"","Size of square object image to extract.");
gd.addCheckbox("Remove DC",remove_dc,"Remove DC in extracted object images.");
gd.addMessage("Mitigating what seems to be a bug - kernels tuned to be convolved after decimation. Should be opposite?");
gd.addCheckbox("Convolve after zoom out",convolve_after,"Zoom patterns before convolving with resolution-matching kernels.");
gd.addCheckbox("Re-correlate centered",corr_centered,"Re-correlate main scene candidates cenetered.");
gd.addTab("Absolute Contrast","Preparing absolute contrast measurements for the main scene");
gd.addNumericField("Edge cutt-off fraction (<0.5)",abs_edge_frac,5,7,"","Used for extracting inner and outer zones from tha existing patterns.");
gd.addNumericField("Radius of outer ring to pattern radius",abs_oversize,5,7,"","Outer ring external radius as a mupltile of the pattern radius.");
gd.addCheckbox("Force round",abs_force_round,"Force round pattern and recheck \"best\" correlation value.");
gd.addNumericField("Update subpattern mode",abs_mode,0,4,"","0 - keep, 1 keep type and if half, only change by +/-1, 2 - keep type, 3 - any.");
gd.addCheckbox("Cold center",abs_invert,"Center pattern values are lower than around.");
gd.addNumericField("Outlier fraction when averaging",abs_outliers_frac,5,7,"","Discard this fraction of pixels in inner and outer zones when averaging.");
gd.addCheckbox("May be obscured only by warmer",abs_obscure_warm,"Half-pattern objects may be obscured by warmer (for cold objects).");
gd.addNumericField("\"warmer\" threshold",abs_obscure_frac,5,7,"","Threshold fraction between average center and average around ring.");
gd.addTab("Filters","Filtering results to reduce false positives");
gd.addCheckbox("Keep filtered out",filt_keep,"List filtered out, but actaually keep them.");
gd.addCheckbox("Keep pre-filter",filt_keep_pre,"Keep even before the first scene filter.");
gd.addCheckbox("Apply filters at once",filt_atonce,"If false, first filter by main scene only, do not process secondary scene if main failed.");
gd.addNumericField("Peak hight fraction",filt_frac_max,5,7,"","Fraction of the peak hight for eigenvlues (radius and elongation).");
gd.addNumericField("Max radius, main, full",filt_max_radius[0][0],5,7,"pix","Maximal peak cross-section average radius at certain height.");
gd.addNumericField("Max radius, main, halves",filt_max_radius[0][1],5,7,"pix","Maximal peak cross-section average radius at certain height.");
gd.addNumericField("Max radius, other, full",filt_max_radius[1][0],5,7,"pix","Maximal peak cross-section average radius at certain height.");
gd.addNumericField("Max radius, other, half",filt_max_radius[1][1],5,7,"pix","Maximal peak cross-section average radius at certain height.");
gd.addNumericField("Max elongation, main, full",filt_elongation[0][0],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, 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 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.");
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("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 best corr , main",filt_best[0],5,7,"","Minimal best correlation for all patterns, even if selected is a full one.");
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).");