Tópico 0 - Introdução a Imagens Digitais - Unicampjbflorindo/Teaching/2017/MT530/... ·...
Transcript of Tópico 0 - Introdução a Imagens Digitais - Unicampjbflorindo/Teaching/2017/MT530/... ·...
Topico 0 - Introducao a Imagens Digitais
Joao B. Florindo
Instituto de Matematica, Estatıstica e Computacao CientıficaUniversidade Estadual de Campinas - Brasil
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 1 / 30
Imagens Digitais
Outline
1 Imagens Digitais
2 Operacoes Basicas
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 2 / 30
Imagens Digitais
Imagens
Imagens sao usadas como um poderoso meio de expressao desde osprimordios da civilizacao1
1Varias das imagens aqui expostas foram retiradas do curso disponıvel emhttp://iris.sel.eesc.usp.br/sel886
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 3 / 30
Imagens Digitais
Imagens
Uma imagem vale mais que mil palavras!
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 4 / 30
Imagens Digitais
Imagens
Conceito de imagem digital surge no inıcio do seculo passado quandofotografias passam a ser transmitidas por telegrafos (Exemplo abaixo de1921)
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 5 / 30
Imagens Digitais
Imagens Digitais
Uma imagem digital e uma funcao
f (x , y)
em que (x , y) sao as coordenadas espaciais, discretas, inteiras e, porconvencao, positivas (nao-negativas).
Cada ponto com coordenada (x , y) e chamado de pixel (Picture Element)
A magnitude de f (x , y) e chamada de nıvel de cinza ou intensidade decor do pixel. Sao valores, discretos, reais e nao-negativos.
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 6 / 30
Imagens Digitais
Imagens Digitais
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 7 / 30
Imagens Digitais
Imagens Digitais
Amostragem
Discretizacao das coordenadas espaciais.Ex.:
x = 1, 2, 3, . . . , 256 y = 1, 2, 3, . . . , 256
Diz-se que esta imagem tem tamanho (ou resolucao) 256× 256.
Quantizacao
Discretizacao da magnitude de f (x , y).Ex.: Supor que f (x , y) pode assumir os seguintes valores inteiros:
0, 1, 2, . . . , 255
Diz-se que esta imagem tem 256 nıveis de cinza (ou de cor).
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 8 / 30
Imagens Digitais
Imagens Digitais
Convencao de eixos utilizada em (a) Processamento de Imagens e (b)Computacao Grafica
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 9 / 30
Imagens Digitais
Imagens Digitais
A esquerda, convencao usada em C, Java, etc. A direita, convencao usadaem Matlab/Octave/Scilab
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 10 / 30
Imagens Digitais
Resolucao Espacial
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 11 / 30
Imagens Digitais
Resolucao em Nıveis de Cinza
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 12 / 30
Imagens Digitais
Resolucao em Nıveis de Cinza
Resolucao em nıveis de cinza esta relacionada ao numero de valoresdistintos que podem ser atribuıdos a cada pixel.
Usualmente se refere ao numero de bits necessarios para expressar osnıveis de cinza. Ex.: Imagem 8 bits - Nıveis 0, 1, 2, . . . , 255.
Tambem chamado de profundidade de cinza (ou de cor).
Imagens que possuem apenas dois nıveis de cinza (preto e branco) saochamadas de imagens binarias.
Imagens com maior resolucao e/ou profundidade exigem mais recursoscomputacionais para processamento.
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 13 / 30
Imagens Digitais
Adjacencia e Vizinhanca
Dois pixels que compartilham uma borda sao ditos adjacentes por bordaou 4-adjacentes.
Dois pixels que compartilham um vertice sao ditos adjacentes porvertice ou 8-adjacentes.
A vizinhanca de 4 de um pixel p com coordenadas (x , y) e o subconjuntode pixels 4-adjacentes mais o proprio p.
A vizinhanca de 8 de um pixel p com coordenadas (x , y) e o subconjuntode pixels 8-adjacentes mais o proprio p.
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 14 / 30
Imagens Digitais
Adjacencia e Vizinhanca
A esquerda, vizinhanca de 4, a direita, vizinhanca de 8
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 15 / 30
Imagens Digitais
Conectividade
Dois pixels sao conectados se
1 Sao adjacentes
2 Possuem nıveis de cinza similares sob algum criterio
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 16 / 30
Imagens Digitais
Metricas de Distancia
Dados dois pixels p com coordenadas (x1, y1) e q com coordenadas(x2, y2), temos aDistancia Euclideana:
De(p, q) =√
(x1 − x2)2 + (y1 − y2)2
Distancia City-Block (D4):
Dcb(p, q) = |x1 − x2|+ |y1 − y2|
Distancia Chessboard (D8):
Dch(p, q) = max{|x1 − x2|, |y1 − y2|}.
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 17 / 30
Imagens Digitais
Codigo
1 img = imread ( ’ l e n a . png ’ ) ;s i z e ( img )
3 img ( 1 : 5 , 1 : 5 )imshow ( img )
src/cap0/ex1.m
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 18 / 30
Operacoes Basicas
Outline
1 Imagens Digitais
2 Operacoes Basicas
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 19 / 30
Operacoes Basicas
Operacoes Basicas - Histogramas
Histogramas contam o numero de pixels com determinado nıvel de cinzana imagem.
Operacao fundamental na melhora do contraste e a equalizacao dehistograma.
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 20 / 30
Operacoes Basicas
Operacoes Basicas - Histogramas
Caso mais drastico:
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 21 / 30
Operacoes Basicas
Histogramas - Codigo
img = imread ( ’ l e n a . png ’ ) ;2 img = r g b 2 g r a y ( img ) ;
f i g u r e ; imshow ( img ) ;4 f i g u r e ; i m h i s t ( img ) ;
img = h i s t e q ( img ) ;6 f i g u r e ; imshow ( img ) ;
f i g u r e ; i m h i s t ( img ) ;
src/cap0/ex2.m
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 22 / 30
Operacoes Basicas
Operacoes Basicas - Binarizacao
Outra tecnica muito util, sobretudo em segmentacao e a binarizacao(thresholding): todos os pixels com intensidade menor que o limiarsetados para zero e os demais para um (ou qualquer outro valor definidocomo nıvel de cinza maximo).
Varias tecnicas para determinar limiar ideal. Matlab usa Otsu por padrao.
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 23 / 30
Operacoes Basicas
Operacoes Basicas - Histogramas
Exemplo de aplicacao:
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 24 / 30
Operacoes Basicas
Binarizacao - Codigo
1 img = imread ( ’ cameraman . png ’ ) ;t = g r a y t h r e s h ( img ) ;
3 img = im2bw ( img , t ) ;f i g u r e ; imshow ( img ) ;
src/cap0/ex3.m
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 25 / 30
Operacoes Basicas
Operacoes Basicas - Templates
Templates sao janelas que varrem a imagem fazendo uma operacao local(de vizinhanca) em cada pixel.
Cada elemento do template e multiplicado pelo pixel correspondente e asoma armazenada no pixel central.
Supondo uma janela w com 3× 3 pixels, a transformacao no pixel f (x , y)(posicao e abaixo) da imagem e feita como a seguir:
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 26 / 30
Operacoes Basicas
Operacoes Basicas - Templates
de modo que o pixel g(x , y) na imagem transformada sera dado por
g(x , y) = w1 ·a+w2 ·b+w3 ·c +w4 ·d +w5 ·e+w6 · f +w7 ·g +w8 ·h+w9 · i
Esta operacao e chamada de convolucao discreta. Exemplo tıpico deaplicacao sao os filtros.
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 27 / 30
Operacoes Basicas
Operacoes Basicas - Filtros
Filtros passa-baixas borram imagens ou eliminam ruıdos.
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 28 / 30
Operacoes Basicas
Operacoes Basicas - Filtros
Ja filtros passa-altas realcam bordas.
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 29 / 30
Operacoes Basicas
Filtro - Codigo
img = imread ( ’ cameraman . png ’ ) ;2
mask1 = ( 1 / 9 ) ∗ [ 1 1 1 ; 1 1 1 ; 1 1 1 ]4 img = conv2 ( img , mask1 ) ;
f i g u r e ; imshow ( img/max ( img ( : ) ) ) ;6
mask2 = ( 1 / 9 ) ∗[−1 −1 −1;−1 8 −1;−1 −1 −1]8 img = conv2 ( img , mask2 ) ;
f i g u r e ; imshow ( img/max ( img ( : ) ) ) ;
src/cap0/ex4.m
Joao B. Florindo Topico 0 - Introducao a Imagens Digitais 30 / 30