Buscar

Computação Gráfica e Processamento de Imagens

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

COMPUTAÇÃO GRÁFICA	
1- Computação gráfica: transformações geométricas, projeções geométricas, modelagem e representação de objetos, modelagem 3D
usando VRML.
2- Processamento de imagens: Propriedades sobre os pixels, filtragem de imagem, segmentação de imagem e processamento de imagens coloridas.
3- Análise de imagens: noções de extração de características e reconhecimento de objetos.
Exemplos de aplicações: computação gráfica (síntese de imagens)
Produz imagens a partir de primitivas geométricas (linhas, círculos, superfícies, etc.)
Exemplos de aplicações: processamento de imagens Engloba operações realizadas sobre uma imagem para análise, realce, compressão, detecção de padrões não perceptíveis ao olho humano.
Exemplos de aplicações: análise de imagens (visão computacional)
Estima primitivas geométricas e obtém dados a partir de uma imagem.
Síntese de imagens: Técnicas destinadas à criação e manipulação de
imagens sintéticas a partir de modelos matemáticos e geométricos.
Exemplo: uma aplicação de modelagem 3D
Processamento de imagens: Técnicas destinadas à manipulação de imagens bitmap (matricial).
Análise de imagens: Técnicas destinadas à extração de informações a partir de uma imagem.
Imagem vetorial: É um tipo de imagem formada a partir de descrições geométricas de formas.
Normalmente é composta por curvas, elipses, polígonos, textos, entre outros elementos, 
isto é, utilizam vetores matemáticos para sua descrição.
Exemplo: O objeto abaixo poderia ser definido da seguinte forma:
1- Tipo de Curva = Circunferˆencia
2- Raio = 1 cm
3- Preenchimento = amarelo
4- Contorno = azul
Se guardarmos os atributos, como Circunferência, preenchida de amarelo, contornada por azul e com raio de 1 cm, qualquer computador poderia reproduzi-la.
Formatos de arquivos:
SVG / CDR / WMF / ESS / CNX
Mais sobre o algorjtmo svg:
https://tableless.com.br/
imagens-em-alta-resolucao-utilizando-svg/
Vantagens:
São leves
Não perdem qualidade ao serem ampliadas
Desvantagens:
Precisa de RENDERIZAÇÃO, isto é, de uma conversão dos elementos básicos (pontos, 
círculos, retas, ...) na forma de uma imagem bitmap.
Imagem bitmap (ou mapa de bits ou imagem raster)
É um arranjo espacial que representa uma cena composta por pequenos quadradinhos, 
cada um, com uma cor.
Os Quadradinhos chamam-se pixels.
Vantagens:
Modelo matricial (o conteúdo pode ser representado por uma matriz)
Aquisição pode ser feita por câmeras
Desvantagens:
Tamanho dos arquivos são grandes
Perdem qualidade ao serem ampliadas
Formatos de arquivos:
JPG / PNG / BMP / TIF / PPM / PGM /
Chamamos de pixel uma coordenada válida da imagem.
O domínio da imagem é o conjunto de pixels da imagem, ou seja, todas as coordenadas
(ou localizações) da imagem.
Chamamos de intensidade (ou cor) o valor associado ao um pixel da imagem.
Uma imagem bitmap pode ser representada por uma função:
F : D -> {0, 1, ..., 2bits 1}bandas
Exercícios 
1- A Síntese de Imagens é definida como?
Uma subárea da Computação Gráfica que visa a criação de ima…
[10:56, 20/5/2019] Marcelo Jr: Aula 2 - Computação gráfica - CONCEITOS DE PIXELS, RESOLUÇÃO, RASTERIZAÇÃO E CÁLCULO DE MEMÓRIA
Dispositivos Gráficos;
• Os dispositivos gráficos podem ser classificados de duas maneiras:	
– Quanto à finalidade: Dispositivo de entrada ou de saída.
– Quanto ao formato dos dados: Dispositivos matriciais ou vetoriais.	
 Para	dispositivos de	entrada	 o termo matricial define uma classe de dispositivos em que os dados (pontos) são colhido sem conjunto e	armazenados em forma de matrizes.		 Exemplo: Câmera digital	
 Por outro lado	dispositivos vetoriais de entrada de notam equipamentos através dos quais 
se pode colher	dados (pontos)	de forma isolada.	
Exemplo: Mouse	
 Para dispositivos de	saída, por sua vez, o termo matricial designa dispositivos cuja	
geração de imagens dá-se pelo "acendimento" ou "apagamento" de pontos sobre uma
matriz.		
Exemplo: Monitor	
Por outro lado,	dispositivos vetoriais de saída são aqueles em que as imagens	são criadas através	de comandos específicos para a geração de entidades	como, por exemplo, retas e círculos.	
Exemplo: Traçadores gráficos ou "plotters”.
Dispositivos de	entrada	 e saída	 da CG	
• Entrada	
– Scanner (bitmap)	
– Mesa	digitalizadora (vetorial)	
– Teclado (vetorial)	
– Mouse (vetorial)	
– Câmera fotográfica (bitmap)	
– Leitor	biométrico (bitmap)	
• Saída	
– Impressora (bitmap)	
– monitor (bitmap)	
– Plotter (vetorial)	
– Projetor (bitmap)	
Uma imagem bitmap pode ser	representada por uma função:
f : D ⊂ Z2 →{0,1,..., 2b −1}k (Geralmente, representamos por uma matriz ou vetor)
Tipo de dado da matriz	 ou vetor	
Exemplo:		
• byte - 8bits	
• short - 16bits	
• int - 24bits	
• int/float - 32bits	
• long - 64bits	
Note	que:	
D: é o domínio	da função (imagem) f;	
b: é a quantidade de bits da imagem (também	conhecido como profundidade	 da imagem);	
k: é a quantidade de bandas de um sistema de cores.	
Imagem: f : D ⊂ Z2 →{0,1,..., 2b −1}k	
• Quando b = 1 e k = 1 chamamos f de imagem binária, isto é: f : D ⊂ Z2 →{0,1}	
• A imagem binária pode assumir somente duas cores.	
Pergunta: Quantos bits	são necessários	 para armazenar uma imagem binária com resolução 
7 x 7?	
• Imagem: F : D ⊂ Z2 →{0,1,..., 2b −1}k	
• Quando b > 1 e k = 1	 chamamos f de imagem em níveis de cinza, isto é: f : D ⊂ Z2 →{0,1,..., 2bits −1}	
• A imagem em níveis de cinza	pode assumir valores entre 0 a	2bits-1	
Exemplo: uma imagem de 3 bits os valores ficam entre 0 a 23-1=7	
Pergunta: Quantos níveis de cinza pode ter em uma imagem de 10 bits? 
Ideia: 2bits= quantidade de cores 	
Pergunta: Quantos bits	são necessários	 para representar uma imagem	 com até 256 cores?
Ideia: log2 (cores) = quantidade de bits
• Imagem: F : D ⊂ Z2 →{0,1,..., 2b −1}k	
• Quando b > 1 e k > 1 chamamos f de imagem multibanda
 Exemplo: imagem RGB, isto é:		
– Cada	pixel da imagem contém 3 valores correspondendo aos níveis de intensidade 
de vermelho (R), verde	(G) e azul (B).	
Resolução espacial:		
É a quantidade	de pixel horizontal x a quantidade de pixels na	vertical	
Exemplo: Dada	a resolução de uma câmera que é de 1024 x 768, q…
[10:56, 20/5/2019] Marcelo Jr: Aula 2_ Resumo 
Para descobrir a resolução por cores (dividir)
Conversão
Bit> Byte (%8)
Byte > Kbyte (%1024)
Kbyte > Mbyte (%1024)
Conversão ao contrário
Byte > Bit (x8)
Kbyte > Byte (x1024)
Para descobrir bit:
2 elevado 6 = 64
2 elevado 7 = 128
2 elevado 8 = 256
2 elevado 9 = 512
2 elevado 10 = 1024
2 elevado 11 = 2048
2 elevado 12 = 4096
Exercícios
1- 640x480 -> pegar o número elevado mais próximo
 1024x512x8(bits) = 4.194.304 bits
2- Formula: log(qtd cor) % log (nrbit2)
 log(65.536) % log(2) = 16
 1024x1024x16= 16.777.216
[10:56, 20/5/2019] Marcelo Jr: Aula 3 - INTRODUÇÃO AO PYTHON
Python	é uma linguagem de programação interpretada	
– Interpreta instruções de programação ou blocos de instruções (scripts)	
– Tem recurso para programação imperativa, orientado a objetos e funcional	
– A tipagem é dinâmica, ou seja, não dizemos qual é o tipo das variáveis, o tipo de retorno 
de uma	 função, etc.	
Estrutura básica de python
Programa
 Instruções <- ínicio do programa
 Enquanto condição: -> dois pontos obrigatórios
 -> Instruções <- Inicio de um bloco
 Se condição: 
 ->
 Instruções <- Outro bloco
 <-
 Senão:
 ->
 Instruções <- fim dos dois blocos
 <- <- 
 Instruções <- fim do programa
Usar o python como uma calculara	
• Os operadores aritméticos são:		
– Adição ( + ) => Exemplo: 5 +	2	
– Subtração ( - ) => Exemplo: 5 - 3		
– Multiplicação	( * ) =>	Exemplo: 5 * 3	
– Divisão ( / ) => Exemplo: 5 / 3	
– Divisão inteira ( // ) => Exemplo 5 //	3	
– Resto	da divisão ( % )	=> Exemplo 5 % 2
Declarar e inicializarvariáveis	
• Simplesmente	
nomeVariavel = valor da variável	
variavel1, variavel2 = valor1, valor2	
Sintaxe	do If		
if <condição>:
 <bloco de código>		
elif <condição>:		
 <bloco de código>		
elif <condição>:		
 <bloco de código>		
else:
 <bloco de código>		
Operadores relacionais:	
				Igual: ==	
				Diferente: !=						
				Maior: >	
				Maior ou igual: >=		
				Menor: <	
				Menor	ou igual: <=	
Operadores lógicos:	
				Não: not
				E: and
				OU: or
Sintaxe	de laços
• While	
while <condição>:
 <bloco de código>		
• For	
for <variável> in <sequencia>	
	 <bloco	de código>
Importar bibliotecas	
• Python apresenta uma vasta biblioteca de módulos e pacotes que é	distribuída com o	
interpretador. Alguns módulos	importantes da	biblioteca padrão são:		
– Matemática: math, cmath, decimal e	random.		
– Sistema: os, glob, shutils e subprocess.		
– Threads: threading.		
– Tempo: time e datetime.		
• Comando para importar uma	biblioteca	
 import <nome-pacote>
[10:56, 20/5/2019] Marcelo Jr: Aula 4 - ALGORITMOS FUNDAMENTAIS PARA O TRAÇADO DE PRIMITIVAS GRÁFICAS
Rasterização	
É o nome dado para o processo de conversão da representação vetorial para	 matricial	 que pode ser representado na	 maioria dos dispositivos de saída, onde cada posição da matriz pode indicar quando um determinado pixel deve ser ativado ou desativado e em qual cor.	
Algoritmos fundamentais para o traçado de primitivas	gráficas	
• Normalmente, gráficos são definidos	 através	 de primitivas gráficas como: pontos, reta,	 círculos, textos,	etc.	
• Chamamos de primitivas gráficas os comandos e funções que manipulam e	alteram	 os elementos gráficos de uma imagem	
• Também entram na definição de primitivas, os elementos básicos de	gráficos a partir	 dos quais são construídos outros mais complexos.	
Representação	vetorial	x matricial	
• Primitivas geométricas, como	 reta e círculos, são definidos de forma	vetorial	
– Representação vetorial	
• Dispositivos gráficos,	como os monitores, são definidos como matrizes de pixels (rasters)	
– representação matricial	
• Pode parecer	simples traçar uma reta no vídeo, mas, no entanto, esse tipo de rotina	não	 é tão simples quanto parece.	
Importar as bibliotecas	
• Faremos uso de três bibliotecas	
– OpenCV: biblioteca de processamento de imagens e visão computacional
desenvolvida pela intel
– NumPy: biblioteca para manipular matrizes usada para representar imagens	pela OpenCV
– MatPlotLib: biblioteca usada para exibir imagens e gráficos
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plot
Ler imagem	
• Para ler uma imagem	de um arquivo usamos	a função imread da OpenCV
• É preciso fornecer dois parâmetros:	
• O nome do arquivo	
• O tipo da imagem	
• É retornado uma matriz do numpy com os dados da	imagem
imgBGR = cv.imread('./imagem.jpg', cv.IMREAD_COLOR)
imgBGR = cv.imread('./imagem.jpg', cv.GRAYSCALE)
Exibir uma imagem	
• Para exibir uma imagem na tela usamos a função imshow da	biblioteca matplotlib
imgRGB = cv.cvtColor(img BRG, cv.COLOR_BGR2RBG)
plot.imshow(imgRBG)
Desenhando na imagem
[10:56, 20/5/2019] Marcelo Jr: Aula 5 - MODELO DE REPRESENTAÇÃO DE OBJETOS E TRANSFORMAÇÕES GEOMÉTRICAS
Modelo	 de representação	
• Em computação gráfica (CG),	a representação dos componentes do espaço físico é feita a partir dos modelos de representação matemática.		
• Esses modelos são obtidos empregando-se ferramentas da geometria analítica.		
• A partir da representação é possível	perceber as relações existentes	 entre os componentes	
geométricos (ponto, reta e plano) capazes de caracterizar elementos do espaço físico.		
Espaço físico -> coodernadas -> geometria analítica-> modelo de representação.
Translação	
• Movimentação da figura pelo deslocamento	de suas	 coordenadas.	
Escala	
• Ampliação ou	redução de uma figura	obtida pela multiplicação das coordenadas por um	
fator de escala	horizontal e vertical.
Rotação	
• A partir de um ângulo de rotação θ, as coordenadas	de uma	figura tem seu	
posicionamento alterado através de um deslocamento angular θ no sentido do eixo y
positivo.
Espelhamento	
• A reflexão em	torno de um eixo produz um novo objeto como se o objeto anterior fosse	
visto por um espelho	
Cisalhamento	
• Cisalhar um objeto é	deformá-lo linearmente ao longo do eixo x ou	do eixo	y ou de	ambos
	
Transformações geométricas	
• Todas	as transformações geométricas	 podem ser representadas na forma de	 equações algébricas.		
• Mas na prática, equações matriciais são mais	usadas	para representar transformações	
geométricas.		
– Uma vantagem da utilização na forma matricial é que várias	transformações podem ser combinadas, resultando em uma única matriz denominada matriz de transformação.
[10:56, 20/5/2019] Marcelo Jr: Coordenadas Homogêneas
 • Um ponto no espaço 3D, é dado pela 3-upla (x, y, z) que posicionam o ponto no espaço em relação ao centro de coordenadas. 
– Uma coordenada homogênea é dada pela 4-uplas: (x', y', z', M).
– A transformação do sistema homogêneo para o cartesiano se dá pela seguinte relação: (x, y, z) = (x'/M, y'/M, z'/M). 
– Dizemos que duas coordenadas homogêneas: (x, y, z, M) e (x', y', z', M), representam o mesmo ponto se, e somente se, uma é múltipla da outra (2, 3, 4, 6) e (4, 6, 8, 12) é o mesmo ponto com diferentes representações. 
• Quando M=1, a transformação entre os espaços é direta de modo que, (x, y, 1), no sistema homogêneo, tem os mesmos valores no espaço cartesiano 2D: (x, y). 
• Assim, para as transformações geométricas apresentadas a seguir, iremos utilizar as coordenadas dos pontos 2D como (x, y, 1) e dos pontos 3D como (x, y, z, 1).
[10:56, 20/5/2019] Marcelo Jr: 1- Observe a situação representada acima, em que o triângulo identificado por A sofre transformações geométricas que o levam para a situação identificada por A’. Considerando-se dx e dy parâmetros de translação e s, o fator de escala, então o triângulo A’ pode ser obtido a partir da aplicação da seguinte sequencia de transformações aos vértices do triângulo A:
tanslação com parâmetros de deslocamento dx = -xc e dy = -yc; rotação em torno do ponto (xc, yc); translação com parâmetros de deslocamento dx = xc e dy = yc; escala com fator uniforme s = 0,5.
[10:56, 20/5/2019] Marcelo Jr: Aula 6 - Resumo DA PRIMEIRA PARTE DO CURSO
Pixel é uma coordenada. 
Intensidade (ou cor) é o valor associado ao um pixel. 
Os valores associados as cores estão no intervalo de 0 até 2 bits − 1. 
Uma imagem pode ter até 2bits de cores. Por exemplo: 8 bits podem ter até 28 = 256 
cores 10 bits pode ter até 210 = 1024 cores 8 bits para cada banda RGB pode ter até 28×3 = 224 = 16.777.216 cores
 A quantidade de bits é log(quantCores) dividido log(2)
Cálculo de memória de Vídeo 
Memória de Vídeo é uma área de armazenamento em que cada posição indica quando um determinado pixel na tela deve estar apagado ou aceso e em qual cor. 
Esta memória fica localizada na placa de vídeo, que ´e responsável pela geração das imagens que vemos na tela. 
Muitos pensam que quanto mais memória possuir a placa de vídeo, mais rápida ela será, o que não é verdade. 
A quantidade de memória, determina apenas a resolução e a quantidade de cores que a placa poderá exibir.
[10:56, 20/5/2019] Marcelo Jr: Exercício	
• Implemente	o	operador	de	limiarização	e	aplique	na	
imagem	dos	parafusos	disponível	no	AVA.	O	objetivo	é	
separar	os	parafusos	e	porcas	do	fundo	da	imagem.	
• Dicas:	
– Importe	as	bibliotecas	
– Abra	a	imagem	no	formato	nível	de	cinza	
– Adquira	as	dimensões	da	imagem	
– Crie	uma	nova	imagem	para	armazenar	o	resultado	do	
processamento,	por	exemplo:	
– Aplique	o	processamento	na	imagem:	
imgSaida[linha,coluna] =
0, se imgEntrada[linha, coluna]≤LIMIAR
255, casocontrário
[10:56, 20/5/2019] Marcelo Jr: Exercício	
• Implemente	o	operador	de	limiarização	e	
aplique	na	imagem	dos	parafusos	disponível	
no	AVA.	O	objetivo	é	separar	os	parafusose	
porcas	do	fundo	da	imagem.

Outros materiais