Biomedical Imaging Group STI
EPFL   Student Projects: Nicolas Pavillon
English only    BIG > Teaching > Student Projects > Nicolas Pavillon
Home Page
News & Events
Tutorials and Reviews
Download Algorithms
bullet Student projects

Edge detection with a sub-pixel precision
Nicolas Pavillon
Section of Microengineering, EPFL
Applet of demonstration

Semester Project
Februar 2005

Edge detection is an essential operation in image processing. It can be applied in many fields such as form recognition, segmentation,... Unforntunately, the use of numerical masks to approximate the gradient introduces imprecisions in the localization of the real edge. For this project, we used a Canny edge detector, which is a common algorithm to find the edges. In this method, a non-maxima supression stage is applied, which permits to have thin edges, but it also pixellise them.
Canny edge detector

Some methods were proposed to improve the quality of the edge detection. For example, interpolating the image was mentioned, but, because the interpolation has to be quite precise, the computation time is often high. Other very efficient methods were proposed with an improvement of the non-maxima suppression stage specifically, but with the loss of the simple image representation, which makes a post-processing difficult.

In this project, we used cubic B-splines, which provide a very efficient way for interpolation, by a recursive implementation in spatial domain. With this method, it is possible to solve partly the problem of computation time. This method was integrated in the Canny edge detector, especially adapted to the continuous representation of the image.

Interpolated edge detector

This algorithm was implemented in Java, as a plugin for ImageJ. An applet of demonstration was also created. The main advantages offered by this method are that we are able to increase the size of the image by a given coefficient, to obtain an image in which the little details can be more easily shown, for an acceptable computation time. We also obtain a better localization by using a gradient directly computed with continuous derivatives.

This method provides a efficient solution for high-precision edge detection, which is clearly more precise than classical mask filtering. As we can see in the block schemes, an integration of this algorithm is quite easy, and, if some stages of the Canny edge detector were already optimized, this improvement can be easily added, because only the gradient stages is modified. By this, combinations could be possible with other improvements.

Original image
Classical edge detector
Interpolated edge detector