bundles / skimage 0.26.1rc0.dev0+git20260530.b607368ff / skimage / feature / brief / BRIEF
class
skimage.feature.brief:BRIEF
source: /dev/scikit-image/src/skimage/feature/brief.py :19
Signature
class BRIEF ( descriptor_size = 256 , patch_size = 49 , mode = normal , sigma = 1 , rng = 1 ) Members
Summary
BRIEF binary descriptor extractor.
Extended Summary
BRIEF (Binary Robust Independent Elementary Features) is an efficient feature point descriptor. It is highly discriminative even when using relatively few bits and is computed using simple intensity difference tests.
For each keypoint, intensity comparisons are carried out for a specifically distributed number N of pixel-pairs resulting in a binary descriptor of length N. For binary descriptors the Hamming distance can be used for feature matching, which leads to lower computational cost in comparison to the L2 norm.
Parameters
descriptor_size: int, optionalSize of BRIEF descriptor for each keypoint. Sizes 128, 256 and 512 recommended by the authors. Default is 256.
patch_size: int, optionalLength of the two dimensional square patch sampling region around the keypoints. Default is 49.
mode: {'normal', 'uniform'}, optionalProbability distribution for sampling location of decision pixel-pairs around keypoints.
rng: {`numpy.random.Generator`, int}, optionalPseudo-random number generator (RNG). By default, a PCG64 generator is used (see numpy.random.default_rng). If
rngis an int, it is used to seed the generator.The PRNG is used for the random sampling of the decision pixel-pairs. From a square window with length
patch_size, pixel pairs are sampled using themodeparameter to build the descriptors using intensity comparison.For matching across images, the same
rngshould be used to construct descriptors. To facilitate this:rngdefaults to 1Subsequent calls of the
extractmethod will use the same rng/seed.
sigma: float, optionalStandard deviation of the Gaussian low-pass filter applied to the image to alleviate noise sensitivity, which is strongly recommended to obtain discriminative and good descriptors.
Attributes
descriptors: (Q, `descriptor_size`) array of dtype bool2D ndarray of binary descriptors of size
descriptor_sizefor Q keypoints after filtering out border keypoints with value at an index(i, j)either beingTrueorFalserepresenting the outcome of the intensity comparison for i-th keypoint on j-th decision pixel-pair. It isQ == np.sum(mask).mask: array of shape (N,) and dtype boolMask indicating whether a keypoint has been filtered out (
False) or is described in the descriptors array (True).
Examples
from skimage.feature import (corner_harris, corner_peaks, BRIEF, match_descriptors) import numpy as np square1 = np.zeros((8, 8), dtype=np.int32) square1[2:6, 2:6] = 1 square1 square2 = np.zeros((9, 9), dtype=np.int32) square2[2:7, 2:7] = 1 square2 keypoints1 = corner_peaks(corner_harris(square1), min_distance=1) keypoints2 = corner_peaks(corner_harris(square2), min_distance=1) extractor = BRIEF(patch_size=5) extractor.extract(square1, keypoints1) descriptors1 = extractor.descriptors extractor.extract(square2, keypoints2) descriptors2 = extractor.descriptors matches = match_descriptors(descriptors1, descriptors2) matches keypoints1[matches[:, 0]] keypoints2[matches[:, 1]]✓
Aliases
-
skimage.feature.BRIEF