1. A method for image processing comprising: (a) determining edge pixels of a model image; (b) determining features for said edge pixels of said model image; (c) determining edge pixels of an input image; (d) determining features for said edge pixels of said input image; (e) matching said features of said model image with said features of said input image to determine candidate locations of an object within said input image; (f) wherein said image processing further includes at least one of: (i) pre-processing said input image based upon the content of said input image to select an input image down sampling factor, and down sampling said input image based upon said input image down sampling factor; (ii) identifying specular highlights by using a single grey level image and identifying regions of said single grey level image having both sufficiently large intensities together with sufficiently low edge strength; (iii) using an edge based technique in a manner that is locally adaptive for at least one of said determining edge pixels of said model image using an edge based technique and said determining edge pixels of said input image; (iv) refining said matching associated with said candidate locations using another matching function to select among a plurality of said candidate locations; (v) scaling said input image to a plurality of different scales for matching said model image with said input image to determine said candidate locations of said object within said input image and determining a scaling factor based upon spatial characteristics of at least one of said input image and said model image.