Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. O que é resolução de uma imagem? Em qual resolução em pixels (vertical e horizontal) pode ser impressa uma imagem digital com 4 Mpixel em proporção 10x15? R: Resolução de uma imagem é a quantidade de pontos por polegada que ela possui. É a razão pixel/unidade de área. (10/2.54)*DPI * (15/2.54)*DPI = 4000000 150 * DPI² = 4000000 * 2.54 * 2.54 DPI² = (4000000 * 2.54²)/150 DPI = sqrt(172042,66666666666666666666666667) DPI ~= 415 (10/2.54)*415 = 1634 (15/2.54)*415 = 2451 2. Para processar a DCT bidimensional utiliza-se 64 funções base. Pode-se dizer que estas funções são LI? Qual a relação com uma base do R3? Comente em detalhes. R: Sim, pois nenhuma das 64 funções pode ser escrita em função de outra. Um exemplo são os vetores da base formadora do R³ (1,0,0), (0,1,0), (0,0,1), esses 3 vetores são LI, pois é impossível escrever um em função de algum dos outros dois. As 64 funções precisam ser LI para que a DCT possa fazer a DCTinversa, caso fossem LD, a DCTinversa teria “mais de uma solução” pois os dados seriam perdidos. 3. Comente sobre os tipos de cores primárias e aplicações práticas para cada conjunto, justificando o uso. Qual o cálculo de conversão entre elas? R: Na cor LUZ, as cores primárias são o Vermelho(R), o verde (G) e o Azul (B), na cor PIGMENTO as cores são o ciano, magenta e amarelo. As cores RGB, quando misturadas, geram o branco (sistema aditivo), são usadas em sistemas eletrônicos, já as cores CMA, quando misturadas, geram o preto (cores subtrativas) e são usadas geralmente em impressoras. Cálculo de conversão (Luminância): Y = 0.299 R + 0.587 G + 0.114 B, este cálculo pode ser usado para converter imagens coloridas em imagens preto e branco. Conversao [C,M,Y] = [1,1,1] - [R,G,B] 1. Em termos de freqüência, explique o que é uma cor monocromática e o que é a cor branca. Utilize figuras para ilustrar. Uma cor monocromática possui energia em apenas um comprimento de onda, uma cor branca possui energia em todos os comprimentos de onda de forma igual. 1. Conceitue freqüência em imagem com exemplos e explique o que é fazer compressão de imagens do domínio da freqüência, no caso via DCT. Frequencia em imagens é a variação de tons entre pixels vizinhos, as frequencias altas sao as grandes variaçoes de contrastes, jah as frequencias baixas sao as pequenas variaçoes de contrastes. A compressao de imagens via DCT é utilizada principalmente em formato de imagens dedicadas a fotografias, como as fotografias possuem uma baixa frequencia as frequencias mais altas sao cortadas, reduzindo uma grande quantidade de informaçao a numeros iguais (zeros), que podem ser compactadas, nao alterando muito a qualidade da imagem. 1. Implemente em C ou C++ a função render() da canvas2D de modo que seja gerado uma figura em forma de caracol. Este caracol deve estar girando em sentido horário (animado). Pode-se definir variáveis globais. Utilize a função point() da canvas2D para desenho. float volta = 0; Render(){ float i,r; int px,py; int poscentro = 150; for (i=volta, r=0.01; r<120; i+=0.01, r+=0.01){ px = (int)r*cos(i); py = (int)r*sin(i); px += poscentro; py += poscentro; point(px,py); } volta += 0.1; } 6. Tem-se um quadrado de lado l, centrado na posição (x,y)(Ver figura). Descreva uma concatenação de matrizes de transformação de modo que sua configuração final seja igual à mostrada na figura pontilhada. Desenhe a aposição do quadrado a cada transformação. ta certo isso? R: Primeiramente, antes de rotacionar o objeto, é necessário movê-lo para a origem. Essa ação é feita com a matriz de translação T-¹. Após a translação, efetua-se a escala do objeto com a matriz de escala S. A partir desse ponto pode-se aplicar a rotação para girar o objeto 45º. Depois de rotacionado e escalado, deve-se mover o objeto para a posição desejada usando a matriz de translação (T). OBS: a ordem de concatenação das matrizes é inversa ao que se deseja fazer. 1 0 Tx T = 0 1 Ty 0 0 1 Tx = x - L/2 Ty = y 1 0 -Tx T-¹ = 0 1 -Ty 0 0 1 Tx = x Ty = y cosALFA -sinALFA 0 R = sinALFA cosALFA 0 0 0 1, onde ALFA = 45º Sx 0 0 S = 0 Sy 0 0 0 1, onde Sx = Sy pois é um quadrado e Sx = 1/sqrt(2). vindo da propriedade que diagonal = lado*sqrt(2) --- d2 = l1 d2 = l2*sqrt(2) l1 = l2*sqrt(2) l1/sqrt(2) = l2 l2 = 1/sqrt(2) --- ordem correta P’ = TERT -1P. 4. O que é e para que é usado em computação gráfica coordenadas homogêneas? Dê um exemplo. Em quase todas as transformações precisamos transladar um objeto. A translação é representada pela soma de matrizes, mas com o uso de coordenadas homogêneas podemos representar essa transformação através de multiplicação de matrizes. Representação em Coordenadas homogêneas consiste em adicionar mais uma dimensão ao objeto (vetor, matriz...), por exemplo, P = {x,y} -> P’ = {x,y,1}. Com todas as transformações podendo ser representadas por multiplicação de matrizes podemos combinar várias transformações em uma única matriz e posteriormente aplicá- la ao objeto desejado, diminuindo assim o custo computacional. Se o valor h da terceira coordenada não for 1, os valores de x e y devem ser homogenizados: x’=x/h e y’=y/h. 2. O que significa dizer que uma imagem tem altas freqüências? Como isso pode ser verificado matematicamente? Como isso é caracterizado na imagem? O que acontece se as freqüências mais altas forem removidas da imagem? Uma imagem com altas freqüências ou uma imagem com alta variação de intensidade, é caracterizada por ter bordas bem definidas, por exemplo, um texto. Se os valores da matriz de coeficientes da imagem contém valores distribuídos homogeneamente a imagem tem alta variação de freqüência. Uma imagem no domínio de freqüências é caracterizada pela variação de tons entre pixels vizinhos. Se as freqüências mais altas forem removidas a imagem ficará borrada. 5. Um tanque de guerra esta na posição (x1, y1) e mirando na posição (x2, y2). Determine quantos graus e em que direção o tanque deve girar para mirar no alvo na posição (x3, y3). Após escreva um algoritmo para mover o tanque, em n incrementos de posição, até a posição intermediária entre (x1, y1) e (x3, y3). Supondo três pontos A(x1,y1), B(x2,y2) e C(x3,y3). Para determinar quantos graus o tanque deve girar precisamos obter o ângulo entre os vetores AB e AC: α = cos-1(AB . AC) Para saber a direção temos que realizar a seguinte verificação: Se (v1.y*v2.x > v1.x*v2.y) Ângulo antihorario (+) Senao Ângulo horário (-) Com v1 = AB e v2 = AC. Mover o tanque em n incrementos: Tanque t; Float dist = distancia(A,C); dist = dist/2; dist = dist/n; Vetor direção = C – A; // normalizado For (int i=0; i < n; i++) { t.x += Direcao.x*dist; t.y += Direcao.y*dist; } 5. Desenhe, comente e compare as blending functions de Bézier de grau 3 com a Spline de grau 3. Qual a relação entre o número de pontos de controle e grau das funções de interpolação? Bézier de grau 3: 4 pontos de controle e 4 blending functions - (1-t)³ - 3t(1-t)² - 3t²(1-t) - t³ A curva de bezier passa apenas pelos pontos inicial e final, em nenhum outro ponto de controle. Somatória das blending functions sempre é 1. Para aumentar a influencia de um ponto de controle se ele for duplicado (mais de um ponto de controleem uma mesma coordenada). Usadas no Corel, Word, ... Spline de grau 3: 4 pontos de controle, 4 blending functions - Bi = t³/6 - Bi-1 = 1/6(-3t³+3t²+3t+1) - Bi-2 = 1/6(3t³-6t²+4) - Bi-3 = 1/6(1-t)³ Numero de pontos de controle = blendingfunctions Grau dos polinômios independe do número de pontos de controle. Permite controle local na forma da curva ou superfície, mudando-se um ponto a curva sofre influência apenas nas proximidades deste ponto. Continuidade é o número de pontos de controle -2. Ex. polinômio de grau 3, 4 pontos de controle, C². Cada segmento de curva é definido por 4 pontos de controle. 1. Explique o processo de compressão via DCT e qual a influência de usar matrizes de quantização com valores maiores ou menores na qualidade e taxa de compressão atingidos. A DCT tem a função de transformar sinais do domínio tempo-espaço para o domínio da freqüência. Para isto ela utiliza N, onde n é o número de amostras, que combinadas geraram os coeficientes da imagem no domínio de frequência. Após a aplicação da DCT , seus coeficientes serão divididos por valores inteiros, entre 1 e 255, gerados por uma matriz de quantização. O objetivo desta parte é de descartar informação com pouco valor. É a principal fonte de perda de informação. 3. Comente o que é continuidade paramétrica Cn. Comente sobre as diferentes continuidades em relação à curvas de Bézier. Dê exemplos. Qual a restrição matemática para gerar continuidade C1 entre 3 pontos de controle de uma curva de Bézier. Justifique. Como as curvas são compostas pela junção de pequenas curvas, deve-se observar a continuidade da junção entre cada curva. Existem vários tipos de continuidades paramétricas: - C0 – duas curvas se encontram - C1 – As duas curvas devem ter tangentes comuns no ponto de junção (mesma direção e comprimento). Em outras palavras, a primeira derivada paramétrica das duas curvas é igual no ponto de interseção. - C2 – Devem ter a mesma curvatura, ou seja, tanto a primeira como a segunda derivadas das duas curvas são as mesmas. Bézier (C1) o Os dois segmentos de curva devem ter um ponto em comum (C0) o As duas curvas devem ter a mesma inclinação no ponto de união. (Derivadas contínuas) o Deve-se ter 3 pontos em linha reta, sendo o ponto intermediário o ponto comum as duas retas, e os extremos pontos vizinhos ao ponto em comum. o Esta propriedade é válida pois a tangente da curva em um ponto extremo é dada pela reta que une a extremidade com o ponto de controle adjacente. 1. Dado um path definido por uma curva Bezier de 10 pontos de controle e funções de grau 9. Descreva um algoritmo para fazer um foguete (representado por uma linha de 10 unidades de comprimento) andar de forma tangente a esta curva. O foguete deve chegar ao final da curva após n passos. Sempre que possível utilize conceitos de vetores e suas operações. Utilize a função line() da canvas2D para desenho do foguete a cada passo. Vetor2d tg; for (float i=0; i<=1; i+=(1/divisao)) { if( i == 0.f) { tg = curva(i + 1/divisao) - curva(i ); }else{ tg = curva(i ) - curva(i - 1/divisao); } line(curva(i ) - 5*tg, curva(i ) + 5*tg); } 5. Tem-se um quadrado de diagonal d e lado l, centrado na posição (x,y)(Ver figura). Descreva uma concatenação de matrizes de transformação M (Não precisa multiplicar), que ao multiplicar P’=MP gere a configuração final mostrada na figura pontilhada. A figura final tem lado 2l. Desenhe a posição do quadrado a cada transformação. translada pra origem (o canto inferior esquerdo) pq do meio ateh o canto naoo ponto x y eh o centro do quadrado tu tem q te o canto debaixo T-1 1 0 -Tx 0 1 -Ty 0 0 1 Tx = x-(l/2) Ty = y-(l/2) E Sx 0 0 0 Sy 0 0 0 1 Sx = 2 Sy = 2 R cosα -sinα 0 Sinα cosα 0 0 0 1 Vetor v1 Vetor v2 (1,0) V1.x = x – (l/2) V1.y = y + (l/2) Norma = sqrt(v1.x*v1.x + v1.y*v1.y) V1.x = v1.x/norma V1.y = v1.y/norma α = cos-1(v1.x*v2.x + v1.y*v2.y) 1. Tem-se um quadrado de diagonal d e lado l, centrado na posição (x,y)(Ver figura). Descreva uma concatenação de matrizes de transformação M (Não precisa multiplicar), que ao multiplicar P’=MP gere a configuração final mostrada na figura pontilhada. Desenhe a posição do quadrado a cada transformação. T-1 1 0 -Tx 0 1 -Ty 0 0 1 Tx = x Ty = y E Sx 0 0 0 Sy 0 0 0 1 (aqui tem que fazer pitágoras pra acha o valor do lado, que vai dar sqrt(2) * l , mas o lado do quadrado já é l … então só multiplica por sqrt(2)) Sx = sqrt ( 2) Sy = sqrt ( 2) R cosα -sinα 0 Sinα cosα 0 0 0 1 α =30º T 1 0 Tx 0 1 Ty 0 0 1 Tx = r*cos α Ty = r*sin α M = TERT-1 3. Explique/mostre/desenhe em detalhes por que na formulação de Bézier a curva toca o ponto de controle inicial e final e porque o mesmo não ocorre com a curva B-Spline. Devido as fórmulas de Bézier - (1-t)³ - 3t(1-t)² - 3t²(1-t) - t³ a curva sempre irá passar pelos pontos inicial e final. Quando o t for 0, somente a primeira equação exercerá influência na curva (passando pelo ponto inicial), quando t for 1, somente a última equação exercerá influência na curva (passando pelo ponto final). O mesmo não ocorrerá com a BSpline pois, devido as suas fórmulas - Bi = t³/6 - Bi-1 = 1/6(-3t³+3t²+3t+1) - Bi-2 = 1/6(3t³-6t²+4) - Bi-3 = 1/6(1-t)³ a curva nunca tocará em nenhum ponto pois para qualquer valor de t teremos duas ou mais blending functions exercendo influência na curva. 2. Explique o que é a DCT. Por que ela usa 8x8 coeficientes? Por que não 1x1 ou 2x2 ou 4x4 ou 16x16? A dct (transformada direta do cosseno) transforma informações de tempo-espaço em domínios de frequenncia, é muito utilizada na compressão de dados. A dct utiliza um padrão de blocos 8x8 pois é onde se obteve melhores resultados gerais na compressao de informações, nao deixando as imagens perceptíveis que foram separadas por blocos como em padrões maiores, e comprimindo de fato as imagens, pois ao se utilizar blocos menores, essa compressão não se realiza de forma tão eficaz. no caso de maior q 8x8 eh problema de custo computacional e complexidade de algoritmo
Compartilhar