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 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 FilterOriginal ...

Get Mastering Qt 5 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.