"Inter-camera correlation data has only one layer (and one correlation pair). It is used to generate ground truth data. Usable disparity range (measured in the main camera pixels) is ~1/5 of teh main camera");
gd.addCheckbox("Keep individual top, bottom, right, and left pairs",this.ml_keep_tbrl,
"Each of these two layers per camera are calculated from a pair of top/bottom and left/right pairs. Can possibly be used instead of originals to reduce amount of input data");
finaldouble[][]ml_data,// data for ML - 18 layers - 4 center areas (3x3, 5x5,..) per camera-per direction, 1 - composite, and 1 with just 1 data (target disparity)
finaldouble[][][][]texture_tiles_main,// [tilesY][tilesX]["RGBA".length()][]; null - will skip images combining
finaldouble[][][][]texture_tiles_aux,// [tilesY][tilesX]["RGBA".length()][]; null - will skip images combining
finalintwidth,
finalintwidth,// may be not multiple of 8, same for the height
finaldoublemin_corr,// 0.02; // minimal correlation value to consider valid
finalGeometryCorrectiongeometryCorrection_main,
finalGeometryCorrectiongeometryCorrection_aux,
finaldouble[][][][][][]clt_kernels_main,// [channel_in_quad][color][tileY][tileX][band][pixel] , size should match image (have 1 tile around)
Stringpath=(String)imp_quad_main[0].getProperty("path");// Only for debug output
...
...
@@ -333,8 +333,6 @@ public class TwoQuadCLT {
double[][]disparity_bimap=newdouble[ImageDtt.BIDISPARITY_TITLES.length][];//[0] -residual disparity, [1] - orthogonal (just for debugging) last 4 - max pixel differences
doublemin_corr_selected=clt_parameters.min_corr;
ImageDttimage_dtt=newImageDtt();
double[][]ml_data=null;
...
...
@@ -357,8 +355,6 @@ public class TwoQuadCLT {
texture_tiles_main,// final double [][][][] texture_tiles_main, // [tilesY][tilesX]["RGBA".length()][]; null - will skip images combining
texture_tiles_aux,// final double [][][][] texture_tiles_aux, // [tilesY][tilesX]["RGBA".length()][]; null - will skip images combining
imp_quad_main[0].getWidth(),// final int width,
min_corr_selected,// final double min_corr, // 0.02; // minimal correlation value to consider valid
quadCLT_main.getGeometryCorrection(),// final GeometryCorrection geometryCorrection_main,
quadCLT_aux.getGeometryCorrection(),// final GeometryCorrection geometryCorrection_aux,
quadCLT_main.getCLTKernels(),// final double [][][][][][] clt_kernels_main, // [channel_in_quad][color][tileY][tileX][band][pixel] , size should match image (have 1 tile around)
...
...
@@ -852,7 +848,112 @@ public class TwoQuadCLT {
}
// use macro mode (strengths with limited disparity) to align at infinity if it is way off.
macro_pair,// final double [][][] image_rig_data, // [2][1][pixels] (single color channel)
mdisparity_bimap,// final double [][] disparity_bimap, // [23][tilesY][tilesX], only [6][] is needed on input or null - do not calculate
tilesX,// final int width,
quadCLT_main.getGeometryCorrection(),// final GeometryCorrection geometryCorrection_main,
quadCLT_aux.getGeometryCorrection(),// final GeometryCorrection geometryCorrection_aux,
clt_parameters.corr_magic_scale,// final double corr_magic_scale, // still not understood coefficient that reduces reported disparity value. Seems to be around 0.85
threadsMax,// final int threadsMax, // maximal number of threads to launch
debugLevel+1);// final int debugLevel);
// Display macro correlation results (later convert to a full size disparity_bimap for compatibility with infinity alignment
if(debugLevel>-2){
(newshowDoubleFloatArrays()).showArrays(
mdisparity_bimap,
mTilesX,
mTilesY,
true,
"MACRO-DISP_MAP",
ImageDtt.BIDISPARITY_TITLES);
}
/*
* ImageDtt.BIDISPARITY_TITLES.length
public void clt_bi_macro(
final EyesisCorrectionParameters.CLTParameters clt_parameters,
final int macro_scale,
final int [][] tile_op, // [tilesY][tilesX] - what to do - 0 - nothing for this tile
inttile_op_all=clt_parameters.tile_task_op;//FIXME Use some constant?
...
...
@@ -2116,7 +2235,6 @@ public class TwoQuadCLT {
double[][]disparity_bimap=newdouble[ImageDtt.BIDISPARITY_TITLES.length][];//[0] -residual disparity, [1] - orthogonal (just for debugging) last 4 - max pixel differences
doublemin_corr_selected=clt_parameters.min_corr;
image_dtt.clt_bi_quad(
clt_parameters,// final EyesisCorrectionParameters.CLTParameters clt_parameters,
tile_op,// final int [][] tile_op_main, // [tilesY][tilesX] - what to do - 0 - nothing for this tile
...
...
@@ -2134,7 +2252,6 @@ public class TwoQuadCLT {
null,// final double [][][][] texture_tiles_aux, // [tilesY][tilesX]["RGBA".length()][]; null - will skip images combining
quadCLT_main.tp.getTilesX()*clt_parameters.transform_size,// final int width,
min_corr_selected,// final double min_corr, // 0.02; // minimal correlation value to consider valid
quadCLT_main.getGeometryCorrection(),// final GeometryCorrection geometryCorrection_main,
quadCLT_aux.getGeometryCorrection(),// final GeometryCorrection geometryCorrection_aux,
quadCLT_main.getCLTKernels(),// final double [][][][][][] clt_kernels_main, // [channel_in_quad][color][tileY][tileX][band][pixel] , size should match image (have 1 tile around)