Search code examples
image-processingmachine-learningphotography

Is it possible to detect blur, exposure, orientation of an image programmatically?


I need to sort a huge number of photos, and remove the blurry images (due to camera shake), the over/under exposed ones and detect whether the image was shot in the landscape or portrait orientation. Can these things be done on an image using an image processing library or are they still beyond the realms of an algorithmic solution ?


Solution

  • Let's look at your question as three separate question.

    Can I find blurry images?

    There are some methods for finding blurry images either from :

    1. Sharpening an image and comparing it to the original
    2. Using wavelets to detect blurring ( Link1 )
    3. Hough Transform ( Link )

    Can I find images that are under or over exposed?

    The only way I can think of this is that your overall brightness is either really high or really low. But the problem is that you would have know if the picture was taken at night or day. You could create a histogram of your image and see if it is really skewed one way or the other and that might be some indication of over/under exposure.

    Can I determine the orientation of the image?

    There are techniques that have been used such as SVM, Color Moments, Edge Direction Histograms, Bayesian Framework using cues.