package april.tag; /** Tag family with 28 distinct codes. bits: 16, minimum hamming: 5 Max bits corrected False positive rate 0 0.04272461 % 1 0.72631836 % 2 5.85327148 % Generation time: 0.206000 s Hamming distance between pairs of codes (accounting for rotation): 0 0 1 0 2 0 3 0 4 0 5 107 6 155 7 76 8 26 9 12 10 2 11 0 12 0 13 0 14 0 15 0 16 0 **/ public class TagStandard16h5 extends TagFamily { private static class ConstructCodes0 { private static long[] constructCodes() { return new long[] { 0x9765L, 0x9d2aL, 0xa2efL, 0xa8b4L, 0xd117L, 0xf3b5L, 0x2d67L, 0x447bL, 0x55caL, 0xa690L, 0xb21aL, 0x142fL, 0x5d0cL, 0xed49L, 0x2136L, 0x7cdfL, 0x435cL, 0x86a3L, 0xac3bL, 0x64c1L, 0xd8fbL, 0x5224L, 0x379eL, 0xfef1L, 0x6fceL, 0x5ee8L, 0xb274L, 0x9b85L }; } } private static long[] constructCodes() { long[] codes = new long[28]; System.arraycopy(ConstructCodes0.constructCodes(), 0, codes, 0, 28); return codes; } public TagStandard16h5() { super(ImageLayout.Factory.createFromString("Standard", "ddddddbbbddbwbddbbbdddddd"), 5, constructCodes()); } }