Main Content


Object for storing BRISK interest points


This object provides the ability to pass data between the detectBRISKFeatures and extractFeatures functions. You can also use it to manipulate and plot the data returned by these functions. You can use the object to fill the points interactively in situations where you might want to mix a non-BRISK interest point detector with a BRISK descriptor.




points = BRISKPoints(Location) constructs a BRISKPoints object from an M-by-2 array of [x y] point coordinates, Location.

points = BRISKPoints(Location,Name,Value) sets properties using one or more name-value pairs. Enclose each property name in quotes. For example, points = BRISKPoints('Metric',0.0)

Input Arguments

expand all

Point locations, specified as an M-by-2 array of [x y] point coordinates.


expand all

Number of points held by the BRISK object, specified as a numeric value.

Point locations, specified as an M-by-2 array of [x y] point coordinates.

Scale at which the feature is detected, specified as a value greater than or equal to 1.6.

Strength of detected feature, specified as a numeric value. The BRISK algorithm uses a determinant of an approximated Hessian.

Orientation of the detected feature, specified as an angle, in radians. The angle is measured counterclockwise from the X-axis with the origin specified by the Location property. Do not set this property manually. Use the call to extractFeatures to fill in this value. The extractFeatures function modifies the default value of 0.0. Using BRISK interest points to extract a non-BRISK descriptor, (e.g. SURF, FREAK, MSER, etc.), can alter Orientation values. The Orientation is mainly useful for visualization purposes.

Object Functions

plotPlot points
isemptyDetermine if points object is empty
lengthNumber of stored points
selectStrongestSelect points with strongest metrics
sizeReturn size of points object
selectUniformSelect uniformly distributed subset of feature points


collapse all

Read an image and detect the BRISK interest points.

I = imread('cameraman.tif');
points = detectBRISKFeatures(I);
location = [100:228;100:228]';
points = BRISKPoints(location);

Select and plot the 10 strongest interest points.

  strongest = points.selectStrongest(10);
  imshow(I); hold on;

Figure contains an axes object. The axes object contains 3 objects of type image, line.


Display the [x y] coordinates.

ans = 10x2 single matrix

   100   100
   101   101
   102   102
   103   103
   104   104
   105   105
   106   106
   107   107
   108   108
   109   109


Although BRISKPoints can hold many points, it is a scalar object. Therefore, numel(BRISKPoints) always returns 1. This value can differ from length(BRISKPoints), which returns the true number of points held by the object.


[1] Leutenegger, S., M. Chli, and R. Siegwart. BRISK: Binary Robust Invariant Scalable Keypoints, Proceedings of the IEEE International Conference on Computer Vision (ICCV) 2011.

Extended Capabilities

Version History

Introduced in R2014a