Представление обнаружения цвета в True или False - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь получить определение цвета в True или False.Я хочу создать программу, которая может сообщать мне о состоянии «Красный световой сигнал» о состоянии «Включен» или «Выключен», возвращая Статус обнаружения в значение «Истина» и «Ложь».

Я использую OpenCV, потому что хочу написать простую иточный скрипт на python.

def detect_status(image, Threshold=0.01):

    height = image.shape[0]
    width = image.shape[1]
    desired_dim = (width, height) # width, height
    image = cv2.resize(np.array(image), desired_dim, interpolation=cv2.INTER_LINEAR)
    image_hsv=cv2.cvtColor(image, cv2.COLOR_RGB2HSV)

    # Masks for red
    # mask 0
    lower_red = np.array([99,126,0])
    upper_red = np.array([180,255,255])
    mask0 = cv2.inRange(image_hsv, lower_red, upper_red)

    # mask 1
    lower_red = np.array([0,50,50])
    upper_red = np.array([10,255,255])
    mask2 = cv2.inRange(image_hsv, lower_red, upper_red)

    # mask 2
    lower_red = np.array([170,50,50])
    upper_red = np.array([180,255,255])
    mask1 = cv2.inRange(image_hsv, lower_red, upper_red)



    # red pixels' mask
    mask = mask0+mask1+mask2

    Compare the percentage of red values
    rate = np.count_nonzero(mask) / (desired_dim[0] * desired_dim[1])

    if rate > Threshold:
        return True
    else:
        return False

Ожидается обнаружение цвета в True of False.

...