Go to the documentation of this file.00001
00002 #ifndef _HISTOGRAM_OF_ORIENTED_GRADIENTS_H_
00003 #define _HISTOGRAM_OF_ORIENTED_GRADIENTS_H_
00004
00005
00006 #include <opencv2/opencv.hpp>
00007 #include <opencv2/highgui/highgui.hpp>
00008 #include <opencv2/imgproc/imgproc.hpp>
00009
00010 #include <string>
00011 #include <vector>
00012
00013 class HOGFeatureDescriptor {
00014
00015
00016 #define N_BINS 9
00017 #define ANGLE 180.0
00018 #define BINS_ANGLE (ANGLE / N_BINS)
00019 #define CELL 8
00020 #define BLOCK 2
00021
00022 private:
00023 virtual void bilinearBinVoting(
00024 const float &, int &, int &);
00025 virtual void imageGradient(
00026 const cv::Mat &, cv::Mat &);
00027 virtual cv::Mat blockGradient(
00028 const int, const int, cv::Mat &);
00029 virtual cv::Mat orientationistogram(
00030 const cv::Mat&, const int &, const int &, bool = false);
00031 virtual void getHOG(
00032 const cv::Mat &, cv::Mat &, cv::Mat &);
00033 template<typename T>
00034 T computeHOGHistogramDistances(
00035 const cv::Mat &, std::vector<cv::Mat> &,
00036 const int = CV_COMP_BHATTACHARYYA);
00037
00038 public:
00039 HOGFeatureDescriptor();
00040 virtual cv::Mat computeHOG(
00041 const cv::Mat &);
00042 };
00043
00044 #endif // _HISTOGRAM_OF_ORIENTED_GRADIENTS_H_