The results you showed looked pretty good so I don't see what's wrong. Please attach an image where the results are not so ideal.
I'm not sure what "the outcome is rarely as good as on the image" means. Please explain.
If you just don't like the image being so blurred, then display the lines over the original image, not the blurred image.
If you don't want huge blurring, make sure you're just blurring vertically and not horizontally. You could also take a look at some other denoising routines that are better, like medfilt2(), non-local means, k-SVD, UINTA, K-LLD, and BM3D (which is often regarded as the best).
To accentuate and find the ridge/valley lines, you could try anisotropic diffusion (my demo attached), or a Frangi or Hessian filter (see the File Exchange for submissions).