Я пишу программу, которая рисует линию на видео, где встречаются первые пиксели перил, моя проблема в том, что воспроизведение видео идет медленно.
Снимок экрана для справки о том, как выглядит видео.Во время видео камера приближается, но из-за медленной скорости мне приходится ждать несколько минут, чтобы увидеть изменения, но когда происходила съемка, она перемещалась каждые несколько секунд.
Я предполагаю, что проблема в том, что циклы for работают с каждым кадром видео, но я не уверен.
Какое решение я мог бы реализовать, чтобы ускорить мою программу?
import cv2
cap = cv2.VideoCapture('video.mp4')
while(cap.isOpened()):
ret, frame = cap.read()
canny = cv2.Canny(frame, 85, 255)
height, width = canny.shape
first_black_array = []
for x in range(width):
first_black_pixel_found = 0
for y in range(height):
if first_black_pixel_found == 0:
if canny[y,x] == 255:
first_black_array.append(height - y)
first_black_pixel_found = 1
cv2.line(frame,(x,y),(x,y),(0,255,0),1)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Спасибо!