Study Notes

Image Processing

É o ramo da ciência da computação que estuda a aquisição/modificação/análise de imagens/vídeos por meio de algorítimos.

Imagem Digital


É representada como uma matriz 2D. E cada cédula é um pixel.

image_processing_base

Pixel

I(x,y)I(x,y) | x,y>=0x,y>=0. É uma função que mapeia um ponto (x,y)(x,y) para um valor de uma cor/intensidade.

Resolução

resolution=XYresolution = |X|*|Y|. Refere-se a quantidade de detalhe/informação uma imagem digital contém. (nível de detalhe espacial que a imagem pode representar). Quantos pixels a imagem possui, linhas ×\times colunas.

Quantização

Representado por NN, diz quantos valores de tons cada pixel pode ter. Em uma imagem preto e branco N=21=2N=2^1=2 (1 bit, é 0 ou 1, preto ou branco o pixel). Em imagens gray-scale N=28=256N=2^8=256. Em imagens RGB N=(28)3N=(2^8)^3. (números de tons de cinza (NC - níveis de cinza) ou, também, números de bits por pixel).

Size

O tamanho de uma imagem sem compressão em bytes é size=(XYlog2N)/8size=(|X|*|Y|*\log_{2}N)/8. Ou seja, o log2N\log_{2}N representa quantos bits são usados para representar os NN possíveis valores. E dividimos por 88 para escrevermos o tamanho em bytes.

Sinal

Uma imagem pode ser representada como um sinal periódico 2D de domínio espacial (coordenadas dos pixels). (Observação: é periódico porque é finito). Ou seja, um função mostra como a amplitude (intensidade II) no domínio espacial (cada pixel (x,y)(x,y) ) da imagem.

Frequência

O número de vezes que um padrão de intensidade se repete em uma imagem. Regiões homogêneas, acarretam em uma frequência baixa e regiões heterogêneas (de textura, bordas) demonstram altas frequências.

Imagens Binárias


Usa-se imagens binárias IZ2I \in \mathbb{Z}^2 onde cada pixel (x,y)=0 (branco) ou (x,y)=1 (preto)(x, y) = 0 \text{ (branco) ou }(x,y)=1 \text{ (preto)}.

  • Foreground. (x,y)=1(x,y)=1 (preto)
  • Background. (x,y)=0(x,y)=0 (branco)
  • Don't Care. (x,y)=x(x,y)=\mathbb{x} (É uma marcação indicando que não importa o valor desse pixel para os algorítimos). Um objeto AA é um conjunto de elementos foreground.

Amostragem


É o processo de converter um sinal contínuo (como as ondas eletromagnéticas da luz) do mundo real em um conjunto de valores discretos e finitos (como uma fotografia/imagem digital).

Imagem Contínua \to Imagem discreta.

Espacial

É o processo de amostragem que determina a resolução da imagem. Quantos pixels vão ser usados para representar a imagem. Exemplo: Uma imagem de 512 × 512 pixels tem mais amostragem espacial que uma de 128 × 128 pixels, logo consegue mostrar mais detalhes.

Espectral

É o processo que define a quantização da imagem. Quantos valores serão atribuídos para cada pixel de uma imagem durante a sua "criação"

Transformações Geométricas


Operações aplicadas a imagens que alteram a posição dos pixels/ sua geometria, sem mudar os valores de intensidade.

Translação


P=P+T ou P=(x+tx,y+ty)P'=P + T \text{ ou } P'=(x+t_x, y + t_y) É deslocar as cordeadas de uma imagem. Ou seja, somar um vetor TT nos pontos/pixels PP da imagem. (É uma soma vetorial) img_translated.png A translação não é uma Transformação Linear porque ela não preserva a origem, ponto (0,0)(0, 0). T(x)=x+t, ou seja, T(0)=t0T(x)=x+t \text{, ou seja, } T(0)=t \neq 0. (Ela faz parte na verdade das transformações afins)

Escala


P=(xSx,ySy)P'=(x \cdot S_x, y \cdot S_y) img_scaled.png

Rotação


img_rotated.png

Shear


img_shear.png

Reflexão/ Espelhamento


img_fliped.png

Morfologia


Morfologia matemática é um conjunto de técnicas para extrair componentes, descrever formas, remover ruídos com base na geometria dos objetos. É um tipo de filtro que modifica os pixels, um pre-processamento antes de entregar para um outro algorítimo (em geral). São filtros que tipicamente são aplicados em imagens binárias (apesar de da para aplicar em outros tipos de imagens).

Kernel

Chamada também de máscara, operador morfológico, ou elemento estruturante - EE. É um pequeno (ex: 3×33 \times 3) conjunto de pixels.

Erosão


Sempre que o EE estiver todos os pixeis foreground no objeto da imagem (conjunto de pixels foreground da imagem) o pixel central é marcado na output image. (Chama-se essa ocorrência de FIT). Percorre a imagem com a "janela"/ o kernel. Quando ocorre um FIT, a posição do centro do kernel na imagem original é escrito na output image. Espera que todo o kernel esteja dentro do objeto inicial.

erosion01.webp erosion02.webp erosion03.webp

Dilatação


Basta 1 pixel da janela do EE hitar o objeto da imagem original que ele é escrito na output image. Ela "engorda" a imagem. É muito útil para preencher buracos.

dilatation01.webp dilatation02.webp dilatation03.webp

Abertura


Aplicação da erosão seguida da dilatação. É extremamente bom para remover pequenos ruídos (a erosão inicial elimina os pequenos ruídos e a dilatação posterior "volta" os objetos maiores como era antes).

opening.png

Fechamento


Aplicação da dilatação seguida da erosão. Muito útil para o fechamento de buracos.

closing.png

Extração do Contorno


Ou também chamado de gradiente morfológico, é o resultado da imagem original dilatada subtraída pela imagem original erodida. (Ou, em algumas literaturas é a imagem original subtraída da imagem original erodida). Isso resulta no contorno dos objetos.

contour-extraction.png

Segmentação


Particionar a imagem em regiões que representam os objetos da cena, que possuem determinas propriedades (texturas, cores, etc).

Segmentação é um problema intrinsecamente mal definido. A dificuldade não necessariamente limitada por capacidade computacional, a definição de segmento/região é ambígua e depende de um contexto. A maior dificuldade está em decidir quais critérios definem as regiões.

Conectividade

Como agrupa-se pixels vizinhos para formar regiões conectadas (componentes).

  • N4 - left, top, right and bottom
  • N8 - incluí as diagonais

Histograma

Gráfico de distribuição da ocorrência dos valores uma imagem. histogram.png Se for uma imagem com mais de um canal (ex RGB) é feito um histograma para cada canal. Útil para analisar:

  • contraste (alto contraste se o histogram estiver "espelhado")
  • Ajudar a encontrar threshold (um limiar para separar objeto de fundo)

Segmentação por Região


Ou segmentação por homogeneidade. É uma família de técnicas de segmentação de imagens.

A ideia é agrupar pixels vizinhos que têm propriedades semelhantes (intensidade, cor, textura, etc.) formando regiões homogêneas.

Limiarização


Thresholding é uma segmentação baseada em intensidade, onde se usa o histograma para definir thresholds/limiares TiT_i que definem regiões. (Normalmente se usar gray-scale images com input. A saída clássica é uma imagem binária (que no caso se utiliza 1 threshold)).

Um único threshold global T1T_1 define dois valore possíveis e resulta em uma imagens binária.

undefined

On this page