Загрузка данных


import cv2

image = cv2.imread("Слайд1.PNG")
yellow = ((15, 100, 100), (40, 255, 255))

def find_contours(img, color):
    img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    img_mask = cv2.inRange(img_hsv, color[0], color[1])
    contours, _ = cv2.findContours(img_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    return contours

def detect_flashlights(image):
    result = ["0", "0", "0"]
    contours = find_contours(image, yellow)

    for contour in contours:
        M = cv2.moments(contour)
        x = int(M["m10"] / M["m00"])

        if x < 500:
            result[0] = "1"
        elif x < 800:
            result[1] = "1"
        else:
            result[2] = "1"

    binary = "".join(result)
    decimal = int(binary, 2)

    return binary, decimal


binary, decimal = detect_flashlights(image)

print(binary, "-", decimal)