package main; /** * @author Charles BEAUVILLE and Mike Sinsoillier *

* Where is Charlie Project */ public final class Main { public static void main(String[] args) { testGetRed(); testGrayscale(); testGetGreen(); testGetBlue(); testGetGray(); testGetRGB(); testFindBest(); testFindNBest(); pixelAbsoluteError(); testToGray(); testToRGB(); testDistanceBasedSearch(); testSimilarityBasedSearch(); testNCCPatternEqualImage(); testSimilarityPatternEqualImage(); testSimilaritySimple(); findCharlie(); } /* * Tests for Class ImageProcessing */ public static void testGetRed() { int color = 0b11110000_00001111_01010101; int ref = 0b11110000; int red = ImageProcessing.getRed(color); if (red == ref) { System.out.println("Test red passed"); } else { System.out.println("Test red failed. Returned value = " + red + " Expected value = " + ref); } } public static void testGrayscale() { System.out.println("Test Grayscale"); int[][] image = Helper.read("images/food.png"); double[][] gray = ImageProcessing.toGray(image); Helper.show(ImageProcessing.toRGB(gray), "test bw"); } public static void testGetGreen() { int color = 0b11110000_00001111_01010101; int ref = 0b00001111; int green = ImageProcessing.getGreen(color); if (green == ref) { System.out.println("Test green passed"); } else { System.out.println("Test green failed. Returned value = " + green + " Expected value = " + ref); } } public static void testGetBlue() { int color = 0b11110000_00001111_01010101; int ref = 0b01010101; int blue = ImageProcessing.getBlue(color); if (blue == ref) { System.out.println("Test blue passed"); } else { System.out.println("Test blue failed. Returned value = " + blue + " Expected value = " + ref); } } public static void testGetGray() { int color = 0b11110000_00001111_01010101; int ref = 0b01110001; double gray = ImageProcessing.getGray(color); if (Math.round(gray) == ref) { System.out.println("Test gray passed"); } else { System.out.println("Test gray failed. Returned value = " + gray + " Expected value = " + ref); } } public static void testGetRGB() { int ref = 0b11110000_00001111_01010101; int red = 0b11110000; int green = 0b00001111; int blue = 0b01010101; int RGB = ImageProcessing.getRGB(red, green, blue); if (RGB == ref) { System.out.println("Test RGB 1 passed"); } else { System.out.println("Test RGB 1 failed. Returned value = " + RGB + " Expected value = " + ref); } int rgb = ImageProcessing.getRGB(127.0); int ref2 = 0x7f7f7f; if (rgb == ref2) { System.out.println("Test RGB 2 passed"); } else { System.out.println("Test RGB 2 failed. Returned value = " + rgb + " Expected value = " + ref2); } } public static void testToGray() { System.out.println("Test toGray"); double[][] ref = new double[][] {{0b01110001}, {0b01110001},{0b01110001}}; int [][] image = new int[][] {{0b01110001_01110001_01110001}, {0b01110001_01110001_01110001},{0b01110001_01110001_01110001}}; double[][] toGray = ImageProcessing.toGray(image); for(int i=0 ; i