Struct opencv::features2d::BFMatcher
source · pub struct BFMatcher { /* private fields */ }
Expand description
Brute-force descriptor matcher.
For each descriptor in the first set, this matcher finds the closest descriptor in the second set by trying each one. This descriptor matcher supports masking permissible matches of descriptor sets.
Implementations§
source§impl BFMatcher
impl BFMatcher
sourcepub fn new(norm_type: i32, cross_check: bool) -> Result<BFMatcher>
pub fn new(norm_type: i32, cross_check: bool) -> Result<BFMatcher>
Brute-force matcher constructor (obsolete). Please use BFMatcher.create()
§C++ default parameters
- norm_type: NORM_L2
- cross_check: false
sourcepub fn new_def() -> Result<BFMatcher>
pub fn new_def() -> Result<BFMatcher>
Brute-force matcher constructor (obsolete). Please use BFMatcher.create()
§Note
This alternative version of [new] function uses the following default values for its arguments:
- norm_type: NORM_L2
- cross_check: false
sourcepub fn create(norm_type: i32, cross_check: bool) -> Result<Ptr<BFMatcher>>
pub fn create(norm_type: i32, cross_check: bool) -> Result<Ptr<BFMatcher>>
Brute-force matcher create method.
§Parameters
- normType: One of NORM_L1, NORM_L2, NORM_HAMMING, NORM_HAMMING2. L1 and L2 norms are preferable choices for SIFT and SURF descriptors, NORM_HAMMING should be used with ORB, BRISK and BRIEF, NORM_HAMMING2 should be used with ORB when WTA_K==3 or 4 (see ORB::ORB constructor description).
- crossCheck: If it is false, this is will be default BFMatcher behaviour when it finds the k nearest neighbors for each query descriptor. If crossCheck==true, then the knnMatch() method with k=1 will only return pairs (i,j) such that for i-th query descriptor the j-th descriptor in the matcher’s collection is the nearest and vice versa, i.e. the BFMatcher will only return consistent pairs. Such technique usually produces best results with minimal number of outliers when there are enough matches. This is alternative to the ratio test, used by D. Lowe in SIFT paper.
§C++ default parameters
- norm_type: NORM_L2
- cross_check: false
sourcepub fn create_def() -> Result<Ptr<BFMatcher>>
pub fn create_def() -> Result<Ptr<BFMatcher>>
Brute-force matcher create method.
§Parameters
- normType: One of NORM_L1, NORM_L2, NORM_HAMMING, NORM_HAMMING2. L1 and L2 norms are preferable choices for SIFT and SURF descriptors, NORM_HAMMING should be used with ORB, BRISK and BRIEF, NORM_HAMMING2 should be used with ORB when WTA_K==3 or 4 (see ORB::ORB constructor description).
- crossCheck: If it is false, this is will be default BFMatcher behaviour when it finds the k nearest neighbors for each query descriptor. If crossCheck==true, then the knnMatch() method with k=1 will only return pairs (i,j) such that for i-th query descriptor the j-th descriptor in the matcher’s collection is the nearest and vice versa, i.e. the BFMatcher will only return consistent pairs. Such technique usually produces best results with minimal number of outliers when there are enough matches. This is alternative to the ratio test, used by D. Lowe in SIFT paper.
§Note
This alternative version of BFMatcher::create function uses the following default values for its arguments:
- norm_type: NORM_L2
- cross_check: false
Trait Implementations§
source§impl AlgorithmTrait for BFMatcher
impl AlgorithmTrait for BFMatcher
source§impl AlgorithmTraitConst for BFMatcher
impl AlgorithmTraitConst for BFMatcher
fn as_raw_Algorithm(&self) -> *const c_void
source§fn write(&self, fs: &mut impl FileStorageTrait) -> Result<()>
fn write(&self, fs: &mut impl FileStorageTrait) -> Result<()>
Stores algorithm parameters in a file storage
source§fn write_1(&self, fs: &mut impl FileStorageTrait, name: &str) -> Result<()>
fn write_1(&self, fs: &mut impl FileStorageTrait, name: &str) -> Result<()>
Stores algorithm parameters in a file storage Read more
source§fn write_with_name(&self, fs: &Ptr<FileStorage>, name: &str) -> Result<()>
fn write_with_name(&self, fs: &Ptr<FileStorage>, name: &str) -> Result<()>
@deprecated Read more
source§fn write_with_name_def(&self, fs: &Ptr<FileStorage>) -> Result<()>
fn write_with_name_def(&self, fs: &Ptr<FileStorage>) -> Result<()>
👎Deprecated:
§Note
Deprecated: ## Note
This alternative version of AlgorithmTraitConst::write_with_name function uses the following default values for its arguments: Read more
source§fn empty(&self) -> Result<bool>
fn empty(&self) -> Result<bool>
Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read
source§fn save(&self, filename: &str) -> Result<()>
fn save(&self, filename: &str) -> Result<()>
Saves the algorithm to a file.
In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs).
source§fn get_default_name(&self) -> Result<String>
fn get_default_name(&self) -> Result<String>
Returns the algorithm string identifier.
This string is used as top level xml/yml node tag when the object is saved to a file or string.
source§impl BFMatcherTrait for BFMatcher
impl BFMatcherTrait for BFMatcher
fn as_raw_mut_BFMatcher(&mut self) -> *mut c_void
source§impl BFMatcherTraitConst for BFMatcher
impl BFMatcherTraitConst for BFMatcher
source§impl Boxed for BFMatcher
impl Boxed for BFMatcher
source§unsafe fn from_raw(ptr: <BFMatcher as OpenCVFromExtern>::ExternReceive) -> Self
unsafe fn from_raw(ptr: <BFMatcher as OpenCVFromExtern>::ExternReceive) -> Self
Wrap the specified raw pointer Read more
source§fn into_raw(self) -> <BFMatcher as OpenCVTypeExternContainer>::ExternSendMut
fn into_raw(self) -> <BFMatcher as OpenCVTypeExternContainer>::ExternSendMut
Return the underlying raw pointer while consuming this wrapper. Read more
source§fn as_raw(&self) -> <BFMatcher as OpenCVTypeExternContainer>::ExternSend
fn as_raw(&self) -> <BFMatcher as OpenCVTypeExternContainer>::ExternSend
Return the underlying raw pointer. Read more
source§fn as_raw_mut(
&mut self,
) -> <BFMatcher as OpenCVTypeExternContainer>::ExternSendMut
fn as_raw_mut( &mut self, ) -> <BFMatcher as OpenCVTypeExternContainer>::ExternSendMut
Return the underlying mutable raw pointer Read more
source§impl DescriptorMatcherTrait for BFMatcher
impl DescriptorMatcherTrait for BFMatcher
fn as_raw_mut_DescriptorMatcher(&mut self) -> *mut c_void
source§fn add(&mut self, descriptors: &impl ToInputArray) -> Result<()>
fn add(&mut self, descriptors: &impl ToInputArray) -> Result<()>
Adds descriptors to train a CPU(trainDescCollectionis) or GPU(utrainDescCollectionis) descriptor
collection. Read more
source§fn match_(
&mut self,
query_descriptors: &impl ToInputArray,
matches: &mut Vector<DMatch>,
masks: &impl ToInputArray,
) -> Result<()>
fn match_( &mut self, query_descriptors: &impl ToInputArray, matches: &mut Vector<DMatch>, masks: &impl ToInputArray, ) -> Result<()>
Finds the best match for each descriptor from a query set. Read more
source§fn match__def(
&mut self,
query_descriptors: &impl ToInputArray,
matches: &mut Vector<DMatch>,
) -> Result<()>
fn match__def( &mut self, query_descriptors: &impl ToInputArray, matches: &mut Vector<DMatch>, ) -> Result<()>
@overload Read more
source§fn knn_match(
&mut self,
query_descriptors: &impl ToInputArray,
matches: &mut Vector<Vector<DMatch>>,
k: i32,
masks: &impl ToInputArray,
compact_result: bool,
) -> Result<()>
fn knn_match( &mut self, query_descriptors: &impl ToInputArray, matches: &mut Vector<Vector<DMatch>>, k: i32, masks: &impl ToInputArray, compact_result: bool, ) -> Result<()>
Finds the k best matches for each descriptor from a query set. Read more
source§fn knn_match_def(
&mut self,
query_descriptors: &impl ToInputArray,
matches: &mut Vector<Vector<DMatch>>,
k: i32,
) -> Result<()>
fn knn_match_def( &mut self, query_descriptors: &impl ToInputArray, matches: &mut Vector<Vector<DMatch>>, k: i32, ) -> Result<()>
@overload Read more
source§fn radius_match(
&mut self,
query_descriptors: &impl ToInputArray,
matches: &mut Vector<Vector<DMatch>>,
max_distance: f32,
masks: &impl ToInputArray,
compact_result: bool,
) -> Result<()>
fn radius_match( &mut self, query_descriptors: &impl ToInputArray, matches: &mut Vector<Vector<DMatch>>, max_distance: f32, masks: &impl ToInputArray, compact_result: bool, ) -> Result<()>
For each query descriptor, finds the training descriptors not farther than the specified distance. Read more
source§fn radius_match_def(
&mut self,
query_descriptors: &impl ToInputArray,
matches: &mut Vector<Vector<DMatch>>,
max_distance: f32,
) -> Result<()>
fn radius_match_def( &mut self, query_descriptors: &impl ToInputArray, matches: &mut Vector<Vector<DMatch>>, max_distance: f32, ) -> Result<()>
@overload Read more
fn read(&mut self, file_name: &str) -> Result<()>
fn read_from_node(&mut self, unnamed: &impl FileNodeTraitConst) -> Result<()>
source§impl DescriptorMatcherTraitConst for BFMatcher
impl DescriptorMatcherTraitConst for BFMatcher
fn as_raw_DescriptorMatcher(&self) -> *const c_void
source§fn get_train_descriptors(&self) -> Result<Vector<Mat>>
fn get_train_descriptors(&self) -> Result<Vector<Mat>>
Returns a constant link to the train descriptor collection trainDescCollection .
source§fn empty(&self) -> Result<bool>
fn empty(&self) -> Result<bool>
Returns true if there are no train descriptors in the both collections.
source§fn is_mask_supported(&self) -> Result<bool>
fn is_mask_supported(&self) -> Result<bool>
Returns true if the descriptor matcher supports masking permissible matches.
source§fn train_match(
&self,
query_descriptors: &impl ToInputArray,
train_descriptors: &impl ToInputArray,
matches: &mut Vector<DMatch>,
mask: &impl ToInputArray,
) -> Result<()>
fn train_match( &self, query_descriptors: &impl ToInputArray, train_descriptors: &impl ToInputArray, matches: &mut Vector<DMatch>, mask: &impl ToInputArray, ) -> Result<()>
Finds the best match for each descriptor from a query set. Read more
source§fn train_match_def(
&self,
query_descriptors: &impl ToInputArray,
train_descriptors: &impl ToInputArray,
matches: &mut Vector<DMatch>,
) -> Result<()>
fn train_match_def( &self, query_descriptors: &impl ToInputArray, train_descriptors: &impl ToInputArray, matches: &mut Vector<DMatch>, ) -> Result<()>
Finds the best match for each descriptor from a query set. Read more
source§fn knn_train_match(
&self,
query_descriptors: &impl ToInputArray,
train_descriptors: &impl ToInputArray,
matches: &mut Vector<Vector<DMatch>>,
k: i32,
mask: &impl ToInputArray,
compact_result: bool,
) -> Result<()>
fn knn_train_match( &self, query_descriptors: &impl ToInputArray, train_descriptors: &impl ToInputArray, matches: &mut Vector<Vector<DMatch>>, k: i32, mask: &impl ToInputArray, compact_result: bool, ) -> Result<()>
Finds the k best matches for each descriptor from a query set. Read more
source§fn knn_train_match_def(
&self,
query_descriptors: &impl ToInputArray,
train_descriptors: &impl ToInputArray,
matches: &mut Vector<Vector<DMatch>>,
k: i32,
) -> Result<()>
fn knn_train_match_def( &self, query_descriptors: &impl ToInputArray, train_descriptors: &impl ToInputArray, matches: &mut Vector<Vector<DMatch>>, k: i32, ) -> Result<()>
Finds the k best matches for each descriptor from a query set. Read more
source§fn radius_train_match(
&self,
query_descriptors: &impl ToInputArray,
train_descriptors: &impl ToInputArray,
matches: &mut Vector<Vector<DMatch>>,
max_distance: f32,
mask: &impl ToInputArray,
compact_result: bool,
) -> Result<()>
fn radius_train_match( &self, query_descriptors: &impl ToInputArray, train_descriptors: &impl ToInputArray, matches: &mut Vector<Vector<DMatch>>, max_distance: f32, mask: &impl ToInputArray, compact_result: bool, ) -> Result<()>
For each query descriptor, finds the training descriptors not farther than the specified distance. Read more
source§fn radius_train_match_def(
&self,
query_descriptors: &impl ToInputArray,
train_descriptors: &impl ToInputArray,
matches: &mut Vector<Vector<DMatch>>,
max_distance: f32,
) -> Result<()>
fn radius_train_match_def( &self, query_descriptors: &impl ToInputArray, train_descriptors: &impl ToInputArray, matches: &mut Vector<Vector<DMatch>>, max_distance: f32, ) -> Result<()>
For each query descriptor, finds the training descriptors not farther than the specified distance. Read more
fn write(&self, file_name: &str) -> Result<()>
fn write_to_storage(&self, unnamed: &mut impl FileStorageTrait) -> Result<()>
source§fn clone(&self, empty_train_data: bool) -> Result<Ptr<DescriptorMatcher>>
fn clone(&self, empty_train_data: bool) -> Result<Ptr<DescriptorMatcher>>
Clones the matcher. Read more
fn write_to_storage_with_name( &self, fs: &mut impl FileStorageTrait, name: &str, ) -> Result<()>
fn write_to_storage_ptr_with_name( &self, fs: &Ptr<FileStorage>, name: &str, ) -> Result<()>
source§impl From<BFMatcher> for DescriptorMatcher
impl From<BFMatcher> for DescriptorMatcher
source§impl TryFrom<DescriptorMatcher> for BFMatcher
impl TryFrom<DescriptorMatcher> for BFMatcher
impl Send for BFMatcher
Auto Trait Implementations§
impl Freeze for BFMatcher
impl RefUnwindSafe for BFMatcher
impl !Sync for BFMatcher
impl Unpin for BFMatcher
impl UnwindSafe for BFMatcher
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
source§unsafe fn modify_inplace<Res>(
&mut self,
f: impl FnOnce(&Mat, &mut Mat) -> Res,
) -> Res
unsafe fn modify_inplace<Res>( &mut self, f: impl FnOnce(&Mat, &mut Mat) -> Res, ) -> Res
Helper function to call OpenCV functions that allow in-place modification of a
Mat
or another similar object. By passing
a mutable reference to the Mat
to this function your closure will get called with the read reference and a write references
to the same Mat
. This is unsafe in a general case as it leads to having non-exclusive mutable access to the internal data,
but it can be useful for some performance sensitive operations. One example of an OpenCV function that allows such in-place
modification is imgproc::threshold
. Read more