1. A method for detecting a horizon in an image, said method comprising the steps of: A) blurring said image; B) dividing said image into an M×N matrix of sub-blocks S ij , for i=1 to M and J=1 to N, each said sub-block S ij having a plurality of pixels; C) coarse-extracting horizon features at a said sub-block S ij granularity level by defining an r-dimensional vector having r feature values for each of said sub-blocks S ij ; D) clustering each of said r-dimensional vectors into two clusters using said feature values; E) masking each of said sub-blocks S ij at a said sub-block S ij granularity level corresponding to said r-dimensional vectors using a binary mask according to the results of said step D); E1) selecting a sub-blocks S ij and sub-blocks S i+1, j from said step E) when sub-block S ij has a different mask value from the sub-block S i+1, j , step E1) being accomplished for i=1 to M−1 and J=1 to N; and, F) fine-extracting said horizon features at a pixel level, said fine-extracting step being accomplished only on the sub-blocks S ij from said step E1.