pub trait MSDDetector: Feature2DTrait + MSDDetectorConst {
    // Required method
    fn as_raw_mut_MSDDetector(&mut self) -> *mut c_void;

    // Provided methods
    fn set_patch_radius(&mut self, patch_radius: i32) -> Result<()> { ... }
    fn set_search_area_radius(&mut self, use_orientation: i32) -> Result<()> { ... }
    fn set_nms_radius(&mut self, nms_radius: i32) -> Result<()> { ... }
    fn set_nms_scale_radius(&mut self, nms_scale_radius: i32) -> Result<()> { ... }
    fn set_th_saliency(&mut self, th_saliency: f32) -> Result<()> { ... }
    fn set_knn(&mut self, k_nn: i32) -> Result<()> { ... }
    fn set_scale_factor(&mut self, scale_factor: f32) -> Result<()> { ... }
    fn set_n_scales(&mut self, use_orientation: i32) -> Result<()> { ... }
    fn set_compute_orientation(
        &mut self,
        compute_orientation: bool
    ) -> Result<()> { ... }
}
Expand description

Class implementing the MSD (Maximal Self-Dissimilarity) keypoint detector, described in Tombari14.

The algorithm implements a novel interest point detector stemming from the intuition that image patches which are highly dissimilar over a relatively large extent of their surroundings hold the property of being repeatable and distinctive. This concept of “contextual self-dissimilarity” reverses the key paradigm of recent successful techniques such as the Local Self-Similarity descriptor and the Non-Local Means filter, which build upon the presence of similar - rather than dissimilar - patches. Moreover, it extends to contextual information the local self-dissimilarity notion embedded in established detectors of corner-like interest points, thereby achieving enhanced repeatability, distinctiveness and localization accuracy.

Required Methods§

Provided Methods§

source

fn set_patch_radius(&mut self, patch_radius: i32) -> Result<()>

source

fn set_search_area_radius(&mut self, use_orientation: i32) -> Result<()>

source

fn set_nms_radius(&mut self, nms_radius: i32) -> Result<()>

source

fn set_nms_scale_radius(&mut self, nms_scale_radius: i32) -> Result<()>

source

fn set_th_saliency(&mut self, th_saliency: f32) -> Result<()>

source

fn set_knn(&mut self, k_nn: i32) -> Result<()>

source

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

source

fn set_n_scales(&mut self, use_orientation: i32) -> Result<()>

source

fn set_compute_orientation(&mut self, compute_orientation: bool) -> Result<()>

Implementations§

source§

impl dyn MSDDetector + '_

source

pub fn create( m_patch_radius: i32, m_search_area_radius: i32, m_nms_radius: i32, m_nms_scale_radius: i32, m_th_saliency: f32, m_k_nn: i32, m_scale_factor: f32, m_n_scales: i32, m_compute_orientation: bool ) -> Result<Ptr<dyn MSDDetector>>

C++ default parameters
  • m_patch_radius: 3
  • m_search_area_radius: 5
  • m_nms_radius: 5
  • m_nms_scale_radius: 0
  • m_th_saliency: 250.0f
  • m_k_nn: 4
  • m_scale_factor: 1.25f
  • m_n_scales: -1
  • m_compute_orientation: false

Implementors§