Main Content

BRISKPoints

Object for storing BRISK interest points

Description

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.

Creation

Description

example

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

points = BRISKPoints(location,Name=Value) sets properties using one or more name-value arguments, in addition to all input arguments from the previous syntax.

Input Arguments

expand all

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

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: points = BRISKPoints(location,Metric=12.0) specifies a radius of 12.0 (in pixels) of the BRISK sampling pattern used during feature extraction.

Scale at which the interest points are detected, specified by the radius (in pixels) of the BRISK sampling pattern used during feature extraction.

Strength of detected feature, specified as a numeric value. The BRISK algorithm uses the FAST corner score as a metric.

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.

Properties

expand all

This property is read-only.

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.

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 point features

Examples

collapse all

Read an image and detect the BRISK interest points.

I = imread('cameraman.tif');
points = detectBRISKFeatures(I);

Select and plot the 10 strongest interest points.

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

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

  

Display the [x y] coordinates.

  strongest.Location
ans = 10x2 single matrix

  136.8434  114.7649
  143.7372  126.8453
  135.2803  123.5254
  134.8544  125.0714
  114.8065   47.3621
  105.1597  162.2291
  129.8372  108.4799
  114.6876  131.6573
  135.2267  127.3643
   92.4255   63.2960

Tips

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.

References

[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