# How to do edge detection using Curvelet transform?

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.

• Why do you want to use curvelet thresholding? How are your edges? What did you find on the topic already? Commented Jan 7, 2016 at 7:17
• I wanted to perform weak edge detection. As curvelet transform gives us edges, as per my understanding it can detect different different edges at different scale.I don't want to use morphological edge detector like Sobel,Canny etc. Commented Jan 7, 2016 at 13:51

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".

• Hi Laurent,[dl.acm.org/citation.cfm?id=1716194] as mentioned in this paper, they have used curvelet thresholding for edge detection. But they reconstructed edge maps using only curvelet coefficients.In the link provided by you, they have used Canny edge detector,which I don't want to use as it increase number of parameter. I wanted to tune only thresholding of curvelet coefficients. But,I am unable to get only edged out of it. Commented Jan 8, 2016 at 5:36
• Can you tell us hoow you have tuned the thresholding so far? Commented Mar 8, 2016 at 12:09
• I have first apply Curvelet transform on a given image and then found out norm of each coefficient using 'Monte carlo' simulations. After that, I have used hard thresholding to remove low frequency components and then applied inverse Curvelet transform. There are three parameters to tune:first is scale-to change at which scale I have to find curves,second is real/complex-to get either real or complex Curvelet coefficients and last sigma-for setting thresholding. Commented Mar 10, 2016 at 12:38