Anyone know of an algorithm that can return fuzzy true/false to if a image has motion blur / camera shake in a image?
Ideally it would be particular to motion blur, as lots of the images in the set might have blurred (Bokeh) backgrounds.
A language preference would be C, Perl, Shell Utility, or Python, but I'm open to anything really.
With my current knowledge of Math / Programming, I don't think I really have a hope of writing such an algorithm, only using one that takes some parameters...
Thus, given an image, we can determine whether it is blurred by motion, by detecting areas where there is smoothness in one main direction and more significant difference of values in the vertical direction. If we found that motion blur, we can compute its direction of motion relatively to the camera.
You create the blur with a slow shutter speed. The slower your shutter speed (sometimes called a long shutter speed), the more light gets to your camera sensor. Because your shutter is open longer, more visual information is captured, which can include the blur of motion.
Wiener filter is a method giving the best results when variance of the noise incorporated in blurring process is known a priori .
This method is fast, simple, and easy to apply — we simply convolve our input image with the Laplacian operator and compute the variance. If the variance falls below a predefined threshold, we mark the image as “blurry”.
The Discrete wavelet transform is a useful tool in such detection. Here is a paper from Carnegie Mellon School of Computer Science on detecting and quantifying blur in images by using the DWT. For a binary decision, you threshold the amount to a desired level and everything above that has blur.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With