def detectionRED(frame, spisok):
""" В качестве аргумента функция принимает кадр, переводит в цветовой формат hsv,
накладывает маску только красного цвета, сглаживает области и находит контуры.
Цикл оставляет контуры, подходящие по размеру, и отрисовывает их.
Функция возвращает кадр, с нарисованными контурами"""
cv.imshow('img', frame)
frame_hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)
cv.imshow('frame0', frame_hsv)
frame_mask = cv.inRange(frame_hsv, (0, 162, 67), (255, 255, 255))
cv.imshow('frame1', frame_mask)
frame_dilate = cv.dilate(frame_mask, None, iterations=2)
cv.imshow('frame2', frame_dilate)
contours, hierarchy = cv.findContours(frame_dilate.copy(), cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
sort = spisok
for i in contours:
area = cv.contourArea(i)
if 400 < area < 10000: # можно регулировать дальность
sort.append(i)
cv.drawContours(frame, sort, -1, (0, 23, 44), 2)
return frame, sort