1 /**
2  * @file AKAZEConfig.h
3  * @brief AKAZE configuration file
4  * @date Feb 23, 2014
5  * @author Pablo F. Alcantarilla, Jesus Nuevo
6  */
7 
8 #ifndef __OPENCV_FEATURES_2D_AKAZE_CONFIG_H__
9 #define __OPENCV_FEATURES_2D_AKAZE_CONFIG_H__
10 
11 namespace cv
12 {
13 /* ************************************************************************* */
14 /// AKAZE configuration options structure
15 struct AKAZEOptions {
16 
AKAZEOptionsAKAZEOptions17     AKAZEOptions()
18         : omax(4)
19         , nsublevels(4)
20         , img_width(0)
21         , img_height(0)
22         , soffset(1.6f)
23         , derivative_factor(1.5f)
24         , sderivatives(1.0)
25         , diffusivity(KAZE::DIFF_PM_G2)
26 
27         , dthreshold(0.001f)
28         , min_dthreshold(0.00001f)
29 
30         , descriptor(AKAZE::DESCRIPTOR_MLDB)
31         , descriptor_size(0)
32         , descriptor_channels(3)
33         , descriptor_pattern_size(10)
34 
35         , kcontrast(0.001f)
36         , kcontrast_percentile(0.7f)
37         , kcontrast_nbins(300)
38     {
39     }
40 
41     int omax;                       ///< Maximum octave evolution of the image 2^sigma (coarsest scale sigma units)
42     int nsublevels;                 ///< Default number of sublevels per scale level
43     int img_width;                  ///< Width of the input image
44     int img_height;                 ///< Height of the input image
45     float soffset;                  ///< Base scale offset (sigma units)
46     float derivative_factor;        ///< Factor for the multiscale derivatives
47     float sderivatives;             ///< Smoothing factor for the derivatives
48     int diffusivity;   ///< Diffusivity type
49 
50     float dthreshold;               ///< Detector response threshold to accept point
51     float min_dthreshold;           ///< Minimum detector threshold to accept a point
52 
53     int descriptor;     ///< Type of descriptor
54     int descriptor_size;            ///< Size of the descriptor in bits. 0->Full size
55     int descriptor_channels;        ///< Number of channels in the descriptor (1, 2, 3)
56     int descriptor_pattern_size;    ///< Actual patch size is 2*pattern_size*point.scale
57 
58     float kcontrast;                ///< The contrast factor parameter
59     float kcontrast_percentile;     ///< Percentile level for the contrast factor
60     int kcontrast_nbins;            ///< Number of bins for the contrast factor histogram
61 };
62 
63 }
64 
65 #endif
66