matrizes e imagens - portal do .matrizes •matrizes tridimensionais s£o...

Download Matrizes e Imagens - Portal do .Matrizes •Matrizes tridimensionais s£o semelhantes  s matrizes

Post on 07-Nov-2018

231 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Matrizes e Imagens

    Estruturas de DadosProf. Vilson Heck Junior

  • Apresentao

    Matrizes:

    Conceitos;

    Criando e manipulando matrizes;

    Imagens:

    Classe para imagens;

    Iterando sobre uma imagem;

    Atividade Prtica.

  • CONCEITOS DE MATRIZESMatrizes e Imagens

  • Matrizes

    Matrizes bidimensionais sosemelhantes aos vetores (arrays) com adiferena que podem possuir 2 ou maislinhas:

    Matriz bidimensional 6x5:

  • Matrizes Matrizes tridimensionais so

    semelhantes s matrizes bidimensionais,porm podem possuir 2 ou mais nveisde profundidade:

    Matriz tridimensional 4x6x5:

  • Matrizes

    Matrizes podem ainda sermultidimensionais, podendo possuirqualquer nmero de dimensionalidade,sendo estas mais abstratas:

    Matriz multidimensional: 3x4x3x2

    ... ...

  • Matrizes

    Mas como representar uma estruturacom 2, 3 ou mais dimenses namemria, sendo que ela possu apenas 1dimenso?

    Existem 2 formas:

    Criando intervalos entre cada dimenso; ou

    Criando um array de arrays.

  • MATRIZES EM JAVAMatrizes e Imagens

  • Matrizes Regulares

    Criao em Java:int largura = 4;

    int altura = 4;

    int[][] matriz = new int[altura][largura];

    Tridimensional:int prof = 5;

    int[][][] matriz3D = new int[altura][largura][prof];

  • Matrizes Regulares

    Acesso/Atribuio:

    Bidimensional:

    matriz[linha][coluna] = valor;

    retorno = matriz[linha][coluna];

    Tridimensional:

    matriz3D[linha][coluna][camada] = valor;

    retorno = matriz3D[linha][coluna][camada];

  • Matrizes Regulares

    Prtica:int largura = 4;

    int altura = 4;

    int[][] matriz = new int[altura][largura];

    for (int linha = 0; linha < altura; linha++) {

    for (int coluna = 0; coluna < largura; coluna++) {

    matriz[linha][coluna] = (linha + 1) * (coluna + 1);

    System.out.print("\t" + matriz[linha][coluna]);

    }

    System.out.println("");

    }

  • IMAGENSMatrizes e Imagens

  • Imagens

    Uma imagem digital o emprego maiscomum de uma matriz em umcomputador;

    Cada elemento da matriz em umaimagem denominado pixel; (pictureelement)

    Cada pixel descreve, de alguma formaapropriada, uma cor para aquele pontoda imagem.

  • Imagens

    O pixel format (formato do pixel) maiscomum usado em imagens o RGB Red (vermelho), Green (verde) e Blue(azul);

    A combinao destas cores devepossibilitar a gerao quaisquer outrascores;

  • Imagens

    Cores em RGB:

  • Imagens

    Cubo RGB:

  • Imagens

    Apesar de imagens serem manipuladasna memria atravs de matrizes,geralmente so gravadas em arquivos;

    Para facilitar nossa vida, o Java j possuiuma classe pronta para fazer a aberturade um arquivo de imagem, bem comomanipular esta imagem:

    java.awt.image.BufferedImage;

  • IMAGENS - PRTICA

    Matrizes e Imagens

  • Imagens - Prtica

    1. Crie um novo Projeto:

    1. Java - Console;

    2. Nome: Imagens;

    2. Salve este projeto em uma pasta de sua preferncia.

  • Imagens - Prtica

    3. Abra o Microsoft Paint;

    4. Crie uma nova imagem com:1. 256x256 pixels;

    2. Fundo branco;

    5. Desenhe algumas formas em preto;

    6. Salve este arquivo com o nome teste.bmp;

    1. Dentro da pasta C:\Temp;1. Crie a pasta, se necessrio;

    2. Com o tipo de arquivo: Bitmap de 24 bits;

  • Imagens - Prtica

    Exemplo de imagem gerada:

  • Imagens - Prtica

    7. Volte ao seu projeto no Netbeans e:

    1. Importe os seguintes packages:

    1. import javax.imageio.*;

    2. import java.awt.image.*;

    3. import java.awt.*;

    4. import java.io.*;

    2. Implemente o cdigo main do prximo slide.

  • BufferedImage img = null;try {

    img = ImageIO.read(new File("c:\\Temp\\teste.bmp"));for (int x = 0; x < img.getWidth(); x++) {

    for (int y = 0; y < img.getHeight(); y++) {Color cor, novacor;cor = new Color (img.getRGB(x, y));int r = cor.getRed();int g = cor.getGreen();int b = cor.getBlue();if (r == 0 && g == 0 && b == 0) {

    novacor = new Color(255, 0, 0);} else {

    novacor = new Color(r, g, b);}img.setRGB(x, y, novacor.getRGB());

    }}File outputfile = new File("C:\\Temp\\saida.bmp");ImageIO.write(img, "bmp", outputfile);

    } catch (Exception e) {System.out.println(e.getMessage());

    }

  • Exerccios

    1. Pesquise e faa seu programa converter umaimagem colorida para tons de cinza;

    2. Pesquise e faa seu programa inverter ascores de uma imagem colorida;

    3. Pesquise e faa seu programa converter umaimagem colorida para spia;