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

Get End to End GUI Development with Qt5 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.