@Test public void addAll_queue() { GrowQueue_F32 queue0 = new GrowQueue_F32(2); GrowQueue_F32 queue1 = new GrowQueue_F32(3); queue0.add(1); queue0.add(2); queue1.add(3); queue1.add(4); queue1.add(5); assertEquals(2,queue0.size); queue0.addAll(queue1); assertEquals(5,queue0.size); for( int i = 0; i < queue0.size; i++ ) { assertEquals(queue0.get(i),i+1,1e-5); } queue0.reset(); queue0.addAll(queue1); assertEquals(3,queue0.size); for( int i = 0; i < queue0.size; i++ ) { assertEquals(queue0.get(i),i+3,1e-5); } }
@Test public void addAll_array() { GrowQueue_F32 queue0 = new GrowQueue_F32(2); float[] array = new float[]{3,4,5}; queue0.add(1); queue0.add(2); assertEquals(2,queue0.size); queue0.addAll(array,0,3); assertEquals(5,queue0.size); for( int i = 0; i < queue0.size; i++ ) { assertEquals(queue0.get(i),i+1,1e-4f); } queue0.reset(); queue0.addAll(array,1,3); assertEquals(2,queue0.size); for( int i = 0; i < queue0.size; i++ ) { assertEquals(queue0.get(i),i+4,1e-4f); } }
private void process(GrayF32 disparity , BufferedImage color ) { for( int pixelY = 0; pixelY < disparity.height; pixelY++ ) { int index = disparity.startIndex + disparity.stride*pixelY; for( int pixelX = 0; pixelX < disparity.width; pixelX++ ) { float value = disparity.data[index++]; // invalid disparity if( value >= rangeDisparity ) continue; value += minDisparity; // The point lies at infinity. if( value == 0 ) continue; p.z = baseline*focalLengthX/value; p.x = p.z*(pixelX - centerX)/focalLengthX; p.y = p.z*(pixelY - centerY)/focalLengthY; // Bring it back into left camera frame GeometryMath_F32.multTran(rectifiedR,p,p); cloudRgb.add(getColor(disparity, color, pixelX, pixelY)); cloudXyz.add(p.x); cloudXyz.add(p.y); cloudXyz.add(p.z); } } }
private void process(GrayU8 disparity , BufferedImage color ) { for( int pixelY = 0; pixelY < disparity.height; pixelY++ ) { int index = disparity.startIndex + disparity.stride*pixelY; for( int pixelX = 0; pixelX < disparity.width; pixelX++ ) { int value = disparity.data[index++] & 0xFF; if( value >= rangeDisparity ) continue; value += minDisparity; // The point lies at infinity. if( value == 0 ) continue; // Note that this will be in the rectified left camera's reference frame. // An additional rotation is needed to put it into the original left camera frame. p.z = baseline*focalLengthX/value; p.x = p.z*(pixelX - centerX)/focalLengthX; p.y = p.z*(pixelY - centerY)/focalLengthY; // Bring it back into left camera frame GeometryMath_F32.multTran(rectifiedR,p,p); cloudRgb.add(getColor(disparity, color, pixelX, pixelY)); cloudXyz.add(p.x); cloudXyz.add(p.y); cloudXyz.add(p.z); } } }
@Test public void getFraction() { GrowQueue_F32 alg = new GrowQueue_F32(20); for (int i = 0; i < 20; i++) { alg.add(i); } assertEquals(0,alg.getFraction(0.0), UtilEjml.TEST_F32); assertEquals(0,alg.getFraction(0.02), UtilEjml.TEST_F32); assertEquals(0,alg.getFraction(0.03), UtilEjml.TEST_F32); assertEquals(1,alg.getFraction(1.0/19.0), UtilEjml.TEST_F32); assertEquals(1,alg.getFraction(1.7/19.0), UtilEjml.TEST_F32); assertEquals(19/2,alg.getFraction(0.5), UtilEjml.TEST_F32); assertEquals(19,alg.getFraction(1.0), UtilEjml.TEST_F32); }