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 grayscale
- FilterBlur: 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(); virtual QImage process(const QImage& 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 ...