Informática para Ciências e Engenharias 2013/14. Teórica 5

Documentos relacionados
Informática para Ciências e Engenharias 2014/15. Teórica 5

Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civil) Aula 6. Pedro Barahona 2016 / 17

MATLAB Avançado. Melissa Weber Mendonça Universidade Federal de Santa Catarina. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.

Representação das Informações

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

Neste tópico veremos:

MATLAB Avançado. Melissa Weber Mendonça Universidade Federal de Santa Catarina. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.

Imagem e Gráficos. vetorial ou raster?

Introdução ao Processamento de Imagens Digitais Aula 01

Aplicações Informáticas B 12º Ano

Padrões e Tipos de Dados de Mídia. Imagem

Menu de Barras na Screen 0

Existem três formas básicas de efectuar operações de entrada/saída:

Dispositivos e Periféricos de Computador

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Gráficos em duas dimensões

Mídias Discretas. Introdução à Ciência da Informação

António Costa. Paulo Roma Cavalcanti

Trabalho de Programação 2 Processador CESAR. 1. Descrição Geral. 2. Especificação do Trabalho

Modelo RGB - Aplicações

UFCD 778 Folha de Cálculo Formadora: Sónia Rodrigues

Iteração e Pontos Fixos

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Algoritmo e Programação Matemática

ESTV-ESI-Arquitecturas de Computador-Trabalho Prático Nº7-1/6

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

Forecasting e ti O i Otim Oti ização de ã d Carteiras com Matlab AULA 3

Introdução à Ciência da Computação

Pedro Vasconcelos DCC/FCUP. Programação Funcional 11 a Aula Gráficos usando Gloss

Prof. Dr. Marco Antonio Leonel Caetano

Universidade Federal de Sergipe Departamento de Matemática. Imagem* Profª. Maria Andrade. *Parte desta apresentação foi do Prof. Thales Vieira.

Computação e Programação

INTRODUÇÃO AO DESENVOLVIMENTO WEB. PROFª. M.Sc. JULIANA H Q BENACCHIO

CEF 1 - Soldador. Tecnologias da Informação e da Comunicação. Helena Silva Agrupamento de Escolas Dr. Carlos Pinto Ferreira

Expansão/Redução de imagens no domínio das frequências

MATLAB. Que é MATLAB?

Geração Procedural de Terrenos em GPU

Utilidades Diversas. Aplicações Informáticas para Engenharia. SérgioCruz

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

TUTORIAL SIMPLIFICADO DE MATLAB

Processamento de Imagens Coloridas. Prof. Adilson Gonzaga

Modelos Pontuais de Distribuição em Visão Computacional Estudo, Desenvolvimento e Aplicação

Universidade Federal de Alagoas Instituto de Matemática. Imagem. Prof. Thales Vieira

Vantagens da Folha de Cálculo. UFCD 3776 Informática folha de cálculo e base de dados. Formadora: Sónia Rodrigues.

Parte 1 Questões Teóricas

Sistemas de Cores. Leandro Tonietto Processamento Gráfico Jogos Digitais set-09

Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação /2

Refinamentos sucessivos

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Módulo I. Desejamos boa sorte e bom estudo! Em caso de dúvidas, contate-nos pelo site Atenciosamente Equipe Cursos 24 Horas

Otimização da Paleta de Cores

2ª. Competição Tecnológica (Outubro/2010)

Resumo. Sinais e Sistemas Introdução ao Matlab/Octave. Arquitectura. Matlab/Octave

Menu de Barras na Screen 0

Introdução a Programação de Jogos

Aula 2 Aquisição de Imagens

Métodos Numéricos. MEI - Logística e distribuição Optimização não linear com restrições de igualdade 2004/2005

Exercícios. Os exercícios estão na pag 11 (3 de 28); pag 17 (9 de 28) e pag 56 (28 de 28) Use o seguinte cabeçalho para os arquivos elaborados

Curso de Especialização em Teleinformática e Redes de Computadores Departamento Acadêmico de Eletrônica Universidade Tecnológica do Paraná

FERRAMENTAS BÁSICAS DA PROGRAMAÇÃO

SISTEMAS DE INFORMAÇÃO GEOGRÁFICA SIG FORMATOS DE REPRESENTAÇÃO DE DADOS FORMATO VETORIAL

Monitor: Diego Augusto Silva (P8 Eng. Elétrica) Atendimento: 2as. de 19:45h às 21:30h

Sistemas-L: Implementação em Java

O L A Representação de Informação. Representação de Informação. -- Texto -- Tabela de ASCII (7 bits) Representação de Caracteres

Cores em Imagens e Vídeo

Vectores. Figura Vector PQ

Aplicações de Escritório Electrónico

Introdução à Programação Aula 4 Definição de funções

P2 de Cálculo a Várias Variáveis I MAT Data: 14 de maio de 2013

Processamento Digital de Imagens. Cor

Programação em MATLAB

MESTRADO EM MACROECONOMIA e FINANÇAS Disciplina de Computação. Aula 06. Prof. Dr. Marco Antonio Leonel Caetano

Aula 5. Como gerar amostras de uma distribuição qualquer a partir de sua CDF e de um gerador de números aleatórios?

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Processamento Simbólico Polinómios e Equações Gráficos

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

Sistemas de Numeração

4 Variáveis. Unesp Campus de Guaratinguetá

Modelo de Markov e Simulação de Monte Carlo do Jogo do Monopólio

2 Segmentação de imagens e Componentes conexas

Investigação Operacional

Introdução à Computação

a: vetor contendo valores.

Aula 2P - Comandos básicos do Matlab aplicados a PDS

Projeto de Algoritmos

Fundamentos da Computação Gráfica

Sistemas de Numeração

Introdução ao MATLAB. 2 - Apresentação de resultados em gráfico. 3 - Controlo de fluxo 3.1. Tipos de controlo 3.2. Expressões Lógicas

Introdução aos Sistemas de Computação (ISC) Curso de Administração de Negócios Eletrônicos Professor :

Tecnologias da Informação e Comunicação: Sistema Operativo em Ambiente Gráfico

Escola Secundária c/ 3º Ciclo de Ferreira Dias. CURSOS PROFISSIONAIS Ano Letivo 2012 / Atividade 6

PROCESSAMENTO DIGITAL DE IMAGENS

TASM DEFINIÇÃO DE UMA NOVA TABELA DE CONVERSÃO

Aquisição e Tratamento de Imagem Estática (Mapa de Bits) Tecnologias da Informação e Comunicação

Física I 2009/2010. Aula02 Movimento Unidimensional

Dispositivos de Entrada e Saída

Exercícios de programação

Transcrição:

Informática para Ciências e Engenharias 2013/14 Teórica 5

Na aula de hoje... Representação de imagens pixels, sistema RGB Gráficos em MATLAB Gráficos simples Imagens 2D Exemplo: difusão Gráficos 3D Exemplo: simulação estocástica de um incêndio (Revisões) 2

Ecrã, imagens e pixels 3

O ecrã O ecrã é uma matriz de picture elements (pixels) a resolução é normalmente indicada por linhas x colunas: 1024 x 768, 800 x 600,... (4:3), 1280 x 720, 1366 x 178, 1920 1080, (16:9) cada imagem é também uma matriz de pixels 4

A imagem 5

Pixels representam caracteres 6

Cores No formato True Color, cada pixel tem 3 bytes (24 bits) para representar a cor RGB 1 byte (8 bits) para vermelho 1 byte (8 bits) para verde 1 byte (8 bits) para azul (Red) (Green) (Blue) Hexadecimal números representados com 0, 1,, 9, A,, F dois dígitos = 16*16 = 256 combinações de 00 a FF 7

Cores 8

Cores Cubo das cores (0,0,0) preto (255,255,255) branco (255, 0, 0) vermelho (0, 255, 0) verde (0, 0, 255) azul http://en.wikipedia.org/wiki/rgb_color_model 9

Manipulação do ecrã CPU dá instruções de escrita na RAM de vídeo, normalmente na placa gráfica. 3 bytes por pixel em true color 10

Manipulação do ecrã O controlador do ecrã na placa gráfica actualiza os pixels no ecrã, tipicamente 50 vezes por segundo (ou mais) 11

Gráficos em 2D: plot 12

Gráficos em MATLAB Função plot(x, y, opts) opts é uma string especificando símbolos e cores 13

Gráficos em MATLAB octave:1> x=-pi:0.1:pi; octave:2> y=sin(x); octave:3> plot(x,y,'*-r') octave:4> 14

Gráficos em MATLAB octave:1> x=-pi:0.1:pi; octave:2> y=sin(x); octave:3> plot(x,y,'*-r') octave:4> plot(x,-y,'+b') octave:5> 15

Gráficos em MATLAB octave:1> x=-pi:0.1:pi; octave:2> y=sin(x); octave:3> plot(x,y,'*-r') octave:4> plot(x,-y,'+b') octave:5> Nota: Em MATLAB (MATrix LABoratory) muitas operações comuns são estendidas a matrizes e vectores. No entanto, isto não é verdade na generalidade das linguagens de programação. 16

Gráficos em MATLAB octave:1> x=-pi:0.1:pi; octave:2> y=sin(x); octave:3> plot(x,y,'*-r') octave:4> plot(x,-y,'+b') octave:5> hold on octave:6> plot(x,y,'*-r') octave:7> 17

Gráficos em MATLAB Função fill(vx, vy, vcor) vx vector com coordenadas x de 4 pontos vy vector com coordenadas y de 4 pontos vcor vector com 3 valores RGB, entre 0 e 1 18

Gráficos em MATLAB 19

Gráficos em MATLAB colormap e image com colormap definimos um mapa de cores. Matriz de 3 colunas, com uma cor RGB por linha a função image representa uma matriz com as cores definidas Cada célula da matriz indica o índice (linha) da cor no mapa de cores. 20

Gráficos em MATLAB mapacores=([1,0,0;0,1,0;0,0,1]) imagem=floor(rand(50)*3)+1; colormap(mapacores) image(imagem) 21

Simulação: difusão 22

Simulação: difusão Vamos simular a difusão de X numa solução (em 2D) Uma matriz com concentrações A cada passo da simulação calcular quanto difunde para os 8 vizinhos: 23

Simulação: difusão Dividir em duas funções é bom ter os cálculos numa parte: função para calcular um passo de difusão function novaconc=passodifusao(matconc,coefdif) e os gráficos noutra: chama a anterior a cada passo e desenha o gráfico function difusao(matconcs,coefdif,iteracoes) 24

Simulação: difusão 25

Simulação: difusão Para todas as células internas da matriz 26

Percorrer a matriz 27

Percorrer a matriz 28

Simulação: difusão Para todos os vizinhos da célula em (l, c) (excepto o próprio) 29

Percorrer a vizinhança Matriz de 3x3 centrada em (l,c) 30

Simulação: difusão Normalmente evita-se aninhar muitos ciclos remetendo parte para outra função. Mas este caso exigiria copiar toda a matriz matconc, pelo que é mais eficiente deixar na mesma função. 31

Simulação: difusão A indentação é muito importante nestes casos. Sem indentação correcta o código fica ilegível e muito mais propenso a erros (por exemplo, faltar o end). 32

Simulação: difusão Calcular quanto se difunde e actualizar na matriz da nova concentração. Actualizamos na nova para não alterar os valores a usar para as outras células. 33

Simulação: difusão testar passodifusao octave:83> testmat=[0,0,0;0,1,0;0,0,0] testmat = 0 0 0 0 1 0 0 0 0 octave:84> tesmat=passodifusao(testmat,0.1) tesmat = 0.050000 0.100000 0.050000 0.100000 0.400000 0.100000 0.050000 0.100000 0.050000 34

Simulação: difusão 35

Simulação: difusão Gradiente de 100 tons de branco até azul 36

Simulação: difusão Para cada iteração calcular um passo de difusão e desenhar a imagem. O comando axis square evita a distorção da imagem e o refresh obriga a desenhar o gráfico durante a simulação. 37

Simulação: difusão Gota concs=zeros(30); concs(14:16,14:16)=500; difusao(concs,0.1,50); 38

Simulação: difusão Salpicos concs=zeros(30); concs(2:end-1,2:end-1)=... (rand(28)>0.9)*500; difusao(concs,0.05,60); 39

Gráficos em MATLAB: 3D 40

Gráficos em MATLAB Para fazer um gráfico em 3D precisamos de Matrizes X, Y, Z para associar um valor z a cada par (x,y) x = y = z = 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 5 4 1 8 10 7 10 7 10 6 9 6 6 7 5 4 3 7 7 2 7 1 5 3 9 41

Gráficos em MATLAB x = Nota: matrizes são indexadas por (linha, coluna) mas x varia na horizontal e y na vertical logo, x é a coluna e y a linha é preciso atenção a esta convenção y = z = 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 5 4 1 8 10 7 10 7 10 6 9 6 6 7 5 4 3 7 7 2 7 1 5 3 9 42

Gráficos em MATLAB Para fazer um gráfico em 3D precisamos de Matrizes X, Y, Z as matrizes x e y podem ser criadas com a função meshgrid e.g. [xx,yy]=meshgrid(1:5,1:5) chamar a função mesh(x,y,z) surf(x,y,z) traça uma rede 3D traça uma superfície 3D 43

Gráficos em MATLAB 44

Gráficos em MATLAB Especificar cores: Podemos acrescentar uma matriz para indicar quais as cores a usar tem de ter a mesma dimensão das outras as cores são as do colormap corrente, interpoladas. o menor valor da matriz C corresponde à primeira cor do mapa de cores o maior valor da matriz C corresponde à última cor do mapa de cores os valores intermédios são interpolados 45

Gráficos em MATLAB c=ones(5) c(2,2)=2; c(3,3)=3; colormap([1,0,0;0,1,0;0,0,1]); surf(x,y,z,c) 46

Gráficos em MATLAB Para mudar a orientação: view(azimute, elevação) octave:118> view(45,20) octave:119> view(85,60) 47

Simular um incêndio por Monte Carlo 48

Monte Carlo Nome cunhado pelo matemático Nicholas Constantine Metropolis (1915-1999) Conjunto de métodos baseados em números (pseudo) aleatórios. 49

Simular um incêndio Objectivo Temos uma matriz com a elevação do terreno http://visibleearth.nasa.gov/view.php?id=73934 50

Simular um incêndio Objectivo Queremos simular como um incêndio se propaga no terreno pode haver vento ou outros factores 51

Simular um incêndio Simulação numa matriz, cada célula indica que a vegetação está 1- normal 2- queimada 3- a arder a que está a arder pode propagar o fogo aos 8 vizinhos com uma probabilidade que depende do declive, vento, etc 52

Simular um incêndio Simulação a probabilidade de propagar o fogo a cada vizinho pode ser dada por uma matriz de 3x3 assim podemos simular vento ou outros factores dando valores diferentes para direcções diferentes modificada pelo declive 53

Simular um incêndio Simulação probabilidade de propagar o fogo: 0.10000 0.14000 0.10000 0.14000 0.00000 0.14000 0.10000 0.14000 0.10000 modificada pelo declive somar um factor dependente da diferença de elevação mais provável propagar-se a subir 54

Simular um incêndio Simulação a cada iteração da simulação temos de propagar o fogo de todas as áreas a arder testar as áreas a arder para determinar quais se apagam para a simulação temos de calcular cada iteração representar graficamente o progresso do incêndio 3 funções 55

Simular um incêndio Simulação Assinaturas das funções: function novoestado=propaga(estado,... mapa,probpropagar,efeitodeclive) function estado=extingue(estado,probapagar) function incendio(mapa,focoinicial,... probpropagar,probapagar,... efeitodeclive,iteracoes) 56

Simular um incêndio Propagar os focos de incêndio 57

Simular um incêndio Para todas as células internas da matriz que estejam a arder. (Não queremos propagar as da fronteira para evitar sair dos limites da matriz). 58

Simular um incêndio Para todos os vizinhos por arder dessa célula. Nota: não precisamos excluir a própria célula porque essa está a arder. 59

Simular um incêndio Calculamos a probabilidade de propagação modificando o valor da matriz pelo declive (mais provável propagar-se para cima). 60

Simular um incêndio Se propaga, marcamos no novoestado (e não no estado para evitar propagar imediatamente esse novo foco). Nota: rand devolve um valor pseudoaleatório entre 0 e 1. 61

Simular um incêndio Extinguir as zonas a arder 62

Simular um incêndio Para simular preparar o gráfico ciclo das iterações propagar extinguir desenhar 63

Simular um incêndio 64

Simular um incêndio Cria a matriz com o estado inicial da vegetação e o mesmo tamanho da matriz com a elevação do terreno. Podia ser: ones(size(mapa,1),size(mapa,2)) Depois inicia o incêndio. 65

Simular um incêndio Prepara as matrizes para o gráfico 3D. Nota: x é colunas, y linhas. Cria o mapa de cores (verde para normal, preto para queimado, laranja para fogo). 66

Simular um incêndio A cada iteração propaga e extingue os fogos activos com as probabilidades respectivas. 67

Simular um incêndio Depois desenha o gráfico, orienta-o adequadamente e força a sua actualização. (Sem o refresh só veríamos o gráfico no final da simulação) 68

Simular um incêndio Sem vento nem declive probpropagar = 0.10000 0.14000 0.10000 0.14000 0.00000 0.14000 0.10000 0.14000 0.10000 efeitodeclive = 0 69

Simular um incêndio Só declive probpropagar = 0.10000 0.14000 0.10000 0.14000 0.00000 0.14000 0.10000 0.14000 0.10000 efeitodeclive = 0.1 70

Simular um incêndio Declive e vento probpropagar = 0.04000 0.02000 0.04000 0.14000 0.00000 0.14000 0.20000 0.40000 0.20000 efeitodeclive = 0.1 71

Resumindo Gráficos 2D (pontos, linha) plot(vectorx, vectory, opções) hold on hold off clf 72

Resumindo Imagens 2D fill(coordsx, coordsy,corrgb) colormap(matrizcoresrgb) image(matrizindicescores) Gráficos 3D meshgrid(x,y), mesh ou surf (x,y,z), ou (x,y,z,c) view(azimute, declinação) 73

Para estudar esta aula Manual Octave Capítulo 15, plotting MATLAB plotting functions http://www.mathworks.com/help/matlab/creati ng_plots/using-high-level-plottingfunctions.html Por curiosidade Método Monte Carlo: http://en.wikipedia.org/wiki/monte_carlo_method 74

Dúvidas 75