1. A method for providing classification and segmentation of an image on a computer system comprising: receiving with a first receiving module on the computer system a two dimensional image having an array of pixels; receiving a plurality of models with a second receiving module on the computer system, each model having features suitable for classifying each pixel of the image into a respective one of a plurality of categories, wherein each category corresponds to a respective model; providing a score for each pixel in the image for each category using a classifier module on the computer system, wherein each score for a respective pixel indicates a correspondence of the respective pixel to one of the plurality of categories; converting each score for each pixel into a probability for each pixel for each category using a conversion module on the computer system, wherein converting each score for each pixel into a probability comprises computing a hyperbolic tangent for each score, adding 1 to the hyperbolic tangent, and dividing by 2; segmenting the image into image segments using a segmenter module on the computer system, wherein each image segment is a contiguous set of pixels having at least one common feature; summing for each image segment the probabilities for each pixel in a respective category in a respective image segment to obtain a sum for each image segment for each category using a summing module on the computer system; dividing each sum by a number of pixels in the respective image segment using a dividing module on the computer system to obtain for each image segment a set of average probabilities, wherein each average probability corresponds to a respective category; determining for each image segment a most likely category to which the image segment belongs using a determining module on the computer system by determining the maximum average probability out of the set of average probabilities for the image segment; labeling using a labeling module on the computer system each image segment as being the category corresponding to the most likely category to form a labeled segment image; identifying any empty areas as incorrect holes in the labeled segment image using an identifying module on the computer system; and filling any empty areas that are identified as incorrect holes using a reconstruction module on the computer system.