matrizes e imagens - portal do · pdf filematrizes •matrizes tridimensionais são...
Post on 07-Nov-2018
236 views
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;