1. A method for image enhancement comprising: inputting image data comprising a plurality of pixel values; using a computer to perform the steps of calculating image gradient vectors for every image pixel value; defining a structure tensor for a 2D neighborhood by calculating. for each image pixel, a Cartesian product of each gradient vector with itself; computing eigenvectors for the structure tensor; identifying an anisotropic region as a region where the eigenvectors are approximately equal; identifying an isotropic region as a region where the eigenvectors are not approximately equal; filtering the anisotropic region of the image data for edge enhancement; suppressing the isotropic region of the image data for noise reduction; assembling an enhanced gradient field from the filtered anisotropic region and suppressed isotropic region gradients; and optimizing the assembled gradient field into a restored image.