blob: f2bc0eee34d5f938c9c29d02a3c964f4a00935e9 [file] [log] [blame]
Yash Chainani5458dea2022-06-29 21:05:02 -07001/**
2 * @file TEvolution.h
3 * @brief Header file with the declaration of the TEvolution struct
4 * @date Jun 02, 2014
5 * @author Pablo F. Alcantarilla
6 */
7
8#ifndef __OPENCV_FEATURES_2D_TEVOLUTION_H__
9#define __OPENCV_FEATURES_2D_TEVOLUTION_H__
10
11#include <opencv2/core.hpp>
12
13namespace cv {
14
15/* ************************************************************************* */
16/// KAZE/A-KAZE nonlinear diffusion filtering evolution
17struct TEvolutionV2 {
18 TEvolutionV2() {
19 etime = 0.0f;
20 esigma = 0.0f;
21 octave = 0;
22 sublevel = 0;
23 sigma_size = 0;
24 octave_ratio = 1.0f;
25 }
26
27 Mat Lx, Ly; ///< First order spatial derivatives
28 Mat Lxx, Lxy, Lyy; ///< Second order spatial derivatives
29 Mat Lt; ///< Evolution image
30 Mat Lsmooth; ///< Smoothed image
31 Mat Ldet; ///< Detector response
32
33 Mat DxKx, DxKy; ///< Derivative kernels (kx and ky) of xorder = 1
34 Mat DyKx, DyKy; ///< Derivative kernels (kx and ky) of yorder = 1
35
36 float etime; ///< Evolution time
37 float esigma; ///< Evolution sigma. For linear diffusion t = sigma^2 / 2
38 int octave; ///< Image octave
39 int sublevel; ///< Image sublevel in each octave
40 int sigma_size; ///< Scaling factor of esigma that is round(esigma *
41 ///< derivative_factor / power)
42 int border; ///< Width of border where descriptors cannot be computed
43 float octave_ratio; ///< Scaling ratio of this octave. ratio = 2^octave
44};
45
46} // namespace cv
47
48#endif