TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Faculdade de Filosofia Ciências e Letras de Cajazeiras – FAFIC

Por:   •  3/12/2018  •  Trabalho acadêmico  •  1.319 Palavras (6 Páginas)  •  352 Visualizações

Página 1 de 6

Faculdade de Filosofia Ciências e Letras de Cajazeiras – FAFIC

Processamento de Imagem – PDI

Relatório – Projeto

Aluno: Francisco César da Silva Filho

Cajazeiras – Paraíba

2018

  1. Introdução

Neste breve relatório consta uma descrição dos métodos criados para o primeiro projeto da disciplina de Processamento de Imagem(PDI). Esta é a primeira versão do projeto onde ocorrerá evolução do sistema desenvolvido, adicionando novas funcionalidades ao decorrer da disciplina.

  1. Descrição dos métodos da classe MetodosImagem
  1. filtroRed(BufferedImage image, String caminho)

Este método retira todo o G e o B deixando a imagem avermelhada, ele possuí como retorno um BufferedImage.

  1. filtroBlue(BufferedImage image, String caminho)

Este método retira todo o R e o G deixando a imagem azulada, ele possuí como retorno um BufferedImage.

  1. filtroGreen(BufferedImage image, String caminho)

Este método retira todo o R e o B deixando a imagem esverdeada, ele possuí como retorno um BufferedImage.

  1. negativoRGB(BufferedImage image, String caminho)

Este método pega o máximo de cada cor e retira o atual, resultando assim o negativo RGB da imagem, ex:

Color cor = new Color(image.getRGB(i, j));

int red = 255 - cor.getRed();

Onde a variável red está recebendo o negativo da mesma.

  1. imagemPreta(BufferedImage imagem, String caminho)

Este método é simples, como o RGB do preto é [0, 0, 0], então apenas se percorre a imagem e “seta” esse RGB em todos os pixels tornando ela preta.

  1. imagemBranca(BufferedImage imagem, String caminho)

Este método também é simples, como o RGB  do branco é [255, 255, 255], então apenas se percorre a imagem e “seta” este RGB para todos os pixels tornando ela branca.

  1. Escalas de Cinza
  1. Conceito:

A escala de cinza pode ser calculada de 4 maneiras, pela média, como no método escalaDeCinzaViaMedia(BufferedImage imagem, String caminho); onde este calcula a média entre o Red, Blue e Green, e com esta média ele seta novos valores no RGB, esses novos valores são essa média calculada.

Também temos o calculo da escala de cinza a partir do Red, pelo método: escalaDeCinzaViaRed(BufferedImage imagem, String caminho), o qual pega o valor do red e seta igualmente tanto para o R tanto pra o G e B, deixando assim a imagem em escala de cinza. Os métodos escalaDeCinzaViaBlue(BufferedImage imagem, String caminho) e escalaDeCinzaViaGreen(BufferedImage imagem, String caminho) seguem essa mesma linha de raciocínio mudando apenas o operador de Red para Blue ou Green.

  1. rgbParaYiq(BufferedImage imagem)

Este método possuí como retorno uma matriz tridimensional, a qual possuí os dados de Y, I e Q, nesse caso os pixels referente a Y, I e Q. Exemplo:

Matriz[i][j][0] (referente a Y)

Matriz[i][j][1] (referente a I)

Matriz[i][j][2] (referente a Q)

  1. yiqParaRgb(double[][][] matriz, String caminho)

Este método recebe a matriz do método rgbParaYiq, e com isso transforma os dados resultantes em uma BufferedImage do tipo RGB, retornando a mesma no formato RGB.

  1. negativoEmY(BufferedImage image, String caminho)

Para o negativo em Y nós utilizamos o método rgbParaYiq para recuperar a matriz e com ele utilizamos da seguinte forma:

                    matriz[i][j][0] = 255 - matriz[i][j][0];

Para realização do negativo em Y, trabalhamos apenas com a diminuição do total que é 255 pelo atual da matriz Y, que nesse caso é matriz[i][j][0]; resultando assim no negativo.

Projeto 2

  1. limiarizacao(BufferedImage image, int limiar, String caminho)

Este método calcula o limiar de uma imagem através da mesma em escala de cinza, ele retorna a imagem no tipo BufferedImage.

  1. brilhoAdd(BufferedImage imagem, int c, String caminho)

Este método aumenta o brilho conforme o usuário quer, no mínimo 0 e no máximo 255. O brilho é adicionado a partir da variável int c na qual pouco a pouco é somado no red, green e blue dos pixels.

  1. brilhoAddY(BufferedImage image, int c, String caminho)

Este método aumenta o brilho conforme o usuário quer, no mínimo 0 e no máximo 255. O brilho é adicionado a partir da variável int c na qual pouco a pouco é somado a partir da conversão da imagem para YIQ que nos retornará uma matriz, e com ela realizaremos a soma. Exemplo:

A cada pixel iremos somar a matriz[i][j][0] a variável int c.

  1. brilhoMtt(BufferedImage image, int c, String caminho)

Este método aumenta o brilho conforme o usuário quer, no mínimo 0 e no máximo 255. O brilho é adicionado a partir da variável int c na qual pouco a pouco é multiplicado no red, green e blue dos pixels.

  1. brilhoMttY(BufferedImage image, int c, String caminho)

Este método aumenta o brilho conforme o usuário quer, no mínimo 0 e no máximo 255. O brilho é adicionado a partir da variável int c na qual pouco a pouco é multiplicado  a partir da conversão da imagem para YIQ que nos retornará uma matriz, e com ela realizaremos a multiplicação. Exemplo:

A cada pixel iremos multiplicar a matriz[i][j][0] a variável int c.

  1. interpolacaoImagens(BufferedImage imagem1, BufferedImage imagem2)

Este método recebe duas imagens e coloca uma dentro da outra, assim interpolando as duas.

  1. operacaoLocalMedia(BufferedImage imagem, String caminho)

Este método cria um filtro a partir da média dos pixels locais de uma área 3x3. Realiza uma soma de todos esses pixels dessa área e realiza a média e aplica no pixel em questão. Realiza para imagens em escala de cinza.

...

Baixar como (para membros premium)  txt (9 Kb)   pdf (139.6 Kb)   docx (15.7 Kb)  
Continuar por mais 5 páginas »
Disponível apenas no TrabalhosGratuitos.com