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