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 protected:
00017 int N_BINS;
00018 int ANGLE;
00019 int BINS_ANGLE;
00020 int CELL;
00021 int BLOCK;
00022
00023 private:
00024 virtual void bilinearBinVoting(
00025 const float &, int &, int &);
00026 virtual void imageGradient(
00027 const cv::Mat &, cv::Mat &);
00028 virtual cv::Mat blockGradient(
00029 const int, const int, cv::Mat &);
00030 virtual void getHOG(
00031 const cv::Mat &, cv::Mat &, cv::Mat &);
00032 template<typename T>
00033 T computeHOGHistogramDistances(
00034 const cv::Mat &, std::vector<cv::Mat> &,
00035 const int = CV_COMP_BHATTACHARYYA);
00036
00037 public:
00038 HOGFeatureDescriptor(
00039 const int = 8, const int = 2, const int = 9,
00040 const float = 180.0f);
00041 virtual cv::Mat computeHOG(
00042 const cv::Mat &);
00043 };
00044
00045 #endif // _HISTOGRAM_OF_ORIENTED_GRADIENTS_H_