1. A character-recognition method for discriminating between a plurality of character classes, the method comprising: using a processor, defining a plurality of irregularly sized and positioned sub-regions within an image region of specified image dimensions; for each of the plurality of character classes, determining a discriminative feature space by computing, for each of a plurality of training images within a set of training images having the specified image dimensions and being associated with the character class, mid-level features for all of the sub-regions; computing feature weights for the mid-level features using a machine-learning algorithm applied to the set of training images; ranking the mid-level features based on the weights; and selecting a number of top-ranked features for inclusion in the discriminative feature space; and creating a combined feature space from the discriminative feature spaces for all of the character classes.