1. A method comprising: receiving a roof image; determining if roof features satisfy a predetermined edge threshold, wherein in an instance in which the roof image does not satisfy the predetermined edge threshold a mean shift is applied to the roof image; determining, using a processor, a segmentation of the roof image based on cutting lines associated with the roof features; and classifying roof segments based on the roof features within the roof segment, wherein the classifying of the roof segments is based on the roof features correlation to a roof type pattern.