Computação Gráfica - BolinhaBolinha

9
1 Computação Gráfica Visao Computacional Prof. Rodrigo Rocha [email protected] Visão Huma na e Compuacional Visão Computacional Área que é a combinação de conceitos, técnicas e idéias do processamento de imagens digitais Entender, Obter informações, Descrever imagens digitais capturadas através de algum dispositivo Imagem é examinada e processada pela combinação de computador e aplicação Duas grandes áreas Realce de imagem Análise de imagens

Transcript of Computação Gráfica - BolinhaBolinha

Page 1: Computação Gráfica - BolinhaBolinha

1

Computação Gráfica

Visao Computacional

Prof. Rodrigo [email protected]

Visão Huma na e Compuacional

Visão Computacional

• Área que é a combinação de conceitos, técnicas e idéias do processamento de imagens digitais

• Entender, Obter informações, Descrever imagens digitais capturadas através de algum dispositivo

• Imagem é examinada e processada pela combinação de computador e aplicação

• Duas grandes áreas

Realce de imagem

Análise de imagens

Page 2: Computação Gráfica - BolinhaBolinha

2

Algumas áreas de utilização

Reconhecimento de Caracteres

Processamento de documentos

Comércio (verificação de assinatura)

Biométrico (autenticação pela face, digital, Iris, etc.)

Identificação de movimento

Inspeção automática de produtos na linha de produção

Biomedicina (diagnósticos e cirurgia)

Militar: Vigilância e identificação de alvos

Navegação (robôs e veículos)

Geoprocessamento

Segurança: Visão Noturna

Treinamento

Realidade virtual

Representação da Imagem

Daqui em diante, o termo imagem será utilizado para imagem digital

São representadas através de vetores ou matrizes

Um pixel na posição (x,y) corresponde ao “brilho” daquela posição

Existem quatro tipos de representação da imagem

• Binária

• Escala de cinza

• Imagem colorida

• Multiespectral

Page 3: Computação Gráfica - BolinhaBolinha

3

Imagem Binária

Tipo mais simples

Também conhecida como imagem branco e preto• Só existem dois valores 0 - branco e 1 – preto para cada pixel na

imagem

São normalmente utilizadas em situações onde existam formas básicas, contornos ou necessito de informações de posição• Ex: Reconhecimento de caracteres, braço robótico para pegar objetos

Podem ser facilmente obtidas através de imagens em escala de cinza utilizando o processo de threshold

Escala de Cinza

Contém mais informações do que as imagens binárias

Imagens de tons de cinza somente contém informação do brilho.

Normalmente, é uma imagem de 8bits, o que cria uma faixa de tons de cinza entre 0 e 256

Esse tipo de imagem pode conter algum tipo de “ruído”

Page 4: Computação Gráfica - BolinhaBolinha

4

Imagem Colorida

Imagens coloridas têm conjunto de dados monocromáticos, cada um corresponde a uma cor diferente

Normalmente as três cores são vermelho, verde e azul (RGB)

Cada uma das três cores contém 8bits de dados, No total uma imagem RGB têm 24bits de cor.

Para cada posição em uma imagem RGB, um pixel corresponde a uma cor no vetor (R,G,B)

Multiespectral Imagem

Tipicamente contém informações que não são perceptíveis pelos humanos

Contém mais de 30 conjuntos

Estas imagens não podem ser visíveis diretamente para o ser humano, entretando podem ser reduzidas para RGB e assim podem ser vistas.

Exemplos: Infravermelho, Ultra violeta• Imagens de Satélites, imagens de sonar,

Page 5: Computação Gráfica - BolinhaBolinha

5

Imagem adquirida por uma cãmera CCD

Histograma

Útil para análise e realce de imagem

Para cada nível de contraste (cinza) de 0 branco a 255 preto, mostra a quantidade de pixels naquele nível

Indica:

• Imagem está distribuída corretamente dentre os níveis (está equalizada)

Equalização

• Obter o melhor contraste da imagem

Applet

• http://www.imageprocessingbasics.com/index.php?page=applet3

Page 6: Computação Gráfica - BolinhaBolinha

6

Propriedades do Histograma

Pouco espalhamento

• Baixo contraste

Espalhamento significativo

• Alto Contraste

Concentrado na extremidade baixa

• Imagem escura

Concentrado na extremidade alta

• Imagem clara

Histograma (Exemplos)

Page 7: Computação Gráfica - BolinhaBolinha

7

Histograma (Exemplos)

Histograma (Exemplos)

Page 8: Computação Gráfica - BolinhaBolinha

8

Lendo os Pixels de uma imagempublic static void main(String[] args) {

// TODO code application logic here

File inputFile = new File("C:/lixo/aa.jpg");

BufferedImage image = null;

try {

image = ImageIO.read(inputFile);

} catch (IOException ex) {

System.out.println(ex);

}

String imageInfo = "Dimensoes: " + image.getWidth() + "x" +

image.getHeight() + " Bands: " +

image.getRaster().getNumBands();

ImageIcon icon = new ImageIcon(image);

JLabel imageLabel = new JLabel(icon);

JFrame frame = new JFrame();

frame.setTitle(“Imagem Lida");

Container contentPane = frame.getContentPane();

contentPane.setLayout(new BorderLayout());

contentPane.add(new JScrollPane(imageLabel),

BorderLayout.CENTER);

contentPane.add(new JLabel(imageInfo),

BorderLayout.SOUTH);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(400, 400);

frame.setVisible(true);

//Pegando os pixels da imagem

int width = image.getWidth();

int height = image.getHeight();

int nbands = image.getSampleModel().getNumBands();

Raster inputRaster = image.getData();

int[] pixels = new int[nbands * width * height];

inputRaster.getPixels(0, 0, width, height, pixels);

for (int h = 0; h < height; h++) {

for (int w = 0; w < width; w++) {

int rgb = image.getRGB(w, h);

int r = (int) ((rgb & 0x00FF0000) >>> 16); // Redlevel

int g = (int) ((rgb & 0x0000FF00) >>> 8); // Green level

int b = (int) (rgb & 0x000000FF); // Blue level

System.out.print("at (" + w + "," + h + "): ");

System.out.println(r + "," + g + "," + b);

}

}

}

Questões

1-) Como é feito o processo de digitalização de um filme analógico para digital?

2-) Qual a diferença entre câmeras CCD e CMOS?

3-) Descreva os tipos mais comuns de formato de arquivos?

4-) Escolha uma área onde o processamento de imagem possa ser utilizado (ex: medicina) e descreva com detalhes como é feito esse processo (técnicas utilizadas)?

5-) Como é feita a detecção de faces e sorrisos utilizadas nas máquinas fotográficas atuais?

6-) Implemente o histograma de imagens em Java.

Page 9: Computação Gráfica - BolinhaBolinha

9

Bibliografia

Livro texto (Programa do Livro texto - PLT)• FORBELLONE, A. Lógica de Programação. São Paulo: Pearson,

2005“

Complementar• CORMEN, Thomas H. Algoritmos: teoria e prática. 1.ed. Rio de

Janeiro: CAMPUS, 2002.

• MANZANO, J. A. N. G. Algoritmos: lógica para desenvolvimento de programação. 1.ed. São Paulo: Erica, 1996.

• ASTÊNCIO, A .F.G.; CAMPOS, E.D.. Fundamentos da Programação de Computadores. 1.ed. São Paulo: PRENTICE HALL BRASIL, 2002.