Trait opencv::features2d::ORB

source ·
pub trait ORB: Feature2DTrait + ORBConst {
    // Required method
    fn as_raw_mut_ORB(&mut self) -> *mut c_void;

    // Provided methods
    fn set_max_features(&mut self, max_features: i32) -> Result<()> { ... }
    fn set_scale_factor(&mut self, scale_factor: f64) -> Result<()> { ... }
    fn set_n_levels(&mut self, nlevels: i32) -> Result<()> { ... }
    fn set_edge_threshold(&mut self, edge_threshold: i32) -> Result<()> { ... }
    fn set_first_level(&mut self, first_level: i32) -> Result<()> { ... }
    fn set_wta_k(&mut self, wta_k: i32) -> Result<()> { ... }
    fn set_score_type(&mut self, score_type: ORB_ScoreType) -> Result<()> { ... }
    fn set_patch_size(&mut self, patch_size: i32) -> Result<()> { ... }
    fn set_fast_threshold(&mut self, fast_threshold: i32) -> Result<()> { ... }
}
Expand description

Class implementing the ORB (oriented BRIEF) keypoint detector and descriptor extractor

described in 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).

Required Methods§

Provided Methods§

source

fn set_max_features(&mut self, max_features: i32) -> Result<()>

source

fn set_scale_factor(&mut self, scale_factor: f64) -> Result<()>

source

fn set_n_levels(&mut self, nlevels: i32) -> Result<()>

source

fn set_edge_threshold(&mut self, edge_threshold: i32) -> Result<()>

source

fn set_first_level(&mut self, first_level: i32) -> Result<()>

source

fn set_wta_k(&mut self, wta_k: i32) -> Result<()>

source

fn set_score_type(&mut self, score_type: ORB_ScoreType) -> Result<()>

source

fn set_patch_size(&mut self, patch_size: i32) -> Result<()>

source

fn set_fast_threshold(&mut self, fast_threshold: i32) -> Result<()>

Implementations§

source§

impl dyn ORB + '_

source§

impl dyn ORB + '_

source

pub const kBytes: i32 = 32i32

source

pub fn create( nfeatures: i32, scale_factor: f32, nlevels: i32, edge_threshold: i32, first_level: i32, wta_k: i32, score_type: ORB_ScoreType, patch_size: i32, fast_threshold: i32 ) -> Result<Ptr<dyn ORB>>

The ORB constructor

Parameters
  • 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
C++ default parameters
  • nfeatures: 500
  • scale_factor: 1.2f
  • nlevels: 8
  • edge_threshold: 31
  • first_level: 0
  • wta_k: 2
  • score_type: ORB::HARRIS_SCORE
  • patch_size: 31
  • fast_threshold: 20

Implementors§

source§

impl ORB for Ptr<dyn ORB>