// Local-Hyperion includes #include "BlackBorderDetector.h" BlackBorderDetector::BlackBorderDetector() { // empty } BlackBorder BlackBorderDetector::process(const RgbImage& image) { int firstNonBlackPixelTop = -1; int firstNonBlackPixelLeft = -1; // Find the non-black pixel at the top-half border for (unsigned x=0; x 0) { // Border at top of screen // B-B-B-B ... // B +---- ... // C | // ? | // : detectedBorder.type = BlackBorder::horizontal; detectedBorder.size = firstNonBlackPixelLeft; } } else // (firstNonBlackPixelTop > 0) { if (firstNonBlackPixelLeft < 0) { // Border at left of screen // B-B-C-? ... // B +---- ... // B | // B | // : detectedBorder.type = BlackBorder::vertical; detectedBorder.size = firstNonBlackPixelTop; } else //(firstNonBlackPixelLeft > 0) { // No black border // B-B-C-? ... // B +---- // C | // ? | // : detectedBorder.type = BlackBorder::none; detectedBorder.size = -1; } } return detectedBorder; }