Sobel and Frei-Chen Edge Detectors Demo (GLSL)

Frei-Chen and Sobel edge detectors
Left: Sobel, middle: Frei-Chen, right: regular scene


Edge detection is a process that aims to detect sharp changes in the color intensity of an image. Such sharp changes are called edges. Edge detection is a fundamental image processing technique.

Sobel and Frei-Chen are two edge detection algorithms. Sobel edge detector (developed in 1970) is one of the most known edge detector but is quite sensitive to noise. Frei-Chen (developed in 1977) edge detector provides a slightly better edge and is less sensitive to noise. Frei-Chen algorithm is often used in corner detection systems.

Here is an adaption for GeeXLab of the Sobel and Frei-Chen edges detectors found in this article.


You can download the edge detector shader (GLSL) and GeeXLab demo here:
Download Sobel and Frei-Chen Edge Detection Demo Version 2011.01.31
Left-click to download (right-click disabled)

This demo requires GeeXLab 0.2.10 and does not use Python so you can use the version of GeeXLab without Python (Lua only).

Unzip the demo archive somewhere, start GeeXLab and drop the file DEMO.xml in GeeXLab. That’s all.

The demo rendering is separated in three zones:

  • left: scene with Sobel edge detector
  • middle: scene with Frei-Chen edge detector
  • right: regular scene without effect

You can use the tweak bar to change the size of the different zones.

The complete source code of the GLSL shader is available in the PostFX_EdgeDetection.xml file.

You can find other post processing shaders in Geeks3D’s shader library.

2 thoughts on “Sobel and Frei-Chen Edge Detectors Demo (GLSL)”

Comments are closed.