processamento de imagens - kusumoto.com.br · • principal aplicação é tornar a geração das...

24
Prof. André Yoshimi Kusumoto [email protected] Computação Gráfica

Upload: vuduong

Post on 10-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Prof. André Yoshimi Kusumoto

[email protected]

Computação Gráfica

Prof. MSc André Y. Kusumoto – [email protected]

Representação da Imagem

• A representação vetorial das imagens é principalmente empregada para a

definição e modelagem dos objetos sintéticos que serão representados

pela imagem.

• Nesse caso, são utilizados elementos básicos como pontos, linhas e

curvas. Esses elementos são denominados primitivas vetoriais da

imagem.

2

Prof. MSc André Y. Kusumoto – [email protected]

Representação da Imagem

Representação vetorial

• Representadas pelas equações matemáticas que descrevem sua

geometria.

• No caso das imagens vetoriais, não há problemas em alterar suas

dimensões, pois não perdem sua nitidez. Basta recalcular as equações.

• Entretanto, o cálculo das equações torna o processo de formação da

imagem mais lenta.

3

Prof. MSc André Y. Kusumoto – [email protected]

Representação da Imagem

• As primitivas gráficas são elementos básicos de qualquer desenho. O

conjunto delas formam a imagem.

• As primitivas estão associadas a um conjunto de atributos que define a

sua aparência e a um conjunto de dados que define a sua geometria

(pontos de controle).

• Ex. Pontos – a cada elemento de um conjunto de pontos associa-se uma posição,

que pode ser representada por suas coordenadas (geometria) e uma cor, que

representa como esse ponto aparecerá na tela (atributos). Linhas retas – cada reta

pode ser definida pelas coordenadas de seus pontos extremos (geometria) e sua cor,

espessura ou ainda se a linha é sólida, pontilhada ou tracejada (atributos)

4

Prof. MSc André Y. Kusumoto – [email protected]

Representação da Imagem

• Em imagens digitais, a sua descrição matricial é mais utilizada. É a forma

de descrição principal na análise e no processamento de imagens.

Representação Matricial

• Representadas por uma matriz bidimensional. Cada elemento da matriz

corresponde a um pixel da imagem.

• É possível manipular somente um ponto ou um conjunto

• Quando uma imagem do tipo raster precisa ser escalada (i.e. alteração

em sua escala), sua nitidez é degradada

5

Prof. MSc André Y. Kusumoto – [email protected]

Representação da Imagem

• Na representação matricial, a imagem é descrita por um conjunto de

células em um arranjo espacial bidimensional, uma matriz.

• Cada célula representa um pixel, ou pontos, da imagem matricial. Os

objetos são formados utilizando essa representação, isto é, utilizando os

pixels ou pontos.

6

Prof. MSc André Y. Kusumoto – [email protected]

Resolução

• Quantidade de informação que o equipamento pode apresentar em um

determinado instante

• A resolução é medida em pixel (picture element) – uma unidade básica da

imagem que pode ser controlada individualmente e que contém

informações sobre cores e intensidade (brilho)

• O pixel é uma unidade lógica e não física. A sua representação física

depende do dispositivo utilizado.

• Uma resolução de 1024x768 em uma monitor de 21”, por exemplo, será

insuficiente para apresentar uma imagem com qualidade boa.

7

Prof. MSc André Y. Kusumoto – [email protected]

Resolução

• Existe uma relação estreita entre a resolução usada e o tamanho do

monitor.

8

Medida Nominal Resolução recomendada

14" 800 x 600

15" 800 x 600

17" 1024 x 768

19" 1280 x 1024

21" 1600 x 1200

Fonte: CONCI, AZEVEDO, 2003

Prof. MSc André Y. Kusumoto – [email protected]

Primitivas gráficas em duas dimensões

Matrizes em Computação Gráfica

• Todas as transformações geométricas podem ser representadas na forma

de equações

• As matrizes são muito utilizadas porque o seu uso e o seu entendimento é

menos complexo do que equações algébricas

• Devido ao padrão de coordenadas usualmente adotado para

representação de pontos no plano (x,y) e no espaço tridimensional (x,y,z)

é mais conveniente manipular esses pontos por matrizes quadradas 2x2

ou 3x3 elementos.

9

Prof. MSc André Y. Kusumoto – [email protected]

Primitivas gráficas em duas dimensões

Pontos, vetores e matrizes

• Dado um sistema de coordenadas cartesianas, é possível definir pontos e

objetos pelas suas coordenadas

• Nos espaços bidimensionais ou nos objetos planos, duas coordenadas

caracterizam um ponto. Para objetos tridimensionais, três coordenadas

são necessárias.

• Ex.

• Para definir um ponto, usa-se a sua

distância em relação a cada um dos

eixos do sistema de coordenadas

10

𝐴 = 2,3 = 23

𝐵 = 1,1 = 11

Prof. MSc André Y. Kusumoto – [email protected]

Pontos, vetores e matrizes

• Os vetores e matrizes não são limitados a dois ou três elementos.

Primitivas gráficas em duas dimensões

11

1 2 1 0 00 1 2 0 00 0 2 0 00 0 1 2 10 0 0 1 1

Matriz Quadrada 5x5

1 2 −10 −1 2

Matriz 2x3

1 0 0 00 2 0 00 0 2 00 0 0 1

Matriz Diagonal

1 0 0 00 1 0 00 0 1 00 0 0 1

Matriz Identidade

0 00 0

Matriz nula ou zero

Prof. MSc André Y. Kusumoto – [email protected]

Operações de Matrizes • Adição e subtração – matrizes de mesma dimensão

• Multiplicação por um valor constante

• Transposta – a matriz transposta, simbolizada pela letra T sobrescrito, tem como matriz

resultante da troca dos valores de suas linhas e colunas.

Primitivas gráficas em duas dimensões

12

1 1 1 + 2 0 3 = 3 1 4 1 1 1 − 2 0 3 = −1 1 −2

1

2 𝑥

2 0 00 2 00 0 2

= 1 0 00 1 00 0 1

2 3 𝑇 = 23

1 23 4

𝑇

= 1 32 4

Prof. MSc André Y. Kusumoto – [email protected]

Operações de Matrizes • Multiplicação de matrizes – desde que o número de colunas da primeira seja igual ao

níveis de linha da segunda. Isto é, uma matriz de dimensão m x n pode ser multiplicada

por outra matriz de dimensão n x p. A matriz resultante será de dimensão m x p.

• Considere os seguintes vetores 𝑣1 =12

𝑒 𝑣2 = 3 4 e verifique 𝑣1𝑥 𝑣2 e 𝑣2𝑥 𝑣1

Primitivas gráficas em duas dimensões

13

2 5 11 4 2

𝑥 1 42 53 6

= 2 ∗ 1 + 5 ∗ 2 + (1 ∗ 3) 2 ∗ 4 + 5 ∗ 5 + (1 ∗ 6)

1 ∗ 1 + 4 ∗ 2 + (2 ∗ 3) 1 ∗ 4 + 4 ∗ 5 + (2 ∗ 6)=

15 3915 36

12

𝑥 3 4 = 3 46 8

3 4 𝑥 12

= 11

Prof. MSc André Y. Kusumoto – [email protected]

• Podemos utilizar diferentes sistemas de coordenadas para descrever os objetos

• Serve para dar uma referência em termos de medida do tamanho e posição dos objetos

• Coordenadas Polares – descritas por raio (𝑟) e ângulo (𝜃)

• Coordenadas Esféricas – descritas por raio (𝑟) e dois ângulos (𝜃 e Ψ)

• Coordenadas Cilíndricas – descritas por raio (𝑟), ângulo (𝜃) e comprimento (𝑃)

• Esféricas e Cilíndricas são sistemas que representam pontos em 3D

Sistemas de Coordenadas

14

Prof. MSc André Y. Kusumoto – [email protected]

• Um determinado sistema de coordenadas é denominado Sistema de Referência se for

um sistema de coordenadas cartesianas para alguma finalidade específica.

• Assim, sua definição deve abranger dois aspectos principais:

• A unidade de referência básica

• Os limites extremos dos valores aceitos para descrever os objetos

Sistema de Referência do Universo (SRU)

• Coordenadas do universo, ou do mundo.

• Utilizado para descrever os objetos em termos das coordenadas utilizadas pelo usuário

em determinada aplicação

• Cada tipo de aplicação especifica o seu universo de trabalho próprio

• Ex. CAD (metros ou centímetros), CAD Mecânica de precisão (milímetros ou nanômetros)

• Cada um como seus limites extremos (coordenadas mínimas e máximas do universo)

Sistemas de Coordenadas

15

Prof. MSc André Y. Kusumoto – [email protected]

Sistema de Referência do Objeto (SRO)

• Cada objeto é um miniuniverso individual, ou seja, cada objeto tem suas particularidades

descritas em função de seu sistema

• Muitas vezes coincide com o centro do sistema de coordenadas

• Ex. na modelagem de sólidos, este centro é conhecido como pivô.

Sistema de Referência Normalizado (SRN)

• Trabalha com coordenadas normalizadas, com valores entre 0 e 1, onde 0 ≤ 𝑥 ≤ 1 𝑒

0 ≤ 𝑦 ≤ 1, sendo 𝑥 𝑒 𝑦 as coordenadas horizontais e verticais possíveis.

• Serve como um sistema de referência intermediário entre SRU e SRD

• Principal aplicação é tornar a geração das imagens independente do seu dispositivo

• Pois, coordenadas do universo são convertidas para um sistema de coordenadas padrão

normalizado.

Sistemas de Coordenadas

16

Prof. MSc André Y. Kusumoto – [email protected]

Sistema de Referência do Dispositivo (SRD)

• Utiliza coordenadas que podem ser fornecidas diretamente para um dado

dispositivo de saída específico • Ex. em um vídeo, esses valores podem ser o número máximo de pixels que podem ser acesos

(640x480, 800x600, etc) ou podem indicar a resolução especificada em determinada

configuração do sistema operacional (800x600x32bits – True Color)

• Assim, nos hardwares, o sistema de coordenadas depende geralmente da

resolução possível e da configuração definida pelo usuário dentre as

possíveis

Sistemas de Coordenadas

17

Prof. MSc André Y. Kusumoto – [email protected]

OpenGL

• Open Graphical Library

• Pode ser definida como um interface de software (API – Aplication

Program Interface) para aceleração da programação de dispositivos

gráficos

• Possui mais de 250 comandos e funções

• Pode ser classificada como uma biblioteca de rotinas gráficas para

modelagem 2D e 3D, extremamente, portável e rápida

• Usa algoritmos bem desenvolvidos pela Silicon Graphics (agora, pela

Khronos Group)

• Por causa da portabilidade, não possui funções de gerenciamento de

janelas, interação com o usuário ou arquivos de entrada/saída.

• Cada ambiente, possui suas próprias funções (Ex. MS Windows)

18

Prof. MSc André Y. Kusumoto – [email protected]

OpenGL

• OpenGL não é uma linguagem de programação como o C, C++

ou Java

• É uma poderosa e sofisticada biblioteca de códigos, para

desenvolvimento de aplicações gráficas 3D em tempo real

• Pode ser utilizada com as funções escritas em C, mas também

com as linguagens Ada, C++, Fortran, Python, Perl, Java, entre

outras

• Geralmente, se diz que um programa é baseado em OpenGL

ou é uma aplicação OpenGL

• Significa que foi escrito em alguma linguagem que faz chamadas a

uma ou mais de suas bibliotecas

19

Prof. MSc André Y. Kusumoto – [email protected]

OpenGL

• Padrão aberto para hardware gráfico

• Ferramentas CAD, jogos e imagens médicas. Efeitos especiais

para televisão e cinema (Jurassic Park e Star Wars)

• Vai além do desenho de primitivas gráficas como linhas e

polígonos.

• Permite suporte a iluminação, sombreamento, mapeamento de

textura e transparência

• Animação, gerência de eventos de entrada por teclado e mouse

não é tratada

• Executa transformações de translação, escala e rotação

20

Prof. MSc André Y. Kusumoto – [email protected]

OpenGL

• A integração em ambiente Windows é realizada de forma

semelhante a outras APIs.

• Os comandos OpenGL são disponibilizados através de

biblioteca dinâmicas, conhecidas como DLLs (Dynamic Link

Library)

• opengl32.dll – funções padrão

• glu32.dll – utilitários. Desenho de esferas, cubos, cilindros, etc

• glaux.dll – auxiliar

• glut.dll – OpenGL Utility Toolkit: sistema de gerenciamento de janelas

independente do SO, escrito por Mark Kilgard

21

Prof. MSc André Y. Kusumoto – [email protected]

OpenGL

Sintaxe de Comando

• Todos os comandos seguem um padrão. Esse padrão é

utilizado para facilitar o entendimento e uso da função

• Exemplo: glColor3f – define uma tonalidade de cor, baseado

nos valores de red, green e blue

22

glColor3f

Prefixo da Biblioteca gl

Comando 3 parâmetros de entrada do tipo

float

Prof. MSc André Y. Kusumoto – [email protected]

OpenGL

• A maioria dos sistemas gráficos permitem especificar:

• A parte da figura para mostrar (janela);

• O lugar para mostrar a figura na tela (janela de visualização - viewport)

• A viewport padrão do OpenGL é full-window.

23

glViewport(GLint x, GLint y, GLsize width, GLsize height);

Prof. MSc André Y. Kusumoto – [email protected]

• AZEVEDO, E. e CONCI, A. Computação Gráfica: Teoria e Prática. Rio

de Janeiro, Editora Campus, 2003, 353p.

• CONCI, A.; AZEVEDO, E.; LETA, F. R. Computação Gráfica. Rio de

Janeiro, Editora Campus, 2008. v. 2. 432 p.

Referências

24