The function is useful for automatic image straightening.
Three different approaches how to find the image orientation were implemented: Fourier transform, Hough transform and region properties.
The principle of using Fourier transformation for orientation detection is well described at: http://homepages.inf.ed.ac.uk/rbf/HIPR2/fourier.htm
Hough transformation finds lines in the picture. The description of Hough transformation is at: http://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm
In a similar problem, horizon detection, only the longest line determines the image orientation: http://www.ijceronline.com/papers/Vol3_issue3/AK03202260233.pdf
However, in text orientation detection it is beneficial to consider all lines' direction to improve signal-to-noise ratio. This late approach is implemented.
Finally region properties binarizes the image and then uses REGIONPROPS from Image Processing Toolbox to calculate blob's orientation.