1. In a computing system, a computer-implemented method of parallel processing an image comprising a plurality of pixel nodes, wherein each of said plurality of pixel nodes is associated with a pixel value, and wherein at least one pixel node of said plurality of pixel nodes is labeled with one or more labels, the computer-implemented method comprising: (a) obtaining multiple labeled pixel nodes from said plurality of pixel nodes, a first pixel value and a second pixel value; (b) determining whether there is at least one unlabeled pixel node associated with a third pixel value, wherein the third pixel value is a succeeding value of the first pixel value; (c) for each unlabeled pixel node associated with the third pixel value, determining if there is at least one neighboring labeled pixel node for said unlabeled pixel node; (d) for each unlabeled pixel node associated with the third pixel value, propagating one or more labels from one or more neighboring labeled pixel nodes if said unlabeled pixel node has at least one neighboring labeled pixel node, wherein said unlabeled pixel node determines an order for propagating said one or more labels to said unlabeled pixel node; and (e) incrementing the third pixel value and repeating (b), (c) and (d) until the third pixel value reaches the second pixel value; wherein at least one of (c) and (d) is performed in parallel for two or more unlabeled pixel nodes associated with the third pixel value.