Now that your development environment is ready, we can begin the fun part! We will implement three filters using OpenCV:
- FilterOriginal: Does nothing and returns the same picture (lazy!)
- FilterGrayscale: Converts a picture from color to grayscale
- FilterBlur: Smooths the picture
The parent class of all these filters is Filter. Here is the 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 FilterOriginal class. Here is FilterOriginal.h ...