25
www.imageprocessingbook.com 04 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Convenções de coordenadas: (a) da maioria dos livros (b) no Image Processing Toobox (IPT - MATLAB) (a) (b)

Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

Embed Size (px)

Citation preview

Page 1: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

Convenções de coordenadas: (a) da maioria dos livros (b) no Image Processing Toobox (IPT - MATLAB)

(a) (b)

Page 2: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

Alguns formatos gráficos/imagem suportados pelo MATLAB.

Page 3: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®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);

Page 4: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®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

Page 5: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®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.

Page 6: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

Janela mostrando como uma imagem aparece no MATLAB.Contudo, na maioria dos exemplos somente imagens serão mostradas.

Page 7: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®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

Page 8: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®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).

Page 9: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

(a) Uma imagem, h, com baixo intervalo dinâmico.(b) resultado usando imshow (h, [ ]).

Page 10: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

(a) Imagem original(b) a (f) resultado usando valor de qualidade jpg q = 50, 25, 15, 5, 0, respectivamente.

Page 11: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

• Para se ter idéia da compressão e obter outros detalhes do arquivo de imagem, usa-se 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].

Page 12: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®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.

Page 13: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

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.

Page 14: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

Classe de dados

Page 15: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

Funções do IPT para converter classes de imagens e tipos

Page 16: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

• 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).

TIPOS DE IMAGEM

Page 17: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2: FundamentalsChapter 2: Fundamentals

(a) Imagem original(b) Flip vertical(c) Recorte (d) Subamostragem(e) Linha de valores na imagem original

Page 18: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Operações aritméticas em imagens. Ex: A + B

Page 19: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

Funções aritméticas suportadas pelo IPT.

Page 20: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

Operadores relacionais

Operadores lógicos

Page 21: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

Funções lógicas

Page 22: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

Algumas funções que retornam valor lógico 1 ou 0.

Page 23: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

Algumas variáveis e constantes importantes.

Page 24: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

Comandos de controle de fluxo

Page 25: Www.imageprocessingbook.com © 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins Digital Image Processing Using MATLAB ® Chapter 2 Fundamentals Chapter

www.imageprocessingbook.com© 2004 R. C. Gonzalez, R. E. Woods, and S. L. Eddins

Digital Image Processing Using MATLAB®Digital Image Processing Using MATLAB®

Chapter 2Fundamentals

Chapter 2Fundamentals

Imagem senoidal.