public void testSingleFile() throws IOException { CEDD c = new CEDD(); BufferedImage img = ImageIO.read(new File("C:\\Java\\Projects\\LireSVN\\testdata\\wang-1000\\652.jpg")); c.extract(img); String s = Arrays.toString(c.getDoubleHistogram()); System.out.println("s = " + s); byte[] b = c.getByteArrayRepresentation(); CEDD d = new CEDD(); d.setByteArrayRepresentation(b); System.out.println(d.getDistance(c)); }
public void testSerialization() throws IOException { int bytes = 0; int sum = 0; ArrayList<File> files = FileUtils.getAllImageFiles(new File("testdata/ferrari"), true); for (Iterator<File> iterator = files.iterator(); iterator.hasNext(); ) { File next = iterator.next(); BufferedImage image = ImageIO.read(next); CEDD f1 = new CEDD(); CEDD f2 = new CEDD(); f1.extract(image); // System.out.println(Arrays.toString(f1.getDoubleHistogram())); bytes += f1.getByteArrayRepresentation().length; sum += 144 / 2; f2.setByteArrayRepresentation(f1.getByteArrayRepresentation()); // System.out.println(Arrays.toString(f2.getDoubleHistogram())); double[] h = f2.getDoubleHistogram(); int pos = -1; for (int i = 0; i < h.length; i++) { double v = h[i]; if (pos == -1) { if (v == 0) pos = i; } else if (pos > -1) { if (v != 0) pos = -1; } } System.out.println("save = " + (144 - pos)); // bytes += (168 - pos); assertTrue(f2.getDistance(f1) == 0); boolean isSame = true; // for (int i = 0; i < f2.getFieldName().length; i++) { // if (f1.data[i] != f2.data[i]) isSame = false; // } assertTrue(isSame); } double save = 1d - (double) bytes / (double) sum; System.out.println(save * 100 + "% saved"); }