Loading src/main/java/DisparityProcessor.java +3 −3 Original line number Diff line number Diff line Loading @@ -274,10 +274,10 @@ public class DisparityProcessor { { final int dbg_tile = -1; // 28643; // x=131, y=88 showDoubleFloatArrays sdfa_instance = null; if (debugLevel > -1) sdfa_instance = new showDoubleFloatArrays(); // just for debugging? if (debugLevel > 0) sdfa_instance = new showDoubleFloatArrays(); // just for debugging? final Thread[] threads = ImageDtt.newThreadArray(threadsMax); final int numThreads = threads.length; if (debugLevel > -1) System.out.println("smoothDisparity(): using "+numThreads+" threads"); if (debugLevel > 0) System.out.println("smoothDisparity(): using "+numThreads+" threads"); final int len = disparity.length; int numBorder = 0, numInternal = 0; for (int i = 0; i < len; i++){ Loading Loading @@ -428,7 +428,7 @@ public class DisparityProcessor { double diff = 0.0; for (int i = 0; (i < numThreads) && (diff <= maxDiff) ; i++) if (diff < rslt_diffs[i]) diff = rslt_diffs[i]; if (diff <= maxDiff) { if (debugLevel > -1) System.out.println("smoothDisparity(): pass = "+pass+", diff = "+diff+" <= "+maxDiff); if (debugLevel > 0) System.out.println("smoothDisparity(): pass = "+pass+", diff = "+diff+" <= "+maxDiff); break; } } Loading src/main/java/LinkPlanes.java +7 −0 Original line number Diff line number Diff line Loading @@ -339,6 +339,9 @@ public class LinkPlanes { true, // boolean sum_weights, plPreferDisparity, debugLevel - 2); // int debugLevel) if (merged_pd == null){ return false; } // merged_ev = merged_pd.getValue(); merged_ev = merged_pd.getNormValue(); merged_wev = merged_pd.getWValue(); Loading @@ -352,6 +355,10 @@ public class LinkPlanes { true, // boolean sum_weights, plPreferDisparity, debugLevel - 2); // int debugLevel) if (merged_pd_eq == null){ return false; } // merged_ev_eq = merged_pd_eq.getValue(); merged_ev_eq = merged_pd_eq.getNormValue(); merged_wev_eq = merged_pd_eq.getWValue(); Loading src/main/java/QuadCLT.java +11 −4 Original line number Diff line number Diff line Loading @@ -5702,7 +5702,7 @@ public class QuadCLT { final boolean updateStatus, final int debugLevel) { final int max_expand = 100; // 30; final int max_expand = 300; // 150; // 30; // Temporary assign here final int disp_index = ImageDtt.DISPARITY_INDEX_CM; final int str_index = ImageDtt.DISPARITY_STRENGTH_INDEX; Loading Loading @@ -5901,6 +5901,7 @@ public class QuadCLT { image_data, // first index - number of image in a quad clt_parameters, refine_pass, true, // final boolean save_textures, threadsMax, // maximal number of threads to launch updateStatus, debugLevel); Loading Loading @@ -5946,6 +5947,7 @@ public class QuadCLT { // process once more to try combining of processed boolean last_pass = false; // for (int num_expand = 0; (num_expand < 4) && (num_extended != 0); num_expand++) { boolean over_infinity = false; for (int num_expand = 0; num_expand < max_expand; num_expand++) { Runtime runtime = Runtime.getRuntime(); Loading Loading @@ -6078,7 +6080,7 @@ public class QuadCLT { num_extended = tp.setupExtendDisparity( extended_pass, // final CLTPass3d scan, // combined scan with max_tried_disparity, will be modified to re-scan tp.clt_3d_passes.get(refine_pass), // final CLTPass3d last_scan, // last prepared tile - can use last_scan.disparity, .border_tiles and .selected tp.clt_3d_passes.get(bg_pass), // final CLTPass3d bg_scan, // background scan data over_infinity? null: tp.clt_3d_passes.get(bg_pass), // final CLTPass3d bg_scan, // background scan data clt_parameters.grow_sweep, // 8; // Try these number of tiles around known ones clt_parameters.grow_disp_max, // = 50.0; // Maximal disparity to try 0.5 * clt_parameters.grow_disp_trust, // = 4.0; // Trust measured disparity within +/- this value Loading Loading @@ -6127,6 +6129,7 @@ public class QuadCLT { image_data, // first index - number of image in a quad clt_parameters, refine_pass, false, // final boolean save_textures, threadsMax, // maximal number of threads to launch updateStatus, debugLevel); Loading Loading @@ -6177,7 +6180,8 @@ public class QuadCLT { if (last_pass) { break; } else if (numLeftRemoved[0] == 0){ last_pass = true; if (over_infinity) last_pass = true; else over_infinity = true; } } Loading Loading @@ -6241,6 +6245,7 @@ public class QuadCLT { image_data, // first index - number of image in a quad clt_parameters, scanIndex, true, // final boolean save_textures, threadsMax, // maximal number of threads to launch updateStatus, debugLevel); Loading Loading @@ -6404,6 +6409,7 @@ public class QuadCLT { image_data, // first index - number of image in a quad clt_parameters, scanIndex, true, // final boolean save_textures, threadsMax, // maximal number of threads to launch updateStatus, debugLevel); Loading Loading @@ -7077,6 +7083,7 @@ public class QuadCLT { final double [][][] image_data, // first index - number of image in a quad EyesisCorrectionParameters.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) Loading Loading @@ -7107,7 +7114,7 @@ public class QuadCLT { {clt_parameters.fine_corr_x_2,clt_parameters.fine_corr_y_2}, {clt_parameters.fine_corr_x_3,clt_parameters.fine_corr_y_3}}; double [][][][] texture_tiles = new double [tilesY][tilesX][][]; // ["RGBA".length()][]; double [][][][] texture_tiles = save_textures ? new double [tilesY][tilesX][][] : null; // ["RGBA".length()][]; ImageDtt image_dtt = new ImageDtt(); image_dtt.clt_aberrations_quad_corr( tile_op, // per-tile operation bit codes Loading src/main/java/SuperTiles.java +4 −0 Original line number Diff line number Diff line Loading @@ -2315,6 +2315,10 @@ public class SuperTiles{ dl-2); // int debugLevel) // combine tile selection - if next time pd0.reDiscriminateTiles() will fail, it will // use old selections, we need to provide them (otherwise will use selection from the first plane) if (plane1 == null){ System.out.println("refineDiscriminateTiles() nsTile="+nsTile+" plane1 = null"); break; } plane1.orMeasSelection(these_planes[merge_planes[1]].getMeasSelection()); // separately merge corresponding nonexclusiveStar and nonexclusiveStarEq of these planes - kit is not exact, Loading src/main/java/TileProcessor.java +8 −6 Original line number Diff line number Diff line Loading @@ -1071,7 +1071,7 @@ public class TileProcessor { public int setupExtendDisparity( // returns number of new tiles to try final CLTPass3d scan, // combined scan with max_tried_disparity, will be modified to re-scan final CLTPass3d last_scan, // last prepared tile - can use last_scan.disparity, .border_tiles and .selected final CLTPass3d bg_scan, // background scan data final CLTPass3d bg_scan, // background scan data, null - ignore background final int grow_sweep, // 8; // Try these number of tiles around known ones final double grow_disp_max, // = 50.0; // Maximal disparity to try final double tried_margin, // = 4.0; // consider already tried if within this margin from already tried Loading @@ -1089,7 +1089,7 @@ public class TileProcessor { final boolean updateStatus, final int debugLevel) { final int dbg_tile = 39379; // 54627; // ty=159, tx = 249 final int dbg_tile = -1; // 39379; // 54627; // ty=159, tx = 249 final int tlen = tilesY * tilesX; final boolean retryTwoSteps = true; // false; // true; Loading @@ -1109,9 +1109,11 @@ public class TileProcessor { boolean [] known_tiles = these_no_border.clone(); // known are background or these tiles if (bg_scan != null) { for (int i = 0; i < known_tiles.length; i++) { known_tiles[i] |= bg_scan.selected[i]; } } // set combo disparity from last prepared for (int nt = 0; nt < known_tiles.length; nt++){ int ty = nt / tilesX; Loading @@ -1136,7 +1138,7 @@ public class TileProcessor { debugLevel); // final int debugLevel) } if (!grow_retry_inf){ if (!grow_retry_inf && (bg_scan == null)){ for (int i = 0; i < untested_bgnd.length; i++) if (bg_scan.selected[i]) untested_bgnd[i] = false; } // turn these tiles as if they are not known (really known or belong to bgnd) Loading Loading @@ -1333,7 +1335,7 @@ public class TileProcessor { dbg_img[0][i] = scan.max_tried_disparity[ty][tx]; dbg_img[2][i] = scan.disparity[ty][tx]; dbg_img[3][i] = strength[i]; dbg_img[4][i] = ((bg_scan.selected != null) && (bg_scan.selected[i]))? boolean_val:0.0 ; if (bg_scan != null) dbg_img[4][i] = ((bg_scan.selected != null) && (bg_scan.selected[i]))? boolean_val:0.0 ; dbg_img[5][i] = ((last_scan.selected != null) && (last_scan.selected[i]))? boolean_val:0.0 ; dbg_img[6][i] = 0.05 * (dbg_img[4][i] + dbg_img[5][i]); dbg_img[7][i] = (scan.selected[i]?4:0)+ (scan.border_tiles[i]?8:0); Loading Loading
src/main/java/DisparityProcessor.java +3 −3 Original line number Diff line number Diff line Loading @@ -274,10 +274,10 @@ public class DisparityProcessor { { final int dbg_tile = -1; // 28643; // x=131, y=88 showDoubleFloatArrays sdfa_instance = null; if (debugLevel > -1) sdfa_instance = new showDoubleFloatArrays(); // just for debugging? if (debugLevel > 0) sdfa_instance = new showDoubleFloatArrays(); // just for debugging? final Thread[] threads = ImageDtt.newThreadArray(threadsMax); final int numThreads = threads.length; if (debugLevel > -1) System.out.println("smoothDisparity(): using "+numThreads+" threads"); if (debugLevel > 0) System.out.println("smoothDisparity(): using "+numThreads+" threads"); final int len = disparity.length; int numBorder = 0, numInternal = 0; for (int i = 0; i < len; i++){ Loading Loading @@ -428,7 +428,7 @@ public class DisparityProcessor { double diff = 0.0; for (int i = 0; (i < numThreads) && (diff <= maxDiff) ; i++) if (diff < rslt_diffs[i]) diff = rslt_diffs[i]; if (diff <= maxDiff) { if (debugLevel > -1) System.out.println("smoothDisparity(): pass = "+pass+", diff = "+diff+" <= "+maxDiff); if (debugLevel > 0) System.out.println("smoothDisparity(): pass = "+pass+", diff = "+diff+" <= "+maxDiff); break; } } Loading
src/main/java/LinkPlanes.java +7 −0 Original line number Diff line number Diff line Loading @@ -339,6 +339,9 @@ public class LinkPlanes { true, // boolean sum_weights, plPreferDisparity, debugLevel - 2); // int debugLevel) if (merged_pd == null){ return false; } // merged_ev = merged_pd.getValue(); merged_ev = merged_pd.getNormValue(); merged_wev = merged_pd.getWValue(); Loading @@ -352,6 +355,10 @@ public class LinkPlanes { true, // boolean sum_weights, plPreferDisparity, debugLevel - 2); // int debugLevel) if (merged_pd_eq == null){ return false; } // merged_ev_eq = merged_pd_eq.getValue(); merged_ev_eq = merged_pd_eq.getNormValue(); merged_wev_eq = merged_pd_eq.getWValue(); Loading
src/main/java/QuadCLT.java +11 −4 Original line number Diff line number Diff line Loading @@ -5702,7 +5702,7 @@ public class QuadCLT { final boolean updateStatus, final int debugLevel) { final int max_expand = 100; // 30; final int max_expand = 300; // 150; // 30; // Temporary assign here final int disp_index = ImageDtt.DISPARITY_INDEX_CM; final int str_index = ImageDtt.DISPARITY_STRENGTH_INDEX; Loading Loading @@ -5901,6 +5901,7 @@ public class QuadCLT { image_data, // first index - number of image in a quad clt_parameters, refine_pass, true, // final boolean save_textures, threadsMax, // maximal number of threads to launch updateStatus, debugLevel); Loading Loading @@ -5946,6 +5947,7 @@ public class QuadCLT { // process once more to try combining of processed boolean last_pass = false; // for (int num_expand = 0; (num_expand < 4) && (num_extended != 0); num_expand++) { boolean over_infinity = false; for (int num_expand = 0; num_expand < max_expand; num_expand++) { Runtime runtime = Runtime.getRuntime(); Loading Loading @@ -6078,7 +6080,7 @@ public class QuadCLT { num_extended = tp.setupExtendDisparity( extended_pass, // final CLTPass3d scan, // combined scan with max_tried_disparity, will be modified to re-scan tp.clt_3d_passes.get(refine_pass), // final CLTPass3d last_scan, // last prepared tile - can use last_scan.disparity, .border_tiles and .selected tp.clt_3d_passes.get(bg_pass), // final CLTPass3d bg_scan, // background scan data over_infinity? null: tp.clt_3d_passes.get(bg_pass), // final CLTPass3d bg_scan, // background scan data clt_parameters.grow_sweep, // 8; // Try these number of tiles around known ones clt_parameters.grow_disp_max, // = 50.0; // Maximal disparity to try 0.5 * clt_parameters.grow_disp_trust, // = 4.0; // Trust measured disparity within +/- this value Loading Loading @@ -6127,6 +6129,7 @@ public class QuadCLT { image_data, // first index - number of image in a quad clt_parameters, refine_pass, false, // final boolean save_textures, threadsMax, // maximal number of threads to launch updateStatus, debugLevel); Loading Loading @@ -6177,7 +6180,8 @@ public class QuadCLT { if (last_pass) { break; } else if (numLeftRemoved[0] == 0){ last_pass = true; if (over_infinity) last_pass = true; else over_infinity = true; } } Loading Loading @@ -6241,6 +6245,7 @@ public class QuadCLT { image_data, // first index - number of image in a quad clt_parameters, scanIndex, true, // final boolean save_textures, threadsMax, // maximal number of threads to launch updateStatus, debugLevel); Loading Loading @@ -6404,6 +6409,7 @@ public class QuadCLT { image_data, // first index - number of image in a quad clt_parameters, scanIndex, true, // final boolean save_textures, threadsMax, // maximal number of threads to launch updateStatus, debugLevel); Loading Loading @@ -7077,6 +7083,7 @@ public class QuadCLT { final double [][][] image_data, // first index - number of image in a quad EyesisCorrectionParameters.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) Loading Loading @@ -7107,7 +7114,7 @@ public class QuadCLT { {clt_parameters.fine_corr_x_2,clt_parameters.fine_corr_y_2}, {clt_parameters.fine_corr_x_3,clt_parameters.fine_corr_y_3}}; double [][][][] texture_tiles = new double [tilesY][tilesX][][]; // ["RGBA".length()][]; double [][][][] texture_tiles = save_textures ? new double [tilesY][tilesX][][] : null; // ["RGBA".length()][]; ImageDtt image_dtt = new ImageDtt(); image_dtt.clt_aberrations_quad_corr( tile_op, // per-tile operation bit codes Loading
src/main/java/SuperTiles.java +4 −0 Original line number Diff line number Diff line Loading @@ -2315,6 +2315,10 @@ public class SuperTiles{ dl-2); // int debugLevel) // combine tile selection - if next time pd0.reDiscriminateTiles() will fail, it will // use old selections, we need to provide them (otherwise will use selection from the first plane) if (plane1 == null){ System.out.println("refineDiscriminateTiles() nsTile="+nsTile+" plane1 = null"); break; } plane1.orMeasSelection(these_planes[merge_planes[1]].getMeasSelection()); // separately merge corresponding nonexclusiveStar and nonexclusiveStarEq of these planes - kit is not exact, Loading
src/main/java/TileProcessor.java +8 −6 Original line number Diff line number Diff line Loading @@ -1071,7 +1071,7 @@ public class TileProcessor { public int setupExtendDisparity( // returns number of new tiles to try final CLTPass3d scan, // combined scan with max_tried_disparity, will be modified to re-scan final CLTPass3d last_scan, // last prepared tile - can use last_scan.disparity, .border_tiles and .selected final CLTPass3d bg_scan, // background scan data final CLTPass3d bg_scan, // background scan data, null - ignore background final int grow_sweep, // 8; // Try these number of tiles around known ones final double grow_disp_max, // = 50.0; // Maximal disparity to try final double tried_margin, // = 4.0; // consider already tried if within this margin from already tried Loading @@ -1089,7 +1089,7 @@ public class TileProcessor { final boolean updateStatus, final int debugLevel) { final int dbg_tile = 39379; // 54627; // ty=159, tx = 249 final int dbg_tile = -1; // 39379; // 54627; // ty=159, tx = 249 final int tlen = tilesY * tilesX; final boolean retryTwoSteps = true; // false; // true; Loading @@ -1109,9 +1109,11 @@ public class TileProcessor { boolean [] known_tiles = these_no_border.clone(); // known are background or these tiles if (bg_scan != null) { for (int i = 0; i < known_tiles.length; i++) { known_tiles[i] |= bg_scan.selected[i]; } } // set combo disparity from last prepared for (int nt = 0; nt < known_tiles.length; nt++){ int ty = nt / tilesX; Loading @@ -1136,7 +1138,7 @@ public class TileProcessor { debugLevel); // final int debugLevel) } if (!grow_retry_inf){ if (!grow_retry_inf && (bg_scan == null)){ for (int i = 0; i < untested_bgnd.length; i++) if (bg_scan.selected[i]) untested_bgnd[i] = false; } // turn these tiles as if they are not known (really known or belong to bgnd) Loading Loading @@ -1333,7 +1335,7 @@ public class TileProcessor { dbg_img[0][i] = scan.max_tried_disparity[ty][tx]; dbg_img[2][i] = scan.disparity[ty][tx]; dbg_img[3][i] = strength[i]; dbg_img[4][i] = ((bg_scan.selected != null) && (bg_scan.selected[i]))? boolean_val:0.0 ; if (bg_scan != null) dbg_img[4][i] = ((bg_scan.selected != null) && (bg_scan.selected[i]))? boolean_val:0.0 ; dbg_img[5][i] = ((last_scan.selected != null) && (last_scan.selected[i]))? boolean_val:0.0 ; dbg_img[6][i] = 0.05 * (dbg_img[4][i] + dbg_img[5][i]); dbg_img[7][i] = (scan.selected[i]?4:0)+ (scan.border_tiles[i]?8:0); Loading