Main Content


Detect BRISK features



points = detectBRISKFeatures(I) returns a BRISKPoints object, points. The object contains information about BRISK features detected in a 2-D grayscale input image, I. The detectBRISKFeatures function uses a Binary Robust Invariant Scalable Keypoints (BRISK) algorithm to detect multiscale corner features.

points = detectBRISKFeatures(I,Name,Value) uses additional options specified by one or more Name,Value pair arguments.


collapse all

Read the image.

  I = imread('cameraman.tif');

Find the BRISK points.

  points = detectBRISKFeatures(I);

Display the results.

  imshow(I); hold on;

Figure contains an axes object. The axes object contains 3 objects of type image, line. One or more of the lines displays its values using only markers

Input Arguments

collapse all

Input image, specified in 2-D grayscale. The input image must be real and nonsparse.

Data Types: single | double | int16 | uint8 | uint16 | logical

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: 'MinQuality',0.1,'ROI', [50,150,100,200] specifies that the detector must use a 10% minimum accepted quality of corners within the designated region of interest. This region of interest is located at x=50, y=150. The ROI has a width of 100 pixels and a height of 200 pixels.

Minimum intensity difference between a corner and its surrounding region, specified as the comma-separated pair consisting of 'MinContrast' and a scalar in the range (0 1). The minimum contrast value represents a fraction of the maximum value of the image class. Increase this value to reduce the number of detected corners.

Minimum accepted quality of corners, specified as the comma-separated pair consisting of 'MinQuality' and a scalar value in the range [0,1]. The minimum accepted quality of corners represents a fraction of the maximum corner metric value in the image. Increase this value to remove erroneous corners.

Number of octaves to implement, specified as a comma-separated pair consisting of 'NumOctaves' and an integer scalar, greater than or equal to 0. Increase this value to detect larger blobs. Recommended values are between 1 and 4. When you set NumOctaves to 0, the function disables multiscale detection. It performs the detection at the scale of the input image, I.

Rectangular region for corner detection, specified as a comma-separated pair consisting of 'ROI' and a vector of the format [x y width height]. The first two integer values [x y] represent the location of the upper-left corner of the region of interest. The last two integer values represent the width and height.

Output Arguments

collapse all

Brisk points, returned as a BRISKPoints object. The object contains information about the feature points detected in the 2-D grayscale input image.


[1] Leutenegger, S., M. Chli and R. Siegwart. “BRISK: Binary Robust Invariant Scalable Keypoints”, Proceedings of the IEEE International Conference, ICCV, 2011.

Extended Capabilities

Version History

Introduced in R2014a