Sunteți pe pagina 1din 9

Representao de imagens digitais

Imagem binria ou monocrom/ca: Imagem em nveis de cinzas: Imagem colorida:

Digitalizao de uma imagem


Uma imagem digital (bitmap) pode ser ob/da atravs dos processos de AMOSTRAGEM e QUANTIZAO AMOSTRAGEM Consiste em denir a quan/dade de amostras (pixels) da imagens QUANTIZAO Consiste em denir o /po de dado u/lizado para representar cada amostra da imagem. Tambm chamamos de profundidade da imagem a quan/dade de bits u/lizado para representa cada pixel da imagem.

Sistema de processamento de imagens

Aquisio: Adquirir uma imagem de entrada para o sistema Pr-processamento: Corrigir imperfeies da imagem de entrada Segmentao: Segmentar (encontra) regies de interesse na imagem ob/da pela etapa de pr-processamento Descrio e interpretao: Extrair atributos (informaes) das regies segmentadas da etapa anterior e representa-los por alguma estrutura de dados Reconhecimento e interpretao: Reconhecer os atributos das regies segmentadas e os interprete de alguma forma.

Implementando algoritmos de processamento de imagens (Tons de cinza)


Uma imagem pode ser representada por uma matriz bidimensional

Criando uma nova imagem int imgNova[][] = new int[100][100]; //imagem de tamanho 100x100 Lendo uma imagem de um arquivo int img[][] = ImagemU/l.abriImagemTonsDeCinza(c:/nomeDaImagem.png); Adquirindo o tamanho da largura e da altura da imagem int largura = ImagemU/l.pegarLargura(img); int altura = ImagemU/l.pegarAltura(img); Salvar uma imagem ImagemU/l.SalvarImagem(img, qualquerNome.png); Visualizar uma imagem em uma janela ImagemU/l.visualizarImagem(img, um /tulo para janela);

Percorrendo uma imagem

int img[][] = ImagemUMl.abrirImagemTonsDeCinza(caminho); int largura = ImagemUMl.pegarLargura(img); int altura = ImagemUMl.pegarAltura(img); for(int x=0; x < largura; x++){ for(int y=0; y < altura; y++){ //agora eu posso acessar o valor de cada pixel => img[x][y] } }

Implementando algoritmos de processamento de imagens (RGB)


Uma imagem pode ser representada por uma matriz tridimensional

Criando uma nova imagem int imgNova[][][] = new int[100][100][3]; //imagem de tamanho 100x100 Lendo uma imagem de um arquivo int img[][][] = ImagemU/l.abriImagemColorida(c:/nomeDaImagem.png); Adquirindo o tamanho da largura e altura da imagem int largura = ImagemU/l.pegarLargura(img); int altura = ImagemU/l.pegarAltura(img); Salvar uma imagem ImagemU/l.SalvarImagem(img, qualquerNome.png); Visualizar uma imagem em uma janela ImagemU/l.visualizarImagem(img, um /tulo para janela);

Percorrendo uma imagem

int img[][] = ImagemUMl.abrirImagemTonsDeCinza(caminho); int largura = ImagemUMl.pegarLargura(img); int altura = ImagemUMl.pegarAltura(img); for(int x=0; x < largura; x++){ for(int y=0; y < altura; y++){ for(int banda=0; banda < 3; banda++){ //RGB => banda = 0 (R), 1(G), 2(B) //agora eu posso acessar o valor de cada pixel => img[x][y][banda] } } }

S-ar putea să vă placă și