Commit b771650e authored by Andrey Filippov's avatar Andrey Filippov
Browse files

testing/bug fixing

parent 046d8eb3
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -5,3 +5,4 @@
*.backup
NC393I
attic
*.log
 No newline at end of file
+77 −5
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@ import java.util.concurrent.atomic.AtomicInteger;
public class CLTPass3d{
		public   double [][]    disparity; // per-tile disparity set for the pass[tileY][tileX] 
		public   int    [][]    tile_op;   // what was done in the current pass
		private  double [][]    disparity_sav; // saved disaprity 
		private  int    [][]    tile_op_sav;   // saved tile_op
		public   double [][]    disparity_map =  null; // add 4 layers - worst difference for the port
		double []               calc_disparity = null; // composite disparity, calculated from "disparity", and "disparity_map" fields
		                                       // using horizontal features and corr_magic_scale
@@ -55,7 +57,7 @@ public class CLTPass3d{
		public  boolean         is_combo =             false;
		public  boolean         is_measured =          false;
		public  String          texture = null; // relative (to x3d) path
		public  Rectangle       bounds;
		public  Rectangle       texture_bounds;
		public  int             dbg_index;
		public  int             disparity_index = ImageDtt.DISPARITY_INDEX_CM; // may also be ImageDtt.DISPARITY_INDEX_POLY
		
@@ -133,6 +135,9 @@ public class CLTPass3d{
				return "null-texture-name";
			}
		}
		
		
		// Will not work if texture is disabled
		public  void            updateSelection(){ // add updating border tiles?
			int tilesX = tileProcessor.getTilesX();
			int tilesY = tileProcessor.getTilesY();
@@ -149,7 +154,11 @@ public class CLTPass3d{
					selected[ty * tilesX + tx] = false; // may be omitted 
				}
			}
			bounds = new Rectangle(minX, minY, maxX - minX +1, maxY - minY +1 );
			texture_bounds = new Rectangle(minX, minY, maxX - minX +1, maxY - minY +1 );
		}
		
		public  Rectangle  getTextureBounds(){
			return texture_bounds;
		}
		
		public boolean isProcessed(){
@@ -219,6 +228,10 @@ public class CLTPass3d{
		public void setSelected (boolean [] selected) {
			this.selected = selected;
		}
		public void setBorderTiles (boolean [] border_tiles) {
			this.border_tiles = border_tiles;
		}

		
		public void fixNaNDisparity()
		{
@@ -648,6 +661,65 @@ public class CLTPass3d{
			return measured;
		}
		
		public void saveTileOpDisparity()
		{
			disparity_sav =disparity.clone();
			for (int i = 0; i < disparity.length; i++ ) if (disparity[i]!= null) disparity_sav[i] = disparity[i].clone();
			tile_op_sav =tile_op.clone();
			for (int i = 0; i < tile_op.length; i++ ) if (tile_op[i]!= null) tile_op_sav[i] = tile_op[i].clone();
		}
		public void restoreTileOpDisparity()
		{
			disparity = disparity_sav;
			tile_op = tile_op_sav;
		}
		public void restoreKeepTileOpDisparity()
		{
			restoreTileOpDisparity();
			saveTileOpDisparity();
		}
		
		public int setTileOpDisparity(
				boolean [] selection,
				double []  disparity)
		{
			int op = ImageDtt.setImgMask(0, 0xf);
			op =     ImageDtt.setPairMask(op,0xf);
			op =     ImageDtt.setForcedDisparity(op,true);
			return setTileOpDisparity(
					op,         // int        tile_op,
					selection,  // boolean [] selection,
					disparity); // double []  disparity)
		}
		public int setTileOpDisparity(
				int        tile_op,
				boolean [] selection,
				double []  disparity)
		{
			final int tilesX = tileProcessor.getTilesX();
			final int tilesY = tileProcessor.getTilesY();
			this.disparity =   new double [tilesY][tilesX];
			this.tile_op =     new int [tilesY][tilesX];
			int num_op_tiles = 0;

			for (int ty = 0; ty < tilesY; ty++) for (int tx = 0; tx <tilesX; tx++){
				int indx =  tilesX * ty + tx;
				if (this.selected[indx]) {
					this.disparity[ty][tx] = disparity[indx];
					this.tile_op[ty][tx] = tile_op;
					num_op_tiles ++;
				} else {
					this.disparity[ty][tx] = 0.0;
					this.tile_op[ty][tx] = 0;
				}
			}
			return num_op_tiles;
		}
		
		
		
		
		
		
		public double [] getSecondMaxDiff (
				final boolean averaged)
+671 −89

File changed.

Preview size limit exceeded, changes collapsed.

+207 −10

File changed.

Preview size limit exceeded, changes collapsed.

+6 −2
Original line number Diff line number Diff line
@@ -1002,7 +1002,8 @@ public class ImageDtt {
			final int                 transform_size,
			final int                 window_type,
			final double [][]         shiftXY, // [port]{shiftX,shiftY}
			final double [][][]       fine_corr, // quadratic cofficients for fine correction (or null)
			final double              disparity_corr, // disparity at infinity
			final double [][][]       fine_corr, // quadratic coefficients for fine correction (or null)
			final double              corr_magic_scale, // still not understood coefficient that reduces reported disparity value.  Seems to be around 0.85  
			final double              shiftX, // shift image horizontally (positive - right) - just for testing
			final double              shiftY, // shift image vertically (positive - down)
@@ -1030,6 +1031,9 @@ public class ImageDtt {
		final int corr_size = transform_size * 2 -1;
		final int [][] transpose_indices = new int [corr_size*(corr_size-1)/2][2];
		int indx = 0;
		if (disparity_corr != 0.0){
			System.out.println(String.format("Using manual infinity disparity correction of %8.5f pixels",disparity_corr));
		}
		for (int i =0; i < corr_size-1; i++){
			for (int j = i+1; j < corr_size; j++){
				transpose_indices[indx  ][0] = i * corr_size + j;
@@ -1183,7 +1187,7 @@ public class ImageDtt {
							double [][] centersXY = geometryCorrection.getPortsCoordinates(
									centerX,
									centerY,
									disparity_array[tileY][tileX]);
									disparity_array[tileY][tileX] + disparity_corr);
							if ((globalDebugLevel > 0) && (tileX == debug_tileX) && (tileY == debug_tileY)) {
								for (int i = 0; i < quad; i++) {
									System.out.println("clt_aberrations_quad_corr(): color="+chn+", tileX="+tileX+", tileY="+tileY+
Loading