I m trying to get a clean edge detection using canny operator. I've found some references talking about supervised Learning of edges. I don't know if it can be applied to bone detection in MRI.
Whether you need contrast enhancement really depends the quality of your images. I have got away without doing any enhancement in some MR images.
I think you might want to normalize the image intensities though. Otherwise you may have to retune your edge detection parameters each time for a new image, especially if they are acquired using different machines.