BRISKPoints class

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.

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.

Construction

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

points = BRISKPoints(Location,Name,Value) constructs a BRISKPoints object with optional input properties specified by one or more Name,Value pair arguments. You can specify each additional property as a scalar or a vector whose length matches the number of coordinates in Location.

Code Generation Support
Compile-time constant inputs: No restriction.
Supports MATLAB Function block: No
To index locations with this object, use the syntax: points.Location(idx,:), for points object. See visionRecovertformCodeGeneration_kernel.mvisionRecovertformCodeGeneration_kernel.m, which is used in the Introduction to Code Generation with Feature Matching and Registration example.
Code Generation Support, Usage Notes, and Limitations

Input Arguments

Location

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

Properties

Scale

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

Default: 12.0

Metric

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

Default: 0.0

Orientation

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.

Default: 0.0

Count

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

Default: 0

Methods

isemptyReturns true for empty object
lengthNumber of stored points
plotPlot BRISK points
selectStrongestReturn points with strongest metrics
sizeSize of the BRISKPoints object

Examples

expand all

Detect BRISK Features in an Image

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 = points.selectStrongest(10);
  imshow(I); hold on;
  plot(strongest);

Display the [x y] coordinates.

  strongest.Location
ans =

  136.4033   55.5000
  155.6964   83.7577
  197.0000  233.0000
  117.3680   92.3680
  147.0000  162.0000
  104.0000  229.0000
  129.7972   68.2028
  154.8790   77.0000
  118.0269  174.0269
  131.0000   91.1675

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.

Was this topic helpful?