[image-processing] Is there a way to detect if an image is blurry?

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 :-).