Olá Ramon,
Nos códigos, implementei a interrupção do loop por meio do teclado. Você também poderia controlar o fluxo por outra abordagem, por exemplo, quando houver algum frame disponível o algoritmo processa, do contrário ele realiza um break do loop. Veja abaixo:
video = cv2.VideoCapture("videos/expressoes.mov")
try:
while(True):
captura_ok, frame = video.read()
if captura_ok:
frame = padronizar_imagem(frame)
exibir_video(frame)
else:
video.release()
println("Video terminado")
break
A lentidão pode ter vários fatores, a principal é mesmo o processamento, pois quando exibimos a imagem ela é desenhada quadro a quadro. Fatores como o tamanho e frames por segundo também interferem.
Sugiro dar uma lida neste artigo e experimentar outras configurações para tornar o processamento e a exibição mais rápidos!
Abraço.