1. A computer-implemented method, comprising: accessing a blurred image; defining a size for each of a plurality of regions in the blurred image; determining metrics for at least two of the plurality of regions, the metrics being based on a number of edge orientations within each region, a gradient magnitude of pixels within the region, and a weight associated with the pixels within the region; selecting a region from the plurality of regions based on the determined metrics; based on the selected region, estimating a blur kernel for deblurring the blurred image; and deblurring the blurred image using the blur kernel to produce a deblurred image.