Commit 3b27965b authored by Andrey Filippov's avatar Andrey Filippov

initial extraction of predefined planes

parent 5fc78264
...@@ -69,7 +69,6 @@ public class CLTPass3d{ ...@@ -69,7 +69,6 @@ public class CLTPass3d{
{ {
return this.tileProcessor; return this.tileProcessor;
} }
public void updateSelection(){ // add updating border tiles? public void updateSelection(){ // add updating border tiles?
int tilesX = tileProcessor.getTilesX(); int tilesX = tileProcessor.getTilesX();
int tilesY = tileProcessor.getTilesY(); int tilesY = tileProcessor.getTilesY();
...@@ -558,6 +557,9 @@ public class CLTPass3d{ ...@@ -558,6 +557,9 @@ public class CLTPass3d{
return this.superTiles; return this.superTiles;
} }
public double [] showDisparityHistogram( public double [] showDisparityHistogram(
double [][][][] disparity_strength, // pre-calculated disparity/strength [per super-tile][per-measurement layer][2][tiles] or null
boolean [][] tile_sel, // null or per-measurement layer, per-tile selection. For each layer null - do not use, {} - use all
boolean smplMode, // = true; // Use sample mode (false - regular tile mode) boolean smplMode, // = true; // Use sample mode (false - regular tile mode)
int smplSide, // = 2; // Sample size (side of a square) int smplSide, // = 2; // Sample size (side of a square)
int smplNum, // = 3; // Number after removing worst int smplNum, // = 3; // Number after removing worst
...@@ -568,6 +570,9 @@ public class CLTPass3d{ ...@@ -568,6 +570,9 @@ public class CLTPass3d{
return null; return null;
} }
return this.superTiles.showDisparityHistogram( return this.superTiles.showDisparityHistogram(
disparity_strength, // pre-calculated disparity/strength [per super-tile][per-measurement layer][2][tiles] or null
tile_sel, // null or per-measurement layer, per-tile selection. For each layer null - do not use, {} - use all
smplMode, // = true; // Use sample mode (false - regular tile mode) smplMode, // = true; // Use sample mode (false - regular tile mode)
smplSide, // = 2; // Sample size (side of a square) smplSide, // = 2; // Sample size (side of a square)
smplNum, // = 3; // Number after removing worst smplNum, // = 3; // Number after removing worst
...@@ -575,49 +580,6 @@ public class CLTPass3d{ ...@@ -575,49 +580,6 @@ public class CLTPass3d{
measSel); measSel);
} }
public double [] showDisparityHistogram()
{
if (this.superTiles == null){
return null;
}
return this.superTiles.showDisparityHistogram();
}
public double [] showDisparityHistogram(double [][] dispHist)
{
if (this.superTiles == null){
return null;
}
return this.superTiles.showDisparityHistogram(dispHist);
}
public int showDisparityHistogramWidth()
{
return this.superTiles.showDisparityHistogramWidth();
}
public double [][][] getMaxMinMax(){
if (this.superTiles == null){
return null;
}
return superTiles.getMaxMinMax();
}
public double [] showMaxMinMax(){
if (this.superTiles == null){
return null;
}
return this.superTiles.showMaxMinMax();
}
public int getNumBins(){
if (this.superTiles == null){
return 0;
}
return superTiles.numBins;
}
public double[] getSuperTileStrength() public double[] getSuperTileStrength()
{ {
if (this.superTiles == null){ if (this.superTiles == null){
......
...@@ -154,6 +154,8 @@ public class SuperTiles{ ...@@ -154,6 +154,8 @@ public class SuperTiles{
cltPass3d.getSelected()); // boolean [] selection) // may be null cltPass3d.getSelected()); // boolean [] selection) // may be null
getDisparityHistograms( getDisparityHistograms(
null, // double [] world_plane, // tilt equi-disparity planes to match real world planes (usually horizontal (or null)
null, // boolean [][] tile_sel, // null or per-measurement layer, per-tile selection. For each layer null - do not use, {} - use all
smplMode, // final boolean smplMode, // = true; // Use sample mode (false - regular tile mode) smplMode, // final boolean smplMode, // = true; // Use sample mode (false - regular tile mode)
smplSide, // final int smplSide, // = 2; // Sample size (side of a square) smplSide, // final int smplSide, // = 2; // Sample size (side of a square)
smplNum, // final int smplNum, // = 3; // Number after removing worst smplNum, // final int smplNum, // = 3; // Number after removing worst
...@@ -345,78 +347,10 @@ public class SuperTiles{ ...@@ -345,78 +347,10 @@ public class SuperTiles{
System.out.println("getLapWeights: sum = "+s); System.out.println("getLapWeights: sum = "+s);
return lapWeight; return lapWeight;
} }
/*
public double [][] getDisparityHistograms(
final int measSel) // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
{
if (this.disparityHistograms != null) return this.disparityHistograms;
// final double step_disparity = step_near; // TODO: implement
final int tilesX = tileProcessor.getTilesX();
final int tilesY = tileProcessor.getTilesY();
final int superTileSize = tileProcessor.superTileSize;
final int stilesX = (tilesX + superTileSize -1)/superTileSize;
final int stilesY = (tilesY + superTileSize -1)/superTileSize;
final int nStiles = stilesX * stilesY;
final double [][] dispHist = new double [nStiles][]; // now it will be sparse
final double [] strengthHist = new double [nStiles];
final Thread[] threads = ImageDtt.newThreadArray(tileProcessor.threadsMax);
final AtomicInteger ai = new AtomicInteger(0);
for (int ithread = 0; ithread < threads.length; ithread++) {
threads[ithread] = new Thread() {
public void run() {
for (int nsTile = ai.getAndIncrement(); nsTile < nStiles; nsTile = ai.getAndIncrement()) {
int stileY = nsTile / stilesX;
int stileX = nsTile % stilesX;
double sw = 0.0; // sum weights
double [] hist = new double [numBins];
for (int nl = 0; nl < measuredLayers.getNumLayers(); nl ++) {
if ((measSel & (1 << nl)) != 0) {
double [][] disp_strength = measuredLayers.getDisparityStrength(
nl, // int num_layer,
stileX, // int stX,
stileY, // int stY,
null, // boolean [] sel_in,
strength_floor, // double strength_floor,
strength_pow, // double strength_pow,
true); // boolean null_if_none);
if (disp_strength != null) {
for (int indx = 0; indx < disp_strength[1].length; indx++) {
double w = disp_strength[1][indx];
if ( w > 0.0){
double d = disp_strength[0][indx];
int bin = disparityToBin(d);
if ((bin >= 0) && (bin < numBins)){ // maybe collect below min and above max somewhere?
hist[bin] += w; // +1]
sw +=w;
}
}
}
}
}
}
strengthHist[nsTile] = sw / superTileSize / superTileSize; // average strength per tile in the super-tile
if (sw > 0){
for (int i = 0; i<numBins; i++){
hist[i] /= sw;
}
dispHist[nsTile] = hist;
} else {
dispHist[nsTile] = null;
}
}
}
};
}
ImageDtt.startAndJoin(threads);
this.disparityHistograms = dispHist;
this.stStrength = strengthHist;
if (this.stBlurSigma > 0.0) {
blurDisparityHistogram(0); // debugLevel);
}
return this.disparityHistograms; // dispHist;
}
*/
public double [][] getDisparityHistograms( public double [][] getDisparityHistograms(
final double [][][][] disparity_strength, // pre-calculated disparity/strength [per super-tile][per-measurement layer][2][tiles] or null
final boolean [][] tile_sel, // null or per-measurement layer, per-tile selection. For each layer null - do not use, {} - use all
final boolean smplMode, // = true; // Use sample mode (false - regular tile mode) final boolean smplMode, // = true; // Use sample mode (false - regular tile mode)
final int smplSide, // = 2; // Sample size (side of a square) final int smplSide, // = 2; // Sample size (side of a square)
final int smplNum, // = 3; // Number after removing worst final int smplNum, // = 3; // Number after removing worst
...@@ -439,7 +373,7 @@ public class SuperTiles{ ...@@ -439,7 +373,7 @@ public class SuperTiles{
final int tilesX = tileProcessor.getTilesX(); final int tilesX = tileProcessor.getTilesX();
final int tilesY = tileProcessor.getTilesY(); final int tilesY = tileProcessor.getTilesY();
final int superTileSize = tileProcessor.superTileSize; final int superTileSize = tileProcessor.getSuperTileSize();
final int stilesX = (tilesX + superTileSize -1)/superTileSize; final int stilesX = (tilesX + superTileSize -1)/superTileSize;
final int stilesY = (tilesY + superTileSize -1)/superTileSize; final int stilesY = (tilesY + superTileSize -1)/superTileSize;
final int nStiles = stilesX * stilesY; final int nStiles = stilesX * stilesY;
...@@ -447,23 +381,29 @@ public class SuperTiles{ ...@@ -447,23 +381,29 @@ public class SuperTiles{
final double [] strengthHist = new double [nStiles]; final double [] strengthHist = new double [nStiles];
final Thread[] threads = ImageDtt.newThreadArray(tileProcessor.threadsMax); final Thread[] threads = ImageDtt.newThreadArray(tileProcessor.threadsMax);
final AtomicInteger ai = new AtomicInteger(0); final AtomicInteger ai = new AtomicInteger(0);
final TilePlanes tpl = new TilePlanes(tileProcessor.getTileSize(),superTileSize);
for (int ithread = 0; ithread < threads.length; ithread++) { for (int ithread = 0; ithread < threads.length; ithread++) {
threads[ithread] = new Thread() { threads[ithread] = new Thread() {
public void run() { public void run() {
for (int nsTile = ai.getAndIncrement(); nsTile < nStiles; nsTile = ai.getAndIncrement()) { for (int nsTile = ai.getAndIncrement(); nsTile < nStiles; nsTile = ai.getAndIncrement()) {
int stileY = nsTile / stilesX; int stileY = nsTile / stilesX;
int stileX = nsTile % stilesX; int stileX = nsTile % stilesX;
double sw = 0.0; // sum weights double sw = 0.0; // sum weights
double [] hist = new double [numBins]; double [] hist = new double [numBins];
// double [][][] disp_strength = new double [measuredLayers.getNumLayers()][][] ;
for (int nl = 0; nl < measuredLayers.getNumLayers(); nl ++) { for (int nl = 0; nl < measuredLayers.getNumLayers(); nl ++) {
if ((measSel & (1 << nl)) != 0) { if (((measSel & (1 << nl)) != 0) && ((tile_sel == null) || ((tile_sel[nl] != null)))) {
double [][] disp_strength; double [][] disp_strength;
if (disparity_strength == null) {
if (smplMode) { if (smplMode) {
disp_strength = measuredLayers.getDisparityStrength( disp_strength = measuredLayers.getDisparityStrength(
nl, // int num_layer, nl, // int num_layer,
stileX, // int stX, stileX, // int stX,
stileY, // int stY, stileY, // int stY,
null, // boolean [] sel_in, (((tile_sel == null) || (tile_sel[nl].length == 0))? null:tile_sel[nl]), // boolean [] sel_in,
// null, // boolean [] sel_in,
strength_floor, // double strength_floor, strength_floor, // double strength_floor,
strength_pow, // double strength_pow, strength_pow, // double strength_pow,
smplSide, // int smplSide, // = 2; // Sample size (side of a square) smplSide, // int smplSide, // = 2; // Sample size (side of a square)
...@@ -475,11 +415,15 @@ public class SuperTiles{ ...@@ -475,11 +415,15 @@ public class SuperTiles{
nl, // int num_layer, nl, // int num_layer,
stileX, // int stX, stileX, // int stX,
stileY, // int stY, stileY, // int stY,
null, // boolean [] sel_in, (((tile_sel == null) || (tile_sel[nl].length == 0))? null:tile_sel[nl]), // boolean [] sel_in,
// null, // boolean [] sel_in,
strength_floor, // double strength_floor, strength_floor, // double strength_floor,
strength_pow, // double strength_pow, strength_pow, // double strength_pow,
true); // boolean null_if_none); true); // boolean null_if_none);
} }
} else {
disp_strength = disparity_strength[nsTile][nl];
}
if (disp_strength != null) { if (disp_strength != null) {
for (int indx = 0; indx < disp_strength[1].length; indx++) { for (int indx = 0; indx < disp_strength[1].length; indx++) {
double w = disp_strength[1][indx]; double w = disp_strength[1][indx];
...@@ -547,9 +491,16 @@ public class SuperTiles{ ...@@ -547,9 +491,16 @@ public class SuperTiles{
} }
// returns odd-length array of max/min (x, strength) pairs // returns odd-length array of max/min (x, strength) pairs
public double [][][] getMaxMinMax(){ public double [][][] getMaxMinMax(
// final double [] world_plane, // tilt equi-disparity planes to match real world planes (usually horizontal (or null)
final double [][][][] disparity_strength, // pre-calculated disparity/strength [per super-tile][per-measurement layer][2][tiles] or null
final boolean [][] tile_sel // null or per-measurement layer, per-tile selection. For each layer null - do not use, {} - use all
){
// first find all integer maximums, and if the top is flat - use the middle. If not flat - use 2-nd degree polynomial // first find all integer maximums, and if the top is flat - use the middle. If not flat - use 2-nd degree polynomial
if (disparityHistograms == null) getDisparityHistograms( if (disparityHistograms == null) getDisparityHistograms(
// world_plane, // double [] world_plane, // tilt equi-disparity planes to match real world planes (usually horizontal (or null)
disparity_strength, // pre-calculated disparity/strength [per super-tile][per-measurement layer][2][tiles] or null
tile_sel, // boolean [][] tile_sel, // null or per-measurement layer, per-tile selection. For each layer null - do not use, {} - use all
this.smplMode, // final boolean smplMode, // = true; // Use sample mode (false - regular tile mode) this.smplMode, // final boolean smplMode, // = true; // Use sample mode (false - regular tile mode)
this.smplSide, // final int smplSide, // = 2; // Sample size (side of a square) this.smplSide, // final int smplSide, // = 2; // Sample size (side of a square)
this.smplNum, // final int smplNum, // = 3; // Number after removing worst this.smplNum, // final int smplNum, // = 3; // Number after removing worst
...@@ -685,6 +636,8 @@ public class SuperTiles{ ...@@ -685,6 +636,8 @@ public class SuperTiles{
{ {
if (disparityHistograms == null){ if (disparityHistograms == null){
getDisparityHistograms( getDisparityHistograms(
null, // double [] world_plane, // tilt equi-disparity planes to match real world planes (usually horizontal (or null)
null, // boolean [][] tile_sel, // null or per-measurement layer, per-tile selection. For each layer null - do not use, {} - use all
this.smplMode, // final boolean smplMode, // = true; // Use sample mode (false - regular tile mode) this.smplMode, // final boolean smplMode, // = true; // Use sample mode (false - regular tile mode)
this.smplSide, // final int smplSide, // = 2; // Sample size (side of a square) this.smplSide, // final int smplSide, // = 2; // Sample size (side of a square)
this.smplNum, // final int smplNum, // = 3; // Number after removing worst this.smplNum, // final int smplNum, // = 3; // Number after removing worst
...@@ -696,6 +649,9 @@ public class SuperTiles{ ...@@ -696,6 +649,9 @@ public class SuperTiles{
public double [] showDisparityHistogram( public double [] showDisparityHistogram(
// double [] world_plane, // tilt equi-disparity planes to match real world planes (usually horizontal (or null)
final double [][][][] disparity_strength, // pre-calculated disparity/strength [per super-tile][per-measurement layer][2][tiles] or null
boolean [][] tile_sel, // null or per-measurement layer, per-tile selection. For each layer null - do not use, {} - use all
boolean smplMode, // = true; // Use sample mode (false - regular tile mode) boolean smplMode, // = true; // Use sample mode (false - regular tile mode)
int smplSide, // = 2; // Sample size (side of a square) int smplSide, // = 2; // Sample size (side of a square)
int smplNum, // = 3; // Number after removing worst int smplNum, // = 3; // Number after removing worst
...@@ -703,6 +659,9 @@ public class SuperTiles{ ...@@ -703,6 +659,9 @@ public class SuperTiles{
int measSel) // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert int measSel) // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
{ {
getDisparityHistograms( // will recalculate if does not exist or some parameters changed getDisparityHistograms( // will recalculate if does not exist or some parameters changed
// world_plane, // double [] world_plane, // tilt equi-disparity planes to match real world planes (usually horizo
disparity_strength, // pre-calculated disparity/strength [per super-tile][per-measurement layer][2][tiles] or nullntal (or null)
tile_sel, // boolean [][] tile_sel, // null or per-measurement layer, per-tile selection. For each layer null - do not use, {} - use all
smplMode, // final boolean smplMode, // = true; // Use sample mode (false - regular tile mode) smplMode, // final boolean smplMode, // = true; // Use sample mode (false - regular tile mode)
smplSide, // final int smplSide, // = 2; // Sample size (side of a square) smplSide, // final int smplSide, // = 2; // Sample size (side of a square)
smplNum, // final int smplNum, // = 3; // Number after removing worst smplNum, // final int smplNum, // = 3; // Number after removing worst
...@@ -766,9 +725,24 @@ public class SuperTiles{ ...@@ -766,9 +725,24 @@ public class SuperTiles{
} }
return rslt; return rslt;
} }
public double [] showMaxMinMax(){ public double [] showMaxMinMax(){
return showMaxMinMax( // calculate and blur with the current settings, specified at instantiation
null,
null);
}
public double [] showMaxMinMax(
// double [] world_plane, // tilt equi-disparity planes to match real world planes (usually horizontal (or null)
double [][][][] disparity_strength, // pre-calculated disparity/strength [per super-tile][per-measurement layer][2][tiles] or null
boolean [][] tile_sel // null or per-measurement layer, per-tile selection. For each layer null - do not use, {} - use all
){
if (maxMinMax == null){ if (maxMinMax == null){
getMaxMinMax(); // calculate and blur with the current settings, specified at instantiation getMaxMinMax( // calculate and blur with the current settings, specified at instantiation
// world_plane, // tilt equi-disparity planes to match real world planes (usually horizontal (or null)
disparity_strength, // pre-calculated disparity/strength [per super-tile][per-measurement layer][2][tiles] or null
tile_sel); // null or per-measurement layer, per-tile selection. For each layer null - do not use, {} - use all
} }
final int superTileSize = tileProcessor.superTileSize; final int superTileSize = tileProcessor.superTileSize;
...@@ -1154,7 +1128,7 @@ public class SuperTiles{ ...@@ -1154,7 +1128,7 @@ public class SuperTiles{
final double plDispNorm, final double plDispNorm,
final int debugLevel) final int debugLevel)
{ {
if (maxMinMax == null) getMaxMinMax(); if (maxMinMax == null) getMaxMinMax(null, null);
final int np_min = 5; // minimal number of points to consider final int np_min = 5; // minimal number of points to consider
final int tilesX = tileProcessor.getTilesX(); final int tilesX = tileProcessor.getTilesX();
final int tilesY = tileProcessor.getTilesY(); final int tilesY = tileProcessor.getTilesY();
...@@ -1364,7 +1338,7 @@ public class SuperTiles{ ...@@ -1364,7 +1338,7 @@ public class SuperTiles{
final int dbg_X, final int dbg_X,
final int dbg_Y) final int dbg_Y)
{ {
if (maxMinMax == null) getMaxMinMax(); if (maxMinMax == null) getMaxMinMax(null, null);
// final int np_min = 5; // minimal number of points to consider // final int np_min = 5; // minimal number of points to consider
final int tilesX = tileProcessor.getTilesX(); final int tilesX = tileProcessor.getTilesX();
final int tilesY = tileProcessor.getTilesY(); final int tilesY = tileProcessor.getTilesY();
...@@ -1689,7 +1663,7 @@ public class SuperTiles{ ...@@ -1689,7 +1663,7 @@ public class SuperTiles{
final int dbg_X, final int dbg_X,
final int dbg_Y) final int dbg_Y)
{ {
if (maxMinMax == null) getMaxMinMax(); if (maxMinMax == null) getMaxMinMax(null, null);
final int tilesX = tileProcessor.getTilesX(); final int tilesX = tileProcessor.getTilesX();
final int tilesY = tileProcessor.getTilesY(); final int tilesY = tileProcessor.getTilesY();
final int superTileSize = tileProcessor.getSuperTileSize(); final int superTileSize = tileProcessor.getSuperTileSize();
...@@ -1739,7 +1713,7 @@ public class SuperTiles{ ...@@ -1739,7 +1713,7 @@ public class SuperTiles{
} }
// if (maxMinMax == null) // if (maxMinMax == null)
getMaxMinMax(); getMaxMinMax(null, null);
for (int ithread = 0; ithread < threads.length; ithread++) { for (int ithread = 0; ithread < threads.length; ithread++) {
threads[ithread] = new Thread() { threads[ithread] = new Thread() {
...@@ -2082,7 +2056,7 @@ public class SuperTiles{ ...@@ -2082,7 +2056,7 @@ public class SuperTiles{
final int dbg_X, final int dbg_X,
final int dbg_Y) final int dbg_Y)
{ {
if (maxMinMax == null) getMaxMinMax(); if (maxMinMax == null) getMaxMinMax(null, null); // so far - no planes, no selection
final int tilesX = tileProcessor.getTilesX(); final int tilesX = tileProcessor.getTilesX();
final int tilesY = tileProcessor.getTilesY(); final int tilesY = tileProcessor.getTilesY();
final int superTileSize = tileProcessor.getSuperTileSize(); final int superTileSize = tileProcessor.getSuperTileSize();
...@@ -2129,8 +2103,7 @@ public class SuperTiles{ ...@@ -2129,8 +2103,7 @@ public class SuperTiles{
showDoubleFloatArrays sdfa_instance = new showDoubleFloatArrays(); showDoubleFloatArrays sdfa_instance = new showDoubleFloatArrays();
sdfa_instance.showArrays(dbg_img, tileProcessor.getTilesX(), tileProcessor.getTilesY(), true, "measuredLayers",titles); sdfa_instance.showArrays(dbg_img, tileProcessor.getTilesX(), tileProcessor.getTilesY(), true, "measuredLayers",titles);
} }
// if (maxMinMax == null) getMaxMinMax(null, null);
getMaxMinMax();
for (int ithread = 0; ithread < threads.length; ithread++) { for (int ithread = 0; ithread < threads.length; ithread++) {
threads[ithread] = new Thread() { threads[ithread] = new Thread() {
......
...@@ -684,7 +684,6 @@ public class TilePlanes { ...@@ -684,7 +684,6 @@ public class TilePlanes {
// make a plane and find the worst (largest disparity difference) tile // make a plane and find the worst (largest disparity difference) tile
// z = -(x*Vx + y*Vy)/Vz // z = -(x*Vx + y*Vy)/Vz
// double [][][] disp_str = new double [measuredSelection.length][][];
double worst_d2 = 0.0; double worst_d2 = 0.0;
int [] worst_layer_index = {-1,-1}; int [] worst_layer_index = {-1,-1};
double [] v = getVector(); double [] v = getVector();
...@@ -692,16 +691,6 @@ public class TilePlanes { ...@@ -692,16 +691,6 @@ public class TilePlanes {
for (int nl = 0; nl < measuredSelection.length; nl++){ for (int nl = 0; nl < measuredSelection.length; nl++){
if (measuredSelection[nl] != null){ if (measuredSelection[nl] != null){
// already calculated, but not masked by selection! // already calculated, but not masked by selection!
/*
disp_str[nl] = measuredLayers.getDisparityStrength(
nl, // int num_layer,
sTileXY[0], // int stX,
sTileXY[1], // int stY,
measuredSelection[nl], // boolean [] sel_in,
strength_floor, //
measured_strength_pow, //
true); // boolean null_if_none)
*/
if (disp_str[nl] != null) { if (disp_str[nl] != null) {
for (int indx = 0; indx < disp_str[nl][0].length; indx++){ for (int indx = 0; indx < disp_str[nl][0].length; indx++){
double w = disp_str[nl][1][indx]; double w = disp_str[nl][1][indx];
......
...@@ -2759,7 +2759,7 @@ public class TileProcessor { ...@@ -2759,7 +2759,7 @@ public class TileProcessor {
clt_parameters.stSmplNum, // Number after removing worst clt_parameters.stSmplNum, // Number after removing worst
clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample
clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
dbg_hist[0] = scan_prev.showDisparityHistogram(); dbg_hist[0] = scan_prev.getSuperTiles().showDisparityHistogram();
scan_prev.setSuperTiles( scan_prev.setSuperTiles(
clt_parameters.stStepNear, // double step_disparity, clt_parameters.stStepNear, // double step_disparity,
...@@ -2775,11 +2775,11 @@ public class TileProcessor { ...@@ -2775,11 +2775,11 @@ public class TileProcessor {
clt_parameters.stSmplNum, // Number after removing worst clt_parameters.stSmplNum, // Number after removing worst
clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample
clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
dbg_hist[1] = scan_prev.showDisparityHistogram(); dbg_hist[1] = scan_prev.getSuperTiles().showDisparityHistogram();
dbg_hist[2] = scan_prev.showMaxMinMax(); dbg_hist[2] = scan_prev.getSuperTiles().showMaxMinMax();
int hist_width0 = scan_prev.showDisparityHistogramWidth(); int hist_width0 = scan_prev.getSuperTiles().showDisparityHistogramWidth();
int hist_height0 = dbg_hist[0].length/hist_width0; int hist_height0 = dbg_hist[0].length/hist_width0;
if (show_st){ if (show_st){
sdfa_instance.showArrays(dbg_hist, hist_width0, hist_height0, true, "disparity_supertiles_histograms",dbg_st_titles); sdfa_instance.showArrays(dbg_hist, hist_width0, hist_height0, true, "disparity_supertiles_histograms",dbg_st_titles);
...@@ -2973,7 +2973,7 @@ public class TileProcessor { ...@@ -2973,7 +2973,7 @@ public class TileProcessor {
clt_parameters.stSmplNum, // Number after removing worst clt_parameters.stSmplNum, // Number after removing worst
clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample
clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
dbg_hist[0] = scan_prev.showDisparityHistogram(); dbg_hist[0] = scan_prev.getSuperTiles().showDisparityHistogram();
scan_prev.setSuperTiles( scan_prev.setSuperTiles(
clt_parameters.stStepNear, // double step_disparity, clt_parameters.stStepNear, // double step_disparity,
clt_parameters.stStepFar, // double step_near, clt_parameters.stStepFar, // double step_near,
...@@ -2988,7 +2988,7 @@ public class TileProcessor { ...@@ -2988,7 +2988,7 @@ public class TileProcessor {
clt_parameters.stSmplNum, // Number after removing worst clt_parameters.stSmplNum, // Number after removing worst
clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample
clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
dbg_hist[1] = scan_prev.showDisparityHistogram(); dbg_hist[1] = scan_prev.getSuperTiles().showDisparityHistogram();
} }
// SuperTiles st = // SuperTiles st =
...@@ -3007,13 +3007,13 @@ public class TileProcessor { ...@@ -3007,13 +3007,13 @@ public class TileProcessor {
clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample
clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
if (show_st) { // otherwise only blured version is needed if (show_st) { // otherwise only blured version is needed
dbg_hist[2] = scan_prev.showDisparityHistogram(); dbg_hist[2] = scan_prev.getSuperTiles().showDisparityHistogram();
dbg_hist[3] = scan_prev.showMaxMinMax(); dbg_hist[3] = scan_prev.getSuperTiles().showMaxMinMax();
} }
if (show_st){ if (show_st){
int hist_width0 = scan_prev.showDisparityHistogramWidth(); int hist_width0 = scan_prev.getSuperTiles().showDisparityHistogramWidth();
int hist_height0 = dbg_hist[0].length/hist_width0; int hist_height0 = dbg_hist[0].length/hist_width0;
showDoubleFloatArrays sdfa_instance = new showDoubleFloatArrays(); // just for debugging? showDoubleFloatArrays sdfa_instance = new showDoubleFloatArrays(); // just for debugging?
sdfa_instance.showArrays(dbg_hist, hist_width0, hist_height0, true, "disparity_supertiles_histograms",dbg_st_titles); sdfa_instance.showArrays(dbg_hist, hist_width0, hist_height0, true, "disparity_supertiles_histograms",dbg_st_titles);
...@@ -3614,7 +3614,7 @@ public class TileProcessor { ...@@ -3614,7 +3614,7 @@ public class TileProcessor {
clt_parameters.stSmplNum, // Number after removing worst clt_parameters.stSmplNum, // Number after removing worst
clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample
clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
dbg_hist[0] = scan_prev.showDisparityHistogram(); dbg_hist[0] = scan_prev.getSuperTiles().showDisparityHistogram();
SuperTiles st = scan_prev.setSuperTiles( SuperTiles st = scan_prev.setSuperTiles(
clt_parameters.stStepNear, // double step_disparity, clt_parameters.stStepNear, // double step_disparity,
...@@ -3630,11 +3630,11 @@ public class TileProcessor { ...@@ -3630,11 +3630,11 @@ public class TileProcessor {
clt_parameters.stSmplNum, // Number after removing worst clt_parameters.stSmplNum, // Number after removing worst
clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample
clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
dbg_hist[1] = scan_prev.showDisparityHistogram(); dbg_hist[1] = scan_prev.getSuperTiles().showDisparityHistogram();
dbg_hist[2] = scan_prev.showMaxMinMax(); dbg_hist[2] = scan_prev.getSuperTiles().showMaxMinMax();
int hist_width0 = scan_prev.showDisparityHistogramWidth(); int hist_width0 = scan_prev.getSuperTiles().showDisparityHistogramWidth();
int hist_height0 = dbg_hist[0].length/hist_width0; int hist_height0 = dbg_hist[0].length/hist_width0;
if (show_st){ if (show_st){
...@@ -4431,7 +4431,7 @@ public class TileProcessor { ...@@ -4431,7 +4431,7 @@ public class TileProcessor {
clt_parameters.stSmplNum, // Number after removing worst clt_parameters.stSmplNum, // Number after removing worst
clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample
clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
dbg_hist[0] = scan_prev.showDisparityHistogram(); dbg_hist[0] = scan_prev.getSuperTiles().showDisparityHistogram();
scan_prev.setSuperTiles( scan_prev.setSuperTiles(
clt_parameters.stStepNear, // double step_disparity, clt_parameters.stStepNear, // double step_disparity,
...@@ -4447,12 +4447,12 @@ public class TileProcessor { ...@@ -4447,12 +4447,12 @@ public class TileProcessor {
clt_parameters.stSmplNum, // Number after removing worst clt_parameters.stSmplNum, // Number after removing worst
clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample clt_parameters.stSmplRms, // Maximal RMS of the remaining tiles in a sample
clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert clt_parameters.stMeasSel); // bitmask of the selected measurements for supertiles : +1 - combo, +2 - quad +4 - hor +8 - vert
dbg_hist[1] = scan_prev.showDisparityHistogram(); dbg_hist[1] = scan_prev.getSuperTiles().showDisparityHistogram();
dbg_hist[2] = scan_prev.showMaxMinMax(); dbg_hist[2] = scan_prev.getSuperTiles().showMaxMinMax();
if (clt_parameters.stShow){ if (clt_parameters.stShow){
int hist_width0 = scan_prev.showDisparityHistogramWidth(); int hist_width0 = scan_prev.getSuperTiles().showDisparityHistogramWidth();
int hist_height0 = dbg_hist[0].length/hist_width0; int hist_height0 = dbg_hist[0].length/hist_width0;
sdfa_instance.showArrays(dbg_hist, hist_width0, hist_height0, true, "disparity_supertiles_histograms",dbg_st_titles); sdfa_instance.showArrays(dbg_hist, hist_width0, hist_height0, true, "disparity_supertiles_histograms",dbg_st_titles);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment