1. A method for filtering noise from a medical image, comprising: a memory device storing a program; a processor in communication with the memory device, the processor operative with the program to: generate a weighted graph representing the medical image; selecting a subset of nodes from a plurality of nodes in the weighted graph, wherein each node in the subset of nodes is designated to retain its original grayscale values; viewing the subset of nodes as a set of Dirichlet boundary points; solving a combinatorial, anisotropic Dirichlet boundary value problem for each node of the plurality of nodes using the set of Dirichlet boundary points, except for the subset of nodes, to provide an interpolated grayscale value thereof; and forming a filtered version of the medical image by replacing an original grayscale value of each of the plurality of nodes with its corresponding interpolated grayscale value, and keeping the original grayscale value of each node in the subset of nodes.