COMANDOS BÁSICOS VOLTADOS AO PROCESSAMENTO DE IMAGENS
|
|
- Leandro Fraga Sabrosa
- 6 Há anos
- Visualizações:
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 PROCESSAMENTO DE IMAGENS Introdução Conceitos básicos Pré-processamento Realce Classificação PROCESSAMENTO DE IMAGENS Extração de Informações
Leia maisProcessamento 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 maisAlgoritmo 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 maisInteligê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 maisLinguagem 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 maisMé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 maisImagem 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 maisIntroduçã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 maisVariá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 maisAmbiente 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 maisMATLAB. 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 maisCONCEITOS 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 maisESTRUTURA 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 maisTransformada 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 maisLÓ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 maisLó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 maisEstrutura 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 mais1 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 maisIntroduçã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 maisProf. 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 maisProcessamento 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 maisINTRODUÇÃ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 maisConceitos 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 maisIteraçã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 maisMotivaçã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 maisRealce 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 mais7. 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 maisRealce 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 maisPROCESSAMENTO 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 maisMaterial 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 mais5. 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 maisPMR2560 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 maisAlgoritmos 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 maisCurso 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 maisMicrosoft 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 maisAula 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 maisAmbiente 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 maisCriar 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 maisTUTORIAL. 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 maisPropriedades 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 maisLINGUAGEM 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 maisESCOLA 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 maisGAAL 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 maisResoluçõ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 maisAlgoritmos 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 maisProcessamento 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 maisCorreçã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 maisUniversidade 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 maisIntroduçã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 maisAlgoritmos 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 maisUnidade 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 maisINF 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 maisCapí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 maisLinguagem 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 maisRealce 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 maisALGORITMOS 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 maisALGORITMOS 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 maisINTRODUÇÃ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 maisFixo (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 maisProgramaçã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 maisINFORMÁ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 maisRoteiro 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 maisFILTRAGEM 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 maisIntroduçã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 maisProjeto 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 maisRadiomé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 maisMATLAB 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 maisHistogramas 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 maisPontifí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 maisCapí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 maisSISTEMAS 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 maisNovas 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 maisPROCESSAMENTO 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 maisAlgoritmos 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 maisLINGUAGEM 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 maisBCC 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 maisFluxogramas. 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 maisAula 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 maisCurso 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 maisIntroduçã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 maisOficina: 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 maisQI 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 maisVetores, 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 maisEstrutura 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 maisPMI 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 maisTRABALHANDO 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 maisALGORITMOS 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 maisCapí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 maisPortuguê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 maisProcessamento 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 maisREPRESENTAÇÃ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 maisIntroduçã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 maisEstruturas 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 maisIntroduçã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 maisIntroduçã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 maisUNIVERSIDADE 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 maisIntroduçã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 maisExercí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