mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
71 lines
2.2 KiB
C++
71 lines
2.2 KiB
C++
|
|
#pragma once
|
|
|
|
// Local Hyperion includes
|
|
#include "BlackBorderDetector.h"
|
|
|
|
namespace hyperion
|
|
{
|
|
///
|
|
/// The BlackBorder processor is a wrapper around the black-border detector for keeping track of
|
|
/// detected borders and count of the type and size of detected borders.
|
|
///
|
|
class BlackBorderProcessor
|
|
{
|
|
public:
|
|
///
|
|
/// Constructor for the BlackBorderProcessor
|
|
/// @param unknownFrameCnt The number of frames(images) that need to contain an unknown
|
|
/// border before the current border is set to unknown
|
|
/// @param borderFrameCnt The number of frames(images) that need to contain a vertical or
|
|
/// horizontal border becomes the current border
|
|
/// @param blurRemoveCnt The size to add to a horizontal or vertical border (because the
|
|
/// outer pixels is blurred (black and color combined))
|
|
///
|
|
BlackBorderProcessor(
|
|
const unsigned unknownFrameCnt,
|
|
const unsigned borderFrameCnt,
|
|
const unsigned blurRemoveCnt);
|
|
|
|
///
|
|
/// Return the current (detected) border
|
|
/// @return The current border
|
|
///
|
|
BlackBorder getCurrentBorder() const;
|
|
|
|
///
|
|
/// Processes the image. This performs detecion of black-border on the given image and
|
|
/// updates the current border accordingly. If the current border is updated the method call
|
|
/// will return true else false
|
|
///
|
|
/// @param image The image to process
|
|
///
|
|
/// @return True if a different border was detected than the current else false
|
|
///
|
|
bool process(const RgbImage& image);
|
|
|
|
private:
|
|
|
|
/// The number of unknown-borders detected before it becomes the current border
|
|
const unsigned _unknownSwitchCnt;
|
|
|
|
/// The number of horizontal/vertical borders detected before it becomes the current border
|
|
const unsigned _borderSwitchCnt;
|
|
|
|
/// The number of pixels to increase a detected border for removing blury pixels
|
|
unsigned _blurRemoveCnt;
|
|
|
|
/// The blackborder detector
|
|
BlackBorderDetector _detector;
|
|
|
|
/// The current detected border
|
|
BlackBorder _currentBorder;
|
|
|
|
/// The border detected in the previous frame
|
|
BlackBorder _previousDetectedBorder;
|
|
|
|
/// The number of frame the previous detected border matched the incomming border
|
|
unsigned _consistentCnt;
|
|
};
|
|
} // end namespace hyperion
|