#ifndef MLPP_CONVOLUTIONS_H #define MLPP_CONVOLUTIONS_H #include #include #include "core/math/math_defs.h" class MLPPConvolutions { public: MLPPConvolutions(); std::vector> convolve(std::vector> input, std::vector> filter, int S, int P = 0); std::vector>> convolve(std::vector>> input, std::vector>> filter, int S, int P = 0); std::vector> pool(std::vector> input, int F, int S, std::string type); std::vector>> pool(std::vector>> input, int F, int S, std::string type); real_t globalPool(std::vector> input, std::string type); std::vector globalPool(std::vector>> input, std::string type); real_t gaussian2D(real_t x, real_t y, real_t std); std::vector> gaussianFilter2D(int size, real_t std); std::vector> dx(std::vector> input); std::vector> dy(std::vector> input); std::vector> gradMagnitude(std::vector> input); std::vector> gradOrientation(std::vector> input); std::vector>> computeM(std::vector> input); std::vector> harrisCornerDetection(std::vector> input); std::vector> getPrewittHorizontal(); std::vector> getPrewittVertical(); std::vector> getSobelHorizontal(); std::vector> getSobelVertical(); std::vector> getScharrHorizontal(); std::vector> getScharrVertical(); std::vector> getRobertsHorizontal(); std::vector> getRobertsVertical(); private: std::vector> prewittHorizontal; std::vector> prewittVertical; std::vector> sobelHorizontal; std::vector> sobelVertical; std::vector> scharrHorizontal; std::vector> scharrVertical; std::vector> robertsHorizontal; std::vector> robertsVertical; }; #endif // Convolutions_hpp