System.out.println("===== All remaining planes are incompatible to each other: extractMergeSameTileGroups() nsTile = "+nsTile+" : found incomplete group: "+group+""
+" best_pair = null");
break;// all remaining planes are incompatible to each other
plDiscrTolerance, // final double max_disp_diff, // maximal disparity difference from the plane to consider tile
plDiscrDispRange, // final double disp_range, // parallel move known planes around original know value for the best overall fit
plDiscrSteps, // final int amplitude_steps, // number of steps (each direction) for each plane to search for the best fit (0 - single, 1 - 1 each side)
plDiscrVariants, // final int num_variants, // total number of variants to try (protect from too many planes)
plDiscrMode, // final int mode, // 0 - weighted, 1 - equalized, 2 - best, 3 - combined
dl); // debugLevel); // final int debugLevel)
*/
for(intntry=0;ntry<planes[nsTile].length;ntry++){// can be while(true), just for debugging
these_planes,//planes[nsTile], // final PlaneData [] planes,
merge_planes,// final int [] merge_planes, // indices of planes suggested to be merged
stMeasSel,// final int stMeasSel, // = 1; // Select measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
plDispNorm,// final double dispNorm, // Normalize disparities to the average if above
smplMode,// final boolean smplMode, // = true; // Use sample mode (false - regular tile mode)
...
...
@@ -2078,9 +2063,80 @@ public class SuperTiles{
plDiscrExclusivity,// final double exclusivity, // 1.0 - tile belongs to one plane only, 0.0 - regardless of others
plDiscrExclus2,// final double excluisivity2, // = 0.8; // For second pass if exclusivity > 1.0 - will assign only around strong neighbors
plDiscrStrict,// final boolean exclusivity_strict// = true; // When growing selection do not allow any offenders around (false - more these than others)
plDiscrCorrMax,// final double plDiscrCorrMax, // = 0.7; // Attraction to different planes correlation that is too high for re-discrimination.
plDiscrCorrMerge,// final double attractionCorrMerge, // = 0.85; // Attraction to different planes correlation that is high enough to merge planes
plDiscrSteal,// final int plDiscrSteal, // = 4; // If offender has this number of tiles (including center) the cell can not be used
plDiscrGrown,// final int plDiscrGrown, // = 0; // Only use tiles within this range from original selection
plDiscrXMedian,// final double outliersXMedian, // = 1.5; // Remove outliers from the final selection that have distance more than scaled median
plDiscrMode,// final int mode, // 0 - weighted, 1 - equalized, 2 - best, 3 - combined
dl);// debugLevel); // final int debugLevel)
if((planes_selections[nsTile]!=null)||(merge_planes[0]<0)){// either OK, or does not know what to do (keep old)
@@ -3306,7 +3306,7 @@ public class TileProcessor {
st.planes,// final TilePlanes.PlaneData [][] planes,
merge_candidates,// final int [][][] merge_candidates,
plane_nooverlaps,// final boolean [][][] valid_candidates, // will be updated
true,// final boolean merge_low_eigen,
true,// final boolean merge_low_eigen, here it should be true
2,// -1, // debugLevel, // final int debugLevel)
clt_parameters.tileX,
clt_parameters.tileY);
...
...
@@ -3520,6 +3520,7 @@ public class TileProcessor {
// re-generate planes in the supertiles using previously calculated planes (for tghe tiles and their neighbors)
// as hints, new planes will be assumed parallel to the known and possibly slightly offset in disparity
if(clt_parameters.plDiscrEn){
st.regeneratePlanes(
st.planes,// final TilePlanes.PlaneData [][] planes,
clt_parameters.stMeasSel,// = 1 //Select measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
...
...
@@ -3547,8 +3548,14 @@ public class TileProcessor {
clt_parameters.plDiscrSigma,// final double plDiscrSigma, // = 0.05; // Gaussian sigma to compare how measured data is attracted to planes
clt_parameters.plDiscrBlur,// final double plDiscrBlur, // = 0.1; // Sigma to blur histograms while re-discriminating
clt_parameters.plDiscrExclusivity,// final double plDiscrExclusivity, // = 0.5; // Tile exclusivity: 1.0 - tile belongs to one plane only, 0.0 - regardless of others
clt_parameters.plDiscrExclus2,// final double plDiscrExclus2, // = 0.5; // For second pass if exclusivity > 1.0 - will assign only around strong neighbors
clt_parameters.plDiscrExclus2,// final double plDiscrExclus2, // = 0.5; // For second pass if exclusivity > 1.0 - will assign only around strong neighbors
clt_parameters.plDiscrStrict,// final boolean plDiscrStrict, // = true; // When growing selection do not allow any offenders around (false - more these than others)
clt_parameters.plDiscrCorrMax,// final double plDiscrCorrMax, // = 0.7; // Attraction to different planes correlation that is too high for re-discrimination.
clt_parameters.plDiscrCorrMerge,// final double plDiscrCorrMerge, // = 0.85; // Attraction to different planes correlation that is high enough to merge planes
clt_parameters.plDiscrSteal,// final int plDiscrSteal, // = 4; // If offender has this number of tiles (including center) the cell can not be used
clt_parameters.plDiscrGrown,// final int plDiscrGrown, // = 0; // Only use tiles within this range from original selection
clt_parameters.plDiscrXMedian,// final double plDiscrXMedian, // = 1.5; // Remove outliers from the final selection that have distance more than scaled median
0,// -1, // debugLevel, // final int debugLevel)
clt_parameters.tileX,
clt_parameters.tileY);
...
...
@@ -3560,7 +3567,7 @@ public class TileProcessor {