@@ -2949,7 +2995,7 @@ public class TileProcessor {
...
@@ -2949,7 +2995,7 @@ public class TileProcessor {
st.processPlanes3(
st.processPlanes3(
null,// final boolean [] selected, // or null
null,// final boolean [] selected, // or null
0.3,// final double min_disp,
0.3,// final double min_disp,
false,// final boolean invert_disp, // use 1/disparity
clt_parameters.stMeasSel,// = 1 //Select measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
clt_parameters.plDispNorm,// = 2.0; // Normalize disparities to the average if above
clt_parameters.plDispNorm,// = 2.0; // Normalize disparities to the average if above
clt_parameters.plMinPoints,// = 5; // Minimal number of points for plane detection
clt_parameters.plMinPoints,// = 5; // Minimal number of points for plane detection
clt_parameters.plTargetEigen,// = 0.1; // Remove outliers until main axis eigenvalue (possibly scaled by plDispNorm) gets below
clt_parameters.plTargetEigen,// = 0.1; // Remove outliers until main axis eigenvalue (possibly scaled by plDispNorm) gets below
...
@@ -3013,6 +3059,84 @@ public class TileProcessor {
...
@@ -3013,6 +3059,84 @@ public class TileProcessor {
if(num_added==0)break;
if(num_added==0)break;
}
}
TilePlanes.PlaneData[][][]split_planes=// use original (measured planes. See if smoothed are needed here)
st.breakPlanesToPairs(
st.getPlanes(),// Mod(), // final TilePlanes.PlaneData[][] center_planes, // measured_planes,
st.getPlanes(),// Mod(), // final TilePlanes.PlaneData[][] neib_planes, //mod_planes,
clt_parameters.plSplitPull,// final double center_pull,
clt_parameters.plSplitMinNeib,// min_neibs, // 2
clt_parameters.plSplitMinWeight,// final double splitMinWeight, // = 2.0; // Minimal weight of split plains to show
clt_parameters.plSplitMinQuality,// final double splitMinQuality, // = 1.1; // Minimal split quality to show
clt_parameters.plPreferDisparity,
1,// final int debugLevel)
clt_parameters.tileX,
clt_parameters.tileY);
if(clt_parameters.plSplitApply){
intnumSplitPlanes=st.replaceBrokenPlanes(
st.getPlanes(),// final TilePlanes.PlaneData[][] planes,
split_planes,// final TilePlanes.PlaneData[][][] brokenPd,
clt_parameters.plMaxDiff,// final double max_diff, // maximal disparity difference (0 - any), will be normalized by dispNorm
clt_parameters.plOtherDiff,// final double other_diff, // other_diff maximal difference of the added tile ratio to the average disparity difference
clt_parameters.plNonExclusive,// final boolean non_exclusive,
clt_parameters.plUseOtherPlanes,// final boolean use_other_planes, // TODO:
clt_parameters.stMeasSel,// final int measSel, // Select measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
clt_parameters.plAllowParallel,// final boolean allow_parallel,
clt_parameters.plSplitXY,// final boolean splitXY,
clt_parameters.plSplitXYTolerance,// final double splitXYTolerance,
// parameters to generate ellipsoids
0.0,// 3, // final double disp_far, // minimal disparity to select (or NaN)
Double.NaN,// final double disp_near, // maximal disparity to select (or NaN)
clt_parameters.plDispNorm,// final double dispNorm, // Normalize disparities to the average if above
0.0,// final double min_weight,
clt_parameters.plMinPoints,// final int min_tiles,
// parameters to reduce outliers
clt_parameters.plTargetEigen,// final double targetEigen, // = 0.1; // Remove outliers until main axis eigenvalue (possibly scaled by plDispNorm) gets below
clt_parameters.plFractOutliers,// final double fractOutliers, // = 0.3; // Maximal fraction of outliers to remove
clt_parameters.plMaxOutliers,// final int maxOutliers, // = 20; // Maximal number of outliers to remove
clt_parameters.stFloor,// final double strength_floor,
clt_parameters.stPow,// final double strength_pow,
1,// final int debugLevel)
clt_parameters.tileX,
clt_parameters.tileY);
if(debugLevel>-1){
System.out.println("replaceBrokenPlanes(): Replaced "+numSplitPlanes+" planes by pairs.");
}
// now re-create connections and best neighbors
st.matchPlanes(
clt_parameters.plPreferDisparity,
clt_parameters.tileX,
clt_parameters.tileY);
st.selectNeighborPlanesMutual(
clt_parameters.plWorstWorsening,// final double worst_worsening,
clt_parameters.plWeakWorsening,// final double worst_worsening,