@Override public double[] getFeatures (Glyph glyph, int interline) { final ByteProcessor buffer = ScaledBuffer.getBuffer(glyph, interline); buffer.invert(); // 0 for background, 255 for foreground // Layout: row by row final double[] doubles = new double[length()]; int i = 0; for (int y = 0; y < ScaledBuffer.HEIGHT; y++) { for (int x = 0; x < ScaledBuffer.WIDTH; x++) { doubles[i++] = buffer.get(x, y); } } return doubles; }
/** * Test of include method, of class RunTable. */ @Test public void testInclude () { System.out.println("\n+++ include"); RunTable instance = createHorizontalInstance(); System.out.println("initial:\n" + instance.dumpOf()); ByteProcessor buffer = instance.getBuffer(); buffer.invert(); GlobalFilter filter = new GlobalFilter(buffer, 127); RunTableFactory factory = new RunTableFactory(HORIZONTAL); RunTable that = factory.createTable(filter.filteredImage()); System.out.println("inverted:\n" + that.dumpOf()); that.dumpSequences(); instance.include(that); System.out.println("full:\n" + instance.dumpOf()); instance.dumpSequences(); assertEquals(5, instance.getTotalRunCount()); }
if (background255) maxIp.invert(); ip.copyBits(maxIp, 0, 0, Blitter.COPY); ip.setBinaryThreshold();
if (background255) maxIp.invert(); ip.copyBits(maxIp, 0, 0, Blitter.COPY); ip.setBinaryThreshold();
if (background255) maxIp.invert(); ip.copyBits(maxIp, 0, 0, Blitter.COPY); ip.setBinaryThreshold();