#include "BlackBorderDetector.h" BlackBorderDetector::BlackBorderDetector() { } BlackBorder BlackBorderDetector::process(const RgbImage& image) { int firstNonBlackPixelTop = -1; int firstNonBlackPixelLeft = -1; for (unsigned x=0; x (int)(image.height()/2) ) { // We don't know // B-B-B-B ... B-B-B-B // B +---- ... ----- ? // B | // B | // : // B | // B | // B | // B ? detectedBorder.type = BlackBorder::unknown; detectedBorder.size = -1; } else //(firstNonBlackPixelLeft > 0 && firstNonBlackPixelLeft < image.height()/2) { // Border at top of screen // B-B-B-B ... B-B-B-B // B +---- ... ----- ? // C | // ? | // : detectedBorder.type = BlackBorder::horizontal; detectedBorder.size = firstNonBlackPixelLeft; } } else // (firstNonBlackPixelTop > 0) { if (firstNonBlackPixelTop < int(image.width()/2) && firstNonBlackPixelLeft < 0) { // Border at left of screen // B-B-C-? ... // B +---- ... ----- ? // B | // B | // : // B | // B | // B | // B ? detectedBorder.type = BlackBorder::vertical; detectedBorder.size = firstNonBlackPixelTop; } else //(firstNonBlackPixelTop > int(mage.width()/2) || firstNonBlackPixelLeft > 0) { // No black border // B-B-C-? ... // B +---- // C | // ? | // : detectedBorder.type = BlackBorder::none; detectedBorder.size = -1; } } return detectedBorder; }