pub struct Akaze {
pub num_sublevels: u32,
pub max_octave_evolution: u32,
pub base_scale_offset: f64,
pub initial_contrast: f64,
pub contrast_percentile: f64,
pub contrast_factor_num_bins: usize,
pub derivative_factor: f64,
pub detector_threshold: f64,
pub descriptor_channels: usize,
pub descriptor_pattern_size: usize,
}Expand description
Contains the configuration parameters of AKAZE.
The most important parameter to pay attention to is detector_threshold.
[Config::new] can be used to set this threshold and let all other parameters
remain default. You can also use the helpers [Config::sparse] and
[Config::dense]. The default value of detector_threshold is 0.001.
Fields§
§num_sublevels: u32Default number of sublevels per scale level
max_octave_evolution: u32Maximum octave evolution of the image 2^sigma (coarsest scale sigma units)
base_scale_offset: f64Base scale offset (sigma units)
initial_contrast: f64The initial contrast factor parameter
contrast_percentile: f64Percentile level for the contrast factor
contrast_factor_num_bins: usizeNumber of bins for the contrast factor histogram
derivative_factor: f64Factor for the multiscale derivatives
detector_threshold: f64Detector response threshold to accept point
descriptor_channels: usizeNumber of channels in the descriptor (1, 2, 3)
descriptor_pattern_size: usizeActual patch size is 2pattern_sizepoint.scale
Implementations§
Source§impl Akaze
impl Akaze
Sourcepub fn extract_descriptors(
&self,
evolutions: &[EvolutionStep],
keypoints: &[KeyPoint],
) -> Vec<BitArray<64>>
pub fn extract_descriptors( &self, evolutions: &[EvolutionStep], keypoints: &[KeyPoint], ) -> Vec<BitArray<64>>
Source§impl Akaze
impl Akaze
Sourcepub fn detector_response(&self, evolutions: &mut Vec<EvolutionStep>)
pub fn detector_response(&self, evolutions: &mut Vec<EvolutionStep>)
Compute the detector response - the determinant of the Hessian - and save the result in the evolutions.
§Arguments
evolutions- The computed evolutions.options- The options
Source§impl Akaze
impl Akaze
Sourcepub fn detect_keypoints(
&self,
evolutions: &mut Vec<EvolutionStep>,
) -> Vec<KeyPoint>
pub fn detect_keypoints( &self, evolutions: &mut Vec<EvolutionStep>, ) -> Vec<KeyPoint>
Source§impl Akaze
impl Akaze
Source§impl Akaze
impl Akaze
Sourcepub fn extract(
&self,
image: &DynamicImage,
) -> (Vec<KeyPoint>, Vec<BitArray<64>>)
pub fn extract( &self, image: &DynamicImage, ) -> (Vec<KeyPoint>, Vec<BitArray<64>>)
Extract features using the Akaze feature extractor.
This performs all operations end-to-end. The client might be only interested in certain portions of the process, all of which are exposed in public functions, but this function can document how the various parts fit together.
§Arguments
image- The input image for which to extract features.options- The options for the algorithm. Set this toNonefor default options.
Returns the keypoints and the descriptors.
§Example
use std::path::Path;
let akaze = akaze::Akaze::default();
let (keypoints, descriptors) = akaze.extract(&image::open("res/0000000000.png").unwrap());Sourcepub fn extract_path(
&self,
path: impl AsRef<Path>,
) -> ImageResult<(Vec<KeyPoint>, Vec<BitArray<64>>)>
pub fn extract_path( &self, path: impl AsRef<Path>, ) -> ImageResult<(Vec<KeyPoint>, Vec<BitArray<64>>)>
Extract features using the Akaze feature extractor from an image on disk.
This performs all operations end-to-end. The client might be only interested in certain portions of the process, all of which are exposed in public functions, but this function can document how the various parts fit together.
§Arguments
path- The input image path for which to extract features.options- The options for the algorithm. Set this toNonefor default options.
Returns an ImageResult of the keypoints and the descriptors.
§Examples
use std::path::Path;
let akaze = akaze::Akaze::default();
let (keypoints, descriptors) = akaze.extract_path("res/0000000000.png").unwrap();Trait Implementations§
impl Copy for Akaze
Auto Trait Implementations§
impl Freeze for Akaze
impl RefUnwindSafe for Akaze
impl Send for Akaze
impl Sync for Akaze
impl Unpin for Akaze
impl UnsafeUnpin for Akaze
impl UnwindSafe for Akaze
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.