Skip to content

st4pzz/APS3_ALGLIN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

APS3_ALGLIN

Esse é um projeto da matéria de Algebra Linear e Teoria da Informação do Insper para o curso de Ciência da Computação.

Descrição do Projeto

O projeto consiste em fazer um processador de efeito de vídeo em tempo real que faça o seu streaming de vídeo ficar "girando" na tela

Descrição Matemática de cada função

Funcao criar_indices

A função criar_indices recebe quatro argumentos: min_i, max_i, min_j e max_j. Importa o módulo "itertools" e usa a função "product" desse módulo para criar uma lista "L" que contêm todos os pares ordenados possíveis (i,j) com i variando entre min_i e max_i e j variando entre min_j e max_j. Depois, a função cria dois arrays numpy "idx_i" e "idx_j", que contêm, respectivamente, todos os valores de i e j da lista "L". E assim, a função empilha os arrays "idx_i" e "idx_j" verticalmente, usando a função "vstack" do numpy, para criar uma matriz de índices com duas linhas e N colunas (onde N é o número de pares ordenados possíveis), em que a primeira linha contém todos os valores de i e a segunda linha contém todos os valores de j. E por fim, retorna a matriz de índices criada.

Funcao run

A função run é responsável por abrir a câmera do computador e mostrar a imagem capturada em tempo real. A largura e altura da imagem são definidas, width = 320 e height = 240 e uma dica é fornecidas para otimizar o processamento, imagens menores precisam de menos processamento. Em seguida, é verificado se outros dispositivos estão acessando a câmera. É definida uma matriz de rotação identidade para ser incrementada, e outra matriz de rotação para ser multiplicada pela primeira. Em seguida, é iniciado um loop que é encerrado quando 'q' é pressionado no teclado. A cada iteração, um novo frame é capturado da câmera, o tamanho do frame é reduzido para reduzir o processamento necessário nas próximas etapas e é verificado se o frame foi capturado com sucesso. A imagem é girada ou contraiada de acordo com o teclado pressionado pelo usuário, ultilizando as teclas 'a' e 'd' para girar, 's' para contrair, no qual a contração é uma transformação que reduz as dimensões de uma imagem e 'w' para voltar a imagem a seu estado original. Depois de todas as transformações, a imagem resultante é exibida na tela por 40ms. Se 'q' é pressionado, o loop é encerrado e os recursos são devolvidos ao sistema.

Como rodar o projeto

Para rodar o projeto e testar o projeto, basta acessar e rodar o arquivo demo.py, nesse arquivo você pode visualizar a sua camera. Com as teclas "a" ou "d" fazer sua camera rodar, tecla "s" para fazer a contração e a tecla "Q" para fechar a janela da imagem exibida.

Prévia

Screen Recording 2023-03-19 at 8 17 17 PM

Autores

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages