Программа берет из папки изображения светофоров и далее выводит цвет каждого в виде [0,0,1], [1,0,0], и [0,1,0](в коде это ясно видно)
На Thonny программа компилируется прекрасно, но не на сайте. С чем может быть связана ошибка и как её решить?
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/"