-
Notifications
You must be signed in to change notification settings - Fork 7
/
algorithm_wdtocs.hpp
37 lines (34 loc) · 1.44 KB
/
algorithm_wdtocs.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef ALGORITHM_WDTOCS_HPP_XB3U83S3CR1
#define ALGORITHM_WDTOCS_HPP_XB3U83S3CR1
#include <stdlib.h>
#include <log4cxx/logger.h>
#include <log4cxx/basicconfigurator.h>
#include <log4cxx/helpers/exception.h>
#include <boost/foreach.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/unordered_map.hpp>
#include <boost/multi_array.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <Eigen/Core>
#include <Eigen/Eigen>
#include "algorithm_distance_map.hpp"
//namespace std {using namespace __gnu_cxx;}
using namespace std;
namespace prhlt {
class Algorithm_WDTOCS: public Algorithm_Distance_Map{
public:
Algorithm_WDTOCS(cv::Mat &ex_image);
void run(int ex_curvature_ratio, int ex_threshold,float ex_direct_constant, float ex_diagonal_constant);
void run(int ex_curvature_ratio, cv::Mat frontier_points_mat,float ex_direct_constant, float ex_diagonal_constant);
protected:
float direct_distance_constant;
float diagonal_distance_constant;
virtual float calculate_neighbour_value(int r1,int c1, int r2, int c2);
float calculate_grey_gradient(int r1,int c1, int r2, int c2);
float calculate_straight_path_grey_gradient(int r1,int c1, int r2, int c2);
float calculate_diagonal_path_grey_gradient(int r1,int c1, int r2, int c2);
};
}
#endif /* end of include guard*/