Detect fingerprint/smear on lens

I use camera to take someone’s face, but sometimes our lens dirty( actually is mirror, touched by someone’s finger) so you will notice in this picture have some place is abnormally brighter, that’s the fingerprint.

I don’t need to found out where is the fingerprint, I only need to detect it.

If I use canny, there is abnormal area at hair.

But the fingerprint could appear everywhere, All I know is fingerprint would make the some place in photo, brighter? Not sure I can found some way out of it.

Use Edge detection

don’t use edge detection. a blurry smudge has no edges.

  1. take a picture of a reference background (flat white or color) with clean optics and exposure set such that it’s not overexposed. your picture’s white background is overexposed and the smudge can’t be seen there.
  2. compare (pixel-wise) against picture with smudged optics.