Tutorial 4: Fusão de Dados Imagem



Documentos relacionados
Manual Processamento de Imagem. João L. Vilaça

Classificação da imagem (ou reconhecimento de padrões): objectivos Métodos de reconhecimento de padrões

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções

Expansão de Imagem #2

Introdução a Computação

Estrutura de Dados Básica

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Programação. MEAer. Bertinho Andrade da Costa. Instituto Superior Técnico. Introdução ao Pré-Processador. 2011/2012 1º Semestre

Como produzir e publicar uma apresentação online dinâmica (Prezi)

INTRODUÇÃO À PROGRAMAÇÃO DO ACCESS BASIC

Criar um formulário do tipo Diálogo modal ; Alterar a cor de fundo de um formulário; Inserir botões de comando e caixas de texto;

Ferramentas Web, Web 2.0 e Software Livre em EVT

15 a Aula Subprogramação /Subalgoritmos Função e Procedimento

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA

Fenômeno Físico Como a cor acontece

CRIAÇÃO DE MAPAS TEMÁTICOS COM ALOV MAP

Vetores. Professor Dr Francisco Isidro Massettto

2 Classificação de Imagens de Sensoriamento Remoto

Conceitos básicos da linguagem C

E ainda uma terceira com as opções deste último exemplo, em que a cor de fundo deve ser verdeescuro.

Nota de Aplicação IHM 004

Catálogo Nacional de Compras Públicas. Manual de Fornecedores

Capítulo 12. SUB-ROTINAS

Visão Artificial Para a Indústria. Manual do Utilizador

Sensoriamento Remoto

UNIDADE 6 - PROGRAMAÇÃO MODULAR

Actividade: Semelhança de triângulos

Lista de Exercícios Fluxograma, Estruturas de Sequência e Decisão Prof: Yuri Frota

Processamento de imagem a cores

Invenções Implementadas por Computador (IIC) Patentes

Numa turma de 26 alunos, o número de raparigas excede em 4 o número de rapazes. Quantos rapazes há nesta turma?

INSTITUTO TECNOLÓGICO

5 Apresentando a linguagem C

Técnicas de Programação I

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Ferramentas Web, Web 2.0 e Software Livre em EVT

Manual do Utilizador. Janeiro de 2012.

Algoritmos e programação

Conhecendo o Decoder

Questões dadas em Sala de Aula (para cada turma), nas aulas de Teoria:

Como Fazer um Vídeo no Windows Movie Maker

Criação de Páginas Web - MS Word 2000

7. Estrutura de Decisão

Recursos Educativos Digitais. Oficina de formação. Formadora: Anabela Triguinho

Resolução de avarias de MPEG

Manual das planilhas de Obras v2.5

QUITETURA AVANÇADA DE SISTEMAS

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

Apresentação do VisualA

Linguagem de Programação I. Orientação a Objetos em Java

Introdução ª Parte - Acesso à Aplicação Avaliação Online... 4 I Aceder à Aplicação Inscrição Acesso à Aplicação...

Este tutorial tem por objectivo explicar como trabalhar com o Microsoft Office PowerPoint.

MOODLE: actividade WiKi

Luz e Cor. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

UM POUCO DE COMPUTAÇÃO GRÁFICA.

1. Criar uma nova apresentação

Como Fazer um Vídeo no Windows Live Movie Maker

KF2.4 MANUAL DE UTILIZADOR

Convertendo Algoritmos para a Linguagem C

Ficha prática de PowerPoint

GeoMafra SIG Municipal

Openshot Video Editor Instalação e Configuração

10 FÓRUM DE EXTENSÃO E CULTURA DA UEM COMPARAÇÃO DE FUSÃO ENTRE AS IMAGENS DO SATÉLITE RAPID EYE, CBERS E SPOT.

Folha Prática 2. Lab. 2

Resolução de sistemas lineares

Escalas. Antes de representar objetos, modelos, peças, A U L A. Nossa aula. O que é escala

, Todos os programas, Microsoft Office PowerPoint. Através de um atalho que poderá estar no Ambiente de Trabalho

Tarefa Orientada 18 Procedimentos armazenados

Arte em ASCII. Introdução: Python

Implementadas por Computador

Programação para a Internet II PHP i18n. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento

Apontamento técnico No. 6, Junho de 2014 Como Instalar e Usar WhatsApp no Computador

1.2. Na pasta Os meus documentos, crie um website de uma página, com o nome paggrupo.

Oficina de Manipulação e Edição de Fotografia e Imagem Digital GIMP

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Trabalho Prático n. 2

Ferramenta de Apoio ao Jogo 2 (Ensino da Leitura) incluído nos Jogos da Mimocas

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.

Central Inteligente Manual de utilização

insfcanceof new public switch transient while byte continue extends for int null

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura Exemplo de um grafo linear.

Faculdade de Computação

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

EMP Multi Screen Adjustment. Guia de Funcionamento

Química Molecular. Este é um programa feito em Javascript que permite explorar alguns aspetos da química

Oficina de Construção de Páginas Web

Como enviar e receber correio eletrónico utilizando o Gmail

Manual de Utilizador. Caderno. Recursos da Unidade Curricular. Gabinete de Ensino à Distância do IPP.

Aula de JavaScript 05/03/10

AMBIENTE DE PROGRAMAÇÃO PYTHON

Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes

De novo, vamos começar pelas funções mais básicas, testá-las e depois usá-las em funções mais complexas.

Programação por Objectos. Java

LINGUAGEM C. Estrutura básica de um programa

Características da Câmara de Look 312P. Instalar a Câmara de Look 312P

Tipos de cores. Entendendo as cores. Imprimindo. Usando cores. Manuseio de papel. Manutenção. Solucionando problemas. Administração.

4 Sistemas de Equações Lineares

Transcrição:

Tutorial 4: Fusão de Dados Imagem Introdução. O objectivo principal deste tutorial consiste em estudar algumas das opções de fusão de dados imagem disponíveis na livraria de algoritmos do PCI Geomatica: 1. Transformação IHS 2. PanSharp Transformação IHS Na transformação IHS, a Intensidade (Intensity) refere-se ao brilho total da cor, a Tonalidade (Hue) refere-se ao comprimento de onda dominante e a Saturação (Saturation) especifica a pureza da cor. No método de fusão pela técnica IHS, transformamos três bandas espectrais de baixa resolução espacial do espaço RGB de cores para o espaço IHS. Ao executarmos a transformação estamos a separar a informação acromática (Intensidade) da cromática (Tonalidade e Saturação) de uma imagem padrão RGB (Red = Vermelho, Green = Verde, Blue = Azul). A ideia básica do método consiste então em substituir a componente intensidade pela banda Pan e depois efectuar a operação inversa e regressar ao espaço RGB Figura 1: Fluxograma da transformação IHS (Adaptado de Zhang, 2002) Os passos mais importantes desta transformação são: 1. Transformar a cor da imagem MS do espaço RGB para o espaço IHS; 2. Substituir a componente da I (Intensidade) pela imagem pancromática (Pan) com uma resolução superior; 3. Efectuar uma transformação inversa com as componentes substituídas do espaço IHS de volta ao espaço original RGB, de forma a obter uma imagem fundida. Vamos em primeiro lugar utilizar um extracto duma imagem do satélite LandSat. Temos 4 bandas (as bandas 10, 20, 30 e 40 com resolução de 30 m) que pretendemos integrar/fundir com a banda pancromática (banda 80 com resolução de 15m). Utilizando o Modeler e os algoritmos IHS e RGB podemos reproduzir o fluxograma indicado na figura 1

O resultado da execução do modelo para a composição 123 (ou 10,20,30) é dado na figura seguinte: Note-se que poderíamos realizar esta fusão de um modo ainda mais simples utilizando apenas o algoritmo fuse. Avaliação da transformação O objectivo é utilizar o coeficiente de correlação entre duas imagens para avaliarmos quantitativamente os resultados da fusão. Calculando o coeficiente de correlação para cada par de bandas antes e depois da fusão podemos construir um gráfico como o indicado na figura. r = m n ( I I )( J J ) 2 2 ( I I ) ( J J ) m n m n Factor de correlação para duas imagens I e J com dimensão mxn e médias I e J Para calcularmos o coeficiente de correlação entre duas bandas teremos de utilizar o seguinte script easi: ================= D E T E C A O R E M O T A ========================== Gil Goncalves

Este script calcula a correlação entre duas bandas de uma geodatabase pix r=\frac{\sum_m\sum_n (I_{}-}{\sqrt(} Exemplo: Suponhamos que dois ficheiros fich1="antes.pix" com as 4 bandas que pretendemos fundir: R,G,B,I fich2="depois.pix" com as 4 bandas fundidas : R,G,B,I este script escreve num ficheiro texto correlacao.txt a correlacao entre cada uma das bandas. Nota1: que é suposto que para a banda pancromatica o factor de correlação é 1 visto que esta banda não se altera no procedimento Nota2: é importante que as bandas estejam pela mesma ordem nos dois ficheiros Variáveis locais local int fid, fid1, fid2 local int i, j local string fich1, fich2, tmp1, tmp2 local double meani, meanj local double r ============ Variaveis a personalizar ================ ficheiros pix que contem as 4 bandas antes e depois da fusão fich1 = "LandSatExtrB10B40.pix" fich2 = "FusaoIHSAula.pix" M E A N Função para o calculo da média dos valores dos pixeis duma imagem define function MeanIm(fid,banda) local integer mlines, npixels local integer i, j local double meani, soma npixels=dbpixels(fid) mlines=dblines(fid) local float databuffer[npixels] soma=0 for i=0 to mlines-1 call DBReadLine(fid,banda,i,0,npixels,databuffer) for j=1 to npixels soma = soma + databuffer[j] print j,"-", databuffer[j] meani=soma/(mlines*npixels) return(meani) enddefine C O R R E L A T I O N Versão 1.0

Função para o calculo da correlação entre duas bandas define function Correlation(fidI, bandai, fidj, bandaj) local double meani, meanj local integer mlines, npixels local integer i, j local double num,den1,den2,r Numero de pixeis da linha npixels=dbpixels(fidi) Numero de linhas da imagem mlines=dblines(fidi) local float databufferi[npixels] local float databufferj[npixels] Media da imagem I meani=meanim(fidi,bandai) Media da imagem J meanj=meanim(fidj,bandaj) num=0 den1=0 den2=0 for i=0 to mlines-1 call DBReadLine(fidI,bandaI,i,0,npixels,databufferI) call DBReadLine(fidJ,bandaJ,i,0,npixels,databufferJ) for j=1 to npixels num = num + (databufferi[j]-meani)*(databufferj[j]-meanj) den1= den1 + (databufferi[j]-meani)*(databufferi[j]-meani) den2= den2 + (databufferj[j]-meanj)*(databufferj[j]-meanj) print j,"-", databuffer[j] r=num/sqrt(den1*den2) return(r) enddefine Gestão do erro try 1. Abrir o ficheiro antes da fusão tmp1 = NormalizePath(GetCWD() + "/" + fich1) tmp2 = NormalizePath(GetCWD() + "/" + fich2) fid1 = DBOpen(tmp1,"r+") fid2 = DBOpen(tmp2,"r+") fid = TEXTOpen( "correlacao.txt", "w" ) for i=1 to 2 r=correlation(fid1,i,fid2,i) Escrever o factor num ficheiro call TextWrite( fid, F$STRING(r) ) Escrever no ecran print "r= ", r 2. Get the Close file Call DBClose(fid1) Call DBclose(fid2)

Call TEXTClose(fid) OnError print GetLastErrorMessage() EndOnError