In the attached .zip folder you the main, self-contained function titled RelaxLabel2D which performs nonlinear relaxation labeling of 2D monochromatic and multispectral images. Also included are three demo files:
RelaxLabel2D_demo1: Provides an example on how to regularize binary images corrupted by spurious noise artifacts.
RelaxLabel2D_demo2: Shows how to segment color images using k-means clustering and then regularize the result by probabilistic relaxation. This demo uses my own implementation of bisecting k-means, which can provide robust and consistent initialization of cluster centroids.
RelaxLabel2D_demo3: Shows how to segment grayscale images into background and foreground regions with the help of probabilistic relaxation.
 Eklundh, J.O., Yamamoto, H., Rosenfeld, A. (1980) 'A relaxation method for multispectral pixel classification', IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. PAMI-2, pp.72-75.
 Kittler, J., Illingworth, J. (1985) 'Relaxation labelling algorithms a review', Image and Vision Computing, Vol.3, pp.206-216.
 Peleg, S., Rosenfeld, A. (1978) 'Determining compatibility coefficients for curve enhancement relaxation processes', IEEE Transactions on Systems, Man, and Cybernetics, Vol. SMC-8, pp.548-555.