@Namespace(value="cv") @NoOffset @Properties(inherit=opencv_features2d.class) public class ORB extends Feature2D
described in \cite RRKB11 . The algorithm uses FAST in pyramids to detect stable keypoints, selects the strongest features using FAST or Harris response, finds their orientation using first-order moments and computes the descriptors using BRIEF (where the coordinates of random point pairs (or k-tuples) are rotated according to the measured orientation).
Pointer.CustomDeallocator, Pointer.Deallocator, Pointer.NativeDeallocator, Pointer.ReferenceCounter
Modifier and Type | Field and Description |
---|---|
static int |
FAST_SCORE
enum cv::ORB::ScoreType
|
static int |
HARRIS_SCORE
enum cv::ORB::ScoreType
|
static int |
kBytes |
Constructor and Description |
---|
ORB(Pointer p)
Pointer cast constructor.
|
Modifier and Type | Method and Description |
---|---|
static ORB |
create() |
static ORB |
create(int nfeatures,
float scaleFactor,
int nlevels,
int edgeThreshold,
int firstLevel,
int WTA_K,
int scoreType,
int patchSize,
int fastThreshold)
\brief The ORB constructor
|
BytePointer |
getDefaultName()
Returns the algorithm string identifier.
|
int |
getEdgeThreshold() |
int |
getFastThreshold() |
int |
getFirstLevel() |
int |
getMaxFeatures() |
int |
getNLevels() |
int |
getPatchSize() |
double |
getScaleFactor() |
int |
getScoreType() |
int |
getWTA_K() |
static int |
kBytes() |
void |
setEdgeThreshold(int edgeThreshold) |
void |
setFastThreshold(int fastThreshold) |
void |
setFirstLevel(int firstLevel) |
void |
setMaxFeatures(int maxFeatures) |
void |
setNLevels(int nlevels) |
void |
setPatchSize(int patchSize) |
void |
setScaleFactor(double scaleFactor) |
void |
setScoreType(int scoreType) |
void |
setWTA_K(int wta_k) |
compute, compute, compute, compute, compute, compute, defaultNorm, descriptorSize, descriptorType, detect, detect, detect, detect, detect, detect, detect, detect, detect, detect, detect, detect, detectAndCompute, detectAndCompute, detectAndCompute, detectAndCompute, detectAndCompute, detectAndCompute, empty, position, read, read, read, write, write, write, write, write
address, asBuffer, asByteBuffer, availablePhysicalBytes, calloc, capacity, capacity, close, deallocate, deallocate, deallocateReferences, deallocator, deallocator, equals, fill, formatBytes, free, hashCode, isNull, isNull, limit, limit, malloc, maxBytes, maxPhysicalBytes, memchr, memcmp, memcpy, memmove, memset, offsetof, parseBytes, physicalBytes, position, put, realloc, referenceCount, releaseReference, retainReference, setNull, sizeof, toString, totalBytes, totalPhysicalBytes, withDeallocator, zero
public static final int HARRIS_SCORE
public static final int FAST_SCORE
public static final int kBytes
public ORB(Pointer p)
Pointer.Pointer(Pointer)
.@MemberGetter public static int kBytes()
@opencv_core.Ptr public static ORB create(int nfeatures, float scaleFactor, int nlevels, int edgeThreshold, int firstLevel, int WTA_K, @Cast(value="cv::ORB::ScoreType") int scoreType, int patchSize, int fastThreshold)
nfeatures
- The maximum number of features to retain.scaleFactor
- Pyramid decimation ratio, greater than 1. scaleFactor==2 means the classical
pyramid, where each next level has 4x less pixels than the previous, but such a big scale factor
will degrade feature matching scores dramatically. On the other hand, too close to 1 scale factor
will mean that to cover certain scale range you will need more pyramid levels and so the speed
will suffer.nlevels
- The number of pyramid levels. The smallest level will have linear size equal to
input_image_linear_size/pow(scaleFactor, nlevels - firstLevel).edgeThreshold
- This is size of the border where the features are not detected. It should
roughly match the patchSize parameter.firstLevel
- The level of pyramid to put source image to. Previous layers are filled
with upscaled source image.WTA_K
- The number of points that produce each element of the oriented BRIEF descriptor. The
default value 2 means the BRIEF where we take a random point pair and compare their brightnesses,
so we get 0/1 response. Other possible values are 3 and 4. For example, 3 means that we take 3
random points (of course, those point coordinates are random, but they are generated from the
pre-defined seed, so each element of BRIEF descriptor is computed deterministically from the pixel
rectangle), find point of maximum brightness and output index of the winner (0, 1 or 2). Such
output will occupy 2 bits, and therefore it will need a special variant of Hamming distance,
denoted as NORM_HAMMING2 (2 bits per bin). When WTA_K=4, we take 4 random points to compute each
bin (that will also occupy 2 bits with possible values 0, 1, 2 or 3).scoreType
- The default HARRIS_SCORE means that Harris algorithm is used to rank features
(the score is written to KeyPoint::score and is used to retain best nfeatures features);
FAST_SCORE is alternative value of the parameter that produces slightly less stable keypoints,
but it is a little faster to compute.patchSize
- size of the patch used by the oriented BRIEF descriptor. Of course, on smaller
pyramid layers the perceived image area covered by a feature will be larger.fastThreshold
- the fast threshold@opencv_core.Ptr public static ORB create()
public void setMaxFeatures(int maxFeatures)
public int getMaxFeatures()
public void setScaleFactor(double scaleFactor)
public double getScaleFactor()
public void setNLevels(int nlevels)
public int getNLevels()
public void setEdgeThreshold(int edgeThreshold)
public int getEdgeThreshold()
public void setFirstLevel(int firstLevel)
public int getFirstLevel()
public void setWTA_K(int wta_k)
public int getWTA_K()
public void setPatchSize(int patchSize)
public int getPatchSize()
public void setFastThreshold(int fastThreshold)
public int getFastThreshold()
@opencv_core.Str public BytePointer getDefaultName()
Algorithm
getDefaultName
in class Feature2D
Copyright © 2020. All rights reserved.