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.
Jan Motl (2020). Straighten image (https://www.mathworks.com/matlabcentral/fileexchange/40239-straighten-image), MATLAB Central File Exchange. Retrieved .
Improved text description. Added blob detection.
Added Fast Fourier Transform.