0
votes

I'm making a project using MATLAB (2011) which gives the user the possibility to filter an gray-scale image (with convolution but without looking for edges). I know for edges there is the [edge] function, and I know that for some operators (like sobel) you can use [fspecial] to get the matrix.

I found a matrix (or more than one) corresponding to every operator I need: sobel, roberts, robinson, Laplacian, etc...

Then I apply the filter this way:

Result_image = conv2(Original_image, matrix_filter);

But I can't find one for Canny operator...

I read that canny is implemented in varius steps starting from applying Laplacian operator ..but then? What are the following steps? And how can I get the matrix to apply to the image?

I'm looking for the matrix,or a way to get it or at least one example to understand the "multi-step procedure".

I found a page telling the steps to get the the edge operator implementation. What are the steps for just filtering? (derivate X, derivate Y, Gradient , non-maximum suppression, hysteresis). The page is Canny Edge Detector (by Mikel Rodriguez).

1
do you have access to the Image Processing toolbox ? canny detector is available in there.Joel Falcou
Do you refer to the function edge('canny') or what else? The point is I can't apply edge (because it is asked to just filter the gray-scale image,not filter it)dragonmnl
@JoelFalcou I appreciate your answer but unfortunately I have to apply the filter without getting edges (I know it's strange..but this is what my project asks). I found a page telling the steps to get the the edge operator implementation. May you tell me what are the steps for just filtering? (derivate X , derivate Y , Gradient , Non maximum suppression , Hysteresis). The page is: cs.ucf.edu/~mikel/Research/Edge_Detection.htmdragonmnl
oh ok, indeed very strange. Unfortunately, contrary to other method where you can ask subresult, canny don't :/Joel Falcou

1 Answers

1
votes

As you point out, Canny Edge Detector is an algorithm not a filter. This means that you are not able to have a "Canny" filter.

Let's see the steps involved in the algorithm (Wikipedia or OpenCV implementation):

  1. Gaussian filtering (using a Gaussian filter)
  2. Gradient of the image (using some other edge filter e.g. Sobel filter)
  3. Non-maximum supression (no filter involved)
  4. Thresholding (no filter involved)

As you see, there is no Canny filter nowhere, so I am afraid that you cannot get such filter.