@@ -211,6 +211,15 @@ public class BiQuadParameters {
publicdoubleltfar_trusted_s=0.4;// Add even single tiles over infinity if strength (and disparity too) is sufficient
publicdoubleltfar_trusted_d=0.2;// Add even single tiles over infinity if disparity (and strength too) is sufficient
// Parameters to select near (too near to be processed as poles) objects over infinity background
publicdoubleltgrp_min_strength=0.2;// Minimal strength of the tile and neighbors
publicintltgrp_min_neibs=2;// minimal number of neighbors with close disparity
publicdoubleltgrp_gr_min_disparity=0.5;// Minimal group disparity
publicdoubleltgrp_gr_disp_atolerance=0.2;// Group disparity absolute tolerance (to qualify for a similar neighbor)
publicdoubleltgrp_gr_disp_rtolerance=0.1;// Group disparity relative tolerance (adds to absolute)
// rig selection filtering
...
...
@@ -581,10 +590,22 @@ public class BiQuadParameters {
gd.addMessage("Filtering selection of non-infinity tiles");
gd.addNumericField("Add even single tiles over infinity if STRENGTH (and disparity too) is sufficient",this.ltfar_trusted_s,4,6,"",
"Add strong tiles over infinity areas that have both strenth and disparity above respective thersholds (re-add them after filtering)");
"Add strong tiles over infinity areas that have both strenth and disparity above respective thresholds (re-add them after filtering)");
gd.addNumericField("Add even single tiles over infinity if DISPARITY (and strength too) is sufficient",this.ltfar_trusted_d,4,6,"pix",
"Add strong tiles over infinity areas that have both strenth and disparity above respective thersholds (re-add them after filtering)");
"Add strong tiles over infinity areas that have both strenth and disparity above respective thresholds (re-add them after filtering)");
gd.addMessage("Parameters to select near (too near to be processed as poles) objects over infinity background");
gd.addNumericField("Minimal strength of the tile and neighbors",this.ltgrp_min_strength,4,6,"",
"Tile will be added to selection if the tile over infinity selection is strong enough and has several neighbors (of 8) with similar disparity and also strong");
gd.addNumericField("Minimal number of neighbors with close disparity",this.ltgrp_min_neibs,0,3,"tiles",
"For thin objects (poles, wires) there may be just 2 neighbors");
gd.addNumericField("Minimal group disparity",this.ltgrp_gr_min_disparity,4,6,"pix",
"Only process tiles that are close enough (and their qualifying neighbors too)");
gd.addNumericField("Group disparity absolute tolerance (to qualify for a similar neighbor)",this.ltgrp_gr_disp_atolerance,4,6,"pix",
"Neighbors should have disparity different by not more than this");
used_before[i]|=this_used[i];// Still mark them as used on this orientation
}
this_used=newboolean[this_used.length];// unselect all
if(dl>1){
System.out.println("initialDiscriminateTiles():"+nsTile+" selection does not provide enough previously unused tiles");
}
// disable these tiles in this orientation used
}else{
planes_added++;
}
boolean[]this_used_expanded=this_used.clone();
tnStile.growSelection(
2,
...
...
@@ -2882,6 +2911,13 @@ public class SuperTiles{
}
np++;
}
if(planes_added==0){
if(dl>1){
System.out.println("initialDiscriminateTiles():"+nsTile+": No new planes added");
}
continue;
}
planes_selections[nsTile]=new_planes_selections;
hor_planes[nsTile]=new_plane_types;
if(dl>2){
...
...
@@ -3456,7 +3492,7 @@ public class SuperTiles{
plFrontoOffs,// final double plFrontoOffs, // increasing weight of the near tiles by using difference between the reduced average as weight. <= 0 - disable
PlFrontoPow,// double fronto_pow, // = 1.0; // increase weight even more
hor_planes,// final boolean [][] hor_planes, // returns plane types (hor/vert)
debugLevel+0,// 1, // 0, // 1, // + 2, // 1, // final int debugLevel,
debugLevel+(debug_initial_discriminate?3:0),// 1, // 0, // 1, // + 2, // 1, // final int debugLevel,
dbg_X,// final int dbg_X,
dbg_Y);// final int dbg_Y)
this.planes=new_planes;// save as "measured" (as opposed to "smoothed" by neighbors) planes