Software Para Processamento Digital de Sinais/Imagens Imprimir
Qua, 30 de Setembro de 2009 13:26
Este software foi desenvolvido como parte de uma atividade da disciplina de Processamento Digital de Imagens, o qual teve como objetivo implementar uma grande variedade de mascaras para sinais digitais. O relatório descreve os métodos detalhadamente e pode ser usado como referencia por quem deseja trabalhar com processamento de imagens/sinais digitais.
A aplicação de filtros em imagens digitais tem grande utilidade em diversas áreas de ciência, com destaque principalmente em sistemas clínicos, onde normalmente é usado na remoção de ruídos indesejáveis, possibilidade obter sinais de melhor qualidade a fim de serem analisados mais precisamente por profissionais ou sistemas de Visão Computacional.
Clique em leia mais para ver o relatório completo e o software.

 

 

Introdução ao Processamento Digital de Imagens

Equipe:

Álan Livio V.Gudes

Danilo Assis

João F. M. Figueiredo – Este endereço de e-mail está protegido contra SpamBots. Você precisa ter o JavaScript habilitado para vê-lo.

Antes de prosseguir com o relatório, segue abaixo o tópico que ilustra as capturas de tela do software desenvolvido.

Anexo A

Para validação dos filtros, desenvolveu-se um software na linguagem de programação Java que os implementa, permitindo que sejam re alizadas comparações entre às imagens de entrada e o resultado da aplicação das operações abordadas neste relatório.

Abaixo seguem capturas de telas que ilustram o software:

 

1. Introdução

O Processamento digital de imagens tem sido largamente utilizado em aplicações na vida moderna. Sua utilização vai de simples fotos caseiras às técnicas de diagnóstico para medicina ou satélites. Este tratamento de sinais digitais consiste em melhorar ou recuperar determinadas características de uma imagem de forma a permitir ou facilitar o seu reconhecimento pelo ser humano ou por uma máquina. A figura 1 ilustra a relação desta área com demais áreas relacionadas, como a visão computacional e a computação gráfica.

Figura 1 PDI e áreas correlatas

O estudo do processamento digital de imagens foca-se em imagens digitais, que consistem em um arranjo bidimensional de valores (sinais 2D) representando as características luminosas de uma cena. Cada valor deste é conhecido como pixel (picture element).

1.1 Sistemas de Cor

Existe uma diversidade de sistemas de representação de cores, mas, neste trabalho, serão adotados apenas dois. Um é o sistema padrão de representação de cores em imagens digitais, chamado de RGB (Red, Green and Blue). Esse modelo é usado pela maioria dos dispositivos de aquisição e visualização de imagens, podendo ser visto como um cubo de cores onde as componentes vermelha, verde e azul correspondem aos eixos x, y e z. Os tons de cinza ocorrem quando as três componentes possuem valores iguais, seguindo a diagonal principal do cubo, com a origem (0,0,0), preta, e a extremidade inversa (255,255,255), branca. O cubo que representa o modelo RGB está ilustrado na figura 1:

Figura 2 Sistema RGB

O sistema YUV é atualmente utilizado em transmissão de TV em cores pelos padrões PAL e NTSC, dentre outros, e também preserva compatibilidade com os padrões de TV P & B. No sistema YUV, o Y representa a componente de luminância (intensidade percebida, ou brilho), enquanto que o componente U e Q representam a crominância. A conversão do sistema RGB para YUV é dada por:

RGB para  YUV

YUV para RGB

Y = 0.299*R + 0.587*G + 0.114*B

U = -0.14713*R - 0.28886*G + 0.436*B

V = 0.615*R - 0.51498 G -0.10001*B

R = Y + 1.13983*V

G = Y -0.39465*U - 0.58060*V

B = Y + 2.03211*U

1.2 Objetivos do Trabalho

A proposta desde trabalho é implementar a seguintes operações para processamento digital de imagens, utilizando o ambiente MatLab e outra linguagem de programação, que aqui, definiu-se a linguagem Java.

  1. Desenvolva um sistema para abrir, exibir, manipular e salvar imagens RGB, que possua as seguintes funcionalidades

a) Conversão RGB-YUV-RGB

b) Exibição de bandas individuais (R, G e B) como imagens monocromáticas

b) ou coloridas (em tons de R, G ou B, respectivamente)

c) Negativo

d) Controle de brilho aditivo

e) Controle de brilho multiplicativo

f) Filtros de média e mediana de ordem n x n

g) Filtro do desvio-padrão

h) Dissolver cruzado duas imagens de dimensões idênticas.

  1. Aplicação de ruído remove-lo com os filtros da média e da mediana

a) Um ruído qualquer em Java

b) Os ruídos salt & pepper', gaussian e speckle em MATLAB.

Sendo as operações de 3 à 6 feitas diretamente sobre os valores R, G e B de cada pixel e, em diante, após a transformação, elas serão aplicadas sobre o valor de intensidade (Y) de cada pixel no sistema YUV, devendo a imagem, ao final do processamento, retornar para o sistema RGB.

As imagens finais, resultantes da aplicação das operações sobre as iniciais, deverão ser exibidas de maneira que se possa fazer um comparativo entre ambas e, assim, perceber o efeito causado pela aplicação da função sobre a imagem. Estas funções, bem como suas aplicações, serão apresentadas nas seções subseqüentes.


2. Materiais e Métodos

2.1 Detalhes de linguagem

Em MATLAB as imagens são representadas como três matrizes de inteiros, que correspondem às três bandas de cores. Tal representação é de uso comum na linguagem e possui fácil manipulação e acesso via operadores da linguagem.

Em Java as imagens são representadas por objetos da classe BufferedImage, do pacote java.awt.image. Estas são tratadas como uma matriz de inteiros de quatro bytes, sendo três bytes usados para representar as bandas R, G e B, que podem ser separadas de acordo com o exemplo abaixo:

int pixel = imagem.getRGB(linha, coluna);

int bandaR = (pixel >> 16) & 255;

int bandaG = (pixel >> 8) & 255;

int bandaB = (pixel >> 0) & 255;.

2.2 Metodologia de implementação dos filtros

2.2.1 Transformação RGB YUV

Para esta operação foi utilizado o sistema linear apresentado na introdução:

Onde; R, G e B são os valores de cada pixel, Y’= [0,1], U=[-0.436,0.436]  e U=[-0.615,0.615].

2.2.2 Transformação YUV RGB

Para esta operação foi utilizado o sistema linear apresentado na introdução:

onde Y, U e V são os valores de cada pixel.

2.2.3 Negativo para RGB e YUV

A operação negativo nas bandas R, G e B de uma imagem consiste em inverter as suas cores, provocando alterações intensas de matizes, com a substituição das cores por suas complementares (verde/magenta, azul/amarelo, vermelho/cíano, branco/preto). A simples operação do negativo às vezes permite a observação de forma mais clara de algumas estruturas da imagem. Ela se dá da seguinte forma:

Negativo RGB

R' = 255 – R

G' = 255 – G

B' = 255 – B

Já para o formato YUV, a subtração é realizada apenas na banda Y. As alterações são feitas apenas nas intensidades das cores como, por exemplo, de vermelho escuro para vermelho claro ou vice e versa:

Negativo YUV

Y' = 255 - Y

Se fizer-se, após a aplicação do negativo na banda Y, uma conversão para o sistema RGB original, as matizes serão perfeitamente preservadas.

Brilho Aditivo e Multiplicativo para RGB e YUV

Aumentar o brilho de uma imagem consiste em incrementar a intensidade luminosa de cada pixel. Para uma imagem no sistema RGB, aumenta-se um valor constante em cada banda R, G ou B, somando (efeito aditivo) ou multiplicando (efeito multiplicativo) a uma constante c, ou seja:

Aditivo RGB

Multiplicativo RGB

R’ = R + c

G’ = G + c

B’ = B + c

R’ = R * c

G’ = G * c

B’ = B * c

Para uma imagem no sistema YUV é utilizada a mesma idéia, sendo que a operação só é realizada para a banda Y, ou seja:

Aditivo YUV

Multiplicativo YUV

Y' = R + c

Y' = R * c

Essa operação requer que alguns limites sejam analisados, pois os valores de cada banda variam entre 0 e 255 e não podem ultrapassar estes.

Separar bandas R, G e B em imagens monocromáticas e coloridas.

As imagens usadas estão representadas no formato RGB, sendo assim constituídas da superposição de três bandas, cada qual com uma tonalidade de R, G e B, respectivamente.

A separação destas bandas é alcançada pela captura do pixel que, na representação em tipo Integer da linguagem Java, possui 4bytes, sendo o primeiro byte reservado para transparência e os 3 bytes seguintes para as bandas RGB. Uma vez capturado o pixel, faz-se um deslocamento dos bytes(16, 8 ou 0 bits para R, G e B, respecticamente) e uma operação lógica E com a mascara 255. O resultado desta operação retornará a contribuição daquela banda para o pixel. Um exemplo pode ser visto abaixo:

Separação das bandas R, G e B de um pixel, usando linguagem Java:

int bandaR = (pixel >> 16) & 255;

int bandaG = (pixel >> 8) & 255;

int bandaB = (pixel) & 255;

Uma vez separado o pixel nas três bandas, pode-se fazer o processo de deslocamento inverso para atribuí-las de volta ao pixel original. É nesta etapa que faz-se a separação, atrinbuindo de volta ao pixel apenas a contribuição de uma das bandas e zerando o valor das demais, conforme exemplo abaixo:

Atribuição apenas da banda R a um pixel, usando linguagem Java:

pixel = (bandaR << 16) | 0 | 0;

Por fim, atribui-se o pixel de volta a imagem, obtendo uma imagem formada pela contribuição de apenas uma banda e com as demais “zeradas”, causando um efeito avermelhado, verde ou azulado, conforme a banda escolhida.

Para fazer a separação em imagem monocromática, faz-se o mesmo procedimento anterior, porém, ao atribuir o valor da banda de volta ao pixel, atribui-se este valor aos três bytes, conforme exemplo abaixo:

Atribuição apenas da banda R a um pixel, como imagem monocromática, usando linguagem Java:

pixel = (bandaR << 16) | (bandaR << 8) | bandaR;

O processo é análogo para as demais bandas.

Média para RGB e YUV

O valor do pixel resultante é igual média dos valores dos pixels originais em uma vizinhança n x n.

Este é um filtro simples e usado freqüentemente para suavizar imagens, com conseqüente redução de alguns ruídos. Sua operação sobre um pixel é a média aritmética desde pixel e sua vizinhança, que pode variar como uma seqüência de números imparem, como 3x3, 5x5, 11x11 e etc. A tabela abaixo ilustra esta operação:

P

P

P

P

A

P

P

P

P/W

W

W

W

W

W

W

W

W

W

W

W

B

W

W

W

W

W

W

W

W

W

W

W

W

Na tabela acima, para calcular-se a média do pixel A, em uma vizinhança 3x3, deve-se efetuar a média aritmética dos pixels marcados como P com o pixel A, ou seja:

Média em A = P+P+P+P+P+P+P+P+A / 9. O valor resultante é, por fim, atribuído ao pixel A e o processo continua com o próximo pixel.

Para uma vizinhança maior, o processo é análogo, conforme visto para o pixel B em vizinhança 5x5.

Ressalta-se que quanto maior for a vizinhança, maior a percepção do feito e, também, o tempo requerido para o processamento.

Detalhes de implementação em linguagem Java podem ser encontrados nos anexos.

Mediana para RGB e YUV

A operação de mediana é, assim como a média, freqüentemente utilizada para remoção de ruídos, neste caso, principalmente ruído do tipo aleatório, além de causar um efeito de “desenho” na imagem final. Sua implementação consiste em ordenar o pixel e sua vizinhança em um vetor e encontrar o elemento central, ou seja, o elemento mediano. A tabela abaixo ilustra este processo:

1

5

3

7

6

9

8

5

4

W

W

W

W

W

W

W

W

W

W

W

B

W

W

W

W

W

W

W

W

W

W

W

W

Para calcular a mediana do pixel 6, ordena-se sua vizinhança em um vetor e substitui-se o pixel 6 pelo pixel encontrado no meio do vetor, ou seja, vetor[length/2], onde length é o tamanho do vetor, como a seguir:

Vetor = { 1, 3, 4, 5, 5, 6, 7, 8, 9 };

Vetor[length/2] = 5;

Assim, o valor final do pixel 6 será 5, sua mediana. O processo é análogo para vizinhança maior e continua até varrer todos os pixels da imagem.


Desvio-padrão para RGB e YUV

O desvio padrão é uma operação realizada em um conjunto de valores, que neste caso, será aplicado sobre um vetor contendo a vizinhança do pixel. Neste trabalho, utilizou-se dois tipos de desvio padrão; o estimado e o calculado, que serão exemplificados a seguir.

Desvio padrão estimado: Neste desvio padrão, deve-se calcular a amplitude média do processo, que é dada pela razão da soma das amplitudes médias dos subgrupos pela quantidade de subgrupos, que neste caso, resume-se a um, ou seja, uma vizinhança.

A amplitude da vizinhança é calculada pela diferença entre o maior e o menor valor das amostras. Uma vez calculada a amplitude, deve-se realizar a razão desta com um fator correspondente ao número de amostras, dada pela tabela a seguir:

Amostras

Fator D2

2

1.128

3

1.693

4

2.059

5

2.326

6

2.534

7

2.704

8

2.847

9

2.970

..

...

Sendo assim, o desvio padrão estimado é dado por:

Onde R é a amplitude das amostras.

Desvio padrão calculado: Este desvio padrão normalmente é aplicado em valores individuai. Para seu calculo, deve-se calcular a média do processo, que é a média das médias dos subgrupos. Ou seja, soma-se os pixels de uma vizinhança e calcula-se sua média, que deverá ser somada às demais médias dos demais subgrupos e dividida pela quantidade total de subgrupos. Por fim, faz-se o quadrado da diferença de cada amostra pela média do processo, soma-se todos esses valores e divide-se pelo numero total de amostras menos 1. O resultado será a variância, que ao ter sua raiz quadrada calculada, dará o desvio padrão calculado daquele pixel. Abaixo segue a formula:

Onde: Xi é cada amostra em uma vizinhança

X é a média do processo, dado pela média das médias dos subgrupos.

n é a quantidade total de amostras

Para aplicação do desvio padrão em uma imagem, deve-se efetuar um dos cálculos acima para cada um dos pixels, substituindo-o pelo resultado da operação. Neste trabalho, ambas as formulas citadas acima foram implementadas na linguagem Java e estão disponiveis nos anexos, as quais resultam em uma imagem escurecida, como se houvesse sido capturada em um ambiente pouco iluminado. Porém, o efeito solicitado, na verdade, foi de uma imagem final quase totalmente escura, com apenas alguns riscos brancos nos locais das bordas. Para alcançar este efeito, outro algoritmo foi estudado e implementado, o qual se alcançou através de uma variação do calculo do desvio padrão estimado.

A implementação final encontra-se, também, junto aos anexos, e consiste em capturar os pixels mais e menos relevantes do final do vetor com as amostras de uma vizinhança e, por fim, realizar a razão da diferença destes pixels por 2, ou seja:

(ultimoPixelDeMaiorValor – ultimoPixelDeMenorValor) / 2.

Ressalta-se que o objetivo desde trabalho é a manipulação de imagens digitalmente, através da implementação de operações que hão de trabalhar sobres as mesmas e que, dado um determinado filtro, em forma de algoritmo, sua implementação e aplicação faz parte deste objetivo, e não a medição da “afeição” com ferramentas de buscas, que certamente estão fora deste escopo. Em suma, se o filtro correto do desvio padrão não foi especificado, não é tarefa dos autores tentarem “adivinhá-lo”.

Dissolve cruzado em RGB

Cada pixel gi da imagem é dado por gi = (f1i + f2i)/2, onde f1 e f2 são imagens de dimensões idênticas.

3. Resultados

 

Os resultados obtidos para cada objetivo são mostrados abaixo:

1. Funcionalidades do sistema

a) Conversão RGB-YUV e YUV RGB

Percebe-se que a imagem em YUV aparece em vermelho, pois a banda Y é representada pela banda vermelha.

Figura 3 Imagem Original                    Figura 4 Imagem YUV                    Figura 5 recuperação da original

b) Exibição de bandas individuais (R, G e B) como imagens monocromáticas ou coloridas

Figura 6 Banda R                                   Figura 7 Banda G                                  Figura 8 Banda B

c) Negativo

O negativo aplicado em RGB altera as cores da imagem, uma vez que é aplicado a cada banda. Enquanto que no YUV, apenas o brilho sofre variação, que corresponde a banda Y, luminancia.

 

Aplicado em RGB

Figura 9 Imagem Original                                Figura 10 negativo RGB

Aplicado em YUV e convertido para RGB

Figura 11 Imagem Original                                 Figura 12 negativo YUV

 

 

d) Brilho Aditivo

A adição de brilho em YUV é mais intensa, uma vez que o brilho é incrementado diretamente na luminancia da imagem.

.

Aplicado em RGB(c=50)

Figura 13 Imagem Original                 Figura 14 aditivo 50 RGB

Aplicado YUV e convertido para RGB(c=50)

Figura 15 Imagem Original                 Figura 16 aditivo 50 YUV

 

e) Brilho Multilicativo

Semelhante ao brilho aditivo, porém mais intenso.

Aplicado em RGB(c=2):

Figura 17 Imagem Original              Figura 18 multiplicativo 2 RGB

 

Aplicado YUV e convertido para RGB(c=2):

Figura 19 Imagem Original              Figura 20 multiplicativo 2 YUV

f) Media e Mediana


Media Aplicado em RGB(n=10):

Figura 21 Imagem Original              Figura 22 media n=10 RGB

 

Media Aplicado YUV e convertido para RGB(c=10):

Figura 23 Imagem Original              Figura 24 media n=10 YUV

Mediana Aplicado em RGB(n=7):

Figura 25 Imagem Original                              Figura 26 mediana n=7 RGB

Mediana Aplicado YUV e convertido para RGB(n=7):

Figura 27 Imagem Original                              Figura 28 mediana n=7 YUV

g) Desvio Padrão

Aplicado em RGB (n=3):

Figura 29 Imagem Original                Figura 30 desvio padrão n=3 RGB

h) Dissolve Cruzado

Este filtro realiza uma sobre posição das duas imagens.

 

Figura 31 Imagem I                                                         Figura 32 Imagem II

Figura 33 Soma de da imagens I e II

 

 

2. Aplicação e remoção ruído

a) Adição de ruído e tentativa de eliminação do mesmo utilizando os filtros da média e mediana em Java

O ruído é gerado a partir de uma densidade escolhida pelo usuário, a qual representa uma porcentagem da imagem que terá ruído.

Abaixo, a primeira figura ilustra a imagem escolhida para aplicação da poluição e, posteriormente, a filtragem dessa pela média e mediana. A segunda figura  ilustra a original após a adição de 10 % de ruído.

 

Figura 34 - Imagem original                           Figura 35 - Imagem com ruído

As figuras a seguir demonstram, respectivamente, a aplicação do filtro da média e da mediana numa vizinhança 3x3 na figura original.

Figura 36 -  Imagem após o uso do filtro da média         Figura 4 – Imagem após o uso do filtro da mediana

 

Percebeu-se que, para o método implementado de ruído aleatório, apenas o filtro da mediana se mostrou eficiente na remoção deste ruído.

 

 

b) Adição de ruído e tentativa de eliminação do mesmo utilizando os filtros da média e mediana em Java

Uma imagem foi escolhida para ser aplicado os ruídos salt & pepper, gaussian e speckle. Também foi escolhido um valor para a densidade de ruído que foi 0.02.

O script abaixo demonstra a aplicação do ruído salt & pepper e, posteriormente, o uso do filtro da média na banda R, G e B da imagem que fora anteriormente selecionada.

Foi escolhida uma densidade de ruído de 0,02. Na aplicação dos filtros da média e mediana foi decidido que os testes seriam feitos para uma vizinhança 3x3.

a = imread('13.jpg');

imshow(a);

b = imnoise(a,'salt & pepper',0.02);

figure,imshow(b);

c = filter2(fspecial('average',3),b(:,:,1))/255;

figure,imshow(c);

d = filter2(fspecial('average',3),b(:,:,2))/255;

figure,imshow(d);

e = filter2(fspecial('average',3),b(:,:,3))/255;

figure,imshow(e);

imagem_apos_media(:,:,1)  = c;

imagem_apos_media(:,:,2)  = d;

imagem_apos_media(:,:,3)  = e;

figure,imshow(imagem_apos_media);

Logo abaixo, a Figura 37 ilustra a imagem original selecionada para a aplicação dos ruídos do tipo salt&pepper, gaussian e speckle e, posteriormente, a aplicação dos filtros da média e da mediana.

Figura 37 - Imagem Original

As figuras 38,39 e 40, que serão apresentadas abaixo, referem-se à Figura 37 após a aplicação dos ruídos salt&pepper, gaussian e speckle, respectivamente.

Figura 38 - Imagem com ruído Salt&Pepper             Figura 39 - Imagem com ruído Gaussian

Figura 40 - Imagem com ruído Speckle

Após a aplicação dos três tipos de ruídos citados anteriormente, foram aplicados os filtros de média e mediana em cada uma das imagens poluídas. Os resultados obtidos serão relatados logo abaixo.

 

Figura 41 - Imagem com ruído Salt&Pepper após a aplicação do filtro da média

 

Foi observado que após a aplicação do filtro da média na Figura 38 não foi possível eliminar todo ruído do tipo salt&pepper adicionado à essa. A imagem final apresenta discrepâncias em relação à Figura 37, que é a imagem original sem ruídos.

É coerente afirmar também que o filtro da média não obteve sucesso na tarefa de remover totalmente o ruído do tipo gaussian adicionado à imagem escolhida. É possível observar o resultado visualizando a Figura 42 abaixo.

Figura 42 - Imagem com ruído Gaussian após a aplicação do filtro da média

 

A Figura43 ilustra a aplicação do filtro da média após a aplicação do ruído Speckle.

Figura 43 - Imagem com ruído Speckle após a aplicação do filtro da média

 

Pode-se concluir que, após a aplicação do filtro da média para os ruídos salt&pepper, gaussian e speckle, numa vizinhança 3x3 e uma densidade de ruído igual a 0.02, as imagens resultantes, embora mais nítidas, ainda possuem poluição visual.

Entretanto, foram obtidos bons resultados para a aplicação do filtro da média em imagens com ruídos do tipo salt&pepper e speckle diminuindo-se a densidade para 0.001, deste modo, aumentando consideravelmente o espaçamento entre os pontos de ruído.

Abaixo será relatado os resultados obtidos pela aplicação do filtro da mediana para os ruídos salt&pepper, gaussian e speckle.

Primeiro, será mostrado o script feito em Matlab para aplicar esses tipos de ruídos.

a = imread('13.jpg');

imshow(a);

b = imnoise(a,’salt&pepper’,0.02);

figure,imshow(b);

c = medfilt2(b(:,:,1),[3 3]);

figure,imshow(c);

d = medfilt2(b(:,:,2),[3 3]);

figure,imshow(d);

e = medfilt2(b(:,:,3),[3 3]);

figure,imshow(e);

imagem_apos_mediana(:,:,1)  = c;

imagem_apos_mediana(:,:,2)  = d;

imagem_apos_mediana(:,:,3)  = e;

figure,imshow(imagem_apos_mediana);

A Figura 8 ilustra o resultado obtido após a aplicação do filtro da mediana, para uma vizinhança 3x3, utilizando-se uma imagem com ruído do tipo salt&pepper de densidade 0.02.

Figura 44 - Imagem com ruído Salt&Pepper após a aplicação do filtro da mediana

Observou-se que após a aplicação do filtro da mediana na Figura 2 não é possível observar a presença de ruídos na imagem resultante.

A Figura 45 ilustra o resultado obtido após a aplicação do filtro da mediana em uma imagem com ruído do tipo gaussian. Observou-se que, para esse tipo de ruído, o filtro da média obteve uma pequena melhoria em relação aos resultados obtidos pela aplicação do filtro da mediana. A Figura 42 apresenta uma maior nitidez que a Figura 45.

Figura 45 -  Imagem com ruído Gaussian após a aplicação do filtro da mediana

 

Aplicando-se o filtro da mediana na Figura 40, foi obtido o resultado abaixo ilustrado pela Figura 10:

Figura 46 -  Imagem com ruído Speckle após a aplicação do filtro da mediana

 

Foi observado que após a utilização do filtro da mediana para o ruído do tipo speckle, a imagem final obtida apresenta uma grande quantidade de poluição.


 

4. Discussão

Questões importantes a serem levantadas, são:

Representação YUV

Um ponto importante que nos trouxe dificuldade foi a representação dos dados das imagens durante as transformações do sistema RGB para YUV. Visto que os dados armazenados em RGB são do tipo inteiro, enquanto no sistema YUV, os dados são do tipo ponto flutuante, o que leva a uma perda de precisão nas transformações de YUV para RGB caso se armazene a imagem YUV na mesma estrutura de dados de uma para RGB.

Um erro cometido foi aplicar a transformação para YUV e armazenar-la as três bandas em um BufferedImage de modo a permitir que outros filtros continuassem recebendo BufferedImage como parâmetro. Tal abordagem é incorreta por levar a perdas de precisão. A solução utilizada foi armazenar as bandas UV em matrizes auxiliares de Double e armazenar um BufferedImage so com o Y, a qual pode ser trabalhada pelos outros métodos.

Remoção de Ruidos

Na fase de testes da remoção de ruídos utilizando os filtros da média e da mediana foi observado que embora a mediana produza melhores resultados, foi constatado que nos casos em que a densidade de ruído é muito pequena, o filtro da média é capaz de obter bons resultados.

Observou-se que as imagens contaminadas por ruído do tipo gaussian o filtro da média obteve uma discreta melhora em relação ao da mediana.

Desvio Padrão

Qual formula utilizar para o calculo do desvio padrão? O estimado, calculado, ou?

5. Conclusão

No desenvolvimento deste trabalho, chegou-se às seguintes conclusões:

Manipulação em YUV

Que as modificações na banda Y do sistema YUV de uma imagem influencia diretamente na luminosidade de suas cores, e não em suas cores em si.

Remoção de ruídos

Que a remoção de ruídos é mais adequada com o uso do filtro da mediana.

Detalhes de linguagem

Que a linguagem MATLAB oferece melhores facilidades na manipulação de matrizes, e consequentimente na melhor manipulação de imagens.

6. Referências

Vital, L. (2005). Notas de Aula da disciplina Introdução ao Processamento Digital de Imagens.

http://www.datalyzer.com.br/site/suporte/administrador/info/arquivos/info54/54.html

Acessado em 13/06/2009

Comentários
Pesquisar
Somente usuários registrados podem escrever comentários!

!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved."