Implementing your OpenCV filters
Now that your development environment is ready, we can begin the fun part! We will implement three filters using OpenCV:
FilterOriginal
: This filter does nothing and returns the same picture (lazy!)FilterGrayscale
: This filter converts a picture from color to grayscaleFilterBlur
: This filter smoothes the picture
The parent class of all these filters is Filter
. Here is this abstract class:
//Filter.h class Filter { public: Filter(); virtual ~Filter(); virtualQImage process(constQImage& image) = 0; }; //Filter.cpp Filter::Filter() {} Filter::~Filter() {}
As you can see, process()
is a pure abstract method. All filters will implement a specific behavior with this function. Let's begin with the simple FilterOriginal
class. Here is FilterOriginal.h
:
class FilterOriginal : public Filter { public: FilterOriginal(); ~FilterOriginal(); QImageprocess(constQImage& image) override; };
This class inherits Filter
and we override the process...