From b9d9ae72d7e372fc80ba87a05a49cb989ca1703a Mon Sep 17 00:00:00 2001 From: Jim Martens Date: Tue, 9 May 2017 15:37:46 +0200 Subject: [PATCH] [CVV] Added gaussian pyramid class from prev sheet Signed-off-by: Jim Martens --- ccv/sheet5/gauss_pyramid.cpp | 25 +++++++++++++++++++++++++ ccv/sheet5/gauss_pyramid.h | 18 ++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 ccv/sheet5/gauss_pyramid.cpp create mode 100644 ccv/sheet5/gauss_pyramid.h diff --git a/ccv/sheet5/gauss_pyramid.cpp b/ccv/sheet5/gauss_pyramid.cpp new file mode 100644 index 0000000..108f51b --- /dev/null +++ b/ccv/sheet5/gauss_pyramid.cpp @@ -0,0 +1,25 @@ +#include "gauss_pyramid.h" + +gauss_pyramid::gauss_pyramid() {} + +gauss_pyramid::gauss_pyramid(cv::Mat img, float sigma, int number_of_layers) +{ + cv::Mat blurredImage; + cv::Mat resizedImage = img.clone(); + for (int i = 0; i < number_of_layers; i++) + { + cv::GaussianBlur(resizedImage, blurredImage, cv::Size(0, 0), sigma, sigma, cv::BORDER_REPLICATE); + _layers.push_back(blurredImage.clone()); + cv::resize(blurredImage, resizedImage, cv::Size(), 0.5, 0.5, cv::INTER_NEAREST); + } +} + +cv::Mat gauss_pyramid::get(int layer) +{ + return _layers.at((unsigned long) layer); +} + +unsigned long gauss_pyramid::get_number_of_layers() +{ + return _layers.size(); +} diff --git a/ccv/sheet5/gauss_pyramid.h b/ccv/sheet5/gauss_pyramid.h new file mode 100644 index 0000000..4583332 --- /dev/null +++ b/ccv/sheet5/gauss_pyramid.h @@ -0,0 +1,18 @@ +#ifndef SHEET3_GAUSS_PYRAMID_H +#define SHEET3_GAUSS_PYRAMID_H + +#include + +class gauss_pyramid +{ +private: + std::vector _layers; +public: + gauss_pyramid(); + gauss_pyramid(cv::Mat img, float sigma, int number_of_layers); + cv::Mat get(int layer); + unsigned long get_number_of_layers(); +}; + + +#endif //SHEET3_GAUSS_PYRAMID_H