KDEAmbi/BlackBorderDetector.h

40 lines
802 B
C++

#ifndef BLACKBORDERDETECTOR_H
#define BLACKBORDERDETECTOR_H
#include <QImage>
#include <QColor>
#include <QJsonObject>
struct BlackBorder {
bool unknown = true;
int horizontalSize = 0;
int verticalSize = 0;
};
class BlackBorderDetector
{
public:
explicit BlackBorderDetector(const QJsonObject &config);
BlackBorder process(const QImage &image);
private:
bool isBlack(const QColor &color) const;
bool _enabled;
uint8_t _threshold;
int _unknownFrameCnt;
int _borderFrameCnt;
int _maxInconsistentCnt;
int _blurRemoveCnt;
QString _mode;
// Internal state for the detector
int _currentUnknownFrameCnt;
int _currentBorderFrameCnt;
int _currentInconsistentCnt;
BlackBorder _lastDetectedBorder;
};
#endif // BLACKBORDERDETECTOR_H