My goal is to
superimpose contours lines or contour plots on distance transformed image.

My goal is to
superimpose contours lines or contour plots on distance transformed image.

If you use a DistanceFunction where a complete contour always falls on the pixels, like ManhattenDistance you can directly work on the image. The approach is pretty simple, calculate the distance transform
horse = Import["https://i.stack.imgur.com/KCfWy.png"];
dist = DistanceTransform[horse, DistanceFunction -> ManhattanDistance];
And then you set all distances to 1 which have a certain remainder. So if I want to have the contours for distances 1,5,9,... you use
lines = Map[Boole[Mod[#, 4] == 1] &, Round@ImageData[dist], {2} ] // Image

Superimposing is then as easy as laying the images over another, or using different color channels:
ColorCombine[{lines, dist // ImageAdjust, dist // ImageAdjust}]

The big advantage of this method is that you don't need to trace the contour which makes is as fast as an eye-blink. The disadvantage is that it does not work for the natural EuclideanDistance.
Your image is taken from DistanceTransform documentation page.

pic2 = ListContourPlot[ImageData[pic, DataReversed -> True],
ContourShading -> None, Frame -> False, ContourStyle -> Yellow];
Show[ pic, pic2]

DistanceTransform[]has a few glitches, but it basically does what you want. What else do you want? – Dr. belisarius Feb 19 '14 at 16:38