Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Exercício na aula errada

Copie e colei o seguinte trecho:

from io import BytesIO
from IPython.display import clear_output, Image, display
from PIL import Image as Img
import cv2

def padronizar_imagem(imagem):
    imagem = cv2.cvtColor(imagem, cv2.COLOR_BGR2RGB)
    imagem = cv2.resize(imagem, (400,300))
    return imagem

def exibir_video(frame):
    img = Img.fromarray(frame, "RGB")
    buffer = BytesIO()
    img.save(buffer, format="JPEG")
    display(Image(data=buffer.getvalue()))
    clear_output(wait=True)

captura_video = cv2.VideoCapture(0)

try:
    while(True):
        captura_ok, frame = captura_video.read()

        if captura_ok:
            frame = padronizar_imagem(frame)
            exibir_video(frame)

except KeyboardInterrupt:
    captura_video.release()
    print("Interrompido")

Rodo o programa e não me vejo na tela.... O que estou fazendo errado?

Acho que esse exercicio está no lugar errado....deve ser de alguma aula mais para frente

4 respostas

Olá,

Na verdade o exercício é assim mesmo, embora vamos falar melhor sobre estas funções mais a frente.

Esta forma de renderização funciona com a câmera do seu notebook ou desktop, você tem alguma câmera conectada?

Ambientes como o Google Colab não funciona. Nesse caso, ou no caso de não ter uma câmera, você pode gravar um vídeo e ao invés de passar o valor 0 aqui cv2.VideoCapture(0) você passa o caminho do arquivo do vídeo, assim cv2.VideoCapture("pasta/video.avi").

Então eu estou rodando no meu terminal do linux, e quando rodo vejo algo acontecendo no terminal, acho que salvando as imagens, mas eu não consigo me ver na tela.

Eu respondi há pouco em um tópico semelhante. Tente conferir se colocou, antes da execução, logo depois dos imports ... o comando %matplotlib inline. Para isolarmos se o problema é com sua câmera, experimente utilizar aquele método que você empregou na aula 6, que foi a exibição utilizando o cv2.imshow. Não se esqueça que as imagens precisam estar em BGR, logo não é necessário converter para RGB. Por fim, compartilhe aqui os resultados e o retorno no seu terminal para entender bem os logs de execução.

solução

Como já tem um tempo que não recebo feedback seu, vou marcar como resolvido, tudo bem?

Qualquer dúvida a adicional, me avise por favor.

Abraço!