Digital Image Processing Using MATLAB® Chapter 2 Fundamentals (a) (b) Convenções de coordenadas: (a) da maioria dos livros (b) no Image Processing Toobox (IPT - MATLAB) © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals Alguns formatos gráficos/imagem suportados pelo MATLAB. © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® • Leitura de imagens imread (‘filename’) f = imread (‘chestxray.jpg’); • A função size fornece as dimensões em linha e coluna de uma imagem size (f) ans = 1024 1024 • Essa função é útil também quando usado na seguinte forma: [M, N] = size (f); © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® • A função whos mostra informações adicionais sobre a imagem; whos f Name Size Bytes Class f 1024x1024 1048576 uint8 array Grand total is 1048576 elements using 1048576 bytes © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® imshow (f, G) MOSTRA A IMAGEM onde f é o nome da matriz de imagem e G é o número de níveis de intensidade, usado para mostrá-la. Se G é omitido, o default é 256. imshow (f, [low high]) mostra como preto todos os valores abaixo de low e em branco todos os valores acima de high. imshow (f,[ ]) low passa a ser o menor valor de intensidade de pixel na matriz de imagem e high passa a ser o maior valor. Essa forma é útil para mostrar imagens com baixo intervalo dinâmico ou que tenha valores positivos e negativos. pixval mostra um cursor sobre a última imagem mostrada, as coordenadas e a intensidade do pixel correspondente ao cursor na base da imagem. Clicando sobre o X, o cursor desaparece. © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals Janela mostrando como uma imagem aparece no MATLAB. Contudo, na maioria dos exemplos somente imagens serão mostradas. © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® • Se uma outra imagem g é mostrada usando imshow, a anterior é substituída. • Para manter a imagem anterior e mostrar uma segunda imagem, usar a função figure: figure, imshow(g) • Se usar imshow(f), figure, imshow(g) mostra as duas imagens © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® • Escrevendo imagens imwrite (f, ‘filename’) imwrite (f,’patient10_run1’,’tif’) ou imwrite(f,’patient10_run1.tif’) Uma sintaxe mais aplicável somente em imagens JPEG é imwrite (f,’filename.jpg’,’quality’,q) onde q é um inteiro entre 0 e 100 (menor o númeor, maior é a degradação devido à compressão JPEG). © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals (a) Uma imagem, h, com baixo intervalo dinâmico. (b) resultado usando imshow (h, [ ]). © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals (a) Imagem original (b) a (f) resultado usando valor de qualidade jpg q = 50, 25, 15, 5, 0, respectivamente. © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® • Para se ter idéia da compressão e obter outros detalhes do arquivo de imagem, usase a função imfinfo, com a sintaxe imfinfo filename Uma forma geral de escrita para o formato tif é dada por imwrite (g, ‘filename.tif’,’compression’, ‘parameter’,... ‘resolution’,[colres rowres]) onde ‘parameter’ pode ter um dos seguintes valores: ‘none’ se não tiver compressão, ‘packbits’ indica compressão packbits (default para imagens não-binárias), e ‘ccitt’ indica compressão ccitt (default para imagens binárias). [colres rowres] indicam resolução de coluna e de linha em dots-per-unit (o valor default é [72 72]). Se a imagem é em polegadas, colres é o número de dots (pixels) por inch (dpi) na direção vertical e rowres na direção horizontal. Se representar usando um único escalar res significa [res res]. © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® • A fig. 2.5(a) é uma imagem de raios-X de 8 bits de um circuito impresso gerado durante uma inspeção de qualidade, no formato jpg, a 200 dpi. • A imagem é de tamanho 450x450 pixels, tal que a sua dimensão é de 2.25x2.25 polegadas2. • Queremos armazenar essa imagem no formato tif, sem compressão, com o nome sf. Queremos reduzir o tamanho da imagem para 1.5x1.5 polegadas2, mantendo o número de pixels de 450x450. • O seguinte comando gera o resultado desejado: imwrite(f, ‘sf.tif’,’compression’,’none’,’resolution’,[300 300]) • O valor do vetor [colres rowres] foi obtido multiplicando 200 dpi pela razão 2.25/1.5 que resulta em 300 dpi. © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals Efeitos de alteração da resolução dpi mantendo o número de pixels. (a) 450x450 a 200 dpi tamanho = 2,25 x 2,25 pol. (b) 450x450 a 300 dpi tamanho = 1,5 x 1,5 pol. © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals Classe de dados © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals Funções do IPT para converter classes de imagens e tipos © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® TIPOS DE IMAGEM • Imagens de intensidade É uma matriz de dados cujos valores representam a intensidade. Quando os elementos de uma imagem são da classe uint8, ou uint16, os valores estão no intervalo [0,255] e [0, 65535], respectivamente. Se uma imagem é de classe double, os valores são números ponto-flutuante, e estão escalados no intervalo [0,1]. • Imagens binárias uma matriz numérica A pode ser convertida em imagem binária B usando a função logical B = logical (A) Se A contem elementos diferentes de 0s e 1s, a função logical converte todos os valores não-zero em valor lógico 1 e todos os valores numéricos 0 em valores lógicos 0. • Para testar se uma matriz C é binária, usa-se a função islogical islogical (C). © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2: Fundamentals (a) (b) (c) (d) (e) © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Imagem original Flip vertical Recorte Subamostragem Linha de valores na imagem original www.imageprocessingbook.com Digital Image Processing Using MATLAB® Operações aritméticas em imagens. Ex: A+B © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals Funções aritméticas suportadas pelo IPT. © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals Operadores relacionais Operadores lógicos © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals Funções lógicas © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals Algumas funções que retornam valor lógico 1 ou 0. © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals Algumas variáveis e constantes importantes. © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals Comandos de controle de fluxo © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com Digital Image Processing Using MATLAB® Chapter 2 Fundamentals Imagem senoidal. © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins www.imageprocessingbook.com