1. A method for image processing on a computing device, said method comprising: (a) labeling edge pixels of a model image using an edge based technique, where said model image includes a plurality of spatial regions each of which comprising at least one pixel, where said plurality of spatial regions are arranged in a manner from more discriminative of features of said model image to less discriminative of features of said model image; (b) specifying an angular orientation for each of said edge pixels of said model image for each of said spatial regions; (c) labeling edge pixels of an input image using an edge based technique; (d) specifying an angular orientation for each of said edge pixels of said input image; (e) indexing each of said angular orientations for each of said edge pixels of said input image into a feature index identifying its respective location; (f) determining candidate locations of an object within said input image based on said feature index and said angular orientation for each of said edge pixels of a first one of said spatial regions of said model image; (g) repeating step (f) for another one of said spatial regions of said model image until at least one of: (i) a candidate location is identified with a sufficiently strong match; (ii) a sufficient number of candidate locations are determined to have a sufficiently weak match; (iii) a predetermined time period has elapsed for determining candidate locations.