Skip to content

henriquewaisman/uvv_lp_1_cc3m

Repository files navigation

Linguagens de Programação

Pset 1

Aluno: Henrique Oliveira Waisman
Turma: CC3M
Professor: Abrantes Araújo Silva Filho

Descrição

Este PSET é uma tradução da primeira tarefa de programação que os alunos da
disciplina “MIT 6.009: Fundamentals of Programming” recebem logo no primeiro
dia de aula, feita para os alunos da disciplina “Linguagens de Programação” na
Universidade Vila Velha (UVV).

Questões

Questão 1

Se você passar essa imagem (altura: 1 • largura: 4 • pixels: [29, 89, 136, 200]) pelo filtro de inversão, qual seria o output esperado? Justifique sua resposta.

Ao aplicar o filtro de inversão, cada pixel da imagem passará pela função:
image_invertida
Após toda imagem passar pelo tratamento, será esperado um output de altura: 1, largura: 4 e pixels: [226, 166, 119, 55]

Questão 2

Faça a depuração e, quando terminar, seu código deve conseguir passar em todos os testes do grupo de teste TestInvertida (incluindo especificamente o que você acabou de criar). Execute seu filtro de inversão na imagem test_images/bluegill.png, salve o resultado como uma imagem PNG e salve a imagem em seu repositório GitHub.

Chamado:
call3
Input:
input1
Output:
image_bluegill

Questão 3

Considere uma etapa de correlacionar uma imagem com o seguinte kernel:
0.00 -0.07 0.00
-0.45 1.20 -0.25
0.00 -0.12 0.00

Aqui está uma parte de uma imagem de amostra, com as luminosidades específicas de alguns pixels:

image_questao3

Qual será o valor do pixel na imagem de saída no local indicado pelo destaque vermelho?
Observe que neste ponto ainda não arredondamos ou recortamos o valor, informe exatamente como você calculou.
Observação: demonstre passo a passo os cálculos realizados.

Resposta:
Ox,y = 32,76

Cálculo:
80x0   +   (-0,07x53)   +   99x0 +
(-0,45x129)   +   127x1,20   +   (-0,25x148) +
175x0   +   (-0,12x174)   +   193x0

+0   -3,71   +0
-58,05   +152,4   -37
+0   -20,88   +0
= 32,76

Questão 4

Quando você tiver implementado seu código, tente executá-lo em test_images/pigbird.png com o seguinte kernel 9 × 9:
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Ao rodar esse kernel, salve a imagem resultante em seu repositório GitHub.

Chamado:
call5
Input:
input2
Output:
pigbird

Questão da Seção 5.1

Quando você terminar e seu código passar em todos os testes relacionados ao desfoque, execute seu filtro na imagem test_images/cat.png com um kernel de desfoque de caixa de tamanho 5, salve o resultado como uma imagem PNG e faça o upload para seu repositório GitHub.

Chamado:
call5.1
Input:
input3
Output:
cat1

Questão 5

Se quisermos usar uma versão desfocada B que foi feita com um kernel de desfoque de caixa de 3 × 3, que kernel k poderíamos usar para calcular toda a imagem nítida com uma única correlação? Justifique sua resposta mostrando os cálculos.

O kernel pode ser calculado pela equação descrita na seção 5.2 do pdf:

  • Sx,y = round(2Ix,y − Bx,y)
    Como queremos achar o kernel de entrada, precisamos usar o kernel identidade descrito na seção 4.3.1
  • 0 0 0
    0 1 0
    0 0 0
    Multiplicando por 2 como mostrado na equação 2Ix,y − Bx,y, temos:
  • 0 0 0
    0 2 0
    0 0 0
    Bastaria então fazer a subtração de 2Ix,y de 2bx, y que obteríamos o resultado esperado com uma única correlação.

Aplicação:

Chamado:
call55
Input:
python
Output:
python1

Questão 6

Explique o que cada um dos kernels acima, por si só, está fazendo. Tente executar mostrar nos resultados dessas correlações intermediárias para ter uma noção do que está acontecendo aqui.

Kernel Kx:
-1 0 1
-2 0 2
-1 0 1

Kernel Ky:
-1 -2 -1
0 0 0
1 2 1

Kernel Kx destaca bordas no eixo X e Ky faz o mesmo no eixo Y

Chamado:

call6

Original:

construct

Kernel Kx:

kx

Kernel Ky:

ky

Ambos Aplicados:

kxky

Arquivo Teste:

test

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages