590 likes | 739 Views
Processamento de Imagem. Mestrado ISEP/IST em Eng. Electrotécnica e Computadores António Costa (acc@dei.isep.ipp.pt). Índice. Introdução Definições Ferramentas Amostragem Algoritmos Técnicas Conclusão Informação Adicional. Introdução. Designação. Entrada. Saída. Síntese de Imagem.
E N D
Processamento de Imagem Mestrado ISEP/IST emEng. Electrotécnica e Computadores António Costa (acc@dei.isep.ipp.pt)
Índice • Introdução • Definições • Ferramentas • Amostragem • Algoritmos • Técnicas • Conclusão • Informação Adicional Processamento de Imagem
Introdução Designação Entrada Saída Síntese de Imagem Descrição Imagem Processamento de Imagem Imagem Imagem Análise de Imagem Imagem Medidas Compreensão de Imagem Imagem Descrição • Processamento Digital de Imagem • Desde circuitos simples até sistemas computacionais • Enquadramento do Processamento de Imagem • Domínio de aplicação 2D (mais comum) Processamento de Imagem
Definições • Imagem • É uma função escalar a(x,y): intensidade de qualquer coisa traduzida num valor inteiro, real ou complexo • Uma imagem digital a[m,n] resulta de imagem analógica a(x,y) através de amostragem - digitalização • Uma imagem é formada por N linhas e M colunas, sendo cada elemento de imagem a[m,n] um pixel • Na realidade a função a() é a(x,y,z,t,,...), mas será abordado apenas o caso 2D, estático e monocromático Processamento de Imagem
Definições Colunas Linhas Valor = a(x,y,z,t,) • Exemplo • Imagem de 16 linhas e 16 colunas • Pixel em a[10,3] tem valor inteiro 110 (gama 0-255) Processamento de Imagem
Definições • Valores mais comuns • Nº de linhas N: 256, 512, 525, 625, 768, 1024, 1035 • Nº de colunas M: 256, 512, 768, 1024, 1320 • Nº de intensidades: 2, 64, 256, 1024, 65536, 224, 232 • Casos mais comuns: M=N=2K (K=8,9 ou 10)devido a tecnologias de hardware ou algoritmos (FFT) • O número máximo de intensidades é geralmente potência de 2 • Caso =2: imagem binária (“preto e branco”) • Caso >2: imagem “em tons de cinzento” Processamento de Imagem
Definições Pontual Local Global • Tipos de operações sobre imagens • Transformação de imagem a[m,n] em imagem b[m,n] • Pontual: o resultado num pixel apenas depende do valor do pixel de entrada correspondente • Local: o resultado num pixel depende dos valores da vizinhança de pixels de entrada próximos • Global: o resultado num pixel depende de todos os valores dos pixels de entrada • Exemplos Processamento de Imagem
Definições • Tipos de vizinhança de pixels • O conceito de vizinhança de pixels é muito importante • No caso mais comum de amostragem rectangular as vizinhanças mais usadas são a viz4 e a viz8 • Em alguns dispositivos é possível efectuar amostragem hexagonal, de que resulta a vizinhança viz6 • Exemplos Processamento de Imagem
Ferramentas • Convolução • Obedece ao princípio da sobreposição • Permite descrever a saída de um sistema linear, conhecidas a entrada e a função de transferência • Versão “discreta”c[m,n] = a[m,n] b[m,n] = j ka[j,k] b[m-j,n-k] • Correlação • Mede o grau de “similaridade” entre dois sinais • Versão “discreta”c[m,n] = a[m,n] b[m,n] = j ka[j,k] b[m+j,n+k] Processamento de Imagem
Ferramentas log(|A(,)|) Reconstruçãocom (,)=0 a[m,n] Reconstruçãocom log(|A(,)|)=k (,) • Transformada de Fourier • Versão “discreta” (DFT)A(,) = m na[m,n] e-j(m + n)a[m,n] = 1/42 A(,) e+j(m + n) d d • A transformada de uma imagem pode ser complexa • Exemplo Processamento de Imagem
Ferramentas a[m,n] P(a) - Intensidade h[a] - Intensidade • Estatísticas • É comum o uso de descrições estatísticas simples • A função densidade de probabilidade p(a) de uma região de pixels pode ser estimada por contagem das ocorrências de intensidade nessa região • Essa contagem pode ser descrita pelo histograma h[a] Processamento de Imagem
Ferramentas Média: 219.3Desvio padrão: 4.0Mínimo: 202Mediana: 220Máximo: 226Moda: 220SNR: 33.3 • Estatísticas • Média ma = 1/P j,ka[j,k](P - nº de pixels da região) • Desvio padrão sa= 1/(P-1) j,k(a[j,k] - ma)2 • Relação sinal/ruído SNR = 20log10((amax- amin) / sn) (sn - desvio padrão do ruído) • Exemplo Processamento de Imagem
Ferramentas Pi +7076666544556... • Representações de contorno • Chain codes • Seguimento do contorno em sentido horário com anotação das mudanças de direcção entre pixels sucessivos - exemplo • Crack codes • Seguimento da linha entreobjecto e fundo (crack) Processamento de Imagem
Ferramentas Indução de visualização de contornos inexistentes e contraste exagerado Indução de visualização de valores “cinzentos” que se sabe não existem e noção de dinamismo na imagem • Uma nota de aviso • Não é possível ainda modelar o sistema visual humano através das técnicas correntes de análise de sistemas • As ilusões ópticas não se enquadram nesses modelos URL: http://www.city.ac.uk/optics/BVTutor/html/ocular_movements_i.html Processamento de Imagem
Amostragem • Amostragem de imagem • Idealbideal[m,n] = m na(mX0,nY0) (x-mX0,y-nY0) • “Real”breal[m,n] = (a(x,y) p(x,y)) m n (x-mX0,y-nY0) • A função de abertura p(x,y) depende da tecnologia usada na captura da informação e é frequentemente: • Circular; Quadrada; Gaussiana • Deve escolher-se a densidade de amostragem com base na teoria de sinal clássica (teoria de Nyquist) Processamento de Imagem
AlgoritmosBaseados em operações de histograma • Alargamento do contraste • Muitas imagens são geradas com intensidades que não aproveitam a gama máxima de intensidades • Corrige-se através do alargamento da gama da imagem b[m,n] = (2B-1) (a[m,n] - plow%) / (phigh%- plow%)se plow% < a[m,n] < phigh% ; senão 0 ou 2B-1 • plow% - intensidade baixa no histograma (0%, 1%, 5%) • phigh% - intensidade alta no histograma (100%, 99%, 95%) contrastealargado original Processamento de Imagem
AlgoritmosBaseados em operações de histograma • Equalização de histogramas • Normaliza-se o histograma da imagem para um histograma “padrão” (comparação de imagens, etc) • O objectivo ideal é obter ocorrências iguais para todas as intensidades - histograma plano • Pode obter-se algo aproximado usando a função distribuição de probabilidade (normalizada de 0 a 2B-1) como índice de acesso ao histograma “padrão”... histogramaequalizado original Processamento de Imagem
AlgoritmosBaseados em operações matemáticas Imagem a Imagem b NOT(b) OR(a,b) AND(a,b) XOR(a,b) SUB(a,b)[ AND(a,NOT(b)) ] • Operações binárias • Baseadas nas operações booleanas pixel a pixel • Exemplo • Operações “aritméticas” • a+ba/b log(a) exp(a) sqrt(a) sin(a) (2B-1)-a, etc Processamento de Imagem
AlgoritmosBaseados em convolução • Enquadramento • Baseia-se na noção de uma janela finita h() operando sobre a imagem a(), produzindo uma nova imagem c() • O pixel de saída é igual à soma pesada dos pixels de entrada dentro da janela, em que os pesos são os valores específicos do filtro de convolução h() • Convolução no domínio espacial • Pode gerar acessos “fora” da imagem a[m,n] c[m,n] = a[m,n] h[m,n] = j kh[j,k] a[m-j,n-k]• Note-se que m-j ou n-k podem ser negativos• Solução: extender artificialmente a imagem Processamento de Imagem
AlgoritmosBaseados em suavização • Objectivos gerais • Tipicamente usados para reduzir o ruído e/ou preparar imagens para outros processamentos mais complexos • Filtros lineares • Filtro uniforme: • Filtro triangular: • Filtro gaussiano: cada vez mais utilizado (versatilidade) Rectangular (J=K=5) Circular (J=K=5) Piramidal (J=K=5) Cónico (J=K=5) Processamento de Imagem
AlgoritmosBaseados em suavização Região 1 Região 2 Região 4 Pixelcentral Região 3 • Filtros não-lineares • Estes filtros não podem ser alvo de análises de Fourier • Filtro de mediana: em cada aplicação da janela h()usa-se a intensidade mediana dentro da referida janela • Filtro Kuwahara: preserva bem os contornos • Em cada uma das 4 regiões calcula-se a média e a variância • O valor atribuído ao pixel centralé o valor médio da região quepossui menor variância Processamento de Imagem
AlgoritmosBaseados em suavização Histograma Imagem original Filtro linear Uniforme 5x5 Filtro linearGaussiano (=2.5) Filtro não-linearMediana 5x5 Filtro não-linearKuwahara 5x5 • Exemplos de vários filtros de suavização Processamento de Imagem
AlgoritmosBaseados em derivação • Enquadramento • Os algoritmos apresentados são uma aproximação • Tendem a aumentar o ruído de alta frequência, pelo que geralmente são combinados com filtros de suavização • Primeira derivada • Filtros de gradientea[m,n] = (hx a[m,n])ix + (hy a[m,n])iy • Básicos: • Prewitt: Processamento de Imagem
AlgoritmosBaseados em derivação • Primeira derivada • Filtros de gradiente (continuação)a[m,n] = (hx a[m,n])ix + (hy a[m,n])iy • Sobel: • Construídos à medida: • Gaussianos: Processamento de Imagem
AlgoritmosBaseados em derivação Imagem original Gaussiano (=1.5) Básico Sobel • Primeira derivada • Exemplos de filtros de gradiente Processamento de Imagem
AlgoritmosBaseados em derivação • Segunda derivada • Desempenham um papel muito importante • Filtros de Laplaciano2a[m,n] = (h2x a[m,n])ix + (h2y a[m,n])iy • Básicos: • Gaussiano: • Construídos à medida: • SDGD: (2ª derivada na direcção do gradiente) Processamento de Imagem
AlgoritmosBaseados em derivação Imagem original Gaussiano (=1.5) SDGD (=1.0) Básico À medida • Segunda derivada • Exemplos de filtros de Laplaciano Processamento de Imagem
AlgoritmosBaseados em derivação Filtropassa-baixo Filtropassa-banda Filtropassa-alto • Outros filtros • Há uma infinidade de filtros lineares e não-lineares • Para se medir a resposta de filtros não convencionais usam-se imagens de teste (padrões sinusoidais, etc) • Permite avaliar os efeitos em termos de frequências • Exemplos de resultados com padrão de teste sinusoidal Processamento de Imagem
AlgoritmosBaseados em morfologia A B • Enquadramento • Uma definição alternativa do conceito de imagem baseia-se na noção de conjunto de coordenadas que fazem parte dos objectos da imagem • Exemplo • Os pixels do objecto A partilham uma propriedadeObjecto - A = { a | propriedade(a) = Verdade } Fundo - Ac = { a | a A } Imagem binária comdois objectos A e B Processamento de Imagem
AlgoritmosBaseados em morfologia fundo de A objecto A • Enquadramento • A noção de objecto implica conectividade de pixels • Definições • As operações fundamentais sobre objectos são: • Translação: A + x = { a + x | a A } • Adição/subtracção: A B = bB(A+b) ; A B = bB(A+b) • Complemento (fundo) • Simetria: -A = { -a | a A } - O objecto A tem conectividade 4- O fundo tem conectividade 12-4(=8) Processamento de Imagem
AlgoritmosBaseados em morfologia D(A,B) E(A,B) B -B N4 N8 • Dilatação e Erosão • A dilatação D(A,B) corresponde à adição A B • A erosão E(A,B) corresponde à subtracção A (-B ) • Exemplos • Tipicamente A é uma imagem e B é um “estruturante” (equivale ao núcleo de convolução dos filtros lineares) • Exemplos de estruturantes comuns Processamento de Imagem
AlgoritmosBaseados em morfologia • Dilatação e Erosão • Teorema da Decomposição • Para um estruturante B finito, simétrico, sem buracos e contendo o seu centro ([0,0] B), verifica-se queD(A,B) = A (A B)[nota: A é o contorno de A] • Resulta que apenas basta processar os pixels do contorno de A, não sendo necessário processar os pixels do seu interior • Algoritmo “rápido” de dilatação: para cada pixel do objecto, todos os seus pixels vizinhos (vizC) de fundo passam a pertencer ao objecto • Algoritmo “rápido” de erosão: cada pixel do objecto que possua um pixel vizinho (vizC) de fundo passa a fundo Processamento de Imagem
AlgoritmosBaseados em morfologia Dilatação comestrututante N8 Dilatação comestrututante N4 • Dilatação e Erosão • Exemplos “rápidos” • Importante: D(E(A,B),B) A E(D(A,B),B) • Abertura e Fecho • Abertura: O(A,B) = D(E(A,B),B) • Tende a suavizar o contorno pelo interior • Fecho: C(A,B) = E(D(A,-B),-B) • Tende a suavizar o contorno pelo exterior Processamento de Imagem
AlgoritmosBaseados em morfologia • HitAndMiss • Operador de alto nívelHitMiss(A,B) = E(A,B1) EC(AC,B2) • B1 e B2 são estruturantes finitos e disjuntos entre si • Este operador é o equivalente morfológico do template matching (técnica usada para comparar padrões com base na sua correlação) • B1 funciona como template para o objecto • B2 funciona como template para o fundo Processamento de Imagem
AlgoritmosBaseados em morfologia Imagem A Dilatação com 2B Erosão com 2B Abertura com 2B(separa objectos) Fecho com 2B(preenche buracos) HitAndMiss com B1 e B2[ A = A - E(A,N8) ] • Exemplos • Estruturantes Processamento de Imagem
AlgoritmosBaseados em morfologia • Esqueleto • Quando realizavel, é uma polilinha que: • Tem largura de 1 pixel • Passa pelo “meio” do objecto • Preserva a topologia do objecto • Pode ser obtido por um processo iterativo baseado no B8, não se alterando o pixel central para “fundo” se • 1) o pixel estiver isolado • 2) a remoção do pixel alterar a conectividade • 3) a remoção do pixel encurtar a linha Processamento de Imagem
AlgoritmosBaseados em morfologia • Propagação (Reconstrução) • Visa reconstruir um objecto parcialmente erodido ou preencher um objecto definido pelo seu contorno • Algoritmo iterativo baseado numa imagem “semente” S(0), uma imagem máscara A e um estruturante BS(k) = D(S(k-1),B) A ; repetir até S(k) = S(k-1) • Em cada iteração a semente cresce dentro dos limites de A • As conectividades da fronteira de A e de B devem ser iguais • A implementação iterativa é ineficiente, mas existe uma implementação recursiva muito mais eficiente Processamento de Imagem
AlgoritmosBaseados em morfologia E(A,6N8) Imagem A Semente(a preto) Máscara Esqueleto de A Esqueleto de A(sem condição 3) Propagação com N8 • Exemplos Processamento de Imagem
AlgoritmosBaseados em morfologia • Tratamento de imagens “em tons de cinzento” • Os algoritmos anteriores podem ser extendidos para imagens com mais de dois níveis (16, 64, 256, etc) • Formulações para “tons de cinzento” • Dilatação: DG(A,B) = max[j,k]B { a[m-j,n-k] + b[j,k] } • Erosão: EG(A,B) = min[j,k]B { a[m+j,n+k] - b[j,k] } • Abertura: OG(A,B) = DG(EG(A,B),B) • Fecho: CG(A,B) = -OG(-A,-B) • Suavização: MSmooth(A,B) = CG(OG(A,B),B) • Gradiente: MGradient(A,B) = 1/2 [DG(A,B) - EG(A,B)] • Laplaciano: MLaplacian(A,B) = 1/2 [DG(A,B) + EG(A,B) - 2A] Processamento de Imagem
AlgoritmosBaseados em morfologia Imagem A Dilatação de A Erosão de A • Exemplos de filtros “em tons de cinzento” “Morfológicos” Clássicos Suavização Gradiente Laplaciano Processamento de Imagem
Técnicas • Enquadramento • Os algoritmos apresentados anteriormente podem ser usados para resolver problemas complexos de processamento de imagem • Correcção de sombreamento • Os métodos de geração de imagem podem fazer com que as imagens exibam artefactos de sombreamento • Imagem “brilhante” no centro e “escura” nos limites • Imagem a “escurecer” da esquerda para a direita • Efeitos de lentes sujas, iluminação não uniforme, etc Processamento de Imagem
TécnicasCorrecção de sombreamento • Artefactos de sombreamento • Geralmente indesejados, mas difíceis de evitar • A sua eliminação é necessária em algumas aplicações • Estimação do sombreamento • A posteriori • Filtragem passa-baixo: ae[m,n] = a[m,n] - LowPass(a[m,n])+K • Filtragem morfológica: ae[m,n] = a[m,n] - MSmooth(a[m,n])+K • A priori • Recurso a imagens de calibração: Preto[m,n] e Branco[m,n]ae[m,n] = K (a[m,n]-Preto[m,n]) / (Branco[m,n]-Preto[m,n]) Processamento de Imagem
TécnicasCorrecção de sombreamento Linha da imagem original Passa-baixo Homomórfica Morfológica Calibrada(a melhor) • Exemplos 1. O sombreamento indesejado manifesta-se através de uma rampa linear a crescer da esquerda para a direita2. Os picos são objectos Processamento de Imagem
TécnicasMelhoria e restauro • Enquadramento • O processo de aquisição de imagem geralmente envolve degradação da imagem (inadvertidamente) • Desfocagem; Movimento da câmara; Ruído; etc • Objectivos • Melhoria visa “embelezar” a imagem • Restauro visa “repor a verdade” na imagem • Medição do erro • Usa-se frequentemente uma métrica de erro tipo RMSE{ae,a} = 1/MN m n | ae[m,n] - a[m,n] |2 Processamento de Imagem
TécnicasMelhoria e restauro Melhorada(K=1) Original • Aumento de nitidez • Melhorar as silhuetas de uma imagem pode contribuir para aumentar a sua qualidade visual • Isolam-se as silhuetas de uma imagem • Amplificam-se essas silhuetas • Adicionam-se à imagem original • O Laplaciano é adequado para isolar as silhuetasae[m,n] = a[m,n] - (K 2a[m,n]) Processamento de Imagem
TécnicasMelhoria e restauro Gaussiano (=1) Wiener Imagem original(SNR = 20 dB) Kuwahara 5x5 Mediana 3x3 MSmooth 3x3 • Supressão de ruído • Pode ser conseguida através de suavização espacial, levando contudo a perda de nitidez • Os algoritmos de suavização são os mais adequados • Exemplos Processamento de Imagem
TécnicasMelhoria e restauro Imagem distorcida(SNR = 30 dB) Wiener Mediana 3x3 • Supressão de distorsão • Um modelo simples assume o ruído como única fonte de distorsão, mas existem modelos mais realistas • O filtro Wiener (domínio das frequências) é uma boa solução para distorsões baseadas em ruído • Exemplo • A imagem Wiener é mais nítida mas exibe artefactos • A imagem Mediana é mais esbatida mas disfarça artefactos Processamento de Imagem
TécnicasSegmentação Imagem a segmentar Histograma de intensidades • Enquadramento • Designa as diversas técnicas capazes de distinguir “objectos de interesse” do resto (fundo) • Não há uma técnica de segmentação universal ou perfeita • Limiarização • Recorre a um limiar de intensidade para definir o objecto • A escolha do limiar de intensidade adequado é fulcral • Escolha do limiar via histograma • ExemploLimiar=155 Processamento de Imagem
TécnicasSegmentação Histograma de intensidades Imagem a segmentar • Limiarização • Escolha do limiar pelo algoritmo do triângulo • ExemploLimiar=152 • Determinação de fronteiras • Uma alternativa à limiarização consiste em encontrar os pixels que definem as fronteiras do objectos • Gradiente • Exemplo Processamento de Imagem
TécnicasSegmentação • Determinação de fronteiras • Cruzamento do zero (método LoG) • Consiste em usar o filtro Laplaciano e processar os “cruzamentos do zero” da 2ª derivada (mudança de sinal) • Requer suavização para evitar o excesso de ruído gerado • Método PLUS • Também baseado no “cruzamento o zero” do Laplaciano e no filtro de suavização SDGD(a) • Método geral Processamento de Imagem