View Source Evision.ORB (Evision v0.2.9)
Summary
Functions
Variant 1:
compute
Variant 1:
compute
The ORB constructor
The ORB constructor
defaultNorm
descriptorSize
descriptorType
Variant 1:
detect
Variant 1:
detect
detectAndCompute
detectAndCompute
empty
getDefaultName
getEdgeThreshold
getFastThreshold
getFirstLevel
getMaxFeatures
getNLevels
getPatchSize
getScaleFactor
getScoreType
getWTA_K
Variant 1:
read
setEdgeThreshold
setFastThreshold
setFirstLevel
setMaxFeatures
setNLevels
setPatchSize
setScaleFactor
setScoreType
setWTA_K
write
write
Types
@type t() :: %Evision.ORB{ref: reference()}
Type that represents an ORB
struct.
ref.
reference()
The underlying erlang resource variable.
Functions
@spec compute(t(), [Evision.Mat.maybe_mat_in()], [[Evision.KeyPoint.t()]]) :: {[[Evision.KeyPoint.t()]], [Evision.Mat.t()]} | {:error, String.t()}
@spec compute(t(), Evision.Mat.maybe_mat_in(), [Evision.KeyPoint.t()]) :: {[Evision.KeyPoint.t()], Evision.Mat.t()} | {:error, String.t()}
Variant 1:
compute
Positional Arguments
self:
Evision.ORB.t()
images:
[Evision.Mat]
.Image set.
Return
keypoints:
[[Evision.KeyPoint]]
.Input collection of keypoints. Keypoints for which a descriptor cannot be computed are removed. Sometimes new keypoints can be added, for example: SIFT duplicates keypoint with several dominant orientations (for each orientation).
descriptors:
[Evision.Mat]
.Computed descriptors. In the second variant of the method descriptors[i] are descriptors computed for a keypoints[i]. Row j is the keypoints (or keypoints[i]) is the descriptor for keypoint j-th keypoint.
Has overloading in C++
Python prototype (for reference only):
compute(images, keypoints[, descriptors]) -> keypoints, descriptors
Variant 2:
Computes the descriptors for a set of keypoints detected in an image (first variant) or image set (second variant).
Positional Arguments
self:
Evision.ORB.t()
image:
Evision.Mat
.Image.
Return
keypoints:
[Evision.KeyPoint]
.Input collection of keypoints. Keypoints for which a descriptor cannot be computed are removed. Sometimes new keypoints can be added, for example: SIFT duplicates keypoint with several dominant orientations (for each orientation).
descriptors:
Evision.Mat.t()
.Computed descriptors. In the second variant of the method descriptors[i] are descriptors computed for a keypoints[i]. Row j is the keypoints (or keypoints[i]) is the descriptor for keypoint j-th keypoint.
Python prototype (for reference only):
compute(image, keypoints[, descriptors]) -> keypoints, descriptors
@spec compute( t(), [Evision.Mat.maybe_mat_in()], [[Evision.KeyPoint.t()]], [{atom(), term()}, ...] | nil ) :: {[[Evision.KeyPoint.t()]], [Evision.Mat.t()]} | {:error, String.t()}
@spec compute( t(), Evision.Mat.maybe_mat_in(), [Evision.KeyPoint.t()], [{atom(), term()}, ...] | nil ) :: {[Evision.KeyPoint.t()], Evision.Mat.t()} | {:error, String.t()}
Variant 1:
compute
Positional Arguments
self:
Evision.ORB.t()
images:
[Evision.Mat]
.Image set.
Return
keypoints:
[[Evision.KeyPoint]]
.Input collection of keypoints. Keypoints for which a descriptor cannot be computed are removed. Sometimes new keypoints can be added, for example: SIFT duplicates keypoint with several dominant orientations (for each orientation).
descriptors:
[Evision.Mat]
.Computed descriptors. In the second variant of the method descriptors[i] are descriptors computed for a keypoints[i]. Row j is the keypoints (or keypoints[i]) is the descriptor for keypoint j-th keypoint.
Has overloading in C++
Python prototype (for reference only):
compute(images, keypoints[, descriptors]) -> keypoints, descriptors
Variant 2:
Computes the descriptors for a set of keypoints detected in an image (first variant) or image set (second variant).
Positional Arguments
self:
Evision.ORB.t()
image:
Evision.Mat
.Image.
Return
keypoints:
[Evision.KeyPoint]
.Input collection of keypoints. Keypoints for which a descriptor cannot be computed are removed. Sometimes new keypoints can be added, for example: SIFT duplicates keypoint with several dominant orientations (for each orientation).
descriptors:
Evision.Mat.t()
.Computed descriptors. In the second variant of the method descriptors[i] are descriptors computed for a keypoints[i]. Row j is the keypoints (or keypoints[i]) is the descriptor for keypoint j-th keypoint.
Python prototype (for reference only):
compute(image, keypoints[, descriptors]) -> keypoints, descriptors
The ORB constructor
Keyword Arguments
nfeatures:
integer()
.The maximum number of features to retain.
scaleFactor:
float
.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:
integer()
.The number of pyramid levels. The smallest level will have linear size equal to input_image_linear_size/pow(scaleFactor, nlevels - firstLevel).
edgeThreshold:
integer()
.This is size of the border where the features are not detected. It should roughly match the patchSize parameter.
firstLevel:
integer()
.The level of pyramid to put source image to. Previous layers are filled with upscaled source image.
wTA_K:
integer()
.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:
ORB_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:
integer()
.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:
integer()
.the fast threshold
Return
- retval:
Evision.ORB.t()
Python prototype (for reference only):
create([, nfeatures[, scaleFactor[, nlevels[, edgeThreshold[, firstLevel[, WTA_K[, scoreType[, patchSize[, fastThreshold]]]]]]]]]) -> retval
@spec create(Keyword.t()) :: any() | {:error, String.t()}
@spec create( [ edgeThreshold: term(), fastThreshold: term(), firstLevel: term(), nfeatures: term(), nlevels: term(), patchSize: term(), scaleFactor: term(), scoreType: term(), wTA_K: term() ] | nil ) :: t() | {:error, String.t()}
The ORB constructor
Keyword Arguments
nfeatures:
integer()
.The maximum number of features to retain.
scaleFactor:
float
.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:
integer()
.The number of pyramid levels. The smallest level will have linear size equal to input_image_linear_size/pow(scaleFactor, nlevels - firstLevel).
edgeThreshold:
integer()
.This is size of the border where the features are not detected. It should roughly match the patchSize parameter.
firstLevel:
integer()
.The level of pyramid to put source image to. Previous layers are filled with upscaled source image.
wTA_K:
integer()
.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:
ORB_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:
integer()
.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:
integer()
.the fast threshold
Return
- retval:
Evision.ORB.t()
Python prototype (for reference only):
create([, nfeatures[, scaleFactor[, nlevels[, edgeThreshold[, firstLevel[, WTA_K[, scoreType[, patchSize[, fastThreshold]]]]]]]]]) -> retval
@spec defaultNorm(Keyword.t()) :: any() | {:error, String.t()}
@spec defaultNorm(t()) :: integer() | {:error, String.t()}
defaultNorm
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
integer()
Python prototype (for reference only):
defaultNorm() -> retval
@spec descriptorSize(Keyword.t()) :: any() | {:error, String.t()}
@spec descriptorSize(t()) :: integer() | {:error, String.t()}
descriptorSize
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
integer()
Python prototype (for reference only):
descriptorSize() -> retval
@spec descriptorType(Keyword.t()) :: any() | {:error, String.t()}
@spec descriptorType(t()) :: integer() | {:error, String.t()}
descriptorType
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
integer()
Python prototype (for reference only):
descriptorType() -> retval
@spec detect(t(), [Evision.Mat.maybe_mat_in()]) :: [[Evision.KeyPoint.t()]] | {:error, String.t()}
@spec detect(t(), Evision.Mat.maybe_mat_in()) :: [Evision.KeyPoint.t()] | {:error, String.t()}
Variant 1:
detect
Positional Arguments
self:
Evision.ORB.t()
images:
[Evision.Mat]
.Image set.
Keyword Arguments
masks:
[Evision.Mat]
.Masks for each input image specifying where to look for keypoints (optional). masks[i] is a mask for images[i].
Return
keypoints:
[[Evision.KeyPoint]]
.The detected keypoints. In the second variant of the method keypoints[i] is a set of keypoints detected in images[i] .
Has overloading in C++
Python prototype (for reference only):
detect(images[, masks]) -> keypoints
Variant 2:
Detects keypoints in an image (first variant) or image set (second variant).
Positional Arguments
self:
Evision.ORB.t()
image:
Evision.Mat
.Image.
Keyword Arguments
mask:
Evision.Mat
.Mask specifying where to look for keypoints (optional). It must be a 8-bit integer matrix with non-zero values in the region of interest.
Return
keypoints:
[Evision.KeyPoint]
.The detected keypoints. In the second variant of the method keypoints[i] is a set of keypoints detected in images[i] .
Python prototype (for reference only):
detect(image[, mask]) -> keypoints
@spec detect(t(), [Evision.Mat.maybe_mat_in()], [{:masks, term()}] | nil) :: [[Evision.KeyPoint.t()]] | {:error, String.t()}
@spec detect(t(), Evision.Mat.maybe_mat_in(), [{:mask, term()}] | nil) :: [Evision.KeyPoint.t()] | {:error, String.t()}
Variant 1:
detect
Positional Arguments
self:
Evision.ORB.t()
images:
[Evision.Mat]
.Image set.
Keyword Arguments
masks:
[Evision.Mat]
.Masks for each input image specifying where to look for keypoints (optional). masks[i] is a mask for images[i].
Return
keypoints:
[[Evision.KeyPoint]]
.The detected keypoints. In the second variant of the method keypoints[i] is a set of keypoints detected in images[i] .
Has overloading in C++
Python prototype (for reference only):
detect(images[, masks]) -> keypoints
Variant 2:
Detects keypoints in an image (first variant) or image set (second variant).
Positional Arguments
self:
Evision.ORB.t()
image:
Evision.Mat
.Image.
Keyword Arguments
mask:
Evision.Mat
.Mask specifying where to look for keypoints (optional). It must be a 8-bit integer matrix with non-zero values in the region of interest.
Return
keypoints:
[Evision.KeyPoint]
.The detected keypoints. In the second variant of the method keypoints[i] is a set of keypoints detected in images[i] .
Python prototype (for reference only):
detect(image[, mask]) -> keypoints
@spec detectAndCompute(t(), Evision.Mat.maybe_mat_in(), Evision.Mat.maybe_mat_in()) :: {[Evision.KeyPoint.t()], Evision.Mat.t()} | {:error, String.t()}
detectAndCompute
Positional Arguments
- self:
Evision.ORB.t()
- image:
Evision.Mat
- mask:
Evision.Mat
Keyword Arguments
- useProvidedKeypoints:
bool
.
Return
- keypoints:
[Evision.KeyPoint]
- descriptors:
Evision.Mat.t()
.
Detects keypoints and computes the descriptors
Python prototype (for reference only):
detectAndCompute(image, mask[, descriptors[, useProvidedKeypoints]]) -> keypoints, descriptors
@spec detectAndCompute( t(), Evision.Mat.maybe_mat_in(), Evision.Mat.maybe_mat_in(), [{:useProvidedKeypoints, term()}] | nil ) :: {[Evision.KeyPoint.t()], Evision.Mat.t()} | {:error, String.t()}
detectAndCompute
Positional Arguments
- self:
Evision.ORB.t()
- image:
Evision.Mat
- mask:
Evision.Mat
Keyword Arguments
- useProvidedKeypoints:
bool
.
Return
- keypoints:
[Evision.KeyPoint]
- descriptors:
Evision.Mat.t()
.
Detects keypoints and computes the descriptors
Python prototype (for reference only):
detectAndCompute(image, mask[, descriptors[, useProvidedKeypoints]]) -> keypoints, descriptors
@spec empty(Keyword.t()) :: any() | {:error, String.t()}
@spec empty(t()) :: boolean() | {:error, String.t()}
empty
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
bool
Python prototype (for reference only):
empty() -> retval
@spec getDefaultName(Keyword.t()) :: any() | {:error, String.t()}
@spec getDefaultName(t()) :: binary() | {:error, String.t()}
getDefaultName
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
String
Python prototype (for reference only):
getDefaultName() -> retval
@spec getEdgeThreshold(Keyword.t()) :: any() | {:error, String.t()}
@spec getEdgeThreshold(t()) :: integer() | {:error, String.t()}
getEdgeThreshold
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
integer()
Python prototype (for reference only):
getEdgeThreshold() -> retval
@spec getFastThreshold(Keyword.t()) :: any() | {:error, String.t()}
@spec getFastThreshold(t()) :: integer() | {:error, String.t()}
getFastThreshold
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
integer()
Python prototype (for reference only):
getFastThreshold() -> retval
@spec getFirstLevel(Keyword.t()) :: any() | {:error, String.t()}
@spec getFirstLevel(t()) :: integer() | {:error, String.t()}
getFirstLevel
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
integer()
Python prototype (for reference only):
getFirstLevel() -> retval
@spec getMaxFeatures(Keyword.t()) :: any() | {:error, String.t()}
@spec getMaxFeatures(t()) :: integer() | {:error, String.t()}
getMaxFeatures
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
integer()
Python prototype (for reference only):
getMaxFeatures() -> retval
@spec getNLevels(Keyword.t()) :: any() | {:error, String.t()}
@spec getNLevels(t()) :: integer() | {:error, String.t()}
getNLevels
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
integer()
Python prototype (for reference only):
getNLevels() -> retval
@spec getPatchSize(Keyword.t()) :: any() | {:error, String.t()}
@spec getPatchSize(t()) :: integer() | {:error, String.t()}
getPatchSize
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
integer()
Python prototype (for reference only):
getPatchSize() -> retval
@spec getScaleFactor(Keyword.t()) :: any() | {:error, String.t()}
@spec getScaleFactor(t()) :: number() | {:error, String.t()}
getScaleFactor
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
double
Python prototype (for reference only):
getScaleFactor() -> retval
@spec getScoreType(Keyword.t()) :: any() | {:error, String.t()}
@spec getScoreType(t()) :: Evision.ORB.ScoreType.enum() | {:error, String.t()}
getScoreType
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
ORB::ScoreType
Python prototype (for reference only):
getScoreType() -> retval
@spec getWTA_K(Keyword.t()) :: any() | {:error, String.t()}
@spec getWTA_K(t()) :: integer() | {:error, String.t()}
getWTA_K
Positional Arguments
- self:
Evision.ORB.t()
Return
- retval:
integer()
Python prototype (for reference only):
getWTA_K() -> retval
@spec read(t(), Evision.FileNode.t()) :: t() | {:error, String.t()}
@spec read(t(), binary()) :: t() | {:error, String.t()}
Variant 1:
read
Positional Arguments
- self:
Evision.ORB.t()
- arg1:
Evision.FileNode
Python prototype (for reference only):
read(arg1) -> None
Variant 2:
read
Positional Arguments
- self:
Evision.ORB.t()
- fileName:
String
Python prototype (for reference only):
read(fileName) -> None
setEdgeThreshold
Positional Arguments
- self:
Evision.ORB.t()
- edgeThreshold:
integer()
Python prototype (for reference only):
setEdgeThreshold(edgeThreshold) -> None
setFastThreshold
Positional Arguments
- self:
Evision.ORB.t()
- fastThreshold:
integer()
Python prototype (for reference only):
setFastThreshold(fastThreshold) -> None
setFirstLevel
Positional Arguments
- self:
Evision.ORB.t()
- firstLevel:
integer()
Python prototype (for reference only):
setFirstLevel(firstLevel) -> None
setMaxFeatures
Positional Arguments
- self:
Evision.ORB.t()
- maxFeatures:
integer()
Python prototype (for reference only):
setMaxFeatures(maxFeatures) -> None
setNLevels
Positional Arguments
- self:
Evision.ORB.t()
- nlevels:
integer()
Python prototype (for reference only):
setNLevels(nlevels) -> None
setPatchSize
Positional Arguments
- self:
Evision.ORB.t()
- patchSize:
integer()
Python prototype (for reference only):
setPatchSize(patchSize) -> None
setScaleFactor
Positional Arguments
- self:
Evision.ORB.t()
- scaleFactor:
double
Python prototype (for reference only):
setScaleFactor(scaleFactor) -> None
@spec setScoreType(t(), Evision.ORB.ScoreType.enum()) :: t() | {:error, String.t()}
setScoreType
Positional Arguments
- self:
Evision.ORB.t()
- scoreType:
ORB_ScoreType
Python prototype (for reference only):
setScoreType(scoreType) -> None
setWTA_K
Positional Arguments
- self:
Evision.ORB.t()
- wta_k:
integer()
Python prototype (for reference only):
setWTA_K(wta_k) -> None
write
Positional Arguments
- self:
Evision.ORB.t()
- fileName:
String
Python prototype (for reference only):
write(fileName) -> None
@spec write(t(), Evision.FileStorage.t(), binary()) :: t() | {:error, String.t()}
write
Positional Arguments
- self:
Evision.ORB.t()
- fs:
Evision.FileStorage
- name:
String
Python prototype (for reference only):
write(fs, name) -> None