Commit 901f0a49 authored by Andrey Filippov's avatar Andrey Filippov

Debugging field calibration with GPU

parent dd8f74c3
...@@ -167,7 +167,7 @@ public class CLTParameters { ...@@ -167,7 +167,7 @@ public class CLTParameters {
public boolean inf_restore_disp = true; // Add disparity back to d{x,y}[i] (debug feature) public boolean inf_restore_disp = true; // Add disparity back to d{x,y}[i] (debug feature)
// Lazy eye parameters // Lazy eye parameters
public boolean ly_lma_ers = true; // Use 2020 LMA-based measurement of mismatch public boolean ly_lma_ers = true; // Use 2020 LMA-based measurement of mismatch (GPU-supported)
public double ly_gt_strength = 0.18; // use some configurable parameters public double ly_gt_strength = 0.18; // use some configurable parameters
public boolean ly_gt_use_wnd = true; // public boolean ly_gt_use_wnd = true; //
public double ly_gt_rms = 0.2; // split small source samples to FG/BG if all aux tile RMS exceeds this value public double ly_gt_rms = 0.2; // split small source samples to FG/BG if all aux tile RMS exceeds this value
...@@ -797,6 +797,7 @@ public class CLTParameters { ...@@ -797,6 +797,7 @@ public class CLTParameters {
public boolean gpu_use_aux = false; // accelerate tile processor for the aux (lwir) quad camera public boolean gpu_use_aux = false; // accelerate tile processor for the aux (lwir) quad camera
public boolean gpu_use_aux_macro = false; // accelerate tile processor for the aux (lwir) quad camera in macro mode public boolean gpu_use_aux_macro = false; // accelerate tile processor for the aux (lwir) quad camera in macro mode
public boolean gpu_use_aux_adjust = false; // accelerate tile processor for the aux (lwir) quad camera for field calibration public boolean gpu_use_aux_adjust = false; // accelerate tile processor for the aux (lwir) quad camera for field calibration
public boolean gpu_debug_accum = false; // debug multi-tile TD accumulation
public boolean replaceWeakOutliers = true; // false; public boolean replaceWeakOutliers = true; // false;
...@@ -1600,6 +1601,7 @@ public class CLTParameters { ...@@ -1600,6 +1601,7 @@ public class CLTParameters {
properties.setProperty(prefix+"gpu_use_aux", this.gpu_use_aux +""); properties.setProperty(prefix+"gpu_use_aux", this.gpu_use_aux +"");
properties.setProperty(prefix+"gpu_use_aux_macro", this.gpu_use_aux_macro +""); properties.setProperty(prefix+"gpu_use_aux_macro", this.gpu_use_aux_macro +"");
properties.setProperty(prefix+"gpu_use_aux_adjust", this.gpu_use_aux_adjust +""); properties.setProperty(prefix+"gpu_use_aux_adjust", this.gpu_use_aux_adjust +"");
properties.setProperty(prefix+"gpu_debug_accum", this.gpu_debug_accum +"");
properties.setProperty(prefix+"debug_initial_discriminate", this.debug_initial_discriminate+""); properties.setProperty(prefix+"debug_initial_discriminate", this.debug_initial_discriminate+"");
properties.setProperty(prefix+"dbg_migrate", this.dbg_migrate+""); properties.setProperty(prefix+"dbg_migrate", this.dbg_migrate+"");
...@@ -2387,6 +2389,7 @@ public class CLTParameters { ...@@ -2387,6 +2389,7 @@ public class CLTParameters {
if (properties.getProperty(prefix+"gpu_use_aux")!=null) this.gpu_use_aux=Boolean.parseBoolean(properties.getProperty(prefix+"gpu_use_aux")); if (properties.getProperty(prefix+"gpu_use_aux")!=null) this.gpu_use_aux=Boolean.parseBoolean(properties.getProperty(prefix+"gpu_use_aux"));
if (properties.getProperty(prefix+"gpu_use_aux_macro")!=null) this.gpu_use_aux_macro=Boolean.parseBoolean(properties.getProperty(prefix+"gpu_use_aux_macro")); if (properties.getProperty(prefix+"gpu_use_aux_macro")!=null) this.gpu_use_aux_macro=Boolean.parseBoolean(properties.getProperty(prefix+"gpu_use_aux_macro"));
if (properties.getProperty(prefix+"gpu_use_aux_adjust")!=null) this.gpu_use_aux_adjust=Boolean.parseBoolean(properties.getProperty(prefix+"gpu_use_aux_adjust")); if (properties.getProperty(prefix+"gpu_use_aux_adjust")!=null) this.gpu_use_aux_adjust=Boolean.parseBoolean(properties.getProperty(prefix+"gpu_use_aux_adjust"));
if (properties.getProperty(prefix+"gpu_debug_accum")!=null) this.gpu_debug_accum=Boolean.parseBoolean(properties.getProperty(prefix+"gpu_debug_accum"));
if (properties.getProperty(prefix+"debug_initial_discriminate")!=null) this.debug_initial_discriminate=Boolean.parseBoolean(properties.getProperty(prefix+"debug_initial_discriminate")); if (properties.getProperty(prefix+"debug_initial_discriminate")!=null) this.debug_initial_discriminate=Boolean.parseBoolean(properties.getProperty(prefix+"debug_initial_discriminate"));
if (properties.getProperty(prefix+"dbg_migrate")!=null) this.dbg_migrate=Boolean.parseBoolean(properties.getProperty(prefix+"dbg_migrate")); if (properties.getProperty(prefix+"dbg_migrate")!=null) this.dbg_migrate=Boolean.parseBoolean(properties.getProperty(prefix+"dbg_migrate"));
...@@ -2612,7 +2615,7 @@ public class CLTParameters { ...@@ -2612,7 +2615,7 @@ public class CLTParameters {
gd.addTab ("Lazy eye", "Lazy eye parameters"); gd.addTab ("Lazy eye", "Lazy eye parameters");
gd.addCheckbox ("Use 2020 LMA-based measurement of mismatch", this.ly_lma_ers); gd.addCheckbox ("Use 2020 LMA-based measurement of mismatch (GPU-supported)", this.ly_lma_ers);
gd.addMessage ("--- main-to-aux depth map parameters ---"); gd.addMessage ("--- main-to-aux depth map parameters ---");
gd.addNumericField("Minimal reference (main) channel correlation strength", this.ly_gt_strength, 3); gd.addNumericField("Minimal reference (main) channel correlation strength", this.ly_gt_strength, 3);
gd.addCheckbox ("Use window for AUX tiles to reduce weight of the hi-res tiles near low-res tile boundaries", this.ly_gt_use_wnd); gd.addCheckbox ("Use window for AUX tiles to reduce weight of the hi-res tiles near low-res tile boundaries", this.ly_gt_use_wnd);
...@@ -3337,6 +3340,7 @@ public class CLTParameters { ...@@ -3337,6 +3340,7 @@ public class CLTParameters {
gd.addCheckbox ("Accelerate tile processor for the aux (lwir) quad camera", this.gpu_use_aux); gd.addCheckbox ("Accelerate tile processor for the aux (lwir) quad camera", this.gpu_use_aux);
gd.addCheckbox ("Accelerate tile processor for the aux (lwir) quad camera in macro mode", this.gpu_use_aux_macro); gd.addCheckbox ("Accelerate tile processor for the aux (lwir) quad camera in macro mode", this.gpu_use_aux_macro);
gd.addCheckbox ("Accelerate tile processor for the aux (lwir) quad camera for field calibration", this.gpu_use_aux_adjust); gd.addCheckbox ("Accelerate tile processor for the aux (lwir) quad camera for field calibration", this.gpu_use_aux_adjust);
gd.addCheckbox ("Debug multi-tile TD accumulation", this.gpu_debug_accum);
gd.addTab ("LWIR", "parameters for LWIR/EO 8-camera rig"); gd.addTab ("LWIR", "parameters for LWIR/EO 8-camera rig");
this.lwir.dialogQuestions(gd); this.lwir.dialogQuestions(gd);
...@@ -4097,6 +4101,7 @@ public class CLTParameters { ...@@ -4097,6 +4101,7 @@ public class CLTParameters {
this.gpu_use_aux= gd.getNextBoolean(); this.gpu_use_aux= gd.getNextBoolean();
this.gpu_use_aux_macro= gd.getNextBoolean(); this.gpu_use_aux_macro= gd.getNextBoolean();
this.gpu_use_aux_adjust= gd.getNextBoolean(); this.gpu_use_aux_adjust= gd.getNextBoolean();
this.gpu_debug_accum= gd.getNextBoolean();
this.lwir.dialogAnswers(gd); this.lwir.dialogAnswers(gd);
......
...@@ -222,6 +222,18 @@ public class GPUTileProcessor { ...@@ -222,6 +222,18 @@ public class GPUTileProcessor {
} }
} }
} }
public float [][] getDispDist(){
return disp_dist;
}
public float [][] getXY(boolean use_aux){
return use_aux? xy_aux : xy;
}
public int getTileY(){
return ty;
}
public int getTileX(){
return tx;
}
// convert this class instance to float array to match layout of the C struct // convert this class instance to float array to match layout of the C struct
public float [] asFloatArray(boolean use_aux) { public float [] asFloatArray(boolean use_aux) {
...@@ -2043,10 +2055,13 @@ public class GPUTileProcessor { ...@@ -2043,10 +2055,13 @@ public class GPUTileProcessor {
} }
} }
setCorrIndicesTdData( setCorrIndicesTdData(
ntile, // int num_tiles, // corr_indices, fdata may be longer than needed ntile * num_pairs, // int num_tiles, // corr_indices, fdata may be longer than needed
indices, // int [] corr_indices, indices, // int [] corr_indices,
fdata); // float [] fdata); fdata); // float [] fdata);
return indices; // trim indices
int [] indices_trim = new int [ntile * num_pairs];
System.arraycopy(indices, 0, indices_trim, 0 , indices_trim.length);
return indices_trim;
} }
public float [][][][] getCorrTilesTd() // [tileY][tileX][pair][4*64] , read all available pairs public float [][][][] getCorrTilesTd() // [tileY][tileX][pair][4*64] , read all available pairs
...@@ -2104,7 +2119,9 @@ public class GPUTileProcessor { ...@@ -2104,7 +2119,9 @@ public class GPUTileProcessor {
ntile, // int num_tiles, // corr_indices, fdata may be longer than needed ntile, // int num_tiles, // corr_indices, fdata may be longer than needed
indices, // int [] corr_indices, indices, // int [] corr_indices,
fdata); // float [] fdata); fdata); // float [] fdata);
return indices; int [] indices_trim = new int [ntile];
System.arraycopy(indices, 0, indices_trim, 0 , indices_trim.length);
return indices_trim;
} }
public float [][][] getCorrTilesComboTd() // [tileY][tileX][4*64] , read all available pairs public float [][][] getCorrTilesComboTd() // [tileY][tileX][4*64] , read all available pairs
......
...@@ -1509,7 +1509,7 @@ public class ImageDttCPU { ...@@ -1509,7 +1509,7 @@ public class ImageDttCPU {
} }
// removing macro and FPGA modes // removing macro and FPGA modes
public double [][] cltMeasureLazyEye ( // returns d,s lazy eye parameters public double[][] cltMeasureLazyEye ( // returns d,s lazy eye parameters
final ImageDttParameters imgdtt_params, // Now just extra correlation parameters, later will include, most others final ImageDttParameters imgdtt_params, // Now just extra correlation parameters, later will include, most others
final int [][] tile_op, // [tilesY][tilesX] - what to do - 0 - nothing for this tile final int [][] tile_op, // [tilesY][tilesX] - what to do - 0 - nothing for this tile
final double [][] disparity_array, // [tilesY][tilesX] - individual per-tile expected disparity final double [][] disparity_array, // [tilesY][tilesX] - individual per-tile expected disparity
...@@ -1753,6 +1753,7 @@ public class ImageDttCPU { ...@@ -1753,6 +1753,7 @@ public class ImageDttCPU {
// filter only tiles with similar disparity to enable lazy eye for the ERS. // filter only tiles with similar disparity to enable lazy eye for the ERS.
int num_good_tiles = 0; int num_good_tiles = 0;
while (true) { while (true) {
// num_good_tiles = 0; // FIXME: Was missing - uncomment?
int mnTx = -1, mnTy = -1, mxTx = -1, mxTy = -1; int mnTx = -1, mnTy = -1, mxTx = -1, mxTy = -1;
double mn = Double.NaN; double mn = Double.NaN;
double mx = Double.NaN; double mx = Double.NaN;
...@@ -2148,7 +2149,7 @@ public class ImageDttCPU { ...@@ -2148,7 +2149,7 @@ public class ImageDttCPU {
imgdtt_params.lmas_max_rel_rms, // maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3) imgdtt_params.lmas_max_rel_rms, // maximal relative (to average max/min amplitude LMA RMS) // May be up to 0.3)
imgdtt_params.lmas_min_strength, // minimal composite strength (sqrt(average amp squared over absolute RMS) imgdtt_params.lmas_min_strength, // minimal composite strength (sqrt(average amp squared over absolute RMS)
imgdtt_params.lmas_min_ac, // minimal of A and C coefficients maximum (measures sharpest point/line) imgdtt_params.lmas_min_ac, // minimal of A and C coefficients maximum (measures sharpest point/line)
imgdtt_params.lmas_max_area, //double lma_max_area, // maximal half-area (if > 0.0) imgdtt_params.lmas_max_area, // double lma_max_area, // maximal half-area (if > 0.0)
imgdtt_params.lma_str_scale, // convert lma-generated strength to match previous ones - scale imgdtt_params.lma_str_scale, // convert lma-generated strength to match previous ones - scale
imgdtt_params.lma_str_offset // convert lma-generated strength to match previous ones - add to result imgdtt_params.lma_str_offset // convert lma-generated strength to match previous ones - add to result
)[0]; )[0];
......
...@@ -7403,17 +7403,37 @@ public class QuadCLTCPU { ...@@ -7403,17 +7403,37 @@ public class QuadCLTCPU {
tp.clt_3d_passes.get(refine_pass), // CLTPass3d scan, tp.clt_3d_passes.get(refine_pass), // CLTPass3d scan,
"after_refinePassSetup-"+tp.clt_3d_passes.size()); "after_refinePassSetup-"+tp.clt_3d_passes.size());
// Just debugging
if (clt_parameters.gpu_debug_accum) {
CLTMeasureCorrTesting( // perform single pass according to prepared tiles operations and disparity
clt_parameters,
0,
false, // true, // final boolean save_textures,
threadsMax, // maximal number of threads to launch
updateStatus,
debugLevel);
CLTMeasureCorrTesting( // perform single pass according to prepared tiles operations and disparity
clt_parameters,
refine_pass,
false, // true, // final boolean save_textures,
threadsMax, // maximal number of threads to launch
updateStatus,
debugLevel);
}
// End of just debugging
CLTMeasureCorr( // perform single pass according to prepared tiles operations and disparity CLTMeasureCorr( // perform single pass according to prepared tiles operations and disparity
// image_data, // first index - number of image in a quad
// saturation_imp, //final boolean [][] saturation_imp, // (near) saturated pixels or null
clt_parameters, clt_parameters,
refine_pass, refine_pass,
false, // true, // final boolean save_textures, false, // true, // final boolean save_textures,
threadsMax, // maximal number of threads to launch threadsMax, // maximal number of threads to launch
updateStatus, updateStatus,
debugLevel); debugLevel);
if (debugLevel > -1){
System.out.println("CLTMeasure("+refine_pass+")");
if (debugLevel > -3){
System.out.println("CLTMeasure("+refine_pass+")-*");
} }
if (show_init_refine) tp.showScan( if (show_init_refine) tp.showScan(
tp.clt_3d_passes.get(refine_pass), // CLTPass3d scan, tp.clt_3d_passes.get(refine_pass), // CLTPass3d scan,
...@@ -7664,12 +7684,28 @@ public class QuadCLTCPU { ...@@ -7664,12 +7684,28 @@ public class QuadCLTCPU {
for (int nTile = 0 ; nTile < bg_use.length; nTile++) { for (int nTile = 0 ; nTile < bg_use.length; nTile++) {
if (bg_sel[nTile] && if (bg_sel[nTile] &&
(filtered_bgnd_disp_strength[1][nTile] > 0.0) && (filtered_bgnd_disp_strength[1][nTile] > 0.0) &&
(bg_str[nTile] > clt_parameters.fcorr_inf_strength) && (bg_str[nTile] > clt_parameters.fcorr_inf_strength) && // 0.13
((bg_overexp == null) || (bg_overexp[nTile] < clt_parameters.lym_overexp)) ((bg_overexp == null) || (bg_overexp[nTile] < clt_parameters.lym_overexp)) //1e-4
){ ){
bg_use[nTile] = true; bg_use[nTile] = true;
} }
} }
if (true) {
String [] dbg_titles = {"fdisp", "fstr", "disp", "str", "overexp","sel","use"};
double [][] ddd = {filtered_bgnd_disp_strength[0],filtered_bgnd_disp_strength[1],null,bg_str,bg_overexp, null, null};
ddd[5] = new double [bg_sel.length];
ddd[6] = new double [bg_sel.length];
for (int nTile = 0 ; nTile < bg_use.length; nTile++) {
ddd[5][nTile] = bg_sel[nTile]?1.0:0.0;
ddd[6][nTile] = bg_use[nTile]?1.0:0.0;
}
(new ShowDoubleFloatArrays()).showArrays(
ddd,
tp.getTilesX(),
tp.getTilesY(),
true,
"filtered_bgnd_disp_strength",dbg_titles);
}
int num_bg = tp.clt_3d_passes.get(bg_scan).setTileOpDisparity( // other minimal strength? int num_bg = tp.clt_3d_passes.get(bg_scan).setTileOpDisparity( // other minimal strength?
bg_use, // boolean [] selection, bg_use, // boolean [] selection,
null); // double [] disparity); // null for 0 null); // double [] disparity); // null for 0
...@@ -7694,12 +7730,8 @@ public class QuadCLTCPU { ...@@ -7694,12 +7730,8 @@ public class QuadCLTCPU {
System.out.println("Number of background tiles = " + num_bg+", number of lazy eye tiles = " + num_combo); System.out.println("Number of background tiles = " + num_bg+", number of lazy eye tiles = " + num_combo);
} }
// measure combo // measure combo
/*
CLTMeasure( // perform single pass according to prepared tiles operations and disparity **** CPU?
CLTMeasure( // perform single pass according to prepared tiles operations and disparity
// image_data, // first index - number of image in a quad
// saturation_imp, // boolean [][] saturation_imp, // (near) saturated pixels or null
clt_parameters, clt_parameters,
combo_scan, combo_scan,
false, // final boolean save_textures, false, // final boolean save_textures,
...@@ -7708,9 +7740,18 @@ public class QuadCLTCPU { ...@@ -7708,9 +7740,18 @@ public class QuadCLTCPU {
tp.threadsMax, // maximal number of threads to launch tp.threadsMax, // maximal number of threads to launch
false, // updateStatus, false, // updateStatus,
debugLevelInner - 1); debugLevelInner - 1);
if (!batch_mode && clt_parameters.show_extrinsic && (debugLevel >-1)) {
*/
CLTMeasureCorr( // perform single pass according to prepared tiles operations and disparity **** CPU?
clt_parameters,
combo_scan,
false, // final boolean save_textures,
tp.threadsMax, // maximal number of threads to launch
false, // updateStatus,
debugLevelInner - 1);
if (!batch_mode && clt_parameters.show_extrinsic && (debugLevel >-3)) {
tp.showScan( tp.showScan(
tp.clt_3d_passes.get(bg_scan), // CLTPass3d scan, tp.clt_3d_passes.get(bg_scan), // CLTPass3d scan, badly filtered?
"bg_scan_post"); //String title) "bg_scan_post"); //String title)
tp.showScan( tp.showScan(
tp.clt_3d_passes.get(combo_scan), // CLTPass3d scan, tp.clt_3d_passes.get(combo_scan), // CLTPass3d scan,
...@@ -7755,7 +7796,25 @@ public class QuadCLTCPU { ...@@ -7755,7 +7796,25 @@ public class QuadCLTCPU {
combo_use[nTile] = true; combo_use[nTile] = true;
} }
} }
int num_combo1 = tp.clt_3d_passes.get(combo_scan).setTileOpDisparity( if (true) {
String [] dbg_titles = {"fdisp", "fstr", "disp", "str", "overexp","sel","use"};
double [][] ddd = {filtered_combo_scand_isp_strength[0],filtered_combo_scand_isp_strength[1],combo_disp,combo_str,combo_overexp, null, null};
ddd[5] = new double [combo_use.length];
ddd[6] = new double [combo_use.length];
for (int nTile = 0 ; nTile < combo_use.length; nTile++) {
//ddd[5][nTile] = bg_sel[nTile]?1.0:0.0;
ddd[6][nTile] = combo_use[nTile]?1.0:0.0;
}
(new ShowDoubleFloatArrays()).showArrays(
ddd,
tp.getTilesX(),
tp.getTilesY(),
true,
"filtered_combo_scand_isp_strength",dbg_titles);
}
int num_combo1 = tp.clt_3d_passes.get(combo_scan).setTileOpDisparity( // GPU ==0 !
combo_use, // boolean [] selection, combo_use, // boolean [] selection,
combo_disp); // double [] disparity); combo_disp); // double [] disparity);
if (debugLevel > -1) { if (debugLevel > -1) {
...@@ -7772,7 +7831,7 @@ public class QuadCLTCPU { ...@@ -7772,7 +7831,7 @@ public class QuadCLTCPU {
dbg_bg_use[i] = bg_use[i]? 1.0:0.0; dbg_bg_use[i] = bg_use[i]? 1.0:0.0;
dbg_combo_use[i] = combo_use[i]? 1.0:0.0; dbg_combo_use[i] = combo_use[i]? 1.0:0.0;
} }
double [][]dbg_img = { double [][]dbg_img = { // bg_use - all 0? (never assigned)?
filtered_bgnd_disp_strength[0], filtered_bgnd_disp_strength[0],
filtered_bgnd_disp_strength[1], filtered_bgnd_disp_strength[1],
filtered_combo_scand_isp_strength[0], filtered_combo_scand_isp_strength[0],
...@@ -7816,9 +7875,9 @@ public class QuadCLTCPU { ...@@ -7816,9 +7875,9 @@ public class QuadCLTCPU {
false, // updateStatus, false, // updateStatus,
debugLevelInner -1); // - 1); // -5-1 debugLevelInner -1); // - 1); // -5-1
if (debugLevel > -2) { if (debugLevel > -2) {
tp.showScan( tp.showScan(
tp.clt_3d_passes.get(combo_scan), // CLTPass3d scan, tp.clt_3d_passes.get(combo_scan), // CLTPass3d scan,
"LY_combo_scan-"+combo_scan+"_post"); //String title) "LY_combo_scan-"+combo_scan+"_post"); //String title)
} }
int tilesX = tp.getTilesX(); int tilesX = tp.getTilesX();
...@@ -7913,9 +7972,8 @@ public class QuadCLTCPU { ...@@ -7913,9 +7972,8 @@ public class QuadCLTCPU {
break; break;
} }
if (update_disp_from_latest) { if (update_disp_from_latest) {
/*
CLTMeasure( // perform single pass according to prepared tiles operations and disparity CLTMeasure( // perform single pass according to prepared tiles operations and disparity
// image_data, // first index - number of image in a quad
// saturation_imp, // boolean [][] saturation_imp, // (near) saturated pixels or null
clt_parameters, clt_parameters,
combo_scan, combo_scan,
false, // final boolean save_textures, false, // final boolean save_textures,
...@@ -7924,14 +7982,20 @@ public class QuadCLTCPU { ...@@ -7924,14 +7982,20 @@ public class QuadCLTCPU {
tp.threadsMax, // maximal number of threads to launch tp.threadsMax, // maximal number of threads to launch
false, // updateStatus, false, // updateStatus,
debugLevelInner - 1); debugLevelInner - 1);
*/
CLTMeasureCorr( // perform single pass according to prepared tiles operations and disparity
clt_parameters,
combo_scan,
false, // final boolean save_textures,
tp.threadsMax, // maximal number of threads to launch
false, // updateStatus,
debugLevelInner - 1);
} }
} else { } else { // Old, no-GPU
double [][] bg_mismatch = new double[12][]; double [][] bg_mismatch = new double[12][];
double [][] combo_mismatch = new double[12][]; double [][] combo_mismatch = new double[12][];
CLTMeasure( // perform single pass according to prepared tiles operations and disparity CLTMeasure( // perform single pass according to prepared tiles operations and disparity
// image_data, // first index - number of image in a quad
// saturation_imp, // boolean [][] saturation_imp, // (near) saturated pixels or null
clt_parameters, clt_parameters,
bg_scan, bg_scan,
false, // final boolean save_textures, false, // final boolean save_textures,
...@@ -7941,8 +8005,6 @@ public class QuadCLTCPU { ...@@ -7941,8 +8005,6 @@ public class QuadCLTCPU {
false, // updateStatus, false, // updateStatus,
debugLevelInner - 1); debugLevelInner - 1);
CLTMeasure( // perform single pass according to prepared tiles operations and disparity CLTMeasure( // perform single pass according to prepared tiles operations and disparity
// image_data, // first index - number of image in a quad
// saturation_imp, // boolean [][] saturation_imp, // (near) saturated pixels or null
clt_parameters, clt_parameters,
combo_scan, combo_scan,
false, // final boolean save_textures, false, // final boolean save_textures,
...@@ -11317,4 +11379,21 @@ public class QuadCLTCPU { ...@@ -11317,4 +11379,21 @@ public class QuadCLTCPU {
} }
scan.setTilesRBGA(tileTones); scan.setTilesRBGA(tileTones);
} }
// non-trivial in QuadCLT (for the GPU)
public CLTPass3d CLTMeasureCorrTesting( // perform single pass according to prepared tiles operations and disparity // not used in lwir
CLTParameters clt_parameters,
final int scanIndex,
final boolean save_textures,
final int threadsMax, // maximal number of threads to launch
final boolean updateStatus,
final int debugLevel)
{
return CLTMeasureCorrTesting( // perform single pass according to prepared tiles operations and disparity // not used in lwir
clt_parameters,
scanIndex,
save_textures,
threadsMax, // maximal number of threads to launch
updateStatus,
debugLevel);
}
} }
...@@ -8315,7 +8315,6 @@ if (debugLevel > -100) return true; // temporarily ! ...@@ -8315,7 +8315,6 @@ if (debugLevel > -100) return true; // temporarily !
} }
} }
/*
boolean ok = quadCLT_main.extrinsicsCLT( boolean ok = quadCLT_main.extrinsicsCLT(
clt_parameters, // EyesisCorrectionParameters.CLTParameters clt_parameters, clt_parameters, // EyesisCorrectionParameters.CLTParameters clt_parameters,
false, // adjust_poly, false, // adjust_poly,
...@@ -8325,8 +8324,6 @@ if (debugLevel > -100) return true; // temporarily ! ...@@ -8325,8 +8324,6 @@ if (debugLevel > -100) return true; // temporarily !
// clear memory for main // clear memory for main
quadCLT_main.tp.resetCLTPasses(); quadCLT_main.tp.resetCLTPasses();
if (!ok) break; if (!ok) break;
*/
} }
// Generate 4 main camera images and thumbnail // Generate 4 main camera images and thumbnail
if (quadCLT_main.correctionsParameters.clt_batch_4img){ if (quadCLT_main.correctionsParameters.clt_batch_4img){
......
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