Detects keypoints and computes their descriptors
[keypoints, descriptors] = obj.detectAndCompute(img)
[...] = obj.detectAndCompute(..., 'OptionName',optionValue, ...)
Input
- img Input
uint8
/uint16
/single
grayscale image.
Internally image is converted to 32-bit floating-point in
the [0,1] range.
Output
- keypoints The detected keypoints. A 1-by-N structure array
with the following fields:
- pt coordinates of the keypoint
[x,y]
- size diameter of the meaningful keypoint neighborhood
- angle computed orientation of the keypoint (-1 if not
applicable); it's in [0,360) degrees and measured
relative to image coordinate system (y-axis is
directed downward), i.e in clockwise.
- response the response by which the most strong
keypoints have been selected. Can be used for further
sorting or subsampling.
- octave octave (pyramid layer) from which the keypoint
has been extracted.
- class_id object class (if the keypoints need to be
clustered by an object they belong to).
- descriptors Computed descriptors. Output concatenated
vectors of descriptors. Each descriptor is a vector of
length cv.AKAZE.descriptorSize, so the total size of
descriptors will be
numel(keypoints) * obj.descriptorSize()
.
A matrix of size N-by-sz, one row per keypoint.
Options
- Mask optional mask specifying where to look for keypoints.
Not set by default.
- Keypoints If passed, then the method will use the provided
vector of keypoints instead of detecting them, and the
algorithm just computes their descriptors.