Ferramentas do usuário

Ferramentas do site


prog2:processamento_de_imagens

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
prog2:processamento_de_imagens [2019/05/13 18:47]
maziero [Atividade]
prog2:processamento_de_imagens [2019/10/15 13:36] (atual)
maziero [Filtro LBP (Local Binary Patterns)]
Linha 46: Linha 46:
 Exemplo de entrada e de saída: Exemplo de entrada e de saída:
  
-{{lena-original.png|}}+{{lena-original.png|}} ​
 {{lena-negative.png|}} {{lena-negative.png|}}
  
 /* /*
  
-==== Filtro de rotação ====+==== Filtro de rotação ​simples ​====
  
 O filtro de rotação gira uma imagem em 90° no sentido horário. ​ O filtro de rotação gira uma imagem em 90° no sentido horário. ​
Linha 61: Linha 61:
 Exemplo de entrada e de saída: Exemplo de entrada e de saída:
  
-{{lena-original.png|}}+{{lena-original.png|}} ​
 {{lena-rotate.png|}} {{lena-rotate.png|}}
  
 */ */
  
-==== Filtro de rotação ====+==== Filtro de rotação ​livre ====
  
 O filtro de rotação gira uma imagem em um ângulo θ (>0) no sentido **horário**,​ em relação ao seu centro (vide [[https://​en.wikipedia.org/​wiki/​Rotation_matrix#​In_two_dimensions|rotação de imagens 2D]]). O filtro de rotação gira uma imagem em um ângulo θ (>0) no sentido **horário**,​ em relação ao seu centro (vide [[https://​en.wikipedia.org/​wiki/​Rotation_matrix#​In_two_dimensions|rotação de imagens 2D]]).
Linha 82: Linha 82:
 Exemplo de entrada e de saída para θ = 30º: Exemplo de entrada e de saída para θ = 30º:
  
-{{lena-original.png|}}+{{lena-original.png|}} ​
 {{lena-rotate-30.png|}} {{lena-rotate-30.png|}}
  
Linha 98: Linha 98:
 Exemplo de entrada e de saídas com limiar de 50% e 75%: Exemplo de entrada e de saídas com limiar de 50% e 75%:
  
-{{lena-original.png?​200|}}+{{lena-original.png?​200|}} ​
 {{lena-threshold-50.png?​200|}} {{lena-threshold-50.png?​200|}}
 {{lena-threshold-75.png?​200|}} {{lena-threshold-75.png?​200|}}
Linha 121: Linha 121:
 Exemplo de entrada e de saída: Exemplo de entrada e de saída:
  
-{{ballons-original.png|}}+{{ballons-original.png|}} ​
 {{ballons-average.png|}} {{ballons-average.png|}}
- 
 */ */
  
 +/*
 ==== Filtro da mediana ==== ==== Filtro da mediana ====
  
Linha 144: Linha 144:
 Exemplo de entrada e de saída: Exemplo de entrada e de saída:
  
-{{ballons-original.png|Imagem original}} ​ {{ballons-median.png|Imagem filtrada}}+{{ballons-original.png|Imagem original}} ​→ 
 +{{ballons-median.png|Imagem filtrada}} 
 + 
 +*/
  
 /* filtro de detecção de bordas */ /* filtro de detecção de bordas */
  
 /* filtro de melhoria de nitidez */ /* filtro de melhoria de nitidez */
 +
 +==== Filtro LBP (Local Binary Patterns) ====
 +
 +LBP (//​[[https://​en.wikipedia.org/​wiki/​Local_binary_patterns|Local Binary Patterns]]//​) ou Padrões Binários Locais, é um descritor de textura muito utilizado em algoritmos de reconhecimento de imagens. O funcionamento desse filtro é simples: para cada pixel de uma imagem com 256 níveis de cinza, seleciona-se uma vizinhança de 8 pixels. O valor LBP é então calculado para o pixel central e armazenado na imagem destino, que possui as mesmas dimensões da imagem original.
 +
 +Para o cálculo do LBP de um pixel, usa-se uma **máscara** com valores 2<​sup>​n</​sup>,​ com n = {0, ..., 7}, ou seja: 1, 2, 4, 8, 16, 32, 64 e 128. O exemplo abaixo ilustra o cálculo de LBP para o pixel com valor 6:
 +
 +{{ :​prog2:​lbp.png |Cálculo de LBP}}
 +
 +Considere o pixel central com valor 6 e seus oito vizinhos na imagem (a). O valor do pixel central é utilizado como limiar e todos os pixels com valor de intensidade maior ou igual a ele recebem 1, caso contrário, 0 (b). Esses valores são então multiplicados pela máscara (c ), resultando então nos valores apresentados em (d). O valor LBP do pixel 6 é dado pela soma desses valores, ou seja LPB = 1+8+32+128 = 169. Note que essa codificação garante valores LBP entre 0 e 255.
 +
 +Forma de chamada:
 +
 +  pgmlbp -i input -o output
 +
 +Exemplo de entrada e de saída:
 +
 +{{lena-original.png|}} →
 +{{lena-lbp.png|}}
 +
 +{{lbp-in.png|LBP input}} →
 +{{lbp-out.png|LBP output}}
  
 ===== Atividade ===== ===== Atividade =====
Linha 195: Linha 220:
 O código-fonte deve ser estruturado em arquivos ''​.c''​ e ''​.h''​ que agrupem as diversas funcionalidades. A figura abaixo traz uma uma **sugestão de estrutura** para o código-fonte (as setas correspondem a ''​include''​s):​ O código-fonte deve ser estruturado em arquivos ''​.c''​ e ''​.h''​ que agrupem as diversas funcionalidades. A figura abaixo traz uma uma **sugestão de estrutura** para o código-fonte (as setas correspondem a ''​include''​s):​
  
-{{estrutura.png?​700 |}}+{{  estrutura.png?​700 ​ |}}
  
prog2/processamento_de_imagens.1557784055.txt.gz · Última modificação: 2019/05/13 18:47 por maziero