III Simpósio Brasileiro de Ciências Geodésicas e Tecnologias da Geoinformação Recife - PE, 27-30 de Julho de 2010 p.001 de 005 USO DO MATLAB NA GERAÇÃO DE IMAGEM SINTÉTICA COM MENOR PROPORÇÃO DE NUVEM JOSÉ ARIMATÉIA BARROSO NETO ANA LÚCIA BEZERRA CANDEIAS Universidade Federal de Pernambuco - UFPE Centro de Tecnologia e Geociências - CTG Departamento de Engenharia Cartográfica, Recife, PE [email protected];[email protected] RESUMO - O objetivo do trabalho é criar um algoritmo com linguagem em MATLAB que gere uma imagem sintética com menor proporção de nuvens a partir de duas imagens registradas entre si e obtidas em tempos distintos sobre a mesma área e ambas com cobertura de nuvens em locais distintos na imagem. ABSTRACT - The goal of the work was to create an algorithm with MATLAB language that obtain a synthetic image with low proportion of clouds based on registered images and obtained in different times over the same area and both with clouds covertures in different local. 1 INTRODUÇÃO As imagens de satélite são utilizadas para inúmeros fins, porém, nuvens e sombras causam problemas na classificação automática, na análise visual e na preparação de cartas temáticas baseadas em imagens. A metodologia é de fácil compreensão, pois a base dela é apenas o uso de funções que selecionam os valores máximos, mínimos e medianos, pixel a pixel das matrizes que representam as imagens sintéticas. O litoral nordestino do Brasil, por exemplo, é recoberto por nuvens o ano inteiro. As imagens dessas áreas possuem, em geral, recobrimento de nuvens e sombras. Isso diminui a área útil da imagem a ser analisada. Estudos para a minimização de nuvens e sombras em imagens, a partir de processamento de imagens, podem ser encontrados em Choi e Bindschadler (2004), Polidório et al (2005), e Silva et al (2007). O trabalho aqui apresentado visa a minimização dessas interferências, através de um processamento em duas ou mais imagens da mesma área, obtidas em tempos de aquisição diferentes e com nuvens em pontos distintos. Através dessas imagens, gera-se um produto sintético com menos interferência de nuvens. É necessário considerar que os realces das imagens sejam semelhantes. Caso isto não ocorra é necessário aplicar transformações a essas imagens para gerar um resultado uniforme para os seus realces. No caso aqui mostrado, tem-se a partir de uma imagem original, a inserção sintética de nuvens e sombras (Figura 1). O desenvolvimento teórico para diminuição da presença de nuvens se baseia em Silva e Candeias (2007). J. A. Barroso Neto, A. L. B. Candeias Figura 1 – Imagens sintéticas de entrada. Imagens sintéticas obtidas a partir da imagem TM de 01/11/2008 órbita/ponto: 216_066. bandas: 543. A programação foi desenvolvida em MATLAB (Gonzalez et al, 2003). Este trabalho é resultado do trabalho final da disciplina de processamento de dados do 2º semestre de 2009, do Departamento de Engenharia Recife - PE, 27-30 de Julho de 2010 p. 002 -005 III Simpósio Brasileiro de Ciências Geodésicas e Tecnologias da Geoinformação Cartográfica da UFPE ministrada pela profa. Ana Lúcia que é co-autora desse artigo. 2 METODOLOGIA Na metodologia utiliza-se uma imagem TM de 01/11/2008 órbita/ponto: 216_066. bandas: 543 sobreposta a nuvens e sombras sintéticas em duas posições distintas como apresentado na Figura 1. As nuvens são áreas de máximo na imagem e as sombras são as áreas de mínimo. Trabalhar com um algoritmo que gere imagens de máximo e de mínimo entre imagens de épocas diferentes gerará duas novas imagens uma com nuvem e outra com a sombra de nuvem. A mediana entre imagens originais e a subtração das imagens de máximo e mínimo, imagem de sombra vai gerar uma imagem resultante que conterá menos nuvem e sombra, pois na função mediana contempla-se o resultado mediano. Portanto, o programa consta em transformar as imagens em matrizes do tipo double e aplicar as funções de “max”,” min”, “median” e “subtração de matrizes” para fazer o tratamento pixel a pixel. Eles fazem uma comparação entre as matrizes (imagem do tempo t1 e imagem do tempo t2) criando novas matrizes, o “max” deixando apenas com os pontos de maior valor, o “min” os pontos de menor valor e o “median” fazendo uma mediana dessas imagens (subtração de Max com Min) com as originais. Supondo a imagem colorida, tem-se que o algoritmo divida o problema em três bandas (RGB – vermelho, verde, azul) e em cada banda são aplicadas essas funções. Numa escala de zero a duzentos e cinqüenta e cinco, o zero representa o nível de cinza que representa o preto e o duzentos e cinqüenta e cinco o que representa o branco. O diagrama de blocos mostra de forma geral a seqüência de passos (Figura 2). O programa em MATLAB mostrado nesse artigo descreve passo a passo dessa transformação. É importante lembrar que o MATLAB está sendo aqui usado apenas para prototipar. A posteriori gerar o programa em uma linguagem compilada e com técnicas de algoritmos rápidos vai gerar uma maior rapidez no processamento e aceitará qualquer tamanho de imagem. O programa em MATLAB é mostrado nessa seção e foi desenvolvido para ler uma imagem colorida RGB e obter uma saída também em RGB com menor proporção de nuvens e sombras. J. A. Barroso Neto, A. L. B. Candeias Figura 2 - Diagrama de blocos %------------------------------------------------------------------% Programa em MATLAB para geração de imagem % sintética com menor cobertura de nuvem e sombra de % nuvem % % Este programa foi baseado no programa desenvolvido % por Silva e Candeias (2007) %------------------------------------------------------------------clear all a=imread('imagemA.bmp'); b=imread('imagemB.bmp'); imshow(a) TITLE('Figura - A') figure imshow(b) TITLE('Figura - B') f1=double(a); f2=double(b); final=a; %------------------------------------------------------------% Banda R %------------------------------------------------------------R1=f1(:,:,1); R2=f2(:,:,1); %figure %imshow(uint8(R1)); %TITLE('Figura - R1') III Simpósio Brasileiro de Ciências Geodésicas e Tecnologias da Geoinformação %figure %imshow(uint8(R2)); %TITLE('Figura - R2') [m,n]=size(R1); for i=1:m for j=1:n me=[R1(i,j),R2(i,j)]; R3(i,j)=min(me); end end figure imshow(uint8(R3)); TITLE('Figura - R3') for i=1:m for j=1:n me=[R1(i,j),R2(i,j)]; R4(i,j)=max(me); end end figure imshow(uint8(R4)); TITLE('Figura - R4') R5=(R4-R3); figure imshow(uint8(R5)); TITLE('Figura - R5') for i=1:m for j=1:n me=[R1(i,j),R2(i,j),R5(i,j)]; R7(i,j)=median(me); end end figure imshow(uint8(R7)); TITLE('Figura - R7') final(:,:,1)=uint8(R7); %------------------------------------------------------------% Banda G %------------------------------------------------------------G1=f1(:,:,2); G2=f2(:,:,2); %figure %imshow(uint8(G1)); %TITLE('Figura - G1') %figure %imshow(uint8(G2)); %TITLE('Figura - G2') [m,n]=size(G1); for i=1:m for j=1:n me=[G1(i,j),G2(i,j)]; G3(i,j)=min(me); end end figure J. A. Barroso Neto, A. L. B. Candeias Recife - PE, 27-30 de Julho de 2010 p. 003 -005 imshow(uint8(G3)); TITLE('Figura - G3') for i=1:m for j=1:n me=[G1(i,j),G2(i,j)]; G4(i,j)=max(me); end end figure imshow(uint8(G4)); TITLE('Figura - G4') G5=(G4-G3); figure imshow(uint8(G5)); TITLE('Figura - G5') for i=1:m for j=1:n me=[G1(i,j),G2(i,j),G5(i,j)]; G7(i,j)=median(me); end end figure imshow(uint8(G7)); TITLE('Figura - G7') final(:,:,2)=uint8(G7); %------------------------------------------------------------% Banda B %------------------------------------------------------------B1=f1(:,:,3); B2=f2(:,:,3); %figure %imshow(uint8(B1)); %TITLE('Figura - B1') %figure %imshow(uint8(B2)); %TITLE('Figura - B2') [m,n]=size(B1); for i=1:m for j=1:n me=[B1(i,j),B2(i,j)]; B3(i,j)=min(me); end end figure imshow(uint8(B3)); TITLE('Figura - B3') for i=1:m for j=1:n me=[B1(i,j),B2(i,j)]; B4(i,j)=max(me); end end figure imshow(uint8(B4)); TITLE('Figura - B4') B5=(B4-B3); III Simpósio Brasileiro de Ciências Geodésicas e Tecnologias da Geoinformação figure imshow(uint8(B5)); TITLE('Figura - B5') for i=1:m for j=1:n me=[B1(i,j),B2(i,j),B5(i,j)]; B7(i,j)=median(me); end end figure imshow(uint8(B7)); TITLE('Figura - B7') final(:,:,3)=uint8(B7); % Resultado Final figure Recife - PE, 27-30 de Julho de 2010 p. 004 -005 imshow(final) TITLE('Resultado Final') A imagem do exemplo utilizada foi a do sensor TM 01/11/2008 orbita/ponto: 216_066 combinação de bandas: 543. Foram geradas, duas imagens sintéticas para o exemplo (Figura 1). A Figura 3 mostra as imagens de entrada e o resultado obtido para o programa acima descrito. As Figuras 4(a),(b) e (c) mostram apenas para a banda do vermelho R porém a metodologia foi feita com as três bandas R, G, e B. Figura 3 - Imagens de entrada com nuvens sintéticas em pontos distintos (Figura - A e Figura – B) e o resultado da metodologia. J. A. Barroso Neto, A. L. B. Candeias III Simpósio Brasileiro de Ciências Geodésicas e Tecnologias da Geoinformação Recife - PE, 27-30 de Julho de 2010 p. 005 -005 3 CONSIDERAÇÕES FINAIS O algoritmo mostrado consegue reduzir a zero a quantidade de nuvens de duas imagens sintéticas obtidas nos tempos t1 e t2 (Figura 3 e 4). O algoritmo é bem direto e de fácil compreensão, e pode servir para futuros estudos e modificações para que se obtenha melhores resultados em imagens com nuvens e sombras. Sugere-se trabalhar em outras imagens essa metodologia para certificar se ela pode ser considerada geral. (a) Para a banda G: Imagens de entrada G1 e G2. REFERÊNCIAS Silva, Alison Galdino de Oliveira , Candeias, Ana Lucia Bezerra. Geração de Imagem Sintética com Menor Proporção de Nuvens a Partir de Imagens Multitemporais. Anais do II Simpósio Brasileiro de Geomática e V Colóquio Brasileiro de Ciências Geodésicas, Anais... 2427 de Julho de 2007. UFPR, 5p. Gonzalez, R.C.; Woods, R.E.; Eddins, S. L.. Digital Image Processing Using MATLAB. 1st Edition. Editora Edgard Blücher Ltda. 2003. Choi, H., Bindschadler, R. Cloud detection in Landsat imagery of ice sheets using shadow matching technique and automatic normalized difference snow index threshold value decision. Remote Sensing of Environment 91 (2004) p.237–242 (b) Para a banda G: Imagens de sombra de nuvem (Figura– G3) e imagem de nuvens (Figura – G4) Polidorio, A. M., Imai, N. N., Tommaselli, A. M. G. Correção radiométrica das imagens multiespectrais CBERS e LANDSAT ETM usando atributos de reflectância e de cor. In: Simpósio Brasileiro de Sensoriamento Remoto (SBSR), 12., 2005, Goiânia. Anais... São José dos Campos: INPE, 2005, p. 42414248. Silva, W. A.,; Imai, N. N.; Polidorio, A. M. Detecção de nuvens e sombras em imagens CCD/CBERS por correlação de pontos candidatos. Anais XIII Simpósio Brasileiro de Sensoriamento Remoto, Anais... Florianópolis, Brasil, 21-26 abril 2007, INPE, p. 61996206. (c) Imagem da subtração das imagens da Figura 3(c) G4- G3 e o resultado final obtido a partir da mediana de cada elemento da matriz (Mediana[G1(i,j),G2(i,j),G5(i,j)]) Figura 4 – Aplicação da metodologia J. A. Barroso Neto, A. L. B. Candeias