Trainable COSFIRE filters for keypoint detection and pattern recognition

A COSFIRE filter detects features or patterns of interest, e.g. traffic signs in complex scenes.


Updated 14 Mar 2015

View License

A COSFIRE filter is automatically configured to be selective for a local contour pattern specified by a single example. The configuration comprises selecting given channels of a bank of Gabor filters and determining certain blur and shift parameters. Gabor filters are, however, not intrinsic to the method and any other orientation-selective filters can be used. A COSFIRE filter response is computed as the weighted geometric mean of the blurred and shifted responses of the selected Gabor filters. It shares similar properties with some shape-selective neurons in visual cortex, which provided inspiration for this work.
In our publication, which is given below, we demonstrated the effectiveness of the proposed filters in three applications: the detection of retinal vascular bifurcations (DRIVE data set: 98.50% recall, 96.09% precision), the recognition of handwritten digits (MNIST data set: 99.48% correct classification),
and the detection and recognition of traffic signs in complex scenes (100% recall and precision).

COSFIRE filters are conceptually simple and easy to implement. They are versatile keypoint detectors and are highly effective in practical computer vision applications.

You are kindly invited to use this Matlab implementation and cite the following article:

George Azzopardi and Nicolai Petkov, "Trainable COSFIRE filters for keypoint detection and pattern recognition", IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 35(2), pp. 490-503, 2013.

Paper [pdf]:

Cite As

George Azzopardi (2023). Trainable COSFIRE filters for keypoint detection and pattern recognition (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2008b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!




Version Published Release Notes

Fixed a bug with the handling of parameter params.COSFIRE.t2 in configureCOSFIRE.m

Changed link to pdf file

Fixed a spelling mistake in the description

Corrected the url to download the paper

Added a hyperlink in the Description to download the paper.

Removed a pre-compiled version of a c-function.

1. Added the compilation of a required c-function.
2. Added examples to detect traffic signs in complex scenes.

Added file dilate.mexw64 which is needed for 64-bit machines.