#ifndef Convolutions_hpp #define Convolutions_hpp #include namespace MLPP{ class Convolutions{ public: Convolutions(); 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); double globalPool(std::vector> input, std::string type); std::vector globalPool(std::vector>> input, std::string type); double gaussian2D(double x, double y, double std); std::vector> gaussianFilter2D(int size, double 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