1. A computer-readable storage medium, excluding signals per se, comprising instructions stored thereon that, responsive to execution on one or more computers, causes the one or more computers to perform operations comprising: displaying an image on a computer display, the displayed image corresponds to image data; receiving input via application of one or more tools applied to a specified portion of the displayed image as specified by a user, the input specifying one or more depth constraints for at least the specified portion of the image to set a curvature that specifies a relationship between depth values of pixels in the specified portion with respect to depth values of neighboring pixels, a target curvature corresponding to each pixel determined by a linear system of equations, each equation including weights specifying the amount of depth diffusion between neighboring pixels multiplied by the difference in depth between the pixel and a neighbor pixel, the linear system of equations including an equation for each neighbor pixel in the pixel's neighborhood; automatically determining a depth map for the image data subject to the target curvature of each pixel and the one or more depth constraints; and displaying a representation of the depth map on the computer display.