Imagem Digital 1. Imagem Digital

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

Download "Imagem Digital 1. Imagem Digital"

Transcrição

1 Imagem Digital Imagem Digital Depois da cor, o segundo elemento fundamental da Computação Gráfica é a Imagem Digital. Mas, antes de discutirmos a versão digital, vamos conceituar melhor o que entendemos por imagem. No sentido comum, imagem é uma representação gráfica de objetos que nos cercam ou que criamos. No contexto deste capítulo, a imagem que nos interessa é aquela produzida por computador que se assemelha a uma foto ou seja, é uma região retangular do espaço na qual em cada ponto percebemos uma cor ou uma intensidade de cinza. Por questão de simplicidade, vamos inicialmente tratar do modelo das fotos monocromáticas ou, como se diz comumente, fotos em preto e branco. A Fig. 3. (a) mostra uma foto de um passarinho num poste com uma linha marcada. O valor da intensidade de cinza, medida de a 55, ao longo desta linha está indicado na Fig. 3.(b) (a) (b) Fig. 3. Valor da intensidade de cinza ao longo de uma linha da foto. Se considerarmos que, para cada valor no interior do retângulo da foto, temos uma intensidade de cinza de a 55, podemos, abstratamente, pensar em uma imagem monocromática como sendo uma função do R em R ou uma superfície no R 3, como ilustra a Fig. 3.. L L(u,v) v u Fig. 3. Modelo matemático para uma imagem: função do R em R. Marcelo Gattass /7/3

2 Imagem Digital Se a foto for colorida, não podemos medir a cor por apenas um número real, sendo necessários mais valores. Uma maneira simples de evoluirmos o modelo monocromático descrito acima consiste em considerar, em vez de uma, três funções distintas: uma para cada canal RGB. A Fig. 3.3 ilustra esta decomposição, na qual para cada canal o valor da intensidade é convertido numa escala de preto (zero) para branco (55). RGB R (Vermelho) G (Verde) B (Azul) Fig. 3.3 Decomposição de uma imagem colorida em três canais: RGB. Naturalmente, também podemos pensar na imagem colorida como sendo uma função que atribui a cada ponto do domínio retangular um ponto no espaço de cores. Como visto no capítulo anterior, este espaço pode ser RGB, RGBA, CMY, CMYK, etc. A Fig. 3. ilustra esta idéia para o espaço RGB. v G R u B Fig. 3. Imagem colorida como um mapeamento do R em R 3. A conveniência de escolhermos este ou aquele modelo para imagens coloridas depende da aplicação e é, de certa forma, uma decisão arbitrária. Marcelo Gattass /7/3

3 Imagem Digital 3 Aquisição de imagens A natureza de uma imagem digital pode ser melhor compreendida se analisamos o seu processo de aquisição. Numa máquina fotográfica digital, um sistema de lentes projeta a cena 3D no plano correspondente ao filme. Por enquanto, vamos desconsiderar o processo de projeção para estudar os passos fundamentais que se seguem: amostragem, quantização e codificação. Antes de discutirmos o processo de aquisição de uma imagem que trata de um domínio bidimensional, é interessante consideramos primeiro o estudo de uma função f(x) genérica que passe pelos mesmos processos de amostragem e quantização, como ilustra a Fig O processo de amostragem consiste em dividir o domínio (eixo x) em uma partição indicada pelas marcas na figura. Dentro de cada intervalo escolhemos um valor para representar a função naquele trecho. Isto pode ser tanto o valor da função naquele ponto quanto outro valor que leve em conta o comportamento da função no trecho todo, como uma altura média, por exemplo. f(x) 6 função original 5 amostra 3 x (a) amostragem f(x) 6 função original 5 amostra quantizada 3 (b) quantização Fig. 3.5 Amostragem e quantização de uma função f(x). Após a amostragem temos a quantização. O valor amostrado pode ser adquirido como um tipo ponto flutuante ou inteiro longo, que requerem mais bits do que podemos dispor. Para x Marcelo Gattass /7/3

4 Imagem Digital reduzir o tamanho da representação do número na memória do computador, dividimos o eixo y em classes e escolhemos um representante para cada classe. No exemplo da Fig. 3.5, o eixo é particionado uniformemente com um intervalo de.. Valores no intervalo (.5,.5], por exemplo, são representados como. Assim, a função amostrada e quantizada pode ser representada através do vetor (3,, 5, 5,,,, 3, 5, 5,, ). Este vetor representa, dentro das aproximações do nosso modelo, os infinitos pontos da função original. Para armazenar cada um dos valores quantificados como um tipo float de bytes precisamos de 5 bytes. Podemos também codificar esta mesma informação com bytes para indicar o tamanho do intervalo uniforme utilizado para quantização,., e armazenar o número do intervalo em que cada amostra quantizada está (3,, 5, 5,,,, 3, 5, 5,, ). Este último vetor pode ser do tipo char em C, que consome apenas um byte por valor e o total de memória necessária seria 7 bytes, incluindo os quatro que definem o intervalo. Ou seja, neste caso a codificação reduziu razoavelmente a memória necessária sem nenhuma perda adicional de informação. Se admitirmos que o intervalo seja sempre. podemos omitir esta informação. Mais ainda, quando admitimos algum tipo de perda, a redução pode ser bem maior, como veremos na quantização de imagens. O processo de aquisição de uma imagem não difere fundamentalmente do exemplo da função f(x). A Fig. 3.5 ilustra as etapas de amostragem, quantização e codificação de uma imagem em tons de cinza. Amostragem A etapa de amostragem corresponde a definir uma cor para cada retângulo correspondente a um pixel. Como possivelmente a cor varia dentro da área do pixel, a cor uniforme escolhida deve gerar uma aproximação da percepção de cor que a variação original produzia. 6x5 amostragem Imagem de tons contínuos Imagem amostrada quantização 5*55, *55, *, *,. Imagem amostrada, quantizada e codificada codificação 6x5-6 cores Imagem amostrada e quantizada Fig. 3.5 Amostragem, quantização e codificação. Marcelo Gattass /7/3

5 Imagem Digital 5 A Fig. 3.6, extraída de uma tela do Adobe PhotoShop, ilustra os parâmetros de resolução espacial oriundos deste processo de amostragem. Devemos notar que, além da resolução medida em número de pixels na largura (width) e na altura (height), a imagem pode ter um tamanho de impressão que define uma resolução em pixels/polegada ou em pixels/milímetro. Os monitores de computadores geralmente trabalham na faixa de 75 pixels/polegada e as impressoras geralmente trabalham com mais de 3 pixels/polegada. A imagem dos lírios da Fig. 3.6, por exemplo, tem uma boa resolução para aparecer no seu tamanho normal em um monitor mas não usaria todo o potencial de uma impressora, a menos que ela fosse exibida num tamanho menor. Fig. 3.6 Resolução especial de uma imagem no Adobe PhotoShop. Outro aspecto interessante na tela de diálogo é a caixa de diálogo que pergunta qual o método para redefinir a resolução da imagem: mais próximo, bilinear ou bicúbico. Esta escolha se refere ao fato de que, para mudar o número de pixels tanto na largura quanto na altura, precisamos re-amostrar a imagem. Para ilustrar o que está envolvido nesta reamostragem, consideremos novamente a função f(x) da Fig. 3.5 da forma ilustrada na Fig. 3.7, onde as linhas verticais correspondem à nova discretização espacial. Precisamos saber que valores devemos atribuir a cada um destes novos intervalos. Note que estes intervalos correspondem aos pixels no caso das imagens. f(x) função reconstruída pelo vizinho mais próximo função original (a) aumento de resolução. função reconstruída por interpolação linear x Marcelo Gattass /7/3

6 Imagem Digital 6 f(x) 6 5 função original 3 função reconstruída pelo vizinho mais próximo função reconstruída por interpolação linear x (b) redução de resolução. Fig. 3.7 Reconstrução e re-amostragem de f(x) em diferentes resoluções. Dois critérios geométricos simples podem ser usados para estimar o valor da amostra num novo intervalo: (a) o valor da função num ponto do intervalo, ou (b) um valor médio ao longo dele. Se a função for linear no intervalo todo, a interpolação no meio do intervalo é equivalente à altura média. Note, entretanto, que, apesar de termos mantido o gráfico da função original na Fig. 3.7, ela não é mais conhecida nesta etapa. Para fazermos as estimativas dispomos apenas dos valores amostrados quantizados (marcados com um nas figuras). Para qualquer um dos critérios geométricos enunciados acima, precisamos reconstruir uma aproximação para a função original a partir das amostras quantizadas. Na Fig. 3.7 apresentamos duas hipóteses: valor mais próximo e interpolação linear. A interpolação cúbica não está mostrada para não sobrecarregar a figura. Ela apenas permitiria uma aproximação mais suave que a linear. A janela do Adobe PhotoShop se refere às duas últimas interpolações como bilinear e bicúbica, uma vez que as interpolações no pixel são feitas simultaneamente nas direções x e y. Se examinarmos as reconstruções da função f(x), vemos que elas são pouco satisfatórias, incorrendo em grandes erros quando f(x) varia muito. Este fato advém da amostragem pobre em pontos nesta região de grande variação. A Fig. 3.8 ilustra uma função seno amostrada com uma amostragem ruim e outra boa. Para capturar corretamente as oscilações de freqüência de uma função, Nyquist estabeleceu que o intervalo de amostragem deve ser menor que /(). Funções amostradas em intervalos maiores que este valor, conhecido como limite de Nyquist, não podem ser adequadamente reconstruídas a partir apenas das amostras. f(x) x (a) freqüência de amostragem muito baixa. Marcelo Gattass /7/3

7 Imagem Digital 7 f(x) x (b) freqüência de amostragem boa. Fig..7 Amostragens uniformes da função seno. Um último ponto a destacar na questão da re-amostragem da função f(x) é que, quando o intervalo de amostragem é reduzido (aumento da resolução espacial), os novos valores podem ser calculados por interpolação dos valores antigos. Quando o intervalo é aumentado, reduzindo a resolução espacial, precisamos combinar os valores dos intervalos antigos para estimar um novo valor. Ou seja: quando aumentamos a resolução, interpolamos; quando reduzimos, temos que fazer uma média ponderada. A estratégia de utilizar o valor mais próximo é a que mais induz a erros mas é a mais eficiente, por isso é comumente utilizada em animações de jogos, onde a qualidade é um fator secundário face à eficiência. A Fig. 3.8 ilustra a redução e o aumento do número de pixels do personagem Papa-Léguas da Hanna-Barbera em três resoluções. Primeiramente, as imagens de baixa resolução são obtidas a partir da imagem de resolução mais alta com reduções de 5%. Depois aumentamos a resolução para voltar a resoluções mais altas. As mudanças de resolução do lado inferior esquerdo da figura utilizam interpolação bicúbica e as do lado superior direito utilizam o valor mais próximo. Dois pontos são importantes de destacar. O primeiro é que, ao reduzirmos a resolução espacial de uma imagem, perdemos informações e conseqüentemente não temos como voltar à imagem original. Uma maneira simples de observarmos isto é contando o número de pixels. O segundo ponto é que nem sempre a interpolação bicúbica produz resultados significativamente melhores. Esta é uma imagem típica de desenho animado, na qual as cores não variam suavemente. A interpolação bicúbica é melhor quando, ao interpolarmos com suavidade, reconstruímos melhor a função original, o que não é o caso para esta imagem em particular. A imagem do Papa-Léguas é descontínua e a imposição de continuidade não melhora muito o processo de reconstrução, podendo inclusive atrapalhar bicúbica 788 mais próximo Fig. 3.8 Mudanças de resolução espacial de uma imagem. Marcelo Gattass /7/3

8 Imagem Digital 8 Quantização Após o processo de amostragem, temos um conjunto finito de valores de tons de cinza (ou cores), mas estes valores podem estar na forma analógica ou representados por números em ponto flutuante com muitos bits. Portanto, o segundo processo importante na aquisição de uma imagem é a quantização. Este processo inicialmente seleciona um conjunto de tons (geralmente 56) para os valores de intensidade de cinza (ou de cada canal de cor RGB). A seguir, cada tom de cinza (ou cada intensidade de cada canal de cor) é trocado pelo seu representante no conjunto escolhido. Assim, por exemplo, podemos representar cada pixel de uma imagem monocromática com um byte e cada pixel de uma imagem colorida com três bytes (RGB). Por questões de alinhamento de palavras na memória, diversas placas de vídeo armazenam os 3 bytes de cor em uma palavra de 3 bits (long int). Alguns programas também complementam os canais RGB com um canal chamado Alfa, resultando em uma informação de 3 bits, RGBA. Este canal é geralmente associado à transparência do pixel e é utilizado para controlar a sobreposição de duas imagens, como será descrito posteriormente. Cores com ou 3 bits são chamadas de true color porque normalmente se entende que, ou 6 milhões de cores, são suficientes para representar os tons mais sutis que monitores e impressoras atuais são capazes de reproduzir. É interessante notarmos que um ser humano normal só é capaz de distinguir mil cores diferentes de todo o espectro de cores visíveis, ou seja, menos que 9. O número de cores que um ser humano normal é capaz de distinguir na tela de um monitor depende de cada equipamento, mas é certamente bem menor que mil. Em função disto, as placas gráficas costumam oferecer uma opção, chamada hi color, que armazena as cores em uma palavra de bytes (short int, em C) utilizando 5 ou 6 bits e reproduzindo 3 ou 65 mil cores, respectivamente. Quando as placas utilizam 5 bits, cada canal R, G ou B utiliza 5 bits que reproduzem 3 tons daquela cor. Quando as placas utilizam 6 bits, é comum estender a representação do canal verde para 6 bits ou 6 tons. O número de cores atualmente entendido como o mínimo para representar razoavelmente uma imagem complexa é 56. Nas placas de vídeo de 56 cores, cada pixel é representado por um byte e o significado de cada byte depende de uma tabela de cores. Ou seja, ao invés de armazenar a cor, este sistema armazena um índice de uma tabela. A cor é encontrada na linha correspondente da tabela de cores, como ilustra a Fig Note que a memória que armazena os índices de imagem de 86 pixels possui 6 mil bytes e a tabela de cores apenas 768 bytes. A tabela de cores é também denominada palheta de cores (em inglês color table, look up table ou LUT ). Um ponto importante a destacar nestas imagens é que, se mudarmos a resolução espacial e quisermos utilizar uma reconstrução bilinear ou bicúbica, a nova cor gerada possivelmente não estará na palheta de cores. O olho humano é mais sensível ao verde que aos outros canais, como está apresentado no capítulo sobre cores. Marcelo Gattass /7/3

9 Imagem Digital 9 Memória gráfica Tabela de cores R G B Fig. 3.9 Esquema de representação de cores numa imagem indexada. O problema da quantização admite soluções simples ou complexas. Para aprofundarmos um pouco mais este assunto, vamos tratar da redução do número de cores de uma imagem true color para uma imagem indexada. A Fig. 3. mostra a janela de diálogo do Jasc Paint Shop Pro para esta redução. Nesta janela, o usuário deve fazer duas escolhas básicas para definir o método de quantização a ser adotado: como a palheta deve ser determinada e como as cores dos pixels devem ser substituídas. Vamos examinar primeiramente os métodos de escolha da palheta de cores. O diálogo da Fig. 3. oferece três opções: palheta determinada por um algoritmo baseado no corte mediano, palheta determinada por um algoritmo baseado na octree e o uso de uma palheta fixa, que é mais segura para uso na Web. Fig. 3. Algoritmos de redução de cores no Jasc Paint Shop Pro. A principal diferença entre as três opções de palhetas está na questão de usarmos uma palheta fixa para todas as imagens ou se o algoritmo deve calcular, para cada imagem, qual a palheta de cores que melhor se adapte a ela. Quando escolhemos a quantização uniforme ou uma palheta de cores fixa, o problema é razoavelmente simples. Para decidirmos qual cor da palheta (r i, g i, b i ) melhor representa uma determinada cor (r, g, b) da imagem basta calcularmos a distância dessa tonalidade a cada uma das cores da palheta e escolher a menor. A distância neste caso pode ser simplesmente a distância euclidiana no espaço RGB: d ( r ri ) ( g gi) ( b bi ) (3.) Marcelo Gattass /7/3

10 Imagem Digital Quanto, entretanto, deixamos em aberto a escolha das cores da palheta de modo a minimizar os erros da quantização, os algoritmos se tornam bastante mais complexos. Os algoritmos baseados no corte mediano e na octree pertencem a esta classe de palhetas adaptativas. A Fig. 3. ilustra a diferença de resultado que podemos obter com o algoritmo de corte mediano e de palheta fixa. Note que a imagem do avião fica muito mais deteriorada com a utilização da palheta fixa que a imagem dos lírios aquáticos. Isto ocorre porque as cores da imagem do avião têm muitos tons de azul e as palhetas fixas contêm amostras de todo o espectro de cores. Fig. 3. Alguns resultados dos algoritmos de quantização. A idéia geral do algoritmo de corte mediano é que cada cor da palheta represente o mesmo número de cores da imagem original. A forma de implementá-lo consiste em dividir recursivamente as caixas envolventes das cores da imagem no espaço RGB na sua maior dimensão, de forma que cada sub-retângulo contenha o mesmo número de cores. O algoritmo abaixo descreve este procedimento: Comece calculando a caixa envolvente alinhada com os eixos que melhor ajuste os pontos no espaço RGB que representam as cores da imagem. Quando dois pixels da imagem têm a mesma cor, então dois pontos estão na mesma posição. Repita para cada nova caixa gerada: o Ordene os pontos que representam as cores de acordo com o eixo correspondente à maior dimensão da caixa; o Separe os pontos em dois grupos no ponto mediano. Ou seja, de cada lado do plano de corte, haverá aproximadamente o mesmo número de pontos. Até que o número de caixas corresponda à quantização de cores (56, por exemplo). Para cada caixa, calcule a cor correspondente ao seu centróide e atribua esta cor a todos os pixels que estão dentro dela. A Fig. 3. ilustra este processo. Marcelo Gattass /7/3

11 Imagem Digital Fig. 3. Passos do algoritmo de corte mediano. Uma questão subentendida no resultado dos processos de amostragem e quantização é o armazenamento dos valores dos pixels na memória do computador. Os pixels de uma imagem estão dispostos segundo um arranjo bi-dimensional e a memória do computador é entendida como linear. Este problema também aparece quando queremos armazenar uma matriz e a solução adotada pela linguagem C é bem parecida com um dos métodos mais utilizados em imagens. Uma solução consiste em armazenar inicialmente todos os valores da primeira linha, seguidos pelos valores da segunda e assim por diante até a última linha. A memória das placas gráficas geralmente segue a ordem de varredura dos monitores que é de cima para baixo e assim o primeiro pixel a ser armazenado é o superior esquerdo e o último o inferior da direita. A fig. 3.3a ilustra este endereçamento para uma imagem em RGB. O endereço na memória dos bytes correspondentes ao RGB do pixel (x,y) também está mostrado na figura. A fig. 3.3b mostra uma das formas de armazenamento de uma imagem no formato TARGA. Este formato armazena, além das componentes RGB, a componente alfa (A) que serve para definir a opacidade do pixel. É claro que estes dois modelos não são únicos, existem muitas outras maneiras de se organizar a informação de cores de uma imagem: a imagem pode ser armazenada em três vetores (um para cada componente RGB); cada cor pode ser colocada em um long int (3 bits), etc h y w- 3 Pixel (x,y) unsigned char *rgb_vector; offset=3*(w*y+x); red = rgb_vector[offset]; green = rgb_vector[offset+]; blue = rgb_vector[offset+];... x h Pixel (x,y) b g r a b g r a b g r a b g r a w- unsigned char *bgra_vector; offset=*(w*y+x); blue = bgra_vector[offset]; green = bgra_vector[offset+]; red = bgra_vector[offset+]; alpha = bgra_vector[offset+3]; x (a) formato PPM (b) um dos formatos TARGA Fig. 3.3 Dois modos de armazenamento de uma imagem. Marcelo Gattass /7/3

12 Imagem Digital Codificação A codificação de uma imagem estabelece quais cadeias de bits representam uma determinada cor, mais precisamente estabelece os bits que representam os níveis dos tons de cinza ou dos canais RGB. Como nas placas gráficas e na memória principal utilizamos uma codificação de tamanho fixo, isto é, todos os tons de cinza são armazenados com o mesmo número de bits, a etapa de codificação é intimamente ligada à etapa de quantização. Ou seja, a quantização de um canal em 56 tons variando de a 55 implica na codificação do unsigned char da linguagem C. Na memória secundária, os requisitos de velocidade de armazenamento ou leitura são muito menores do que na memória principal, por isso os formatos como GIF e JPEG utilizam codificações mais demoradas que resultam em arquivos de imagens menores. Estas codificações mais eficientes em espaço são de tamanho variável, ou seja, cada tom de cinza, por exemplo, pode ser codificado com um número diferente de bits. A Tab. 3. ilustra esta idéia para uma imagem quantizada em oito tons de cinza. A segunda coluna da tabela mostra quantos pixels tem um determinado tom. Tamanho fixo Huffman tons # pixels código tam. # bits código tam. # bits / / / / / / TOTAL 3 TOTAL 7 Tab. 3. Codificações de uma imagem com oito tons de cinza. As colunas 3 e 6 da Tab. 3. correspondem, respectivamente, à codificação dos tons de acordo com um código de tamanho fixo e o código de Huffman, que será explicado a seguir. Note que nenhum código de Huffman é prefixo de outro, o que permite uma decodificação sem ambigüidades. As colunas 3 e 7 apresentam o tamanho em bits dos códigos e as colunas 5 e 8 os números de bits necessários para armazenar aquele tom. Apesar deste exemplo ter apresentado uma redução modesta, de %, note que a codificação de Huffman é mais compacta. Reduções de 6% são comuns em imagens reais com tons muito preponderantes. Um ponto importante a destacar nesta codificação é que ela é feita sem perda de informação, ou seja, a imagem armazenada pode ser restaurada na memória principal sem nenhuma diferença. A codificação de Huffman é feita com base numa árvore binária na qual as folhas são os tons e, o código, o caminho para se chegar da raiz até elas, como ilustra a Fig. 3. para o exemplo da Tab. 3.. Marcelo Gattass /7/3

13 Imagem Digital 3 n6 n5 n n3 /7 /7 n 3/7 n /7 5/7 n 6/7 Fig. 3. Árvore de Huffman. A idéia básica para construir esta árvore consiste em colocar os tons mais freqüentes perto da raiz e os tons menos freqüentes mais distantes. O algoritmo de construção da árvore de Huffman para isto pode ser descrito da seguinte maneira: Comece criando uma tabela dos tons e do número de vezes que eles aparecem na imagem (colunas e da Tab. 3.). Repita até que a tabela não tenha mais nenhuma linha: o Ordene a tabela de forma decrescente segundo o número de vezes que os tons aparecem na imagem; o Combine as duas últimas linhas da tabela (tons menos freqüentes) em uma única linha, somando o número de ocorrências dos tons combinados; o Armazene cada combinação como sendo um nó de uma árvore binária cujos filhos são as linhas combinadas. Numere cada folha da árvore de acordo com o caminho para se chegar da folha até ele (Fig. 3.). A Fig. 3.5 procura ilustrar os passos deste algoritmo. /7 /7 3/7 /7 5/7 6/ /7 /7 3/7 /7 5/7 n /7 /7 3/7 /7 5/7 n n /7 /7 3/7 n / n 6/7 5/7 n 6/7 Marcelo Gattass /7/3

14 Imagem Digital /7 /7 3/7 n / /7 /7 n 3/7 n /7 5 n3 35 /7 /7 5 9 /7 n 9 9 3/7 6 n3 n 3/7 n /7 n /7 5/7 n 5/7 n 6/7 6/7 n3 /7 / n n3 / n3 n n n3 / n5 n 6 n3 n5 /7 n6 n /7 n 3/7 /7 n 3/7 n /7 n /7 5/7 n 5/7 n 6/7 6/7 Fig. 3.5 Passos da construção da árvore de Huffman. A codificação de Huffman é apresentada aqui como um exemplo simples de codificação com cadeias de bits de tamanho variável. Existem várias outras codificações que podem ser estudadas nas bibliografia de Teoria da Informação. Processamento de Imagens É comum utilizarmos programas do tipo do Adobe Photoshop e do Jasc Paint Shop Pro para melhorar a qualidade de fotos digitais. Esta seção procura ilustrar os algoritmos envolvidos neste tipo de processamento. Correção gama Consideremos, por exemplo, a imagem de um jogo de futebol ilustrada na Fig. 3.6 (a). Como a imagem está muito clara, podemos, por exemplo, utilizar um processo chamado de correção gama, que substitui o valor da luminosidade de cada pixel por outro obtida por: L L (3.) Se tomarmos o valor =., obteremos o resultado indicado na Fig..8(b). A Fig. 3.6(c) mostra um diálogo do Jasc Paint Shop Pro relativa a esta correção gama. Marcelo Gattass /7/3

15 Imagem Digital 5 (a) imagem clara. (b) imagem transformada. (c) diálogo do Jasc Paint Shop Pro. Fig, 3.6 Mudança da luminosidade de cada pixel. Uma característica que permite um melhor entendimento da distribuição de tons numa imagem digital é o seu histograma. O histograma de uma imagem é uma função que, para cada valor possível de cor, associa o número de pixels em que ela ocorre ou a sua freqüência na imagem. A Fig. 3.7 mostra os histogramas das imagens (a) e (b) da Fig A média, o desvio padrão e a mediana dos valores destes histogramas estão mostrados na Tab. 3.. A transformação gama com um valor de <. tende a reduzir a intensidade luminosa, enquanto as transformações com valores maiores que. fazem o inverso, ou seja, tornam a imagem mais clara. Note também a natureza não linear da transformação gama, que afeta mais os valores próximos de zero. Marcelo Gattass /7/3

16 Imagem Digital 6 Fig. 3.7 Histogramas das imagens da Fig Média Desvio Padrão Mediana Imagem clara 9 Imagem transformada Tab. 3. Valores característicos dos histogramas da Fig A correção gama é uma das transformações que atuam sobre o valor de cada um dos pixels individualmente. Outras correções que servem para ajustar o brilho e o contraste também modificam os valores dos pixels transformando o histograma da imagem. Eliminação de ruídos Para reduzir ruído, existem procedimentos que procuram atenuar as variações localizadas. Para ilustrar esta idéia considere a função da Fig Se substituirmos cada valor f i do interior do domínio por uma média ponderada do tipo: fi fi fi h i (3.3) obteremos a função h i também mostrada na Fig Note como após a aplicação da equação (3.3) a função se torna mais suave. Esta propriedade é geral nestas transformações que substituem o valor local por uma média ponderada da vizinhança. Os valores de máximos são naturalmente reduzidos, uma vez que fazem média com valores menores que eles. O mesmo raciocínio se aplica para explicar o aumento dos valores de mínimos. f h Marcelo Gattass /7/3

17 Imagem Digital 7 Fig. 3.8 Suavização de função. Uma maneira de sistematizar esta operação consiste em redefinir a equação (3.3) como: n k h g f (3.) i ( k i) k onde: se l / se l g l / se l (3.5) / se l se l Se considerarmos as funções f e g contínuas, a equação (3.) seria: t h ( x) g( t x) f ( t) dt (3.6) t que é a convolução da função f com o a função g. Como, neste caso, a função g elimina as variações de maior freqüência da função f, ela é também designada de filtro passa-baixa. É comum utilizarmos filtros passa-baixa baseados na função de distribuição de Gauss: x G( x) e (3.7) onde é o desvio padrão da distribuição. O gráfico desta função está ilustrado na Fig Fig. 3.9 Gaussiana de média e desvio padrão. Esta função tem duas propriedades importantes para um filtro: é simétrica e a integral dela em todo o domínio é.. Voltando à notação discreta, temos que a função g pode ser representada pela matriz: (3.8) entendendo que o ponto central / é o peso da amostra no local em que está sendo computada a função suavizada e os valores à direita e à esquerda da matriz correspondem a Marcelo Gattass /7/3

18 Imagem Digital 8 amostras à direita e à esquerda da função, respectivamente. Esta forma permite generalizar estas convoluções discretas, bastando para isto definir a matriz a ela associada. Note que (3.8) é uma forma discreta da distribuição gaussiana. Outras formas, de maior precisão, seriam: ou (3.9) (3.) No caso de uma imagem, a função g é bidimensional e a matriz é geralmente quadrada. A escolha desta matriz depende do efeito desejado na imagem. Para suavização, podemos adotar a distribuição de Gauss no plano: x y G( x, y) cuja imagem para = e média zero está ilustrada na Fig. 3.. e (3.)..3.. Fig. 3. Gaussiana com media (,) e =. Formas discretas desta função podem ser escritas como: ou 6 (3.) Marcelo Gattass /7/3

19 Imagem Digital (3.) A suavização pode ser útil para retirarmos ruídos de uma imagem. Como, geralmente, o ruído tem uma média zero (tanto adiciona quanto subtrai), a média ponderada tende a reduzir mais o ruído que a informação da imagem. Note que, em contrapartida à diminuição do ruído, temos uma perda em nitidez, de modo que este processamento pode ser bom para um dada imagem e ruim para outras. Se aplicarmos a suavização à imagem da Fig. 3.(a) obtemos a melhora mostrada na imagem da Fig. 3.(b). (a) (b) Fig. 3. Filtragem com a Gaussiana. Realce de bordas e arestas Para destacar bordas e arestas de uma imagem geralmente utilizamos operadores que procuram avaliar taxas de variação da intensidade luminosa. O cálculo de taxas de variação se faz com o uso de derivadas da função de luminosidade. Como numa imagem não dispomos da expressão analítica destas funções, mas sim de valores amostrados em intervalos iguais, os cálculos de derivadas seguem as aproximações de diferenças finitas. Para ilustrar como estas aproximações são obtidas, considere a série de Taylor de uma função f(x): ' ( x ) " 3 f ( x x) f ( x) ( x) f ( x) f ( x) O( x ) (3.3) Com x=, f(x)=f i e f(x+x)=f i+ e a expressão (3.3) pode ser escrita como: f Com x=-, f(x)=f i e f(x+x)=f i- temos: ' " i fi f i f i (3.) Marcelo Gattass /7/3

20 Imagem Digital f ' " i fi f i f i (3.5) A Fig. 3, ilustra estes valores discretos. f(x) f f i f i- i+ i- i i+ x Fig. 3. Cálculo de derivada por diferenças finitas. Subtraindo a equação (3.5) da equação (3.) podemos avaliar a derivada em x i como sendo: ' f i ( f f ) / (3.6) i i Se somarmos as equações (3.) e (3.5) podemos obter a seguinte aproximação para a segunda: " f i f f f ) (3.7) ( i i i Como uma imagem é uma função de duas variáveis as derivadas mais comumente utilizadas no realce de arestas são o gradiente e o laplaciano. Dada uma função f(x,y) a expressão analítica do gradiente de f no ponto (x,y) é da dada por: f f ( x, y) f x (3.8) y Na grade regular este gradiente pode ser estimado através de duas aplicações do operador (3.6), uma para x e outra para y: f( i) j f( i) j / fi( j) fi( j) / f ( xi, y j ) f ( xi, y j ) / f ij f ( xi, y ) (3.9) j f ( xi, y j) f ( xi, y j) / A magnitude deste vetor estima a taxa de variação de f no ponto (x,y) e é, pode ser escrita como: f f f f f (3.) ij ( i ) j ( i) j i ( j ) i ( j ) ) Os algoritmos se baseiam em comparações deste valor de magnitude nos diversos pixels. Como o que interessa são os valores relativos e não absolutos, para reduzir o esforço computacional é comum estimar esta taxa de variação abandonando os quadrados, as raízes e o fator ½. Assim a estimativa de taxa de variação pode ser feita por: Marcelo Gattass /7/3

21 Imagem Digital f f f f f (3.) ij ( i) j ( i) j i( j) i( j) Uma outra medida de taxa de variação importante é o Laplaciano, que analiticamente se escreve como sendo: f x f y f ( x, y) (3.) A equação (3.7) nos permite escrever a fórmula de diferenças finitas para o Laplaciano como sendo: f f ( f f f f ) (3.3) ij ij ( i) j ( i) j i( j) i( j) Uma forma simples de escrever este fórmula, consiste em fornecer, em uma matriz, os coeficientes dos pixels, ou seja: (3.) O elemento central da matriz corresponde ao pixel ij e os demais elementos aos seus vizinhos correspondentes. Para exemplificar os algoritmos de realce de arestas, considere a fig. 3.3 onde na parte inferior está mostrada uma imagem bem simples que é composta apenas de três faixas de cinza. A função f(x), também mostrada na figura, representa os valores dos pixels ao longo do eixo que está sobre as faixas, acrescidos de um certo ruído sempre presente nas imagens reais. Como a faixa mais clara tem maior intensidade luminosa o valor da função f(x) é mais alto. Na borda entre o cinza escuro e o cinza claro temos uma variação alta num intervalo pequeno, ou seja uma taxa de variação grande. f '(x) f ''(x) f(x) Fig. 3.3 Detecção de bordas. Nesta figura o valor do módulo da derivada de f(x) é estimado por: ' f i ( f f ) / (3.5) i i E a parte positiva da segunda derivada também pode ser calculada pela fórmula: Marcelo Gattass /7/3

22 Imagem Digital f ( ) '' i fi fi se fi fi fi f i (3.6) se ( fi fi fi ) Note na fig. 3.3 que o gráfico das derivadas tem um valor quase nulo nas regiões homogêneas e um valor alto na posição do pixel da borda. A fig. 3. ilustra um exemplo do uso dos operadores para destacar as arestas de uma a imagem do prédio ilustrado na fig. 3.a. As fig. 3.b e 3.c mostram resultado da aplicação do gradiente e do laplaciano, respectivamente, após a aplicação de uma correção gama. Note nestes resultados que as regiões de maior taxa de variação estão representadas por um valor mais preto, ou seja, de menor intensidade luminosa. Isto ocorre porque as cores nas figuras b e c estão invertidas, ou seja, para cada pixel a intensidade do canal de luminosidade foi transformada por: L 55 L (3.7) transformando preto em branco e claro em escuro. O resultado preto sobre branco gasta menos tinta na impressão e fica melhor visualmente. (a) foto (c) gradiente (d) laplaciano Fig. 3. Gradiente e laplaciano no uso de detecção de arestas. A fig. 3.5 ilustra o processo de realce dos pixels que estão sobre as linhas de campo no sistema JuizVirtual. Este processo de aplicar o filtro Gaussiano antes do Laplaciano é tão comum que os operadores combinados recebem o nome de LoG. Note que nesta figura a imagem colorida é transformada em preto e branco através do operador de luminosidade: L.3R.59G. B Marcelo Gattass /7/3

23 Imagem Digital 3 L.3R.59G. B L 55 L filtro gaussiano 6 filtro laplaciano Fig..5 Um exemplo de aplicação do filtro LoG. Transformações e composição A fig..6 mostra três imagens: um circo, o personagem Papa-Léguas da Hanna-Barbera e, o circo com o Papa Léguas em frente. Este aplicação simples apresenta dois problemas interessantes: transformação e composição de imagens. A imagem do personagem precisa ser reduzida e colocada sobre outra. (a) (b) (c) Fig..6 Composição de imagens com redução. Transformações de imagens O tamanho de uma imagem está intimamente ligado sua resolução. Se queremos que o Papa Léguas seja reduzido em % para ser colocado sobre a imagem do circo, precisamos na realidade de uma outra imagem do personagem com uma resolução menor. Ao invés de termos uma imagem 3 precisamos de outra reduzida com a resolução Em Marcelo Gattass /7/3

24 Imagem Digital uma outra situação poderíamos ter o problema de ampliação e não de redução. O problema de ampliação e redução da resolução de uma imagem já foram discutido na seção de amostragem deste capítulo. Ao animarmos um personagem ou objeto sobre uma imagem de fundo poderíamos ter outras transformações que representassem o movimento. Conceitualmente os algoritmos de transformação geométrica (ou warping) de uma imagem são simples:. Para cada pixel da imagem transformada... Utilizando a transformação inversa, determine a região da imagem original correspondente a este pixel... Determine a cor que melhor representa as cores contidas nesta região. A fig..7 mostra a região do passo. para duas transformações: uma de ampliação e outra de redução. Como mencionado na seção de amostragem, quando aumentamos a resolução de uma imagem caímos num problema de interpolação. Quando reduzimos temos um problema de taxa de amostragem. Se a imagem tem uma freqüência muito alta a redução pode causar um sério problema de aliasing. ampliação 36 8 redução 3 Fig..7 Regiões associadas na imagem original e na transformada. A fig..8 mostra o resultado da amplificação de um passarinho por três métodos de interpolação: vizinho mais próximo, bi-linear e bi-cúbica. (a) Original Marcelo Gattass /7/3

25 Imagem Digital 5 (b) vizinho mais próximo (3 3) (b) bi-linear (3 3) Fig..8 Resultados de diferentes interpolações. (b) bi-cúbica (3 3) Na imagem desta figura a interpolação pelo vizinho mais próximo não produziu resultados ruins. Este algoritmo pode ser implementado de maneira bastante simples: Image imageresize(image img, int w, int h) { Image img = imagecreate(w,h); int w=imagegetwidth(img); int h=imagegetheight(img); int x,y,x,y; unsigned char r,g,b,a; } for (y=;y<h;y++) for (x=;x<w;x++) { x=round((w-)*x/(w-)); y=round((h-)*y/(h-)); imagegetpixel(img,x,y,&r,&g,&b,&a); imagesetpixel(img,x,y,r,g,b,a); } return img; Nesta função a macro ROUND faz o arredondamento e é definida por: #define ROUND(_) (int)floor( (_) +.5 ) A fig..9 mostra um exemplo onde a redução da imagem introduz um efeito de alias. Isto porque as linhas introduzem freqüências muito altas na imagem e a re-amostragem não consegue capturar estas variações. Uma das maneiras de tratarmos deste efeito de alias consiste em reduzir as freqüências mais altas através de um filtro antes de re-amostrar. Um exemplo desta estratégia está mostrado na figura. Se aplicamos um filtro Gaussiano, eliminando as freqüências mais altas, e depois aplicamos o algoritmo de redução baseado no vizinho mais próximo o resultado final é bem melhor que se aplicamos o algoritmo de redução diretamente. Marcelo Gattass /7/3

26 Imagem Digital Gauss Fig..9 Alias na redução da resolução. É importante notarmos que geralmente as imagens normais não têm freqüências tão altas quanto as mostradas na fig..9. Os resultados do algoritmo de ampliação e redução são normalmente bem melhores, como ilustra a fig Fig..3 Caso geral da redução de resolução. Além da translação e da escala, a rotação também é uma transformação importante. Os algoritmos para a rotação também seguem o esquema enunciado acima, com otimizações particulares para cada caso. Os algoritmos de transformações geométricas das imagens têm que satisfazer os seguintes requisitos: ) Translação por zero tem que ser a identidade; ) Seqüência de translações deve produzir o mesmo efeito que uma composta da origem ao destino; 3) Escalar por um fator, maior que, e depois escalar por / deve produzir a identidade; ) Rotação por uma seqüência de ângulos que totalizem 36 o deve produzir a identidade. O requisito 3, exige que uma ampliação seguida de redução correspondente produza a identidade. Isto é, a imagem volte a ter a mesma informação de cor. O requisito não fala da ordem inversa, redução seguida de ampliação. Neste caso não teríamos como reproduzir a identidade. Isto porque depois de uma redução, perdemos parte das informações que tínhamos sobre a imagem e uma posterior ampliação não tem como recuperar esta perda. Marcelo Gattass /7/3

27 Imagem Digital 7 Uma discussão mais detalhada dos algoritmos de transformação de imagens foge aos objetivos introdutórios deste capitulo e pode ser encontrada nos bons livros sobre Processamento de Imagem que tenham um enfoque de algoritmos. De qualquer forma, a animação de um personagem sobre uma imagem de fundo pode ser mais bem feita se preparamos com antecedência uma seqüência de quadros que correspondam à animação desejada. A imagem mostrada na fig. 3.3 ilustra 8 de posições do pequeno índio. Se os quadros de uma linha são apresentados em uma seqüência rápida temos a impressão de movimento do tipo caminhar. Os 8 quadros de cada coluna correspondem à animação do personagem se virando em torno da vertical. Fig..3 Imagem com a animação de um personagem. Composição de imagens Existem muitas maneiras de compor duas ou mais imagens de forma a produzir uma imagem final com conteúdo de cada uma delas. Vamos abordar aqui apenas as três formas mais usadas de sobreposição de imagens: código de cores (color key), máscara de bits e canal alfa. Na sobreposição de imagens uma imagem, chamada origem, é colocada sobre outra, denominada destino. A técnica de código de cores é muito simples e consiste em definir uma das cores da imagem origem cor como sendo transparente. No pequeno índio da fig..3 a cor azul (,,55) faz este papel. Notem que nenhum pixel do personagem pode ter este valor sob pena do personagem ficar vazado. A função imagecombinecolorkey, mostrada a seguir, faz esta composição. void imagecombinecolorkey(image origem, Image destino, int x, int y, unsigned char rt, unsigned char gt, unsigned char bt) Marcelo Gattass /7/3

28 Imagem Digital 8 { int x,y; for (y=; y<imagegetheight(origem); y++) for (x=; x<imagegetwidth(origem); x++) { unsigned char r,g,b; imagegetpixel(origem,x,y,&r,&g,&b,null); if ((r!=rt) (g!=gt)&&(b!=bt)) imagesetpixel(destino,x+x,y+y,r,g,b,); } } Esta técnica funciona melhor quando a imagem origem é indexada, ou seja, suas cores são obtidas a partir de um índice de uma tabela. Assim, podemos distinguir a cor transparente pelo índice e não pelo valor RGB. Além de mais preciso esta escolha permite que, por exemplo, o personagem tenha na sua definição um azul (,,55), basta que esta cor seja correspondente a um outro índice da tabela de cores. A técnica de máscara de bits utiliza uma outra imagem de mesmas dimensões contendo a chave para decidir se um pixel da origem deve ou não ser colocado na imagem destino. Assim, por exemplo, a máscara em preto na fig..3 indica quais os pixels da imagem do Papa Léguas deve ser colocado na imagem destino. No OpenGL TM esta técnica corresponde ao uso do stencil buffer. AND Fig..3 Uso de máscara para controlar a transparências de regiões da imagem origem. Finalmente a composição com o canal alfa é uma técnica bastante flexível que permite uma série de efeitos. Nesta técnica, cada pixel da imagem tem, além das componentes RGB, uma informação sobre um valor chamado de alfa. No nosso caso este alfa representa a opacidade ou a transparência do pixel. A cor do pixel da imagem destino, (r, g, b, 55a ), depois que o pixel da imagem origem, (r, g, b, 55a ), for colocado sobre ela pode ser dada por: r r r ) (3.8a) g b ( g g ) (3.8b) ( b b ) (3.8c) ( Marcelo Gattass /7/3

29 Imagem Digital 9 ) (3.8c) ( onde: a / 55 Podemos entender esta equação imaginando que a imagem origem é um vidro colorido. A cor em cada ponto é a cor do vidro mais a cor do que está atrás reduzida pelo fator (- a ) que representa a transparência do vidro. A opacidade resultante também segue este raciocínio. É a opacidade do vidro mais a opacidade do que está atrás reduzida pela quantidade de luz que atravessa. Note que, se o valor de alfa for (transparente) então o pixel da imagem destino não é alterado. Se o valor for (opaco) então a cor do pixel da imagem origem substitui completamente a cor correspondente da imagem destino. Num caso intermediário temos uma mistura das duas cores. Note também que, seguindo este raciocínio, as componentes RGB da cor de um pixel são calculadas multiplicando-se as componentes armazenadas RGB originais pelo fator alfa. Assim um pixel de componentes (55, 55,, 7) é o amarelo RGB=(7, 7, ) e não o RGB=(55, 55, ). Existe uma opção um pouco mais eficiente para compor pixels em RGBA onde os canais RGB já armazenam as cores multiplicadas pelo canal alfa. Neste caso o valor de cada uma das componentes R, G ou B é necessariamente menor ou igual a componente A. Como os valores já estão multiplicados a equação (3.8) pode ser escrita por: r r r ) (3.9a) g b ( g g ) (3.9b) ( b b ) (3.9c) ( ) (3.9d) ( O operador das equações (3.8) e (3.9) é chamado de over porque a imagem origem é colocada sobre a imagem destino. Existem outras combinações possíveis. Poderíamos, por exemplo, ter a imagem origem sendo colocado por trás da imagem destino. Neste caso a equação correspondente as componentes RGB já forem pré-multiplicadas seria dada por: r r r ) (3.3a) g b ( g g ) (3.3b) ( b b ) (3.3c) ( ) (3.3d) ( Marcelo Gattass /7/3

30 Imagem Digital 3 Bibliografia do capítulo. Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Computer Graphics: Principles and Practices, (Systems Programming), nd edition in C, Addison-Wesley, 995, ISBN Gomes, J.M. e Velho, L., Image Processing for Computer Graphics, Springer, 997, ISBN Gonzalez, R.C., and Woods, R.E, Digital Image Processing, Addison-Wesley, 99.. Baxes, G. A., Digital Image Processing: principles and applications, John Wiley & Sons, New York, 99, ISBN Exercícos resolvidos ) Escreva uma função para contar o número de cores distintas de uma imagem cujo protótio é: unsigned int imgcountcolors(image * img, float tol); Resp.: onde img é um ponteiro para a estrutura da imagem utilizada no T e copiada na última página e tol é a tolerância admitida nas componentes de duas cores para que elas sejam entendidas como sendo a mesma. Obs.: Você deve incluir na resposta todas as funções auxiliares que não forem da biblioteca padrão do C. static int comparacor(const void * p, const void * p) { int *c = (int *) p; /* aponta para o byte red da cor */ int *c = (int *) p; /* aponta para o byte red da cor */ /* compara o canal vermelho */ if (*c < *c) return -; if (*c > *c) return ; /* compara o canal verde, uma vez que o vermelho e' igual */ c++; c++; if (*c < *c) return -; if (*c > *c) return ; /* compara o canal azul, uma vez que o vermelho e o azul sao iguais */ c++; c++; if (*c < *c) return -; if (*c > *c) return ; } /* sao iguais */ return ; Marcelo Gattass /7/3

31 Imagem Digital 3 unsigned int imgcountcolor(image * img, float tol) { unsigned int numcor = ; int w = imggetwidth(img); int h = imggetheight(img); float* buf=imggetrgbdata(img); int *vet=(int*) malloc(3*w*h*sizeof(int)); int i; /* copia o buffer da imagem no vetor de floats fazendo uma quantizacao para (/tol) tons de cada componente de cor */ for (i=;i<3*w*h;i++) vet[i] = (int)(buf[i]/tol+.5); /* ordena o vetor */ qsort(vet,w*h,3*sizeof(int),comparacor); /* conta o numero de cores diferentes */ for (i=3; i<3*w*h; i+=3) if (comparacor(&vet[i-3],&vet[i])!=) numcor++; } free(vet); return numcor; ) Considere uma imagem em tons de cinza representada pela matriz abaixo. Calcule o valor do pixel correspondente ao de valor 8 (destacado na matriz) na imagem resultante desta suavizada pelo filtro Gaussiano 3 3 mostrado na folha de fórmulas. Resp.: v ) (.5 ptos.) Dada a imagem 6 6 em 5 tons de cinza mostrada abaixo, pede-se o seu histograma (desenhe na figura) e a probabilidade de, escolhendo-se um pixel aleatoriamente, ele ser de tom. Marcelo Gattass /7/3

32 Imagem Digital Resp.: (em azul sobre o gráfico) h tom Probabilidade: p 8% 36 ) (.5 ptos.) A uma imagem 6 6 mostrada abaixo, ilustra os dois tipos de ruídos mais comuns nas imagens capturadas. Pergunta-se que tipo de ruído são eles e que tipo de processo se utiliza para reduzi-los? De um exemplo de aplicação para cada um deles Resp.: A imagem apresenta um ruído branco (pequenas variações oscilatórias com média zero) e um pixel com ruído impulsivo, tipo sal e pimenta (o que tem valor 55). A maneira de reduzir os ruídos seria aplicarmos filtros. Um filtro apropriado para o ruído branco é o filtro Gaussiano. Para o pixel de valor 8 no canto superior esquerdo da imagem o filtro Gaussiano 3 3 o transformaria para: Marcelo Gattass /7/3

33 Imagem Digital 33 v se aproximando mais do valor. Um filtro para atenuar o ruído impulsivo é o filtro de mediana. O pixel com valor 55 submetido a este filtro numa janela 3 3 se transforma em pelo algoritmo. Vizinhos em ordem = (8, 8, 9, 9,,,, 55). Mediana = 9.5 5) Considere uma imagem em tons de cinza representada pela matriz abaixo: Determine qual o valor do pixel indicado na figura, atualmente de valor 6, depois de passarmos o filtro de Sobel, para acharmos arestas na imagem. Resp.: x y Novo valor = Marcelo Gattass /7/3

34 Imagem Digital 3 Exercícios. Dada função f ( x) 3sen( x).cos( x /8) qual o maior intervalo de amostragem x de forma a podermos reconstruí-la corretamente?. Explique 3 métodos de codificação de um vetor de valores inteiros de a Que problemas ocorrem nos algoritmos para aumentar e reduzir o tamanho de uma imagem quando eles percorrem os pixels da imagem origem e não os da imagem destino?. Considere uma imagem em tons de cinza representada pela matriz abaixo: Sem modificar os pixels da borda, calcule a matriz que representa a imagem: a) Suavizada pelo filtro Gaussiano (3.). b) Filtrada pelo filtro de Sobel horizontal. 5. Explique o que é resolução espacial de uma imagem. 6. O que é quantização e quando este processo ocorre na aquisição de uma imagem digital? 7. Explique os processos de reconstrução e amostragem que ocorrem quando mudamos a resolução espacial de uma imagem. 8. Que tipo de codificação de cores existe no formato BMP? 9. Explique 3 métodos para combinar duas imagens.. Explique quais são os 3 tipos de redundâncias que normalmente existem numa imagem. Cite pelo menos algoritmo para reduzir cada uma destas redundâncias.. Explique o que é Run-Length Encoding. Marcelo Gattass /7/3

Atividade: matrizes e imagens digitais

Atividade: matrizes e imagens digitais Atividade: matrizes e imagens digitais Aluno(a): Turma: Professor(a): Parte 01 MÓDULO: MATRIZES E IMAGENS BINÁRIAS 1 2 3 4 5 6 7 8 Indique, na tabela abaixo, as respostas dos 8 desafios do Jogo dos Índices

Leia mais

Filtragem Espacial. (Processamento Digital de Imagens) 1 / 41

Filtragem Espacial. (Processamento Digital de Imagens) 1 / 41 Filtragem Espacial (Processamento Digital de Imagens) 1 / 41 Filtragem Espacial Filtragem espacial é uma das principais ferramentas usadas em uma grande variedade de aplicações; A palavra filtro foi emprestada

Leia mais

Aula 2 Aquisição de Imagens

Aula 2 Aquisição de Imagens Processamento Digital de Imagens Aula 2 Aquisição de Imagens Prof. Dr. Marcelo Andrade da Costa Vieira mvieira@sc.usp.br EESC/USP Fundamentos de Imagens Digitais Ocorre a formação de uma imagem quando

Leia mais

Universidade Federal de Goiás Instituto de Informática Processamento Digital de Imagens

Universidade Federal de Goiás Instituto de Informática Processamento Digital de Imagens Universidade Federal de Goiás Instituto de Informática Processamento Digital de Imagens Prof Fabrízzio Alphonsus A M N Soares 2012 Capítulo 2 Fundamentos da Imagem Digital Definição de Imagem: Uma imagem

Leia mais

Universidade Federal do Rio de Janeiro - IM/DCC & NCE

Universidade Federal do Rio de Janeiro - IM/DCC & NCE Universidade Federal do Rio de Janeiro - IM/DCC & NCE Processamento de Imagens Tratamento da Imagem - Filtros Antonio G. Thomé thome@nce.ufrj.br Sala AEP/033 Sumário 2 Conceito de de Filtragem Filtros

Leia mais

Informática Aplicada a Radiologia

Informática Aplicada a Radiologia Informática Aplicada a Radiologia Apostila: Imagem Digital parte I Prof. Rubens Freire Rosa Imagem na forma digital A representação de Imagens na forma digital nos permite capturar, armazenar e processar

Leia mais

Filtragem. pixel. perfil de linha. Coluna de pixels. Imagem. Linha. Primeiro pixel na linha

Filtragem. pixel. perfil de linha. Coluna de pixels. Imagem. Linha. Primeiro pixel na linha Filtragem As técnicas de filtragem são transformações da imagem "pixel" a "pixel", que dependem do nível de cinza de um determinado "pixel" e do valor dos níveis de cinza dos "pixels" vizinhos, na imagem

Leia mais

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

Universidade Federal de Alagoas Instituto de Matemática. Imagem. Prof. Thales Vieira Universidade Federal de Alagoas Instituto de Matemática Imagem Prof. Thales Vieira 2014 O que é uma imagem digital? Imagem no universo físico Imagem no universo matemático Representação de uma imagem Codificação

Leia mais

RUÍDOS EM IMAGENS FILTRAGEM DE RUÍDOS. o Flutuações aleatórias ou imprecisões em dados de entrada, precisão numérica, arredondamentos etc...

RUÍDOS EM IMAGENS FILTRAGEM DE RUÍDOS. o Flutuações aleatórias ou imprecisões em dados de entrada, precisão numérica, arredondamentos etc... RUÍDOS EM IMAGENS FILTRAGEM DE RUÍDOS RUÍDOS EM IMAGENS Em Visão Computacional, ruído se refere a qualquer entidade em imagens, dados ou resultados intermediários, que não são interessantes para os propósitos

Leia mais

Thales Trigo. Formatos de arquivos digitais

Thales Trigo. Formatos de arquivos digitais Esse artigo sobre Formatos de Arquivos Digitais é parte da Tese de Doutoramento do autor apresentada para a obtenção do titulo de Doutor em Engenharia Elétrica pela Escola Politécnica da USP. Thales Trigo

Leia mais

CorelDRAW 11 1. UM PROGRAMA DE DESIGN

CorelDRAW 11 1. UM PROGRAMA DE DESIGN CorelDRAW 11 1. UM PROGRAMA DE DESIGN Com o Corel você vai trabalhar com um dos aplicativos mais usados no campo do design e da auto-edição, já que permite operar com dois tipos de gráficos (vetoriais

Leia mais

Trabalho 2 Fundamentos de computação Gráfica

Trabalho 2 Fundamentos de computação Gráfica Trabalho 2 Fundamentos de computação Gráfica Processamento de Imagens Aluno: Renato Deris Prado Tópicos: 1- Programa em QT e C++ 2- Efeitos de processamento de imagens 1- Programa em QT e C++ Para o trabalho

Leia mais

Figura 1: Formato matricial de uma imagem retangular. Figura 2: Ampliação dos pixels de uma imagem

Figura 1: Formato matricial de uma imagem retangular. Figura 2: Ampliação dos pixels de uma imagem Universidade Federal de Santa Maria - UFSM Departamento de Eletrônica e Computação - DELC Introdução à Informática Prof. Cesar Tadeu Pozzer Julho de 2006 Imagens Uma imagem é representada por uma matriz

Leia mais

FILTRAGEM ESPACIAL. Filtros Digitais no domínio do espaço

FILTRAGEM ESPACIAL. Filtros Digitais no domínio do espaço FILTRAGEM ESPACIAL Filtros Digitais no domínio do espaço Definição Também conhecidos como operadores locais ou filtros locais Combinam a intensidade de um certo número de piels, para gerar a intensidade

Leia mais

)LJXUD8PGRVSDUHV'SDUDFRQYROXomRTXHWHPRPHVPRHIHLWRGR NHUQHOGD)LJXUD

)LJXUD8PGRVSDUHV'SDUDFRQYROXomRTXHWHPRPHVPRHIHLWRGR NHUQHOGD)LJXUD )LOWURJDXVVLDQR O filtro Gaussiano pode ser usado como um filtro SDVVDEDL[D. Usando a função Gaussiana para obter valores de uma máscara a ser definida digitalmente. O Filtro de Gaussiano em 1-D tem a

Leia mais

Guia de qualidade de cores

Guia de qualidade de cores Página 1 de 5 Guia de qualidade de cores O Guia de qualidade de cores ajuda você a entender como as operações disponíveis na impressora podem ser usadas para ajustar e personalizar a saída colorida. Menu

Leia mais

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Processamento de Imagem Prof. MSc. André Yoshimi Kusumoto andrekusumoto.unip@gmail.com Visão Computacional Não existe um consenso entre os autores sobre o correto escopo do processamento de imagens, a

Leia mais

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

Manual Processamento de Imagem. João L. Vilaça Manual Processamento de Imagem João L. Vilaça Versão 1.0 31/1/2014 Índice 1. Sistema de eixo e movimentos possíveis do Drone... 3 2. Imagem... 3 3. Espaços de cor... 4 4.1 RGB... 5 4.2HSV... 5 4.3 GRAY...

Leia mais

2.1.2 Definição Matemática de Imagem

2.1.2 Definição Matemática de Imagem Capítulo 2 Fundamentação Teórica Este capítulo descreve os fundamentos e as etapas do processamento digital de imagens. 2.1 Fundamentos para Processamento Digital de Imagens Esta seção apresenta as propriedades

Leia mais

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Formatos de Imagens

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Formatos de Imagens IntroduçãoàTecnologiaWeb HTML HyperTextMarkupLanguage XHTML extensiblehypertextmarkuplanguage FormatosdeImagens ProfªMSc.ElizabeteMunzlinger ProfªMSc.ElizabeteMunzlinger FormatosdeImagens Índice 1 FORMATOS

Leia mais

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia. Introdução O Cálculo Numérico

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

Busca. Pesquisa sequencial

Busca. Pesquisa sequencial Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um

Leia mais

Formatos de Imagem PNG. Universidade Federal de Minas Gerais. Bruno Xavier da Silva. Guilherme de Castro Leite. Leonel Fonseca Ivo

Formatos de Imagem PNG. Universidade Federal de Minas Gerais. Bruno Xavier da Silva. Guilherme de Castro Leite. Leonel Fonseca Ivo Universidade Federal de Minas Gerais Formatos de Imagem PNG Bruno Xavier da Silva Guilherme de Castro Leite Leonel Fonseca Ivo Matheus Silva Vilela Rafael Avelar Alves Belém Belo Horizonte, 5 de maio de

Leia mais

Departamento de Matemática - UEL - 2010. Ulysses Sodré. http://www.mat.uel.br/matessencial/ Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.

Departamento de Matemática - UEL - 2010. Ulysses Sodré. http://www.mat.uel.br/matessencial/ Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010. Matemática Essencial Extremos de funções reais Departamento de Matemática - UEL - 2010 Conteúdo Ulysses Sodré http://www.mat.uel.br/matessencial/ Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.

Leia mais

Imagem digital. Unidade 3

Imagem digital. Unidade 3 Imagem digital Unidade 3 Objectivos Reconhecer o potencial comunicativo/ expressivo das imagens; Reconhecer as potencialidades narrativas de uma imagem; A criação de sentido nas associações de imagens

Leia mais

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48 Conteúdo 1 Princípios de Contagem e Enumeração Computacional Permutações com Repetições Combinações com Repetições O Problema do Troco Principio da Casa dos Pombos > Princípios de Contagem e Enumeração

Leia mais

Capítulo 5 Filtragem de Imagens

Capítulo 5 Filtragem de Imagens Capítulo 5 Filtragem de Imagens Capítulo 5 5.1. Filtragem no Domínio da Frequência 5.2. Filtragem no Domínio Espacial 2 Objetivo Melhorar a qualidade das imagens através da: ampliação do seu contraste;

Leia mais

Fotografia Digital Obtenção da Imagem e Impressão

Fotografia Digital Obtenção da Imagem e Impressão Fotografia Digital Obtenção da Imagem e Impressão 1 Diferenças entre o CCD e o Filme: O filme como já vimos, é uma película de poliéster, coberta em um dos lados por uma gelatina de origem animal com partículas

Leia mais

Colorindo com Números Representação de Imagens

Colorindo com Números Representação de Imagens Atividade 2 Colorindo com Números Representação de Imagens Sumário Os computadores armazenam desenhos, fotografias e outras imagens usando apenas números. A atividade seguinte demonstra como eles podem

Leia mais

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas? Recorrências Muitas vezes não é possível resolver problemas de contagem diretamente combinando os princípios aditivo e multiplicativo. Para resolver esses problemas recorremos a outros recursos: as recursões

Leia mais

Chow&Kaneko buscam as modas da imagem para separar os objetos. Admite que os tons na vizinhança de cada moda são do mesmo objeto.

Chow&Kaneko buscam as modas da imagem para separar os objetos. Admite que os tons na vizinhança de cada moda são do mesmo objeto. Respostas Estudo Dirigido do Capítulo 12 Image Segmentation" 1 Com suas palavras explique quais os problemas que podem ocorrer em uma segmentação global baseada em níveis de cinza da imagem. Que técnicas

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:

Leia mais

CI202 - Métodos Numéricos

CI202 - Métodos Numéricos CI202 - Métodos Numéricos Lista de Exercícios 2 Zeros de Funções Obs.: as funções sen(x) e cos(x) devem ser calculadas em radianos. 1. Em geral, os métodos numéricos para encontrar zeros de funções possuem

Leia mais

ESTRUTURAS DE DADOS II

ESTRUTURAS DE DADOS II ESTRUTURAS DE DADOS II Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF Conteúdo Programático 1. Introdução

Leia mais

Scale-Invariant Feature Transform

Scale-Invariant Feature Transform Scale-Invariant Feature Transform Renato Madureira de Farias renatomdf@gmail.com Prof. Ricardo Marroquim Relatório para Introdução ao Processamento de Imagens (COS756) Universidade Federal do Rio de Janeiro,

Leia mais

Capítulo II Imagem Digital

Capítulo II Imagem Digital Capítulo II Imagem Digital Proc. Sinal e Imagem Mestrado em Informática Médica Miguel Tavares Coimbra Resumo 1. Formação de uma imagem 2. Representação digital de uma imagem 3. Cor 4. Histogramas 5. Ruído

Leia mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem

Leia mais

Workshop Processing: Visualização de Dados e Interatividade

Workshop Processing: Visualização de Dados e Interatividade Workshop Processing: Visualização de Dados e Interatividade Imagens Claudio Esperança Programa de Engenharia de Sistemas e Computação COPPE / UFRJ Escola de Belas Artes Claudio Esperança (PESC/COPPE/UFRJ)

Leia mais

RECONHECIMENTO DE PLACAS DE AUTOMÓVEIS ATRAVÉS DE CÂMERAS IP

RECONHECIMENTO DE PLACAS DE AUTOMÓVEIS ATRAVÉS DE CÂMERAS IP RECONHECIMENTO DE PLACAS DE AUTOMÓVEIS ATRAVÉS DE CÂMERAS IP Caio Augusto de Queiroz Souza caioaugusto@msn.com Éric Fleming Bonilha eric@digifort.com.br Gilson Torres Dias gilson@maempec.com.br Luciano

Leia mais

Módulo 4. Construindo uma solução OLAP

Módulo 4. Construindo uma solução OLAP Módulo 4. Construindo uma solução OLAP Objetivos Diferenciar as diversas formas de armazenamento Compreender o que é e como definir a porcentagem de agregação Conhecer a possibilidade da utilização de

Leia mais

Dispositivos de Entrada e Saída

Dispositivos de Entrada e Saída Dispositivos de Entrada e Saída Prof. Márcio Bueno {cgtarde,cgnoite}@marciobueno.com Fonte: Material do Prof. Robson Pequeno de Sousa e do Prof. Robson Lins Dispositivos de Entrada Teclado, Mouse, Trackball,

Leia mais

AULA 5 Manipulando Dados Matriciais: Grades e Imagens. 5.1 Importando Grades e Imagens Interface Simplificada

AULA 5 Manipulando Dados Matriciais: Grades e Imagens. 5.1 Importando Grades e Imagens Interface Simplificada 5.1 AULA 5 Manipulando Dados Matriciais: Grades e Imagens Nessa aula serão apresentadas algumas funcionalidades do TerraView relativas a manipulação de dados matriciais. Como dados matriciais são entendidas

Leia mais

Implementando plugins para o ImageJ

Implementando plugins para o ImageJ UNIVERSIDADE FEDERAL DE MINAS GERAIS INSTITUTO DE CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO NÚCLEO DE PROCESSAMENTO DIGITAL DE IMAGENS (NPDI) Tutorial Implementando plugins para o ImageJ Flávio

Leia mais

Noções Básicas de Excel página 1 de 19

Noções Básicas de Excel página 1 de 19 Noções Básicas de Excel página 1 de 19 Conhecendo a tela do Excel. A BARRA DE FÓRMULAS exibe o conteúdo de cada célula (local) da planilha. Nela podemos inserir e alterar nomes, datas, fórmulas, funções.

Leia mais

Tratamento fotográfico básico

Tratamento fotográfico básico Tratamento fotográfico básico Vamos começar com um trato na luz e na cor na imagem. Algumas imagens, por sub-exposição, principalmente, precisam ter alterados, alguns parâmetros. Nível: O primeiro deles

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

6. Geometria, Primitivas e Transformações 3D

6. Geometria, Primitivas e Transformações 3D 6. Geometria, Primitivas e Transformações 3D Até agora estudamos e implementamos um conjunto de ferramentas básicas que nos permitem modelar, ou representar objetos bi-dimensionais em um sistema também

Leia mais

Imagem digital 2. Resolução x dimensão da imagem

Imagem digital 2. Resolução x dimensão da imagem Uma imagem bitmapeada é formada por um conjunto de pixels. gerados no momento da digitalização da imagem (através do scanner ou câmera digital). PRODUÇÃO GRÁFICA 2 Imagem digital 2 Resolução x dimensão

Leia mais

APOSTILA DE EXCEL 2007

APOSTILA DE EXCEL 2007 APOSTILA DE EXCEL 2007 1. Introdução Quando você cria uma planilha nova, a tela do computador é dividida em linhas e colunas, formando uma grade. A interseção de uma linha e de uma coluna é chamada de

Leia mais

Sphinx Scanner Informações gerais V 5.1.0.8

Sphinx Scanner Informações gerais V 5.1.0.8 Sphinx Scanner Informações gerais V 5.1.0.8 Pré-requisitos: Possuir modalidade scanner no software Sphinx A SPHINX Brasil propõe uma solução de leitura automática de questionários por scanner. O Sphinx

Leia mais

Aula 4 Estatística Conceitos básicos

Aula 4 Estatística Conceitos básicos Aula 4 Estatística Conceitos básicos Plano de Aula Amostra e universo Média Variância / desvio-padrão / erro-padrão Intervalo de confiança Teste de hipótese Amostra e Universo A estatística nos ajuda a

Leia mais

APLICATIVOS GRÁFICOS (AULA 4)

APLICATIVOS GRÁFICOS (AULA 4) Prof. Breno Leonardo G. de M. Araújo brenod123@gmail.com http://blog.brenoleonardo.com.br APLICATIVOS GRÁFICOS (AULA 4) 1 Classificação da imagem Em relação à sua origem pode-se classificar uma imagem,

Leia mais

3 Classificação. 3.1. Resumo do algoritmo proposto

3 Classificação. 3.1. Resumo do algoritmo proposto 3 Classificação Este capítulo apresenta primeiramente o algoritmo proposto para a classificação de áudio codificado em MPEG-1 Layer 2 em detalhes. Em seguida, são analisadas as inovações apresentadas.

Leia mais

OURO MODERNO www.ouromoderno.com.br. Designer Gráfico APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

OURO MODERNO www.ouromoderno.com.br. Designer Gráfico APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo) Designer Gráfico APOSTILA DE EXEMPLO (Esta é só uma reprodução parcial do conteúdo) 1 Índice Aula 1... 3 Apresentação do Photoshop... 3 Barra de Menus... 3 Barra de Opções... 3 Barra de Ferramentas...4

Leia mais

Todos os exercícios sugeridos nesta apostila se referem ao volume 1. MATEMÁTICA I 1 FUNÇÃO DO 1º GRAU

Todos os exercícios sugeridos nesta apostila se referem ao volume 1. MATEMÁTICA I 1 FUNÇÃO DO 1º GRAU FUNÇÃO IDENTIDADE... FUNÇÃO LINEAR... FUNÇÃO AFIM... GRÁFICO DA FUNÇÃO DO º GRAU... IMAGEM... COEFICIENTES DA FUNÇÃO AFIM... ZERO DA FUNÇÃO AFIM... 8 FUNÇÕES CRESCENTES OU DECRESCENTES... 9 SINAL DE UMA

Leia mais

APLICAÇÕES DA DERIVADA

APLICAÇÕES DA DERIVADA Notas de Aula: Aplicações das Derivadas APLICAÇÕES DA DERIVADA Vimos, na seção anterior, que a derivada de uma função pode ser interpretada como o coeficiente angular da reta tangente ao seu gráfico. Nesta,

Leia mais

Transformada de Hough. Cleber Pivetta Gustavo Mantovani Felipe Zottis

Transformada de Hough. Cleber Pivetta Gustavo Mantovani Felipe Zottis Transformada de Hough Cleber Pivetta Gustavo Mantovani Felipe Zottis A Transformada de Hough foi desenvolvida por Paul Hough em 1962 e patenteada pela IBM. Originalmente, foi elaborada para detectar características

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

PROF. DR. JACQUES FACON

PROF. DR. JACQUES FACON PUCPR- Pontifícia Universidade Católica Do Paraná PPGIA- Programa de Pós-Graduação Em Informática Aplicada PROF. DR. JACQUES FACON LIMIARIZAÇÃO DUPLA DE ISTVÁN CSEKE PROJETO DE UMA RÁPIDA SEGMENTAÇÃO PARA

Leia mais

CAP. I ERROS EM CÁLCULO NUMÉRICO

CAP. I ERROS EM CÁLCULO NUMÉRICO CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção

Leia mais

GRÁFICOS Exemplos de jogos 2D (com simulação do 3D)

GRÁFICOS Exemplos de jogos 2D (com simulação do 3D) Femur Online GRÁFICOS Exemplos de jogos 2D (com simulação do 3D) Como resultado de buscas na internet, tendo como base os jogos 2D mais famosos do mundo, obtive como resultado três tipos diferentes de

Leia mais

REFLEXÃO DA LUZ: ESPELHOS 412EE TEORIA

REFLEXÃO DA LUZ: ESPELHOS 412EE TEORIA 1 TEORIA 1 DEFININDO ESPELHOS PLANOS Podemos definir espelhos planos como toda superfície plana e polida, portanto, regular, capaz de refletir a luz nela incidente (Figura 1). Figura 1: Reflexão regular

Leia mais

FILTRAGEM NO DOMÍNIO DAS FREQUÊNCIAS (TRANSFORMADA DE FOURIER) Daniel C. Zanotta 04/06/2015

FILTRAGEM NO DOMÍNIO DAS FREQUÊNCIAS (TRANSFORMADA DE FOURIER) Daniel C. Zanotta 04/06/2015 FILTRAGEM NO DOMÍNIO DAS FREQUÊNCIAS (TRANSFORMADA DE FOURIER) Daniel C. Zanotta 04/06/2015 FREQUÊNCIA EM IMAGENS DIGITAIS Análise da intensidade dos NCs da imagem Banda 7 Landsat TM ao longo da distância:

Leia mais

Redução de imagem no domínio espacial

Redução de imagem no domínio espacial Faculdade de Engenharia da Universidade do Porto Licenciatura em Engenharia Electrotécnica e de Computadores 5º Ano, 1º Semestre Televisão Digital - 2002/2003 Redução de imagem no domínio espacial Armando

Leia mais

Exercício 8 Busca de Músicas

Exercício 8 Busca de Músicas Exercício 8 Busca de Músicas Diversos softwares têm sido projetados para realizar a busca de músicas a partir de um trecho de áudio. Por exemplo, atualmente há ferramentas para celulares ou Web em que

Leia mais

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 UNIVERSIDADE FEDERAL DE VIÇOSA Departamento de Matemática - CCE Cálculo Numérico - MAT 271 Prof.: Valéria Mattos da Rosa As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia

Leia mais

2. O que é Redundância de código ou informação? Como a compressão Huffman utiliza isso? Você conhece algum formato de imagem que a utiliza?(1.

2. O que é Redundância de código ou informação? Como a compressão Huffman utiliza isso? Você conhece algum formato de imagem que a utiliza?(1. Respostas do Estudo Dirigido Cap. 26 - Reducing the information:... ou Image Compression 1. Para que serve comprimir as imagens? Que aspectos estão sendo considerados quando se fala de: Compression Rate,

Leia mais

Visão humana. Guillermo Cámara-Chávez

Visão humana. Guillermo Cámara-Chávez Visão humana Guillermo Cámara-Chávez Cor e visão humana Como uma imagem é formada? Uma imagem é formada a partir da quantidade de luz refletida ou emitida pelo objeto observado. Cor e visão humana Cor

Leia mais

a 1 x 1 +... + a n x n = b,

a 1 x 1 +... + a n x n = b, Sistemas Lineares Equações Lineares Vários problemas nas áreas científica, tecnológica e econômica são modelados por sistemas de equações lineares e requerem a solução destes no menor tempo possível Definição

Leia mais

FAZENDO PELES PARA O. PUXA RÁPIDO v0.8

FAZENDO PELES PARA O. PUXA RÁPIDO v0.8 FAZENDO PELES PARA O PUXA RÁPIDO v0.8 O sistema de Peles do Puxa Rápido é bem simples. É composto por diversas figuras, em geral duas para cada botão. Podem ser com extensões JPG ou GIF (animado ou não).

Leia mais

Árvores Binárias Balanceadas

Árvores Binárias Balanceadas Árvores Binárias Balanceadas Elisa Maria Pivetta Cantarelli Árvores Balanceadas Uma árvore é dita balanceada quando as suas subárvores à esquerda e à direita possuem a mesma altura. Todos os links vazios

Leia mais

9. Derivadas de ordem superior

9. Derivadas de ordem superior 9. Derivadas de ordem superior Se uma função f for derivável, então f é chamada a derivada primeira de f (ou de ordem 1). Se a derivada de f eistir, então ela será chamada derivada segunda de f (ou de

Leia mais

APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo)

APOSTILA DE EXEMPLO. (Esta é só uma reprodução parcial do conteúdo) APOSTILA DE EXEMPLO (Esta é só uma reprodução parcial do conteúdo) 1 Índice Aula 1 - Área de trabalho e personalizando o sistema... 3 A área de trabalho... 3 Partes da área de trabalho.... 4 O Menu Iniciar:...

Leia mais

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Cálculo Numérico Aula : Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Computação Numérica - O que é Cálculo Numérico? Cálculo numérico é uma metodologia para resolver problemas matemáticos

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Fotografia Digital. Aula 1

Fotografia Digital. Aula 1 Fotografia Digital Aula 1 FOTOGRAFIA DIGITAL Tema da aula: A Fotografia 2 A FOTOGRAFIA A palavra Fotografia vem do grego φως [fós] ("luz"), e γραφις [grafis] ("estilo", "pincel") ou γραφη grafê, e significa

Leia mais

CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 4) Árvores balanceadas AVL, Rubro-Negras, B-Trees Operações em árvores binárias de busca

Leia mais

REPRESENTAÇÃO DA IMAGEM DIGITAL

REPRESENTAÇÃO DA IMAGEM DIGITAL REPRESENTAÇÃO DA IMAGEM DIGITAL Representação da imagem Uma imagem é uma função de intensidade luminosa bidimensional f(x,y) que combina uma fonte de iluminação e a reflexão ou absorção de energia a partir

Leia mais

Somatórias e produtórias

Somatórias e produtórias Capítulo 8 Somatórias e produtórias 8. Introdução Muitas quantidades importantes em matemática são definidas como a soma de uma quantidade variável de parcelas também variáveis, por exemplo a soma + +

Leia mais

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 3.2 O Espaço Nulo de A: Resolvendo Ax = 0 11 O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 Esta seção trata do espaço de soluções para Ax = 0. A matriz A pode ser quadrada ou retangular. Uma solução imediata

Leia mais

IBM1018 Física Básica II FFCLRP USP Prof. Antônio Roque Aula 6. O trabalho feito pela força para deslocar o corpo de a para b é dado por: = =

IBM1018 Física Básica II FFCLRP USP Prof. Antônio Roque Aula 6. O trabalho feito pela força para deslocar o corpo de a para b é dado por: = = Energia Potencial Elétrica Física I revisitada 1 Seja um corpo de massa m que se move em linha reta sob ação de uma força F que atua ao longo da linha. O trabalho feito pela força para deslocar o corpo

Leia mais

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO

UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO UNIVERSIDADE CATÓLICA DE PETRÓPOLIS CENTRO DE ENGENHARIA E COMPUTAÇÃO Amanda 5ª Atividade: Codificador e codificação de linha e seu uso em transmissão digital Petrópolis, RJ 2012 Codificador: Um codoficador

Leia mais

Fundamentos de Hardware

Fundamentos de Hardware Fundamentos de Hardware Curso Técnico em Informática SUMÁRIO PLACAS DE EXPANSÃO... 3 PLACAS DE VÍDEO... 3 Conectores de Vídeo... 4 PLACAS DE SOM... 6 Canais de Áudio... 7 Resolução das Placas de Som...

Leia mais

Exercícios Teóricos Resolvidos

Exercícios Teóricos Resolvidos Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar

Leia mais

Fotografia digital. Aspectos técnicos

Fotografia digital. Aspectos técnicos Fotografia digital Aspectos técnicos Captura CCD (Charge Coupled Device) CMOS (Complementary Metal OxideSemiconductor) Conversão de luz em cargas elétricas Equilíbrio entre abertura do diafragma e velocidade

Leia mais

Operações Algébricas e Lógicas. Guillermo Cámara-Chávez

Operações Algébricas e Lógicas. Guillermo Cámara-Chávez Operações Algébricas e Lógicas Guillermo Cámara-Chávez Operações Aritméticas São aquelas que produzem uma imagem que é a soma, diferença, produto ou quociente pixel a pixel Operações Aritméticas Fig A

Leia mais

Problemas insolúveis. Um exemplo simples e concreto

Problemas insolúveis. Um exemplo simples e concreto Surge agora uma outra questão. Viemos buscando algoritmos para resolver problemas. No entanto, será que sempre seria possível achar esses algoritmos? Colocando de outra forma: será que, para todo problema,

Leia mais

[a11 a12 a1n 4. SISTEMAS LINEARES 4.1. CONCEITO. Um sistema de equações lineares é um conjunto de equações do tipo

[a11 a12 a1n 4. SISTEMAS LINEARES 4.1. CONCEITO. Um sistema de equações lineares é um conjunto de equações do tipo 4. SISTEMAS LINEARES 4.1. CONCEITO Um sistema de equações lineares é um conjunto de equações do tipo a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1 a 11 x 1 + a 12 x 2 +... + a 1n x n = b 2... a n1 x 1 + a

Leia mais

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu 1 Programação Não Linear Aula 25: Programação Não-Linear - Funções de Uma única variável Mínimo; Mínimo Global; Mínimo Local; Optimização Irrestrita; Condições Óptimas; Método da Bissecção; Método de Newton.

Leia mais

Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar. com o CMS.

Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar. com o CMS. Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar com o CMS. 5 Removendo o Cliente. Playlist 7 Criando um Playlist. 8 Adicionando

Leia mais

QUESTÃO 1 ALTERNATIVA B

QUESTÃO 1 ALTERNATIVA B 1 QUESTÃO 1 Marcos tem 10 0,25 = 2,50 reais em moedas de 25 centavos. Logo ele tem 4,30 2,50 = 1,80 reais em moedas de 10 centavos, ou seja, ele tem 1,80 0,10 = 18 moedas de 10 centavos. Outra maneira

Leia mais

COLÉGIO ESTADUAL PAULO LEMINSKI APOSTILA SOBRE O BROFFICE IMPRESS

COLÉGIO ESTADUAL PAULO LEMINSKI APOSTILA SOBRE O BROFFICE IMPRESS COLÉGIO ESTADUAL PAULO LEMINSKI APOSTILA SOBRE O BROFFICE IMPRESS CURITIBA 2014 2 Conteúdo Definição:... 2 Detalhando a tela:... 4 BARRA DE FERRAMENTAS DESENHO... 4 PREENCHIMENTOS... 5 RÉGUAS E GUIAS...

Leia mais

Processamento de histogramas

Processamento de histogramas REALCE DE IMAGENS BASEADO EM HISTOGRAMAS Processamento de histogramas O que é um histograma? É uma das ferramentas mais simples e úteis para o PDI; É uma função que mostra a frequência com que cada nível

Leia mais

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Representação de grandeza com sinal O bit mais significativo representa o sinal: 0 (indica um número

Leia mais

Representação Binária de Dados

Representação Binária de Dados Universidade Federal de Santa Maria - UFSM Departamento de Eletrônica e Computação - DELC Introdução à Informática Prof. Cesar Tadeu Pozzer Janeiro de 2006 Representação Binária de Dados O computador utiliza

Leia mais

Tratamento da Imagem Transformações (cont.)

Tratamento da Imagem Transformações (cont.) Universidade Federal do Rio de Janeiro - IM/DCC & NCE Tratamento da Imagem Transformações (cont.) Antonio G. Thomé thome@nce.ufrj.br Sala AEP/133 Tratamento de Imagens - Sumário Detalhado Objetivos Alguns

Leia mais

Considerações: Leia a lista toda, o quanto antes, para evitar más interpretações e muitas dúvidas em cima da hora

Considerações: Leia a lista toda, o quanto antes, para evitar más interpretações e muitas dúvidas em cima da hora Universidade Federal de Pernambuco Centro de Informática Lista 4 Introdução a Programação Prof: Adriano Sarmento Data: 16/12/2013 Data de entrega: 07/01/2014 Considerações: Leia a lista toda, o quanto

Leia mais