Filter2D.h 945 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // Created by wrede on 11.07.16.
  3. //
  4. #ifndef GBMOT_FILTER_H
  5. #define GBMOT_FILTER_H
  6. #include <vector>
  7. #include <string>
  8. namespace util
  9. {
  10. class Filter2D
  11. {
  12. public:
  13. Filter2D();
  14. Filter2D(double multiplier, std::vector<double> mask);
  15. // Example:
  16. // mask_string = multiplier, m00, m01, m02, ..., m10, m11, m12, ..., mnn
  17. // delimiter = ,
  18. Filter2D(std::string const & mask_string, char delimiter);
  19. double Get(int x, int y) const;
  20. double Get(int i) const;
  21. double GetMultiplier() const;
  22. int GetVicinity() const;
  23. int GetDimension() const;
  24. void Normalize();
  25. private:
  26. int Index(int x, int y) const;
  27. int Vicinity(int size) const;
  28. int Dimension(int size) const;
  29. std::vector<double> mask_;
  30. double multiplier_;
  31. int dimension_;
  32. int vicinity_;
  33. };
  34. }
  35. #endif //GBMOT_FILTER_H