1. A method of character recognition, the character having a main stroke defining a main form of the character and optional secondary strokes external to the main form of the character, the method comprising: removing one or more duplicate successive points of a plurality of points in a handwritten character to form an enhanced handwritten character; spacing the plurality of points of the enhanced handwritten character a uniform distance apart; detecting, via circuitry, one or more primary strokes corresponding to the main form of the character and one or more ancillary strokes of the enhanced handwritten character; generating a primary merged stroke from the one or more primary strokes; extracting, via the circuitry, one or more raw point-based features from local features of the primary merged stroke; extracting, via the circuitry, one or more statistical features from statistics computed over the one or more raw point-based features to form one or more primary merged stroke features; extracting, via the circuitry, one or more features from the ancillary strokes to form one or more ancillary stroke features; extracting, via the circuitry, an ingoing or outgoing chain code of a writing direction; training one or more stroke models on features of the main stroke and features of the secondary strokes and classifying data from the one or more primary merged stroke features and the one or more ancillary stroke features using the trained one or more stroke models; determining, via the circuitry, a set of main stroke candidates and a set of secondary stroke candidates from the data classified by the one or more stroke models; computing, via the circuitry, likelihood values indicative of whether respective main strokes of the set of main stroke candidates combined with respective secondary strokes from the set of secondary stroke candidates form the character; and determining, via the circuitry, the character from the likelihood values.