diff --git a/src/main/java/com/cringe_studios/christmastreescanning/Homograph4.java b/src/main/java/com/cringe_studios/christmastreescanning/Homograph4.java index 1ed1318..e17374e 100644 --- a/src/main/java/com/cringe_studios/christmastreescanning/Homograph4.java +++ b/src/main/java/com/cringe_studios/christmastreescanning/Homograph4.java @@ -15,16 +15,31 @@ public class Homograph4 implements Homograph{ Point2D[] flippedBehindSide = new Point2D[frontSidePoints.length]; Point2D[] flippedLeftSide = new Point2D[frontSidePoints.length]; + System.out.println("Homograph:"); + for(int i = 0; i < frontSidePoints.length; i++) { // the x coordinate goes from -1 to 1 after normalization + + System.out.println("f " + frontSidePoints[i].toString()); + System.out.println("r " + rightSidePoints[i].toString()); + flippedBehindSide[i] = new Point2D.Double(behindSidePoints[i].getX() * -1.0, behindSidePoints[i].getY()); + System.out.println("b " + behindSidePoints[i].toString() + " to " + flippedBehindSide[i].toString()); flippedLeftSide[i] = new Point2D.Double(leftSidePoints[i].getX() * -1.0, leftSidePoints[i].getY()); + System.out.println("l " + leftSidePoints[i].toString() + " to " + flippedLeftSide[i].toString()); + + } for(int i = 0; i < frontSidePoints.length; i++) { Point2D interpolatedFrontBehind = new PointInterpolator(frontSidePoints[i], flippedBehindSide[i]).getCenter(); - Point2D interpolatedRightLeft = new PointInterpolator(rightSidePoints[i], leftSidePoints[i]).getCenter(); + Point2D interpolatedRightLeft = new PointInterpolator(rightSidePoints[i], flippedLeftSide[i]).getCenter(); + + System.out.println("fb " + frontSidePoints[i].toString() + " + " + flippedBehindSide[i].toString() + " to " + interpolatedFrontBehind.toString()); + System.out.println("rl " + rightSidePoints[i].toString() + " + " + leftSidePoints[i].toString() + " to " + interpolatedRightLeft.toString()); + + mergedFrontBack[i] = interpolatedFrontBehind; mergedRightLeft[i] = interpolatedRightLeft; diff --git a/src/test/java/com/cringe_studios/cristmastreescanning/ExampleTest.java b/src/test/java/com/cringe_studios/cristmastreescanning/ExampleTest.java index 5e12e8e..ab2c7a9 100644 --- a/src/test/java/com/cringe_studios/cristmastreescanning/ExampleTest.java +++ b/src/test/java/com/cringe_studios/cristmastreescanning/ExampleTest.java @@ -16,6 +16,7 @@ import javax.imageio.ImageIO; import org.junit.jupiter.api.Test; +import com.cringe_studios.christmastreescanning.FourSidedScanner; import com.cringe_studios.christmastreescanning.Homograph; import com.cringe_studios.christmastreescanning.Point3D; import com.cringe_studios.christmastreescanning.Scanner; @@ -32,6 +33,7 @@ public class ExampleTest { @Test public void scannerTest() { + System.out.println("ScannerTest1:"); try { BufferedImage LED1Front = ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest1_LED1_front.png")); BufferedImage LED2Front = ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest1_LED2_front.png")); @@ -102,6 +104,96 @@ public class ExampleTest { } catch (IOException e) { e.printStackTrace(); } + System.out.println("-----EndOf ScannerTest1"); + System.out.println(); + } + + @Test + public void scannerTest2() { + System.out.println("ScannerTest2:"); + try { + BufferedImage LED1Front = ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest1_LED1_front.png")); + BufferedImage LED2Front = ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest1_LED2_front.png")); + BufferedImage LED3Front = ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest1_LED3_front.png")); + BufferedImage LED1Right = ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest1_LED1_right.png")); + BufferedImage LED2Right = ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest1_LED2_right.png")); + BufferedImage LED3Right = ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest1_LED3_right.png")); + + BufferedImage LED1Behind= ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest2_LED1_back.png")); + BufferedImage LED2Behind= ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest2_LED2_back.png")); + BufferedImage LED3Behind= ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest2_LED3_back.png")); + BufferedImage LED1Left = ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest2_LED1_left.png")); + BufferedImage LED2Left = ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest2_LED2_left.png")); + BufferedImage LED3Left = ImageIO.read(ExampleTest.class.getResourceAsStream("/ScannerTest2_LED3_left.png")); + + Scanner scanner = new FourSidedScanner(new BufferedImage[] {LED1Front, LED2Front, LED3Front}, + new BufferedImage[] {LED1Right, LED2Right, LED3Right}, + new BufferedImage[] {LED1Behind, LED2Behind, LED3Behind}, + new BufferedImage[] {LED1Left, LED2Left, LED3Left}); + scanner.setGammaDelta((byte)(0.1 * 255)); + Homograph homo = scanner.scan(); + homo.merge(); + homo.renormalize(); + Point3D points[] = homo.getPoints(); + + System.out.println(Arrays.toString(points)); + + boolean foundXMin = false; // -1 + boolean foundXMax = false; // 1 + boolean foundYMin = false; // -1 + boolean foundYMax = false; // 1 + boolean foundZMin = false; // 0 + boolean foundZMax = false; // 1 + + for(int i = 0; i < points.length; i++) { + if(Math.abs(points[i].x - (-1.0)) < 0.001) { + foundXMin = true; + } + + if(Math.abs(points[i].x - (1.0)) < 0.001) { + foundXMax = true; + } + + if(Math.abs(points[i].y - (-1.0)) < 0.001) { + foundYMin = true; + } + + if(Math.abs(points[i].y - (1.0)) < 0.001) { + foundYMax = true; + } + + if(Math.abs(points[i].z - (1.0)) < 0.001) { + foundZMax = true; + } + + if(Math.abs(points[i].z - (0.0)) < 0.001) { + foundZMin = true; + } + + } + + if(foundXMin && foundXMax && foundYMin && foundYMax && foundZMin && foundZMax) { + assertTrue(true); + }else { + System.out.println(foundXMin ); + System.out.println(foundXMax ); + System.out.println(foundYMin ); + System.out.println(foundYMax ); + System.out.println(foundZMin ); + System.out.println(foundZMax ); + + assertTrue(false); + } + + + + + } catch (IOException e) { + e.printStackTrace(); + } + + System.out.println("-----EndOf ScannerTest2"); + System.out.println(); } diff --git a/src/test/resources/ScannerTest2_LED1_back.png b/src/test/resources/ScannerTest2_LED1_back.png new file mode 100644 index 0000000..e9148bb Binary files /dev/null and b/src/test/resources/ScannerTest2_LED1_back.png differ diff --git a/src/test/resources/ScannerTest2_LED1_left.png b/src/test/resources/ScannerTest2_LED1_left.png new file mode 100644 index 0000000..2b8b538 Binary files /dev/null and b/src/test/resources/ScannerTest2_LED1_left.png differ diff --git a/src/test/resources/ScannerTest2_LED2_back.png b/src/test/resources/ScannerTest2_LED2_back.png new file mode 100644 index 0000000..bdf1acc Binary files /dev/null and b/src/test/resources/ScannerTest2_LED2_back.png differ diff --git a/src/test/resources/ScannerTest2_LED2_left.png b/src/test/resources/ScannerTest2_LED2_left.png new file mode 100644 index 0000000..0c9616f Binary files /dev/null and b/src/test/resources/ScannerTest2_LED2_left.png differ diff --git a/src/test/resources/ScannerTest2_LED3_back.png b/src/test/resources/ScannerTest2_LED3_back.png new file mode 100644 index 0000000..2698deb Binary files /dev/null and b/src/test/resources/ScannerTest2_LED3_back.png differ diff --git a/src/test/resources/ScannerTest2_LED3_left.png b/src/test/resources/ScannerTest2_LED3_left.png new file mode 100644 index 0000000..bc606f3 Binary files /dev/null and b/src/test/resources/ScannerTest2_LED3_left.png differ