COMANDOS BÁSICOS VOLTADOS AO PROCESSAMENTO DE IMAGENS

Tamanho: px
Começar a partir da página:

Download "COMANDOS BÁSICOS VOLTADOS AO PROCESSAMENTO DE IMAGENS"

Transcrição

1 COMANDOS BÁSICOS VOLTADOS AO PROCESSAMENTO DE IMAGENS EM MATLAB Processamento Digital de Imagens CURSO TÉCNICO EM GEOPROCESSAMENTO Prof. Daniel C. Zanotta 2015/1 1

2 1 INTRODUÇÃO O MATLAB foi desenvolvido no início da década de 80 por Cleve Moler, no Departamento de Ciência da Computação da Universidade do Novo México, EUA. É um software interativo de alta performance voltado para o cálculo numérico. Integra análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos em ambiente de fácil uso, onde problemas e soluções são expressos intuitivamente como eles são escritos matematicamente, ao contrário da programação tradicional (C, C++, Java). O MATLAB pode ser entendido como um código de programação interpretado, uma vez que sempre é traduzido para linguagem de máquina quando executado. Essa característica pode ser vista como uma comodidade, uma vez que torna sintaxe e comandos mais intuitivos, mas também como uma desvantagem a medida que o código interpretado é computacionalmente mais lento. Figura 1.1. MATLAB R2012a. O MATLAB caracteriza-se também por ser um sistema cujo elemento básico de informação é uma matriz, daí surge seu nome MATrix LABoratory (Laboratório de Matrizes). Esse sistema de organização permite a resolução de muitos problemas numéricos em apenas uma fração do tempo que se gastaria para escrever um programa semelhante em linguagem Fortran, Basic ou C. A estrutura do MATLAB está toda organizada para manipular matrizes 1, tornando todas as operações matriciais mais eficientes computacionalmente. Além disso, essa estrutura matricial dos dados é extremamente conveniente para tratamento e processamento de dados bidimensionais, ou espaciais, como imagens. 1 Isso não impossibilita que o usuário também possa fazer procedimentos matemáticos simples ou vetoriais. 2

3 1.1 Inicialização do MATLAB Figura 1.2 Tela de inicialização do MATLAB R2012a. Quando o MATLAB é carregado, algumas janelas básicas são exibidas: a Janela de Comando (Command Window), o Espaço de Trabalho (WorkSpace) que é onde ficam as variáveis, a pasta de trabalho atual (Current Folder), e o Histórico de Comandos (Command History). A Janela de Comando é ativada quando se inicializa o MATLAB, e o "prompt" padrão (>>) é exibido na tela Comandos A partir desse ponto, o MATLAB espera as instruções do usuário. Para inserir uma matriz pequena, por exemplo, pode-se digitar: >> A = [1 2 3; 4 5 6; 7 8 9] colocando-se colchetes em volta dos números e separando as linhas por ponto e vírgula. Quando se pressiona a tecla <Enter> o MATLAB responde com: 2 O software está pronto para receber comandos quando no canto inferior esquerdo aparece a mensagem Ready. Quando ele está inicializando ou executando algum comando aparece busy e o usuário deve aguardar. 3

4 A variável A aparece no workspace. É importante ressaltear que todas as variáveis (imagens, por exemplo) a serem futuramente trabalhadas devem constar no workspace. Para fazer uma operação aritmética simples, o usuário pode teclar: >> soma = soma = 7 A variável soma aparece no workspace para uso futuro. Se o usuário acrescentar o terminador ponto-e-vírgula ( ; ), o cálculo será executado e a variável é criada/alterada no workspace, porém, o resultado não será mostrado na tela. Isso evita que a tela fique cheia de resultados calculados previamente 3. Esse procedimento é especialmente usado em arquivos com extensão ".m" e em situações onde o resultado é uma matriz de grandes dimensões, como imagens. O sinal de percentagem (%), indica comentários, e não é lido como parte do comando. >> soma = % somatório de dois valores inteiros. As teclas com setas podem ser usadas para encontrar comandos digitados anteriormente, para execução novamente ou sua reedição. Por exemplo, suponha que seja necessário calcular uma raiz quadrada com a função sqrt: >> sqt(tan(pi/5)) Como o comando foi digitado incorretamente, o MATLAB responde com uma mensagem de erro:??? Undefined funcion or variable sqt. Ao invés de repetir novamente a digitação da linha inteira, simplesmente pressiona-se a tecla. O comando anterior retorna, podendo-se inserir a letra "r" com maior facilidade. >>sqrt(tan(pi/5)) ans = Declaração de Variáveis Como mencionado anteriormente, o MATLAB é uma linguagem interpretada. As expressões usadas são traduzidas pelo sistema e transformadas em linguagem de máquina. As declarações no MATLAB são frequentemente da forma: >> variável = expressão 3 Imagine quando um procedimento realizado com uma imagem de milhões de pixels é executado sem ponto-evírgula? Todos os pixel serão mostrados na tela dificultando a visualização. 4

5 ou simplesmente >> expressão A avaliação das expressões produzem matrizes, que são então mostradas na tela e atribuídas às variáveis para uso futuro. Se o nome da variável e o sinal de igualdade "=" são omitidos, a variável com o nome ans, que representa a palavra "answer" (resposta), é automaticamente criada. Por exemplo, digite a expressão: >> 1900 / 81 que produz: Ans = Ou alternativamente: >> V = 1900 / 81 que produz: V = É importante observar que se outro comando for dado sem atribuição inicial a nenhuma variável, o valor antigo de ans será substituído pelo novo. Se a expressão é tão grande que não cabe em apenas uma linha, pode-se continuar a expressão na próxima linha usando um espaço em branco e reticencias, (... ), ao final das linhas incompletas. Por exemplo: >> S = 1-1/2 + 1/3-1/4 + 1/5-1/6 + 1/7-1/10 + 1/11-1/12 + 1/3-1/4... >> - 1/8 + 1/9-1/10 + 1/11-1/12 + 1/13; calcula o resultado da série, atribuindo o somatório à variável S, mas não imprime o resultado na tela, isto porque adicionou-se um ; ao final da expressão. Note que os espaços em branco entre os sinais =, + e "-" são opcionais, mas o espaço em branco entre "1/4" e "..." é obrigatório. As variáveis e funções podem ser formadas por um conjunto de letras, ou por um conjunto de letras e números, onde somente os primeiros 19 caracteres do conjunto são identificados. O MATLAB é case-sensitive, isto é, faz distinção entre letras maiúsculas e minúsculas, assim a e A não são as mesmas variáveis. Todas as funções devem ser escritas em letras minúsculas: inv(a) calcula a inversa de A, enquanto INV(A) é uma função indefinida, não existe. Execute algumas expressões como: >> A = >> B = A + 3 >> C = A + B; >> D = B / C >> P = (10*A) (2 / C)*3 Note que todas as novas variáveis criadas vão sendo automaticamente salvas no workspace. Experimente também criar algumas matrizes: M = [ 1 2 3; 4 5 6; 7 8 9] 5

6 N = [ 1 1 1; 2 2 2; 3 3 3] 1.4 Números e Expressões Aritméticas A notação decimal convencional com ponto decimal opcional e o sinal de menos é usada para números (observe que um números com virgulas, assim como nas calculadoras, são representados com ponto). A potência de dez pode ser incluída como um sufixo. A seguir são mostrados alguns exemplos de números aceitos: E e23 As expressões podem ser construídas usando-se os operadores aritméticos básicos e as regras de precedência: 1 ^ Exponenciação 2 sqrt() Raiz quadrada 3 / Divisão a direita 4 \ Divisão a esquerda 5 * Multiplicação 6 + Adição 7 - Subtração Deve-se notar que existem dois símbolos para divisão: as expressões 1/4 e 4\1 possuem o mesmo valor numérico, isto é, 0,25. Parênteses são usados em sua forma padrão para delimitar a atuação dos operadores aritméticos. Não existem colchetes e chaves, apenas parênteses em diversos níveis. 2 FUNÇÕES O MATLAB possui um conjunto extenso de funções incluídas nas mais diversas bibliotecas internas (MATLAB TOOLBOX), que são na realidade arquivos com a extensão 6

7 .m criados a partir das funções intrínsecas 4. A biblioteca externa pode ser constantemente atualizada à medida que novas aplicações são desenvolvidas por você. As categorias gerais de funções matemáticas disponíveis no MATLAB incluem: matemática elementar; matemática avançada; matrizes elementares; matrizes especiais; decomposição e fatoração de matrizes; polinômios; solução de equações diferenciais; equações não-lineares e otimização; derivação e integração numérica; análise de dados; análise estatística; ferramentas para mapas processamento de sinais; processamento de imagens. 2.1 Arquivos.m (ambiente de programação) Os comandos do MATLAB são normalmente digitados na Comand Window, onde uma única linha de comando é introduzida e processada imediatamente. O MATLAB é também capaz de executar sequências de comandos armazenadas em arquivos. Os arquivos que contêm as declarações do MATLAB são chamadas arquivos.m, e consistem de uma sequências de comandos normais do MATLAB, possibilitando incluir outros arquivos.m escritos no formato texto (ASCII). Na Janela de Comando do MATLAB selecione New M-File para criar um novo arquivo ou Open M-File para editar um arquivo já existente, a partir do menu File. Os arquivos podem também ser editados fora do MATLAB utilizando qualquer editor de texto (como o bloco de notas). Vale notar que ao se editar o arquivo.m no editor padrão do Matlab, o usuário contará com uma série de codificações em forma de cores que auxiliarão a diferenciar funções, variáveis e operadores lógicos. 2.2 Toolbox de Processamento de Imagens A toolbox de processamento de imagens do MATLAB conta com os mais variados procedimentos aplicados no processamento digital de imagens para as mais diversas 4 Estas funções são criadas por desenvolvedores profissionais e atualizadas a cada nova versão do MATLAB. 7

8 aplicações. Um dos principais motivos da utilização do MATLAB por diversos segmentos da ciência e do mercado de trabalho voltado à utilização de imagens é a qualidade e utilidade do toolbox de processamento de imagens. Seguem abaixo alguns exemplos de comandos básicos desta toolbox: imread = ( filename, fmt ) lê uma imagem do arquivo especificado pelo nome do arquivo string. Se o arquivo não está na pasta atual (aquela cujo caminho foi apontado em current folder), ou em uma pasta no caminho MATLAB, especificar o caminho completo (( C:/Arquivos/.../filename, fmt )). É possível também abrir uma imagem simplesmente arrastando o arquivo para dentro do workspace com maior facilidade. O fmt especifica o formato do arquivo, sua extensão de arquivo padrão. Por exemplo, especifique 'gif' para arquivos de formato Graphics Interchange. Existe uma lista de formatos suportados, com suas extensões de arquivo, digite imformats para conhecer. O valor de retorno A é uma matriz que contém os dados de imagem importada para o workspace do MATLAB. Se o arquivo contém uma imagem em tons de cinza, A é uma matriz M-por-N, onde M é o número de linhas e N o número de colunas da imagem. Se o arquivo contém uma imagem truecolor (com cores vermelho, verde e azul 5 ), A é uma matriz M-por-Npor-3. Se o arquivo for uma imagem de satélite, por exemplo, que possui mais de 3 camadas, A é uma matriz M-por-N-por-K, sendo K o número de camadas. imshow (I) exibe a imagem. imshow (I) exibe a imagem em tons de cinza 6 I imshow (RGB (:,:,ki:kf) exibe uma imagem em cor verdadeira RGB. Os dois primeiros : indicam que todas as linha e todas as colunas da imagem, respectivamente, serão mostradas. Ki indica a banda inicial e kf indica a banda final. É importante lembrar que, mesmo que as imagens contenham mais de 3 bandas (o que é muito comum), os programas conseguem mostrar em tela apenas composições coloridas de 3 dessas bandas. imwrite (A, nome de arquivo, fmt ) escreve a imagem A para o arquivo especificado pelo nome do arquivo no formato especificado pelo fmt. A pode ser uma matriz M-por-N (escala de cinza da imagem) ou M-por-N-por-3 (imagem em cor verdadeira), mas não pode ser uma matriz vazia. Para arquivos TIFF, A pode ser uma matriz M-por-N-por-K, onde K é o número de bandas da imagem. nome do arquivo é uma string que especifica o nome do arquivo de saída. fmt pode ser qualquer uma das cadeias de texto listados na tabela de tipos de imagens suportados. 3 CLASSES DE DADOS Assim que a imagem é aberta no workspace do MATLAB, é possível verificar a classe dos dados do arquivo. Pixels são geralmente representadas por números inteiros e positivos, ou 5 (RED, GREEN e BLUE). 6 Também chamada de Níveis de Cinza ou Monocromática. 8

9 seja, 1, 2, 3, 4, 5, e assim por diante. Essa formatação dos dados confere um tamanho menor ao arquivo que contém a imagem. Por exemplo, se a imagem tem 8 bits, significa que 2 8 = 256 e ela poderá assumir apenas 256 níveis diferentes de coloração (de 0 até 255) 7, ou níveis de cinza entre o branco puro e o preto puro. Imagens de Sensoriamento Remoto usualmente possuem 8 bits. Se a imagem possuir 16 ou 24 bits, seus níveis de cinza conterão 2 16 = e 2 24 = , respectivamente. Obviamente a imagem contará com um detalhamento maior, mas o tamanho computacional de cada pixel aumentará de acordo o seu valor em bits. Esse valor (8, 16, 24) é conhecido como a resolução radiométrica da imagem. O MATLAB representa essa estruturação de dados por uint8 (Inteiros 8 bits) ou uint16 (Inteiros 16 bits), por exemplo. Quanto maior o número de bits, maior é a quantidade de níveis de cinza e melhor é a resolução: Figura 3.1 Correspondência entre número de bits e qualidade da imagem. Fonte: CEPSRM-UFRGS. Para a manipulação da imagem através de operações matemáticas, é preciso quebrar essa formatação padrão para permitir que os cálculos possam ser feitos (ex: valor do pixel 53/2 = 26,5). Uma classe de dados que pode assumir valores fracionários é a classe double. A classe double pode assumir qualquer valor Real entre menos infinito e mais infinito. Em 7 Onde 0 representa o preto e 255 representa o branco. 8 Nesse caso, 0 representa o preto e representa o branco. 9

10 processamento de imagens é muito comum trabalhar com os dados na classe double, uma vez que esta classe permite a manipulação completa dos dados sem restrições. Portanto, essa é a classe de dados que devemos trabalhar em PDI 9. A figura abaixo mostra a origem dessas classes dentro do conjunto matemático dos números: Figura 3.4 Exemplificação de onde se encontram os valores das imagens no conjunto matemático dos números Comandos comumente utilizados para transferência entre classes de dados no MATLAB: double (x) : Converte os dados (x) de qualquer classe para a classe double, números fracionários positivos ou negativos. uint8(x): Converte os dados (x) de qualquer classe para a classe uint8, inteiros positivos de 0 a 255. uint16 (x): Converte os dados (x) de qualquer classe para a classe uint16, inteiros positivos de 0 a Ao mesmo tempo que é importante trabalhar com as imagens no formato double dentro do MATLAB, é necessário converter a mesma para uint8 ao final dos processos antes de gravar. Assim, outros softwares poderão ler a imagem processada sem maiores problemas. Muito importante: Ao visualizar alguma imagem na tela, a função imshow(img) pode variar dependendo do tipo de classe da imagem. Por exemplo, para o MATLAB, se a imagem estiver na classe uint8, entende-se que ela possui valores variando de 0 até 255, e a função imshow desta imagem mostrará o valor 0 como preto e o valor 255 como branco. Os demais valores intermediários receberão diferentes níveis de cinza de acordo com o seu valor. Se por acaso a imagem possuir a classe double, a função imshow mostrará o valor 0 como preto, e o valor 1 como branco. Os demais valores fracionários entre 0 e 1 receberão diferentes níveis de cinza. 9 Acostume-se a sempre que abrir a imagem no workspace transformar ela para class double. 10

11 Qualquer pixel com valor menor que 0 ficará preto, assim como qualquer pixel com valor maior que 1 ficará branco. Assim, ao converter uma imagem de uint8 para double, deve-se tomar o cuidado de dividir seus valores por 255 (valor máximo da classe uint8). Dessa forma, todos os valores da imagem ficarão entre 0 e 1, e quando a imagem for apresentada na tela por imshow apresentará os valores corretos de níveis de cinza. Caso essa divisão por 255 não seja feita, pixels com valores maiores que 1 ficarão brancos (ou seja, muitos pixels na imagem). IMPORTANTE: Se "A" for uma imagem de intensidade de cinzas ou uma imagem colorida (RGB) de classe <uint8>, imwrite grava os valores reais da matriz no arquivo. Se "A" for da classe <double>, imwrite redimensiona os valores da matriz antes de gravá-los, usando uint8(round(255*a)). Esta operação converte os números de ponto-flutuante na faixa [0,1] em inteiros de 8 bits na faixa [0,255]. Sugere-se a seguinte sequencia de comandos para a abertura e salvamento de imagens: Abrir: 1) Arrastar a imagem para o worspace; 2) Passar para a classe double >> img = double (img); 3) Se quiser mostrar em tela, dividir por 255 (máximo valor) >> imshow = img(:, :, [R G B]) / 255); 10 4) Processar a imagem Salvar: 1) Converter a imagem para uint8 >> img = uint8 (img); 2) Salvar com a função imwrite, imsave ou geotiffwrite; 4 REPRESENTAÇÃO DE IMAGENS DIGITAIS O termo imagem refere-se à função bidimensional de intensidade da luz f(x,y), onde x e y denotam as coordenadas espaciais e o valor f em qualquer ponto (x, y) é proporcional ao brilho (ou níveis de cinza) da imagem naquele ponto. Uma imagem digital é uma imagem f(x, y), duas dimensões, discretizada 11 tanto em coordenadas espaciais quanto em brilho. Uma imagem digital pode ser considerada como sendo uma matriz cujos índices de linhas e de colunas identificam um único ponto na imagem, e o correspondente valor do elemento da matriz identifica o nível de cinza naquele ponto. A Convenção dos eixos para representação de imagens digitais no Processamento de Imagens é diferente da convenção usada na Computação Gráfica. 10 Se for imagem 8 bits 2 8 = Onde usam-se penas valores inteiros. 11

12 Figura 4.1 Convenção dos eixos para representação de imagens digitais Os elementos dessa matriz digital são chamados de elementos da imagem, elementos da figura, "pixels", abreviação de "picture elements" (elementos da figura). Quanto mais pixels uma imagem tiver, melhor é a sua resolução e qualidade. A imagem abaixo mostra como uma imagem em níveis de cinza é representada através de uma matriz composta por números inteiros, cada um com um certo valor correspondente a um nível de cinza. 12

13 Figura 4.2 (a) imagem digital com grupo de pixels selecionados; (b) zoom da janela de 9x9 pixels; (c) valor dos contadores digitais da função f(x, y). Fonte: CEPSRM-UFRGS. 4.1 Histograma da Imagem Numa imagem, a informação da quantidade de vezes que uma determinada cor se repete representa o histograma dessa imagem. Como as imagens são formadas por diversas matrizes sobrepostas, o histograma é gerado banda por banda separadamente. Uma informação assim sobre a imagem é importante, pois pode gerar parâmetros para a avaliação da qualidade da mesma, como nitidez, luminosidade e profundidade. A função imhist exibe o histograma da imagem. >> imhist (I) exibe um histograma de 256 tons de cinza para a imagem. Uma barra de calibragem de tons de cinza é sempre exibida abaixo do traçado. >> imhist (I, N) exibe o histograma usando N posições ao invés de

14 Figura 4.3 Exemplo de Histograma de Imagem. 4.2 Imagens Coloridas As imagens obtidas por sensores eletrônicos, em diferentes canais, são formadas por níveis de cinza (imagens monocromáticas). A quantidade de energia refletida pelos objetos vai determinar a intensidade dos níveis de cinza entre o branco (quando refletem toda a energia) e o preto (quando absorvem toda a energia). Ao combinar as imagens monocromáticas produzidas por cada banda através das cores azul, verde e vermelho (cores primárias), é possível gerar imagens ou composições coloridas. Nas imagens coloridas, a cor de um objeto vai depender da quantidade de energia por ele refletida nas faixas espectrais de cada uma das bandas selecionadas para visualização. Figura 4.4 Imagem colorida, obtida a partir das imagens ETM+ LANDSAT-7, dos canais 1, 2 e 3, com as cores azul, verde e vermelho. Fonte: FLORENZANO (2002) 14

15 Figura 4.5 Imagem colorida, obtida a partir das imagens ETM+ LANDSAT-7, dos canais 3, 4 e 5, com as cores azul, verde e vermelho. Fonte: FLORENZANO (2002) 5 PASSOS FUNDAMENTAIS DO PROCESSAMENTO DE IMAGENS A área de processamento de imagens é um excelente exemplo de interdisciplinaridade. As diversas técnicas originalmente desenvolvidas para tratamento de sinais unidimensionais foram, em primeiro lugar, adaptadas para tratamento de imagens obtidas de satélites e de naves espaciais. Posteriormente, com o rápido avanço das opções de hardware e software, estas mesmas técnicas passaram a ser aplicadas em inúmeros domínios tais como fotografia, medicina, ciência dos materiais, microscopia, artes, etc... O primeiro passo no processo é a aquisição da imagem, isto é, adquirir uma imagem digital. Para fazer isso, necessitamos de um sensor para imageamento e a capacidade de digitalizar o sinal produzido pelo sensor. O sensor poderia ser uma câmera fotográfica que adquire fotografias de áreas inteiras de uma só vez. O sensor de imageamento poderia também ser uma câmera de varredura por linha que produza uma única linha de imagem por vez, como no caso dos Satélites de Sensoriamento Remoto. Vale lembrar que se a saída da câmera ou outro sensor de imageamento não se encontrar na forma digital, um conversor analógicodigital realiza a digitalização, um Scanner, por exemplo. A natureza do sensor e da imagem que ele produz são determinadas pela aplicação. As imagens digitais tomadas por sensores remotos podem ser adquiridas por provedores na internet. São exemplos desses provedores a Divisão de Geração de Imagens do Instituto Nacional de Pesquisas Espaciais (DGI-INPE), acessível em através de um pequeno cadastro, ou United States Geological Survey USGS NASA em Após a obtenção de uma imagem digital, o próximo passo trata de pré-processar a imagem. A função chave no pré-processamento é melhorar a imagem de forma a aumentar as chances para o sucesso dos processos que serão aplicados na etapa de processamento. Nesse 15

16 exemplo, o pré-processamento tipicamente envolve técnicas para calibração radiométrica, remoção de ruídos, correção atmosférica e seleção da região a ser estudada. O processamento, realizado após o pré-processamento, visa à extração de informações úteis para uma determinada aplicação. São exemplos disso aplicações urbanas, florestais, cultivo agrícola, desastres naturais, detecção de mudanças, mapeamento de diversos tipos em diversas escalas e estudos meteorológicos. A variedade desses processos será estudada uma a uma nos capítulos seguintes. 6 REFERÊNCIAS BASTOS, V.P. Técnicas de Segmentação de Imagens para Recuperação de Informações Visuais. FLORENZANO, Tereza Gallotti. Imagens de satélites para estudos ambientais. São Paulo: Oficina de Textos, CROSTA, Álvaro Penteado - Processamento Digital de Imagens de Sensoriamento Remoto. Ed. Rev. - Campinas, SP: IG/UNICAMP, Engenharia Cartográfica UFRGS - Página Dinâmica para Aprendizado do Sensoriamento Remoto (PDASR). 16

17 Histograma da Imagem O histograma de uma imagem fornece informação útil para fazer realce e análise da imagem. O histograma de uma imagem revela a distribuição dos níveis de cinza da imagem. É representado por um gráfico que dá o número de pixels na imagem para cada nível de cinza. Definição: Seja uma imagem digital g de M linhas e N colunas. O histograma da imagem g, Hg, pode, analiticamente, ser definido por : onde nk é o número de vezes que o nível de cinza K aparece na imagem. Pode-se utilizar o MATLAB para gerar o Histograma de uma imagem. Primeiro a imagem deve ser lida com o comando "imread"» a =imread('baronesa.jpg'); 17

18 O resultado e mostrado na FIGURA 03 (Museu da Baronesa - Pelotas/RS). FIGURA 03 - Imagem lida no MATLAB Depois, gera-se o histograma como o comando "imhist"» imhist(a); O resultado é mostrado na FIGURA 04. FIGURA 04 - Histograma da Figura03 Realce O objetivo principal das técnicas de realce é processar uma imagem, de modo que o resultado seja mais apropriado para uma aplicação específica do que a imagem original [1]. As Técnicas de realce podem ser baseadas em processamento ponto-a-ponto, que modifica o nível de cinza de um pixel independentemente da natureza de seus vizinhos, ou pelo processo de filtragem, onde o novo valor depende também dos valores dos pontos vizinhos do ponto a ser processado. Contraste 18

19 A manipulação do contraste de uma imagem tem como objetivo melhorar a sua qualidade visual sob critérios subjetivos ao olho humano. Esse processo não aumenta a quantidade de informação contida na imagem, mas torna mais fácil a sua percepção. É normalmente utilizada como uma etapa de pré-processamento. Tipicamente, os sensores são capazes de discretizar os valores recebidos da cena em um intervalo máximo que vai de 0 até 255 (8 bits = 256 possíveis valores). Devido à má iluminação, defeitos do sensor ou mesmo às características da cena, o intervalo de valores de intensidade ocupados pelos pixels presentes em uma imagem, pode ser muito menor que esse intervalo máximo. Diz-se então que a imagem possui baixo contraste, o que torna difícil a sua visualização ou interpretação por um intérprete humano ou um sistema de processamento digital. O contraste de uma imagem pode ser avaliado observando-se o seu histograma. Uma imagem com bom contraste possui um histograma cujas barras são razoavelmente espalhadas ao longo de todo o intervalo da escala. Por exemplo, a imagem da Figura 05 (Mercado Público - Pelotas/RS) e seu histograma (Figura 06). Já o histograma mostrado na Figura 08 tem uma forma estreita que indica uma escala dinâmica pequena, isto porque corresponde a uma imagem de baixo contraste. FIGURA 05 - Imagem com contraste alto FIGURA 06- Histograma da Figura 05 FIGURA 07 - Imagem com contraste baixo FIGURA 08 - Histograma da Figura 07 Um realçamento de contraste pode ser feito mapeando as variações dentro do intervalo de tons de cinza [Vmin-Vmax] da imagem original para a variação máxima do dispositivo de 19

20 visualização que, geralmente, é [0, 255]. Vmin e Vmax são os valores de níveis de cinza mínimos e máximos, respectivamente, presentes na imagem original. O mapeamento é realizado através de uma função de mapeamento. Cada valor de nível de cinza na imagem original é mapeado para um novo valor de acordo com uma função de transferência, que pode ser definida como: y =f(x) onde: x é o nível de cinza original e y é o novo valor correspondente. A escolha da função f determina qual será o efeito visual obtido, e deve ser escolhida de acordo com a imagem original e o efeito desejado. Em uma transformação linear, os valores de níveis de cinza dos pixels são escalonados de tal forma que todos os pixels com valores Vmin e Vmax são mapeados para 0 e 255, respectivamente. Da mesma forma, os outros valores de níveis de cinza são mapeados para valores entre 0 e 255. Normalmente, a forma do histograma da imagem realçada é a mesma da imagem original, pois cada barra do histograma continua tendo a mesma altura, porém em uma posição diferente. No entanto, algumas vezes a função de transferência causa uma sobreposição de valores, ou seja, dois ou mais valores x são mapeados para o mesmo valor y. Quando muitos valores de intensidade na imagem original são mapeados para o valor mínimo ou máximo na imagem original diz-se que, ocorreu uma saturação (overflow) e uma perda de informação, pois os pixels que originalmente podiam ser diferenciados na imagem original agora possuem o mesmo valor de intensidade. No entanto isto pode ser um efeito desejado, por exemplo, quando as regiões escuras da imagem com pequenas variações radiométricas correspondem a áreas com o mesmo tipo de cobertura as quais não se deseja diferenciar. Um procedimento de modificação de contraste útil é o mapeamento linear por partes com a função de mapeamento caracterizada por um conjunto de pontos de quebra, que pode ser escolhido pelo usuário. Funções de mapeamento não-lineares podem ser usadas para realçar detalhes específicos na imagem. Uma função linear também utilizada é a função negativa. Ela realiza o mapeamento inverso dos níveis de cinza, revertendo a ordem do preto para o branco, de tal forma que pixels com intensidade clara serão mapeados para escuro e vice-versa. A escolha do mapeamento direto adequado é, em geral, essencialmente empírica, mas existe uma classe de métodos nos quais o mapeamento tem por finalidade produzir uma imagem cujo histograma tenha um formato desejado. Um destes métodos é a equalização de histograma. Na equalização de histograma o mapeamento tem por finalidade produzir uma imagem cujo histograma tenha um formato desejado. A equalização modifica o histograma da imagem original de tal forma que a imagem transformada tenha um histograma uniforme, ou seja, todos os níveis de cinza devem aparecer na imagem com a mesma freqüência. 20

21 Exemplo: Dada uma Imagem de n x m Pixels e g níveis de cinza. No. Ideal de pixels em cada nível => I = (n x m)/g A equalização pode ser obtida através da aplicação da formúla: Onde: g = níveis de cinza da Imagem Original q = níveis de cinza da Imagem Equalizada Figura 09) Imagem original e seu histograma[2] Figura 10) Imagem equalizada e seu histograma[2] 21

22 Na prática, a obtenção de um histograma perfeitamente uniforme não é possível devido à natureza das imagens digitais de sensoriamento remoto, cujos pixels podem assumir somente valores discretos. Existem técnicas para melhorar este problema, mas pode acontecer de áreas homogêneas na imagem original aparecerem "pipocadas", por que tons de cinza iguais são mapeados para níveis de cinza diferentes. O processo de equalização pode levar a falsos contornos na imagem, pois o número de níveis de cinza pode ser reduzido. A equalização pode ter um efeito de realce notável da imagem, mas o contraste pode ser muito forte e, por isto a equalização de histograma deve ser usada com muito cuidado. 22

INTRODUÇÃO AO PROCESSAMENTO DIGITAL DE IMAGENS SENSORIAMENTO REMOTO

INTRODUÇÃO AO PROCESSAMENTO DIGITAL DE IMAGENS SENSORIAMENTO REMOTO INTRODUÇÃO AO PROCESSAMENTO DIGITAL DE IMAGENS SENSORIAMENTO REMOTO PROCESSAMENTO DE IMAGENS Introdução Conceitos básicos Pré-processamento Realce Classificação PROCESSAMENTO DE IMAGENS Extração de Informações

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens Ciência da Computação Processamento Digital de Imagens Prof. Sergio Ribeiro Tópicos Introdução Espectro Eletromagnético Aquisição e Digitalização de Imagens Efeitos da Digitalização Digitalização Sensoriamento

Leia mais

Algoritmo e Programação Matemática

Algoritmo e Programação Matemática Algoritmo e Programação Matemática Fundamentos de Algoritmos Parte 1 Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Dados A funcionalidade principal de um computador

Leia mais

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

Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação /2 Universidade Federal do Rio de Janeiro Instituto de Matemática / DCC Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação - 2003/2 Prof. A. C. G. Thomé, PhD thome@nce.ufrj.br Airam C. P.

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia mais

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de

Leia mais

Imagem Digital. Claudio Carvilhe

Imagem Digital. Claudio Carvilhe Imagem Digital Claudio Carvilhe Imagem Digital Roteiro Introdução. Pixel. Resolução espacial. Cor. Processamento de imagens. Introdução Informação Visual: Imagem vista na tela. Informação Descritiva: Modelo

Leia mais

Introdução ao Processamento de Imagens Digitais Aula 01

Introdução ao Processamento de Imagens Digitais Aula 01 Introdução ao Processamento de Imagens Digitais Aula 01 Douglas Farias Cordeiro Universidade Federal de Goiás 06 de julho de 2015 Mini-currículo Professor do curso Gestão da Informação Formação: Graduação

Leia mais

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

Variáveis e Entrada de Dados Marco André Lopes Mendes  marcoandre.googlepages. Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre@ifc-araquari.edu.br marcoandre@gmail.com marcoandre.googlepages.com Algoritmos é a base Primeiro programa Este programa possui apenas uma

Leia mais

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Programação de Computadores I BCC701 www.decom.ufop.br/moodle Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada

Leia mais

MATLAB. Que é MATLAB?

MATLAB. Que é MATLAB? MATLAB Que é MATLAB? MATLAB é o nome abreviado de MATrix LABoratory. MATLAB é um programa para realizar cálculos numéricos com vetores e matrizes. Como caso particular pode também trabalhar com números

Leia mais

CONCEITOS DE ALGORITMOS

CONCEITOS DE ALGORITMOS CONCEITOS DE ALGORITMOS Fundamentos da Programação de Computadores - 3ª Ed. 2012 Editora Prentice Hall ISBN 9788564574168 Ana Fernanda Gomes Ascênsio Edilene Aparecida Veneruchi de Campos Algoritmos são

Leia mais

ESTRUTURA CONDICIONAL E SELEÇÃO

ESTRUTURA CONDICIONAL E SELEÇÃO Algoritmos e Estruturas de Dados 1 Prof. Eduardo 1 ESTRUTURA CONDICIONAL E SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE OU DECISÃO) Até o momento da disciplina vimos algoritmos e programas

Leia mais

Transformada de Discreta de Co senos DCT

Transformada de Discreta de Co senos DCT Transformada de Discreta de Co senos DCT O primeiro passo, na maioria dos sistemas de compressão de imagens e vídeo, é identificar a presença de redundância espacial (semelhança entre um pixel e os pixels

Leia mais

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

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Daniel Caetano 2013-1 Objetivos Apresentar o funcionamento do computador Apresentar a função da memória e dos dispositivos

Leia mais

Lógica de Programação I. Gilson de Souza Carvalho

Lógica de Programação I. Gilson de Souza Carvalho Gilson de Souza Carvalho gaucho.gilson@hotmail.com 1. Estruturas básicas Apresentaremos um resumo com os comandos estudados para criação de algoritmos. Para utilizar estes comandos, usaremos uma sintaxe

Leia mais

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas Estrutura de um Programa em Linguagem Algorítmica Nesse curso nós vamos utilizar a linguagem algorítmica para

Leia mais

1 bases numéricas. capítulo

1 bases numéricas. capítulo capítulo 1 bases numéricas Os números são representados no sistema decimal, mas os computadores utilizam o sistema binário. Embora empreguem símbolos distintos, os dois sistemas formam números a partir

Leia mais

Introdução a Programação. Curso: Sistemas de Informação Programação I José R. Merlin

Introdução a Programação. Curso: Sistemas de Informação Programação I José R. Merlin Introdução a Programação Curso: Sistemas de Informação Programação I José R. Merlin Programas Programas são instruções para o computador executar uma tarefa Estas instruções seguem uma lógica Lógica: modo

Leia mais

Prof. Dr. Marco Antonio Leonel Caetano

Prof. Dr. Marco Antonio Leonel Caetano Forecasting e Otimização de Carteiras com Matlab Prof. Dr. Marco Antonio Matlab O que é? Como funciona? Fundamentos - Ambiente de programação avançada - Ambiente de execução de programas - Permite utilização

Leia mais

Processamento de Imagem. Histograma da Imagem Professora Sheila Cáceres

Processamento de Imagem. Histograma da Imagem Professora Sheila Cáceres Processamento de Imagem Histograma da Imagem Professora Sheila Cáceres Histograma É a distribuição de frequência dos níveis de cinza da imagem onde cada entrada no eixo x representa o nível de cinza específico

Leia mais

INTRODUÇÃO À COMPUTAÇÃO - EPET006 Aula 3

INTRODUÇÃO À COMPUTAÇÃO - EPET006 Aula 3 INTRODUÇÃO À COMPUTAÇÃO - EPET006 Aula 3 Heleno Pontes Bezerra Neto - helenopontes@lccv.ufal.br 2.3 Linguagem de Programação 2.4. Introdução ao MATLAB 2. NOÇÕES DE LÓGICA E ALGORITMOS Exercícios Escrever

Leia mais

Conceitos Básicos de Algoritmos

Conceitos Básicos de Algoritmos Conceitos Básicos de Algoritmos 35 TIPOS PRIMITIVOS Palavra-reservada: inteiro - define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais Palavra-reservada: real - define variáveis numéricas

Leia mais

Iteração e Pontos Fixos

Iteração e Pontos Fixos Iteração e Pontos Fixos Iteração é um dos pontos chave da programação numérica. Iterar consiste em repetir uma mesma operação diversas vezes levando a uma aproximação cada vez melhor da solução exata.

Leia mais

Motivação Por que estudar?

Motivação Por que estudar? Aula 04 Imagens Diogo Pinheiro Fernandes Pedrosa Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Curso de Ciência da Computação Motivação Por que estudar? Imagens digitais

Leia mais

Realce de Imagens. Realce de Imagens

Realce de Imagens. Realce de Imagens T Objetivo: Melhorar a qualidade visual da imagem. g 1 g 2 Contraste entre dois objetos pode ser definido como a diferença entre os níveis de cinza médios dos objetos. Observando as imagens g 1 e g 2 é

Leia mais

7. Color Image Processing

7. Color Image Processing Transformação de níveis de cinza para cor a idéia por trás desta técnica é executar 3 transformações independentes sobre níveis de cinza dos pixels de uma imagem de entrada. Cada cor é transformada independentemente

Leia mais

Realce de Imagens. Objetivo: Melhorar a qualidade visual da imagem.

Realce de Imagens. Objetivo: Melhorar a qualidade visual da imagem. T Objetivo: Melhorar a qualidade visual da imagem. g 1 g 2 Contraste entre dois objetos pode ser definido como a diferença entre os níveis de cinza médios dos objetos. Observando as imagens g 1 e g 2 é

Leia mais

PROCESSAMENTO DE IMAGENS

PROCESSAMENTO DE IMAGENS PROCESSAMENTO DE IMAGENS Introdução Conceitos básicos Pré-processamento Realce Classificação PROCESSAMENTO DE IMAGENS- aula de 25/5/10 Introdução Conceitos básicos Pré-processamento Realce Classificação

Leia mais

Material Didático Unificado. Variáveis correspondem a nomes para endereços de memória que são gerenciados pelo Scilab.

Material Didático Unificado. Variáveis correspondem a nomes para endereços de memória que são gerenciados pelo Scilab. Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Comissão da Disciplina Programação de Computadores I CDPCI Programação de Computadores I BCC701 www.decom.ufop.br/bcc701 Material

Leia mais

5. Expressões aritméticas

5. Expressões aritméticas 5. Expressões aritméticas 5.1. Conceito de Expressão O conceito de expressão em termos computacionais está intimamente ligado ao conceito de expressão (ou fórmula) matemática, onde um conjunto de variáveis

Leia mais

PMR2560 Visão Computacional Conversão e Limiarização. Prof. Eduardo L. L. Cabral

PMR2560 Visão Computacional Conversão e Limiarização. Prof. Eduardo L. L. Cabral PMR2560 Visão Computacional Conversão e Limiarização Prof. Eduardo L. L. Cabral Objetivos Processamento de imagens: Conversão de imagens; Histograma; Limiarização. Imagem digital Uma imagem é uma matriz

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4 Algoritmos e Estruturas de Dados I (DCC/003) 2013/1 Estruturas Básicas Aula Tópico 4 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para

Leia mais

Curso básico de JavaScript Aula 2

Curso básico de JavaScript Aula 2 Tópicos 1 JavaScript é case sensitive... 1 2 Comentários... 1 3 Saídas do JavaScript... 1 4 Entrada de dados usando window.prompt( )... 3 5 Variáveis... 3 1.1 Regras para criar uma variável... 3 6 Literais...

Leia mais

Microsoft Excel INTRODUÇÃO PARTE 1

Microsoft Excel INTRODUÇÃO PARTE 1 Microsoft Excel INTRODUÇÃO PARTE 1 Índice 01-) Ativando o Excel... 2 a-) No botão Iniciar... 2 b-) via Mouse... 2 c-) Ativando pelo nome do programa.... 3 02-) Barra de Ferramentas do Excel... 3 a-) Barra

Leia mais

Aula 11 Introdução ao Java Script

Aula 11 Introdução ao Java Script Aula 11 Introdução ao Java Script Java Script é uma linguagem que permite trabalhar com a Lógica em páginas escritas em HTML (HiperText Mark-up Language). As páginas HTML podem ser escritas utilizando-se

Leia mais

Ambiente de desenvolvimento

Ambiente de desenvolvimento Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa

Leia mais

Criar sequências/sucessões/progressões com alça de arrastamento

Criar sequências/sucessões/progressões com alça de arrastamento Inserir linhas e colunas O Excel trabalha à esquerda da coluna selecionada e acima da linha selecionada. Depois de selecionares uma linha ou uma coluna, coloca o cursor do rato sobre a mesma, clica no

Leia mais

TUTORIAL. Imagens ASTER 15 m: Leitura de Arquivos HDF no ENVI 5 ASTER.

TUTORIAL. Imagens ASTER 15 m: Leitura de Arquivos HDF no ENVI 5 ASTER. TUTORIAL Imagens ASTER 15 m: Leitura de Arquivos HDF no ENVI 5 ASTER www.processamentodigital.com.br O Processamento Digital é um Canal de Conteúdo GEO oferecido pela HEX Tecnologias Geoespaciais Inovadoras,

Leia mais

Propriedades da Imagem Amostragem & Quantização (Quantificação) Histograma Imagem Colorida x Imagem Monocromática. Propriedades da Imagem

Propriedades da Imagem Amostragem & Quantização (Quantificação) Histograma Imagem Colorida x Imagem Monocromática. Propriedades da Imagem Proc. Imagem Prof. Júlio C. Klafke [1] TÓPICOS DESENVOLVIDOS NESTE MÓDULO PROCESSAMENTO DE IMAGEM #02 Propriedades da Imagem Amostragem & Quantização (Quantificação) Histograma Imagem Colorida x Imagem

Leia mais

LINGUAGEM C: ARRAY: VETORES E MATRIZES

LINGUAGEM C: ARRAY: VETORES E MATRIZES LINGUAGEM C: ARRAY: VETORES E MATRIZES Prof. André Backes POR QUE USAR ARRAY? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor

Leia mais

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2006/2007

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2006/2007 ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA INTRODUÇÃO À PROGRAMAÇÃO (ENG. INFORMÁTICA) COMPUTADORES E PROGRAMAÇÃO I (ENG. ELECTROTÉCNICA) 2006/2007 TRABALHO PRÁTICO Nº

Leia mais

GAAL Conhecendo alguns comandos básicos do Maple 17

GAAL Conhecendo alguns comandos básicos do Maple 17 GAAL Conhecendo alguns comandos básicos do Maple 17 Maple é um sistema algébrico computacional comercial de uso genérico. Constitui um ambiente informático para a computação de expressões algébricas, simbólicas

Leia mais

Resoluções das Imagens fotogramétricas e digitais. Fotogrametria e Fotointerpretação Prof. Dr. Raoni W. D. Bosquilia

Resoluções das Imagens fotogramétricas e digitais. Fotogrametria e Fotointerpretação Prof. Dr. Raoni W. D. Bosquilia Resoluções das Imagens fotogramétricas e digitais Fotogrametria e Fotointerpretação Prof. Dr. Raoni W. D. Bosquilia Classificação dos filmes aerofotogramétricos Os filmes podem ser: preto e branco ou coloridos.

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos

Leia mais

Processamento Digital de Imagens. Cor

Processamento Digital de Imagens. Cor Processamento Digital de Imagens Cor Em uma descrição física a cor está associada ao seu comprimento de onda. Ao se analisar o espectro eletromagnético na região do visível, os menores comprimentos de

Leia mais

Correção Ortográfica. Processamento Estatístico da Linguagem Natural. Correção de Erros. Distância Mínima de Edição. Distância Mínima de Edição

Correção Ortográfica. Processamento Estatístico da Linguagem Natural. Correção de Erros. Distância Mínima de Edição. Distância Mínima de Edição Processamento Estatístico da Linguagem Natural Aula 6 Professora Bianca (Sala 302 Bloco E) bianca@ic.uff.br http://www.ic.uff.br/~bianca/peln/ Correção Ortográfica Três tipos de problemas: Detecção de

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If... Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: Operadores relacionais e lógicos estruturas condicionais If... Else Switch Prof. Renato Pimentel 1 Operações relacionais Operações

Leia mais

Introdução a Tecnologia da Informação

Introdução a Tecnologia da Informação Introdução a Tecnologia da Informação Informática Básica Planilha de cálculos Prof. Jonatas Bastos p Faz parte do pacote Microsoft Office; p Software com muitos recursos para construção de planilhas de

Leia mais

Algoritmos I Aula 13 Linguagem de Programação Java

Algoritmos I Aula 13 Linguagem de Programação Java Algoritmos I Aula 13 Linguagem de Programação Java Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação IDE Eclipse IDE (Integrated development environment) Criar um projeto

Leia mais

Unidade 11: Programando Swing com o NetBeans Prof. Daniel Caetano

Unidade 11: Programando Swing com o NetBeans Prof. Daniel Caetano Linguagem de Programação 1 Unidade 11: Programando Swing com o NetBeans Prof. Daniel Caetano Objetivo: Construir uma aplicação baseada na classe Jdialog do Java Swing. INTRODUÇÃO Na aula passada vimos

Leia mais

INF Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza

INF Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza INF2608 - Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza Trabalho 02 Visualização de Imagens Sísmicas e Detecção Automática de Horizonte Resumo Este trabalho

Leia mais

Capítulo 10. MATRIZES

Capítulo 10. MATRIZES Capítulo 10. MATRIZES OBJETIVOS DO CAPÍTULO Conceitos de: conjunto multidimensional (matriz), ciclo implícito, ciclo duplo Comandos do FORTRAN: DIMENSION(:,:), MATMUL 10.1 programa10a.f90 Para inicializar

Leia mais

Linguagem C Princípios Básicos (parte 1)

Linguagem C Princípios Básicos (parte 1) Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos

Leia mais

Realce de imagens parte 1: operações pontuais SCC0251 Processamento de Imagens

Realce de imagens parte 1: operações pontuais SCC0251 Processamento de Imagens Realce de imagens parte 1: operações pontuais SCC0251 Processamento de Imagens Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2013/1 Moacir Ponti Jr.

Leia mais

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE) Algoritmos e Estruturas de Dados 1 Prof. Eduardo 1 ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE) Até o momento da disciplina vimos comandos de entrada, processamento e saída

Leia mais

ALGORITMOS 3ª Aula. 3. Introdução Tipos de dados, variáveis e operadores Tipos de dados

ALGORITMOS 3ª Aula. 3. Introdução Tipos de dados, variáveis e operadores Tipos de dados 3. Introdução Segundo alguns especialistas, qualquer programa de computador pode ser escrito utilizando apenas três estruturas básicas: Seqüência, Condição e Repetição. Isto significa que, na construção

Leia mais

INTRODUÇÃO AO SCILAB

INTRODUÇÃO AO SCILAB INTRODUÇÃO AO SCILAB O programa SCILAB é um ambiente apropriado ao desenvolvimento de software para computação numérica. Esse programa foi concebido e é mantido pelo Institut de Recherche em Informatique

Leia mais

Fixo (41) Vivo (41) Tim (41) Claro (41) OI (41) Sistema Descomplicado CNPJ

Fixo (41) Vivo (41) Tim (41) Claro (41) OI (41) Sistema Descomplicado CNPJ INTRODUÇÃO O Programa pode ser instalado em qualquer equipamento que utilize o sistema operacional Windows 95 ou superior, e seu banco de dados foi desenvolvido em MySQL, sendo necessário sua pré-instalação

Leia mais

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO Dados em Algoritmos Quando escrevemos nossos programas, trabalhamos com: Dados que nós fornecemos ao programa Dados

Leia mais

INFORMÁTICA. Apenas: a) II, III e IV são verdadeiras. b) II, IV e V são verdadeiras. c) II e IV são verdadeiras. d) I, III e IV são falsas.

INFORMÁTICA. Apenas: a) II, III e IV são verdadeiras. b) II, IV e V são verdadeiras. c) II e IV são verdadeiras. d) I, III e IV são falsas. INFORMÁTICA 01. Selecione a alternativa correta: I - Nomes de pastas e arquivos podem ser de até 245 caracteres, mas não podem incluir os caracteres *, \ : < >? / II - A extensão do nome do arquivo costuma

Leia mais

Roteiro para Aula 1 de laboratório. 1) Mostrar estrutura básica de um código em Fortran. algoritmo. program nome_da_codificacao.

Roteiro para Aula 1 de laboratório. 1) Mostrar estrutura básica de um código em Fortran. algoritmo. program nome_da_codificacao. Universidade do Estado do Rio de Janeiro Instituto de Física Armando Dias Tavares Departamento de Física Aplicada e Termodinâmica Laboratório de Física Computacional/IF Roteiro para Aula 1 de laboratório

Leia mais

FILTRAGEM NO DOMÍNIO ESPACIAL. Daniel C. Zanotta 10/06/2016

FILTRAGEM NO DOMÍNIO ESPACIAL. Daniel C. Zanotta 10/06/2016 FILTRAGEM NO DOMÍNIO ESPACIAL Daniel C. Zanotta 10/06/2016 Passa-Baixas O efeito visual de um filtro passa-baixa é o de suavização da imagem e a diminuição de mudanças abruptas de níveis de cinza. As altas

Leia mais

Introdução a Matrizes

Introdução a Matrizes Programação de Computadores I UFOP DECOM 2013 2 Tutorial Introdução a Matrizes Resumo Neste tutorial você irá aprender como criar matrizes, como realizar operações aritméticas básicas sobre matrizes e

Leia mais

Projeto de Mestrado desenvolvido pela aluna Eveline Batista Rodrigues, no Departamento de Engenharia Elétrica da Universidade de São Paulo São

Projeto de Mestrado desenvolvido pela aluna Eveline Batista Rodrigues, no Departamento de Engenharia Elétrica da Universidade de São Paulo São Projeto de Mestrado desenvolvido pela aluna Eveline Batista Rodrigues, no Departamento de Engenharia Elétrica da Universidade de São Paulo São Carlos, sob orientação do Prof Dr Homero Schiabel. SUMÁRIO

Leia mais

Radiométricas. Alexandre Xavier Falcão. Instituto de Computação - UNICAMP

Radiométricas. Alexandre Xavier Falcão. Instituto de Computação - UNICAMP Operações Matemáticas e Transformações Radiométricas Instituto de Computação - UNICAMP afalcao@ic.unicamp.br Operações Matemáticas Sejam Î = (D I, I ) e Ĵ = (D J, J) duas imagens cinzas de mesmo domínio,

Leia mais

MATLAB Avançado. Melissa Weber Mendonça

MATLAB Avançado. Melissa Weber Mendonça MATLAB Avançado Melissa Weber Mendonça melissa.mendonca@ufsc.br O que é o MATLAB? Linguagem computacional de alto nível e um ambiente interativo para computação numérica, visualização e programação. Console:

Leia mais

Histogramas de Imagens GLAUCIUS DÉCIO DUARTE

Histogramas de Imagens GLAUCIUS DÉCIO DUARTE Histogramas de Imagens GLAUCIUS DÉCIO DUARTE HISTOGRAMAS DE IMAGENS Histograma de uma Imagem O histograma de uma imagem fornece informação útil para fazer realce e análise da imagem. O histograma de uma

Leia mais

Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. Fundamentos de Computação Gráfica

Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. Fundamentos de Computação Gráfica 1. Imagens sísmicas Pontifícia Universidade Católica do Rio de Janeiro Departamento de Informática Fundamentos de Computação Gráfica Aluno: Stelmo Magalhães Barros Netto Relatório do trabalho Imagens Sísmicas

Leia mais

Capítulo 2 Operadores. A função scanf()

Capítulo 2 Operadores. A função scanf() Capítulo 2 Operadores A função scanf() A função scanf() é outra das funções de E/S implementadas em todos os compiladores e nos permite ler dados formatados da entrada padrão (teclado). Sintaxe: scanf(

Leia mais

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

SISTEMAS DE INFORMAÇÃO GEOGRÁFICA SIG FORMATOS DE REPRESENTAÇÃO DE DADOS FORMATO VETORIAL FORMATO VETORIAL 1 FORMATO VETORIAL Formato que utiliza como primitivas Pontos, Linhas e Polígonos, baseadas em equações matemáticas para representar imagens na computação gráfica Primitivas: elementos

Leia mais

Novas Tecnologias no Ensino da Matemática

Novas Tecnologias no Ensino da Matemática UFF Novas Tecnologias no Ensino da Matemática 1 Novas Tecnologias no Ensino da Matemática Humberto José Bortolossi http://www.professores.uff.br/hjbortol/ Lista 8 Prezado aluno, A partir desta lista vamos

Leia mais

PROCESSAMENTO DE IMAGENS COLORIDAS

PROCESSAMENTO DE IMAGENS COLORIDAS PROCESSAMENTO DE IMAGENS COLORIDAS Fundamentos da cor A visão da cor É a capacidade de um organismo ou máquina de distinguir objetos baseando-se nos comprimentos de onda (ou freqüências) da luz sendo refletida,

Leia mais

Algoritmos e Programação

Algoritmos e Programação Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Parte 02 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav

Leia mais

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES LINGUAGEM C: VARIÁVEIS E EXPRESSÕES Prof. André Backes LINGUAGENS DE PROGRAMAÇÃO Linguagem de Máquina Computador entende apenas pulsos elétricos Presença ou não de pulso 1 ou 0 Tudo no computador deve

Leia mais

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35 BCC 201 - Introdução à Programação Portugol Guillermo Cámara-Chávez UFOP 1/35 Introdução I Lógica A lógica é usada no dia a dia das pessoas que trabalham com computação para solucionar problemas de forma

Leia mais

Fluxogramas. Leandro Tonietto ago-09

Fluxogramas. Leandro Tonietto ago-09 Fluxogramas Leandro Tonietto ltonietto@unisinos.br ago-09 Introdução Planejar, modelar e projetar primeiro, depois fazer (programar). Maiores chances de sucesso na programação Facilita a resolução, pois

Leia mais

Aula 10: Introdução a Vetores e Matrizes

Aula 10: Introdução a Vetores e Matrizes Aula 10: Introdução a Vetores e Matrizes Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Vetores e Matrizes Programação de Computadores IV 1 / 50 Agenda

Leia mais

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

Curso de Especialização em Teleinformática e Redes de Computadores Departamento Acadêmico de Eletrônica Universidade Tecnológica do Paraná Curso de Especialização em Teleinformática e Redes de Computadores Universidade Tecnológica do Paraná 1 Expressões Booleanas Para o MATLAB: - 0 (zero) ou nil (nulo, vazio) indica condição falsa (F-false)

Leia mais

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica Introdução Geral a Computação Gráfica Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de 2 Introdução Geral a O que é CG? Áreas de Atuação Definição, Arte e Matemática Mercado

Leia mais

Oficina: Planilha Eletrônica

Oficina: Planilha Eletrônica Governo do Estado do Pará Secretaria de Estado de Educação Secretaria Adjunta de Ensino Diretoria de Educação para Diversidade, Inclusão e Cidadania Coordenação de Tecnologia Aplicada à Educação Núcleo

Leia mais

QI Escolas e Faculdades

QI Escolas e Faculdades QI Escolas e Faculdades Automação de Escritório I 2011/1 Miguel Neumann miguel@rwx.com.br Software para elaborar planilhas eletrônicas, produzido pela Microsoft O Excel faz parte do "Office", um conjunto

Leia mais

Vetores, Matrizes e Gráficos

Vetores, Matrizes e Gráficos Programação de Computadores I UFOP DECOM 2013 2 Aula prática 3 Vetores, Matrizes e Gráficos Resumo Nesta aula você irá utilizar vetores para resolver diversos tipos de problemas. Para expressar a solução

Leia mais

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

Estrutura e Funcionamento dos Computadores (Conceitos Básicos) Estrutura e Funcionamento dos Computadores (Conceitos Básicos) Sistema Computacional Peopleware (usuário) Software (programas) Hardware (máquina) Hardware Corresponde à parte material, aos componentes

Leia mais

PMI 3331 GEOMÁTICA APLICADA À ENGENHARIA DE PETRÓLEO

PMI 3331 GEOMÁTICA APLICADA À ENGENHARIA DE PETRÓLEO UNIVERSIDADE DE SÃO PAULO Escola Politécnica Departamento de Engenharia de Minas e de Petróleo PMI Graduação em Engenharia de Petróleo PMI 3331 GEOMÁTICA APLICADA À ENGENHARIA DE PETRÓLEO PROCESSAMENTO

Leia mais

TRABALHANDO COM FUNÇÕES

TRABALHANDO COM FUNÇÕES TRABALHANDO COM FUNÇÕES Um dos principais recursos do Excel é o seu poder de executar cálculos. Alguns cálculos podem exigir fórmulas muito complexas e parte destes cálculos podem utilizar determinadas

Leia mais

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE) Algoritmos e Estruturas de Dados 1 Prof. Eduardo 1 ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE) Já vimos entrada, processamento e saída, que compõem os algoritmos puramente

Leia mais

Capítulo 7. Expressões e Sentenças de Atribuição

Capítulo 7. Expressões e Sentenças de Atribuição Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário

Leia mais

Português Estruturado

Português Estruturado Português Estruturado Português Estruturado Para que o algoritmo possa ser executado por uma máquina é importante que as instruções sejam corretas e sem ambigüidades. O português estruturado é, na verdade,

Leia mais

Processamento digital de imagens

Processamento digital de imagens Processamento digital de imagens 1. Empilhamento de bandas Durante o processamento de dados derivados do imageamento orbital é necessário, muitas vezes, unir em um único arquivo diferentes bandas ou canais

Leia mais

REPRESENTAÇÃO DE NÚMEROS EM BINÁRIO E HEXADECIMAL

REPRESENTAÇÃO DE NÚMEROS EM BINÁRIO E HEXADECIMAL ESCOLA POLITÉCNICA UNIVERSIDADE DE SÃO PAULO Departamento de Engenharia de Sistemas Eletrônicos PSI - EPUSP REPRESENTAÇÃO DE NÚMEROS EM BINÁRIO E HEXADECIMAL 1. Hexadecimal [A1] Hexadecimal é o sistema

Leia mais

Introdução à Programação de Computadores Fabricação Mecânica

Introdução à Programação de Computadores Fabricação Mecânica Introdução à Programação de Computadores Fabricação Mecânica Edilson Hipolito da Silva edilson.hipolito@ifsc.edu.br - http://www.hipolito.info Aula 06 - Introdução a algoritmos Roteiro Algoritmos Formas

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Introdução à Computação Gráfica

Introdução à Computação Gráfica Computação Gráfica - Aula 1 (atualizada em 21/10/2015) glaucius@pelotas.ifsul.edu.br Introdução à Computação Gráfica Computação Gráfica Conceito É a área da Ciência da Computação que estuda a geração,

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira

Leia mais

UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL DEPARTAMENTO DE FÍSICA, ESTATÍSTICA E MATEMÁTICA

UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL DEPARTAMENTO DE FÍSICA, ESTATÍSTICA E MATEMÁTICA UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL DEPARTAMENTO DE FÍSICA, ESTATÍSTICA E MATEMÁTICA KMPLOT Juliane Sbaraine Pereira Costa Tânia Michel Pereira Ijuí, novembro de 2010 Refaça

Leia mais

Introdução à Lógica de Programação. Adaptação de Luis Otavio Alvares

Introdução à Lógica de Programação. Adaptação de Luis Otavio Alvares 1 Introdução à Lógica de Programação Adaptação de Luis Otavio Alvares 2 Elaboração de um programa Problema Análise Programa Algoritmo 3 Processo de geração de um programa Análise do problema: Ler atentamente

Leia mais

Exercícios: Vetores e Matrizes

Exercícios: Vetores e Matrizes Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor

Leia mais