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 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.

Properties

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 the size of a points object
selectUniformSelect uniformly distributed subset of feature points

Examples

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;
  plot(strongest);

  

Display the [x y] coordinates.

  strongest.Location
ans = 10x2 single matrix

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

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

Introduced in R2014a