OpenCV более эффективное решение для вычитания фона
Есть сценарий, в котором я должен определить круглые / овальные отметки, которые находятся на плиточном полу. Я попытался использовать следующие алгоритмы вычитания фона, которые встроены в OpenCV отдельно.
filter1 = cv.bgsegm.createBackgroundSubtractorMOG()
filter2 = cv.createBackgroundSubtractorMOG2()
filter3 = cv.bgsegm.createBackgroundSubtractorGMG()
Результат был следующим соответственно (первое изображение - исходное изображение, а остальные - результирующие изображения)
Как видите, черный круг, который я хочу идентифицировать, не идентифицирован. Поэтому я использовал следующую команду определения порога, чтобы идентифицировать метку.
ret, thresh = cv.threshold(img, 75, 255, cv.THRESH_BINARY_INV)
Что дает следующий результат.
Он идентифицирует метку, но я не уверен, что метод определения порога будет работать эффективно при разном освещении и фоне.
Поэтому я ищу лучшее решение, чтобы я мог более точно идентифицировать метку.