marcelosalloum
marcelosalloum

Reputation: 3531

Focus Detection using OpenCV

I am trying to identify which parts of a picture are in focus and which are blurred, something like this: Focus Detection

But HOW to do that? Any ideas on how to mesure this? I've read something about finding the high frequencies but how could it produce a picture like those?

Cheers,

Upvotes: 8

Views: 15804

Answers (2)

krenerd
krenerd

Reputation: 791

Check out this paper for more precision over the Laplace filter. In my problem with 4K images, the Laplace filter was insufficient for detecting blurs and out-of-focus regions.

https://github.com/facebookresearch/DeepFocus

edit: Blur detection with deep learning has a number of approaches. Choose the method that best suits your needs:)

Upvotes: 2

Boyko Perfanov
Boyko Perfanov

Reputation: 3047

Any image will be the sharpest at its optimum focus. Take advantage of that - run the Sobel operator or the Laplace operator, any kind of difference(derivative) filter. Sum the results pixel by pixel, the image with the highest sum is the best focused one.

Edit: There will be additional constraints depending on how much additional information you have, e.g. multiple samples, similarity of objects in the image, etc.

Upvotes: 10

Related Questions