• Nenhum resultado encontrado

Prova Fundamentos Computação Gráfica

N/A
N/A
Protected

Academic year: 2021

Share "Prova Fundamentos Computação Gráfica"

Copied!
13
0
0

Texto

(1)

Pontifícia Universidade Católica do Rio de

Janeiro

Pós-Graduação em Informática

Prova Fundamentos

Computação Gráfica

Nome: Eduardo Ceretta Dalla Favera

Matricula: 1012631

(2)

1ª Questão

A rotulação de componentes conexos em uma imagem de duas dimensões possui grande aplicação na área de visão computacional. Esta técnica é usada para definir um rótulo único para cada uma das estruturas presentes na imagem a ser analisada e obter o número de objetos presentes na mesma.

As aplicações desta técnica se estendem por diversas áreas do conhecimento humano, como por exemplo: Biologia – realiza a contagem de células em fotos tiradas por microscópios; Astrofísica – análise automática de imagens tiradas por sondas ou telescópios; Computação aplicada – reconhecimento de padrões em fotos e vídeos.

A conectividade entre pixels resulta da sua vizinhança, a qual pode ser de 4 ou 8 pixels. A identificação de cada pixel a um componente é dada devido a sua cor estar na mesma faixa esperada pelo componente. Após determinar grupos de pixels semelhantes estes são rotulados por um valor ou uma cor.

Um algoritmo simples que resolve a questão da rotulação de imagens que possam caber inteiramente em memória principal utiliza a recursão para detectar os componentes conexos. A seguir é apresentado este algoritmo:

• Variáveis:

o Input //Imagem de entrada. o Output //Imagem de saída.

o Table // Tabela relacionando cores a rótulos.

• Preenche Output com a cor de fundo ou um rótulo inválido • Para cada pixel em Input

o Se o pixel em Output tem um rótulo inválido && o valor do pixel está dentro de uma faixa de cores associada a um rótulo

 Executa Fill(pixel)

• Função Fill(pixel):

o Se o pixel em Output tem um rótulo inválido && o valor do pixel está dentro de uma faixa de cores associada a um rótulo

o Acessa Table, pega o rótulo e escreve o valor em Output o Se não é pixel de borda

 Fill(pixel da direita)  Fill(pixel da esquerda)  Fill(pixel superior)  Fill(pixel inferior)

(3)

Os resultados de uma execução são apresentados nas seguintes imagens:

(a) (b)

Figura: (a) Imagem usada como entrada no processo de rotulação.

(b) Imagem após o processo de rotulação. Cada cor indica um rótulo de um objeto. Fonte: [ Dalla Favera, Appel]

Ao observar-se a imagem de saída observa-se que nem todos os objetos presentes na imagem de entrada (a) estão presentes em (b). Isso se deve a uma faixa de threshold muito grande. O valor de threshold é utilizado para determinar pixels que devem ser considerados como fundo e descartados pelo processo de rotulação. Outra fator que pode influênciar na resposta é a escolha das tabela de cores que será utilizada pelo algoritmo. Ao utilizar-se uma tabela mais próxima das cores da imagem obtem-se objetos mais coerentes com a imagem original.

(4)

2ª Questão

Uma matrix de rotação pode ser convertida a um quaternion ao utilizar-se o seguinte algoritmo:

Dada a matriz M:

Calcular T, onde:

Se T é maior que 0 então calcular S, W, X, Y e Z pelas seguintes fórmulas:

(5)

Um quaternion pode ser convertido para um eixo de rotação e um ângulo utilizando o seguinte algoritmo:

(6)

Obtem-se que a matriz M define uma rotação de aproximadamente 30º em torono do eixo centrado no ponto dado pela translação (M14, M24, M34 e é igual a 0.8408,

(7)

3ª Questão

Pode - se calcular a intersecção de uma caixa retangular com um raio pode-se utilizar o algoritmo de intesecção de raio com um politopo conexo. Um politopo convexo, também conhecido como poliedro convexo, é definido como uma região no R³ limitada por um número finito de planos. Uma caixa retangular é um caso de um politopo limitado por 6 planos.

A partir de uma caixa de centro C, vetores e1, e2, e3 e tamanhos a1, a2, a3 pode-se obter os planos que limitam essa caixa ao calcular os vetores normais da caixa através do produto vetorial de e1, e2 e e3 e pode-se obter o componente d dos planos utilizando o centro C para obter os 8 vértices da caixa e utilizá-los como pontos no plano.

Após o cálculo dos planos que definem o politopo realiza-se um teste para cada plano verificando o produto escalar entre a normal do plano e a direção do raio. A tabela a seguir apresenta as conclusões que se pode obter pelo resultado do produto escalar da iésima normal com o vetor direção u.

Interseção Frontal

Interseção Trazeira

Raio Paralelo

Se for uma interseção frontal out trazeira com algum plano calculá-se o valor a pela seguinte fórmula:

onde p é o ponto de origem do raio.

Caso a interseção seja frontal e o valor de a for maior que fMax e menor que bMin então fMax = a. Caso a inserseção seja trazeira verifica-se se o valor de a é menor que bMin, maior ou igual a zero e maior que fMax, então bMin = a.

fMax e bMin correspondem respectivamente a distância do ponto de entrada e da distância do ponto de saída do raio no politopo.

(8)

O ponto de entrada é dado por:

O ponto de saída é dado por:

A imagem a seguir apresenta o conceito de interseção de uma linha com um politipo no R².

Figura: Dois rais são mostrados testados contra os 6 planos que definiem o politopo 2D definido pela área cinza. As interseções fontais são rotuladas por f e as traseiras por b. O raio superior atinge algumas interseções traseiras antes de interseções frontais e consequentemente não intercepta o

politopo convexo. O raio inferior atinge todas as interceções frontais antes das traseiras e consequentemente atinge o politopo.

(9)

4ª Questão

Visando obter-se a matriz de projeção correpondente a função glFrustum do OpenGl pode-se partir da matriz de projeção glPerspective, a qual já foi derivada em aula, e chegar a matriz desejada. O processo de derivação é apresentado abaixo.

Dada a matriz glFrustum:

onde near, right, left, top e bottom são os planos que delimitam o frustum. A imagem a seguir aprsenta a posição dos planos:

Figura: Frustum e os planos que o delimitam. Os planos bottom left e far estão nos lados opostos do frustum e são os planos opostos a top, right e near respectivamente.

a partir dos valores de near (distância até o plano near) e fovy (ângulo de abertura da câmera) pode-se obter a altura da imagem gerada pela câmera definida pelo frustum. Para obter-se a altura realiza-se o seguinte cáculo:

(10)

Figura: Frustum relacionando ângulo de fovy a com a altura h da imagem gerada e o valor de near n.

tendo a altura da imagem pode-se obter a sua largura ao utilizar o valor de aspect:

considerando que o valor da altura corresponde a diferença entre os planos top e bottom, e que a a lagura corresponde a diferença entre os planos left e right, temos que:

(11)

sabendo que o frustum é simétrico temos que:

consequentemente

(12)
(13)

Bibliografia

[Dalla Favera, Appel] Dalla Favera, E. C. ; Appel, B. G. ; Charao, A. S. . Rotulação Paralela De Componentes Conexos Em Clusteres Heterogêneos. In: O Congresso Regional De Iniciação Científica E Tecnológica Em Engenharia - CRICTE, 2009, Joinville-SC. Rotulação Paralela De Componentes Conexos Em Clusteres Heterogêneos, 2009.

Referências

Documentos relacionados

Existem vários tipos de instrumentos que auxiliam a gestão financeira (ver MORAES; OLIVEIRA, 2011; KUHN, 2012; SARDAGNA, 2016, 2018; para mais detalhes), porém no

lado a aleatoriedade presente. Seguidamente o objetivo do estudo estatístico pode ser o de estimar uma quantidade ou testar uma hipótese, utilizando-se técnicas estatísticas

Para pensarmos como a psicanálise pode se inscrever no campo de pesquisa parece-nos necessário fazer uma breve distinção entre a pesquisa teórica e o estudo de campo, para então,

Seria possível, assim, pensar a construção do personagem a partir de um jogo dinâmico entre a estrutura do texto, as estratégias do autor, as formas narrativas,

Objetivo: Descrever a série temporal das internações por condições sensíveis à atenção primária (ICSAP) no estado do Espírito Santo, no período de 2000 a 2014, segundo

3 Para esclarecer a utilidade do ponto de equilíbrio de mercado, este trabalho encontra-se distribuído como segue: fundamentação teórica, contendo explanações

Still there is no absolute consensus but in general, the neuro-fuzzy term consensus but in general, the neuro-fuzzy term means a type of system characterized for

Em se tratando de bens que não tiverem sido arrematados nas primeiras hastas públicas designadas para as suas alienações (1ª e 2ª praças) e de bens de fácil deterioração e de