Biomedical Imaging Group STI
EPFL   Imaging Web Demonstrations
English only    BIG > Demo > SubPixel Edge Detection
Home Page
News & Events
Tutorials and Reviews
Download Algorithms
Student Projects

Your browser should
support Java 1.1
to run demo.
Java problems
Edge detection with a sub-pixel precision


  1. Description
  2. Instructions to use the applet
  3. Toolbar in the image display
  4. Choose your own image for the applet
  5. Block scheme of the algorithm
Start Demo


This demonstration compares the performances between a classical Canny edge detector and one based on an interpolation algorithm. By interpolating the image, we are able to compute directly the gradient without numerical approximated operator. We also can extend the size of the image, to increase the visibility of little details. The interpolation is performed with cubic splines, which have the advantage to have a finite impulse response, wich makes the implementation very convenient and efficient.

The cubic spline interpolation provides a good reconstruction, and, with a recursive implementation made in the spatial domain, we can have a relative fastness of response. So, by this method, we are able to obtain a really higher degree of precision with an acceptable time of computation.

Note: Even the parts of the algorithms which are identical for both detectors were differently implemented. This implies that some of the differences can be only due to those programming differences.

Instruction to use the applet

  1. Choose an input image in the list.
  2. Choose an extension rate. The red rectangle on the input image (left) shows the part of the image on which the edges will be detected.
  3. By clicking on the original image, choose the part of the image on which you want to detect the edges.
  4. Choose a sigma to smooth the image.
  5. Choose two values for the hysteresis thresholding step.
  6. With the "Step" button, you can see the different steps of both algorithms.
    With the "Run all steps" button, you obtain directly the final binary images with edges.
After having clicked the "Step" or "Run all steps" buttons, you have to Restart the applet if you want to select another part of the image or another extension rate.

Toolbar in the image display

pointer_on Get the coordinates and value of a pixel.
info_on Get the maximum, minimum and the mean value of the image.
frame Open a new window containing the image.
zoomin_on Zoom out by a factor 2. (N/A on Netscape)
zoomout_on Zoom in by a factor 2. (N/A on Netscape)
move Move the zoomed part of the image. (N/A on Netscape)


Start the applet with your image
You can upload your own image into the applet. Choose your image file and click on the button "Run".
The applet accepts GIF or JPEG 256*256 pixels image (max size 1 Mb).
Your browser does not support Java.
Block scheme of the algorithm
The two block schemes below show the differences between our algorithm and a classical Canny edge detector. We can see that the two block schemes are different only by the interpolation and the gradient stage. This shows that a good part of the original algorithm can be maintained, and that the changes to improve the quality of the edge detection aren't too important.
Block scheme of the interpolating edge detector
Block scheme of the classical edge detector