http://computacaografica.ic.uff.br/conteudocap1.html Imagem e Gráficos vetorial ou raster ? UFF Computação Visual tem pelo menos 3 grades divisões: CG ou SI, AI e OI Diferença entre as áreas relacionadas ao que são as entradas (IN) e saídas (OUT) Outra diferença entre as áreas da CV É o uso da descrição dos DADOS (desenhos ou imagens usados) na forma de pontos do espaço continuo ou na forma de elementos discretos. Chamadas respectivamente de: Descrição Vetorial e Descrição Matricial ou Raster (ou em bitmap , que significa mapa de bits) Imagens matriciais ou raster são imagens que contêm a descrição de cada ponto ou PIXEL, em oposição as formas vetoriais (que descrevem o inicio e fim de cada segmento de reta, ou os pontos de controle de uma curva, ou os elementos que definem um sólido como lado de um cubo, raio de uma esfera, etc.). bitmap x gráfico vetorial. Descrição Raster • Armazenado como matrix , onde a área a ser usada depende da resolução (linha x coluna) e da gradação tonal (ou numero de cores_ . • Um bitmap pode ser monocromático, em escala de cinza ou colorido. • No caso de cores os pixels são formados geralmente no padrão RGB, do inglês Red, Green, Blue, que utiliza três números inteiros para representar as cores vermelho, verde e azul Descrição Matricial ou Raster • A cada ponto da imagem exibida na tela corresponde a um pixel, de forma que a maioria das imagens requer um número muito grande de pixels para ser representada completamente de maneira bem nítida. • Por exemplo, uma imagem comum de 100 pixels de largura por 100 de altura necessita de 3 bytes para representar cada pixel (um para cada cor primária RGB). Isso totaliza 30.000 bytes. e ao dar um zoom você nota os pixels! • Isso não ocorre nas imagens vetoriais Em CG usamos Descrição Vetorial Até quase o tempo todo , isso só vai mudar em uma das últimas fases do realismo visual. Assim a CG se baseia em vetores matemáticos. Descrição Vetorial • Por serem baseados em vetores, essa faz desenhos e gráficos geralmente mais leves (ocupam menos espaço de armazenamento) e não perdem qualidade ao serem ampliados, já que transformam por funções matemáticas adequadamente os elementos (quanto a escala e outras facilmente). • Isso não ocorre com gráficos raster que perdem a qualidade. • Outra vantagem do desenho vetorial é a possibilidade de isolar objetos e zonas, tratando-as independentemente, facilitando animações e combinações geométricas para compor objetos! A CG usa de primitivas como pontos, linhas, curvas e formas ou polígonos (baseados em expressões matemáticas) para representar imagens. Os desenhos vetoriais são baseados em vetores que são definidos pelos seus pontos de controle ou nós. Os mais simples são segmentos de retas definidos pelo seus pontos limites. Cada um desses pontos possui uma posição definida nos eixos x de um plano de trabalho. Com atributos como cor, forma e espessura e preenchimento. Estas propriedades não aumentam o tamanho dos arquivos de desenho vetorial, uma vez que todas as informações residem na estrutura que descreve como o vetor deve ser desenhado. Vetorização • É o processo inverso O objetivo neste caso é transformar uma imagem raster em imagem vetorial (vetorização) para obter imagens MELHOR TRANSFORMÁVEIS (escaláveis ) que podem sofrer ampliação (por exemplo) sem perda de definição de imagem ou outras aplicações de CV gerativa Ou CG! Vetores serão nossos melhores amigos.... • E transformações serão coisa que usaremos muito para ... Vendo os pontos Como vetores em 2D (2,1) ,(5,1), (5,3), (2,3),.... Ou em 3D (2,1,1), (5,3,1) , (5,1,1) , (2,3,1) ... Mas primeiro precisa-se • Definir o sistema de coordenadas a ser usado: • Um sistema de coordenadas cartesiano 3D é composto de 3 planos e 3 eixos ortogonais • Precisam ter uma origem e unidades predefinidas (o orientação relativa dos eixos) Mas há outros tipos mais úteis em determinada aplicação como os polares, cilíndricos e esféricos... Recordando geometria ... • O que é um sistema cartesiano positivo ou com os eixos orientados pela regra da mão direta? • O que eixos orientados pela regra da mão direta têm a ver com o produto vetorial da álgebra linear? Geometria Euclideana : 3D • Geometria Axiomas e Teoremas Coordenadas de pontos, equações dos objetos • Geometria Euclideana (3D) • CG (objetos): Topologia :Faces, arestas, vértices Geometria (conjunto de coordenadas dos vértices) Distância entre 2 pontos = Distância euclidiana Comprimento dos vetores Transformações n u . v= ∑ v i ui =produtointerno i=1 • De corpo rígido (semelhança). Distância entre 2 pontos quaisquer é inalterada. Ângulos entre vetores é inalterado. Rotações, reflexões e translações Transformações • Afim Transf. Lineares + translações. Conceitos: • multiplicação de vetores ( u , v , w) e matrizes T • soma de vetores. • Vetores => (linha ou coluna) • Transposta ( TT i,j ) = ( T j,i ) • Vetor coluna (n x 1): T (u) • Vetor linha (1 x n) : (u’) TT Transformações Lineares • Definição 1. T(u + v) = T(u) + T(v) 2. T(av) = a T(v) u , v vetores de dimensão n= 2 ou 3 . T matriz quadradas n x n. Objetos em CG: Basta multiplicar T aos vetores ou pontos do objeto A translação não é uma transformação linear. Transformações Lineares Bidimensionais • 2D • São representadas por matrizes 2 x 2. ( )( ) ( ) a c T= b d x ax+cy = y bx+dy Rotação em torno da origem ( cos(θ ) − sin( θ ) Rθ = sin( θ ) cos( θ) ) Escala em uma direção (horizontal) ( ) k 0 S x= 0 1 Reflexão em Relação ao Eixo X ( ) 1 0 Rfl x = 0 −1 Reflexão em Relação ao Eixo Y ( ) −1 0 Rfl y = 0 1 Reflexão em Relação à Reta y =x ( ) 0 1 Rfl y=x = 1 0 Como fica a reflexão em torno da origem? • Cisalhamento em X ( ) 1 k C x= 0 1 Cisalhamento em Y ( ) 1 0 C y= k 1 Como fica o cisalhamento em ambos? Transformações Rígidas • Rotações, Reflexões e Translações. Preservam ângulos e comprimentos. Para matrizes ortonormais a Inversa é a matriz transposta (T-1 = TT). Se o objeto não esta na origem!! • Mudança de escala Não é uma T. rígida! Composição de Transformações • Quando for necessário transformar um objeto em relação a um ponto P arbitrário: Translada-se P para origem. Aplicam-se uma ou mais transformações lineares elementares. Aplica-se a transformação desejada. Aplicam-se as transformações elementares inversas. Aplica-se a translação inversa: -P Coordenadas homogêneas • no R2 é um elemento do R3 com uma relação de escala. P= (x,y,λ );λ≠ 0, (x / λ,y/ λ ,1 ) • Um ponto do plano é definido como: Chamado P = [x,y,1] em coordenadas homogêneas (uma classe de equivalência). Em coordenadas homogêneas as matrizes anteriores • Devem ser 3 x 3 para as mesmas transformações afins bidimensionais. a c m M= b d n p q s Matriz de Translação 1 0 m M= 0 1 n 0 0 1 x x+m y = y+n 1 1 Transformações Lineares ( )( ) ( ) a c 0 M= b d 0 0 0 1 x ax+cy y = bx+dy 1 1 Transformação Perspectiva ( )( ) ( ) 1 0 0 M= 0 1 0 p q 1 x x y = y 1 px+qy+1 Transformação Perspectiva 2D Efeito em um ponto no infinito ( )( ) ( ) 1 0 0 M= 0 1 0 p q 1 x x y = y 0 px+qy Pontos de Fuga • Um ponto no infinito pode ser levado em um ponto P0 do plano afim. • Família de retas paralelas que se intersectam no infinito são transformadas numa família de retas incidentes em P0. P0 é chamado de ponto de fuga. Ponto de fuga principal corresponde a uma direção paralela aos eixos coordenados. • Imagem de [x,0,0] ou [0,y,0]. Espaço 3D • Um ponto do espaço 3D é definido como: P= {( x,y,z,λ );λ≠ 0, ( x / λ,y/ λ,z / λ,1 ) } Denotado por P = [x,y,z,w] em coordenadas homogêneas. Translação no Espaço 3D Escala em torno da origem do Espaço 3D Rotações no Espaço 3D (ângulos de Euler) Em torno de Z Em torno de X Em torno de Y Projeções: Classificação: Características: características Ponto de fuga O que são eixos principais? • Maior e menor momento de inércia. • Não há produto de inércia para os eixos principais • Podem ser entendidos como os do menor BB • possível para o objeto de interesse. Pontos de fuga principais possível mas não é realista 3 pontos de fuga e realidade Matriz Projetiva • Uma transformação projetiva M do R3 é uma transformação linear do R4. • A matriz 4 x 4 de uma transformação projetiva representa uma transformação afim tridimensional. a b M= c p d e f q g m h n i o r s Transformação Perspectiva • Ponto P do espaço afim é levado no hiperplano w = r z + 1 • Se z = -1/r, então P é levado em um ponto no infinito. • Pontos do espaço afim com z = 0 não são 1 0 0 0 x x afetados. ( )( ) ( ) 0 1 0 0 M= 0 0 1 0 0 0 r 1 y y = z z 1 rz+1 Ponto de Fuga Principal • A imagem do ponto ideal, correspondendo a direção z, tem coordenadas [0, 0, 1/r, 1] Este é o ponto de fuga principal da direção z. Semi-espaço infinito 0 < z ≤ ∞ é transformado no semi-espaço finito 0 < z ≤ 1/r. ( )( ) ( ) 1 0 M= 0 0 0 1 0 0 0 0 1 r 0 0 0 1 0 0 0 0 = 1 1 0 r Mais de Um Ponto de Fuga • A transformação perspectiva com 3 pontos de fuga, possui 3 centros de projeção: [-1/p, 0, 0, 1] [0, -1/q, 0, 1] [0, 0, -1/r, 1] • O mesmo resultado é obtido com a aplicação em cascata de 3 transformações perspectivas, com um único ponto de fuga em cada eixo. Basta Implementar Transformações Com um Único Ponto de Fuga • Transformações perspectivas com dois pontos de fuga equivalem a combinação de: rotação ao redor de um eixo perpendicular ao eixo que contém o centro de projeção. transformação perspectiva com um único ponto de fuga. • Com duas rotações, obtêm-se transformações com três pontos de fuga. As coordenadas de um ponto só fazem sentido em relação a um sistema de eixos de coordenadas perfeitamente caracterizado: i.e. Centralizado em um ponto bem definido (chamado origem do sistema de coordenadas). É importante identificar a unidade usada e a direção considerada positiva em cada eixo. Fixando 2 conceitos fundamentais: sistemas de coordenadas e coordenadas. Qual a diferença entre as operações de dar um zoom ou mudar a de escala nas 3 direções? Como você pode dar o mesmo efeito visual do Zoom in e zoom out através da mudança de escala do objeto? As coordenadas do objeto são alteradas em qual dos casos? E os conceitos de panned (panorâmica) e translação do objeto: Como você pode dar o mesmo efeito visual do panned left (ou anti clock wise) e panned right (ou clock wise) através da translação do objeto? As coordenadas do objeto são alteradas em qual dos casos?