1. A method for segmenting an image comprising: storing, in a computer database, a set of image data representing a plurality of pixel locations within an image; associating a respective neighborhood with each of the plurality of pixel locations in the stored image data; identifying, by a computer, a plurality of segments within the image by iteratively performing the processes of: individually adjusting an orientation and at least one of a shape and a size of a plurality of the neighborhoods; for each pixel location and associated neighborhood, obtaining a smoothed data value for the pixel location based on data values of the other pixel locations within the associated neighborhood; and segmenting the image using the image data, the obtained smoothed data values, and the plurality of adjusted neighborhoods; and outputting, by the computer, the plurality of segments within the image identified by the iterative process.