## Issue

I was wondering if there is a way to determine if an image is blurry or not by analyzing the image data.

## Solution

Yes, it is. Compute the Fast Fourier Transform and analyse the result. The Fourier transform tells you which frequencies are present in the image. If there is a low amount of high frequencies, then the image is blurry.

Defining the terms ‘low’ and ‘high’ is up to you.

**Edit**:

As stated in the comments, if you want a single float representing the *blurryness* of a given image, you have to work out a suitable metric.

nikie’s answer provide such a metric. Convolve the image with a Laplacian kernel:

```
1
1 -4 1
1
```

And use a robust maximum metric on the output to get a number which you can use for thresholding. Try to avoid smoothing too much the images before computing the Laplacian, because you will only find out that a smoothed image is indeed blurry :-).

Answered By – Simon Bergot

Answer Checked By – Dawn Plyler (AngularFixing Volunteer)