I wanted to use Curvelet thresholding for edge detection, that is first take discrete curvelet transform then choose coefficient which are for curve and then reconstruct back to get an edge map.
Please help me on how to do Curvelet thresholding.
If you decide to stick to curvelets, you can find a precise description of an edge dectection algorithm is Edge detection in microscopy images using curvelets, Tobias Gebäck and Petros Koumoutsakos, BMC Bioinformatics, 2009. The pdf is there. And you are very lucky: you can get, for free, an implementation, CurveletUtils. It provides a Matlab source code for a GUI implementing the edge detection method. I hope you can get started with that.
If you care of other multiscale transforms providing different oriented edges at different scales, you can take a look at a review paper on 2D directional wavelets (including curvelets, shearlets, contourlets, etc.). It includes morphological and non-linear wavelets.
By the way, I do not understand why you call Canny and Sobel "morphological edge detectors".