1. An image processing method, comprising: obtaining an input image comprising pixels, each pixel having a value; determining if structure exists in the input image at one or more pixels by: applying, at each of the one or more pixels, a first test using a first number of pixels to disambiguate structure from noise, and applying, at each of the one or more pixels, a second test using a second number of pixels to disambiguate structure from noise if the first test fails; creating a direction map, the direction map having elements, the elements having a one-to-one correspondence with the pixels of the input image; identifying, based, at least in part, on the direction map, a direction of structure at one or more of the pixels at which structure was determined to exist, wherein the act of identifying comprises: identifying that no structure exists at a first set of the pixels; identifying that a corner structure exists at a second set of the pixels; and identifying a direction of structure that exists at a third set of pixels; updating elements in the direction map corresponding to each of the first set of pixels to reflect the identified no direction structure; updating elements in the direction map corresponding to each of the second set of pixels to reflect the identified corner structure; and updating elements in the direction map corresponding to each of the third set of pixels to reflect the identified direction of structure; and transforming the input image into an output image by filtering the input image according to the direction map.