@ShishkaNsh3

В чем ошибка и как её решить?

Программа берет из папки изображения светофоров и далее выводит цвет каждого в виде [0,0,1], [1,0,0], и [0,1,0](в коде это ясно видно)
На Thonny программа компилируется прекрасно, но не на сайте. С чем может быть связана ошибка и как её решить?
5fbfffafdc4e0718591262.png

import cv2
import os
import glob
import numpy

def one_hot_encode(label):

    """ Функция осуществляет перекодировку текстового входного сигнала
     в массив элементов, соответствующий выходному сигналу

     Входные параметры: текстовая метка

     Выходные параметры: метка ввиде массива

     Пример:

        one_hot_encode("red") должно возвращать: [1, 0, 0]
        one_hot_encode("yellow") должно возвращать: [0, 1, 0]
        one_hot_encode("green") должно возвращать: [0, 0, 1]

     """

    one_hot_encoded = []

    if label == "red":
        one_hot_encoded = [1, 0, 0]
    elif label == "yellow":
        one_hot_encoded = [0, 1, 0]
    elif label == "green":
        one_hot_encoded = [0, 0, 1]

    return one_hot_encoded

# приведение входного изображения к стандартному виду
def standardize_input(image):
    standard_im = cv2.imread(image)
    standard_im = cv2.resize(standard_im,(599,998))
    """Приведение изображений к стандартному виду. 
    Входные данные: изображение
    Выходные данные: стандартизированное изображений.
    """
    ## TODO: Если вы хотите преобразовать изображение в формат, одинаковый для всех изображений, сделайте это здесь.
    return standard_im

# Определение сигнала светофора по изображению

def predict_label(rgb_image):
    rgb_image = rgb_image[211:883,258:378]
    """
     функция определения сигнала светофора по входному изображению

     Входные данные: rgb изображение
     Выходные данные:

    """
    ## TODO: ваша функция распознавания сигнала светофора должна быть здесь.
    hsv = cv2.cvtColor(rgb_image, cv2.COLOR_BGR2HSV)
    v = hsv[:,:,2]

    green_sum = numpy.sum(v[449:672,0:120])
    yellow_sum = numpy.sum(v[225:448,0:120])
    red_sum = numpy.sum(v[0:224,0:120])
    
    if green_sum > yellow_sum and green_sum > red_sum:
        predicted_label="green"
    if yellow_sum > green_sum and yellow_sum > red_sum:
        predicted_label="yellow"  
    if red_sum > yellow_sum and red_sum > green_sum:
        predicted_label="red"
        
    encoded_label = one_hot_encode(predicted_label)
    return encoded_label

path = "/tlr_offline/traffic_light_images/training/"
color = ["red","green","yellow"]
for clr in color:
    path=os.path.join(path, clr)
    os.path.join(path,"*.jpg")
    fileList = glob.glob(os.path.join(path,"*.jpg"))
    for filename in fileList:
        frame=standardize_input(filename)
        print(predict_label(frame))
    path = "/tlr_offline/traffic_light_images/training/"
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы