1. A method of segmenting a multi-dimensional image, wherein the method comprises: extracting color regions from the multi-dimensional image based on the color values of the pixels; calculating complexities of the boundary between all possible color region pairs, and merging region pairs together if a boundary complexity value of the color region pair is above a predetermined boundary complexity threshold and the color distance between the region pair is less than a predetermined distance threshold value; merging color regions together using hierarchical cluster analysis; merging color regions together using boundary analysis; determining if a color region is small and surrounded by another color region, and if that determination is true, merging the color region into the surrounding color region; and assigning region data to each color region.