Skip to content

PedroMiguelCecato/image_manipulation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistema para exibir, manipular e salvar imagens

Sistema de manipulação de imagens desenvolvido na cadeira de PDI

📘 Relatório Teórico – Processamento Digital de Imagens

1. Representação de Imagens RGB (24 bits/pixel)

Uma imagem digital RGB é formada por três camadas de cor: vermelho (R), verde (G) e azul (B). Cada pixel contém três valores inteiros (um por canal) no intervalo [0, 255].

  • Cada canal tem 8 bits (256 níveis); juntos totalizam 24 bits/pixel.
  • Exemplo de pixel: (R=120, G=200, B=50).
  • Até 16,7 milhões de cores (256³).

2. Correlação Bidimensional m × n

2.1. Conceito

A correlação 2D aplica uma máscara (kernel) sobre a imagem, combinando valores de vizinhança para cada pixel.

Fórmula (por canal):

y(i, j) =  Σ(u=0..m-1) Σ(v=0..n-1) [ x(i+u, j+v) · h(u, v) ] + bias
  • x(i, j): valor original do pixel.
  • h(u, v): valor da máscara na posição (u, v).
  • m × n: dimensões do kernel.
  • bias: deslocamento inteiro entre -255 e 255 (ajusta brilho).

2.2. Funções de Ativação

  • Identidade: f(x) = x (mantém o valor calculado).
  • ReLU: f(x) = max(0, x) (trunca valores negativos, útil para realçar bordas).

2.3. Filtros Utilizados

Filtro Gaussiano 5×5

  • Suaviza a imagem (reduz ruído) com borramento suave.
  • Kernel aproxima uma distribuição Gaussiana bidimensional.

Filtros Box (1×10, 10×1, 10×10)

  • Máscaras com valores iguais; realizam média na vizinhança.
  • Box 1×10: suavização horizontal; Box 10×1: vertical; Box 10×10: média em bloco grande (borramento forte).

Sobel Horizontal e Vertical

  • Detectam bordas (gradientes de intensidade).
  • Sobel Horizontal realça mudanças verticais (bordas horizontais).
  • Sobel Vertical realça mudanças horizontais (bordas verticais).

Sobel Vertical (Sx):

-101
-202
-101

Sobel Horizontal (Sy):

-1-2-1
000
121

2.4. Visualização de Sobel

  1. Aplicar valor absoluto à resposta (remove negativos).
  2. Aplicar expansão de histograma para [0, 255] (maximiza contraste das bordas).

3. Equalização de Histograma

3.1. Conceito

Redistribui níveis de intensidade para melhorar o contraste. Baseia-se no histograma e na sua CDF (função de distribuição acumulada).

Passos:

  1. Calcular o histograma (contagem por intensidade).
  2. Calcular a CDF (soma acumulada do histograma).
  3. Aplicar transformação:
T(r) = round( ((L - 1) / RC) * Σ(k=0..r) n_k )
  • L = 256 (níveis de intensidade).
  • RC = total de pixels (linhas × colunas).
  • n_k = contagem de pixels com intensidade k.

Resultado: os níveis passam a ocupar melhor a faixa [0, 255].


4. Equalização Local + Expansão de Histograma

4.1. Por que Local?

Em imagens com iluminação desigual, a equalização global pode falhar. Dividir a imagem em blocos m × n e equalizar cada um separadamente adapta o contraste às diferentes regiões.

4.2. Expansão de Histograma (por bloco)

  1. Obter r_min e r_max do bloco equalizado.
  2. Aplicar a expansão linear para todo o bloco:
s = ((r - r_min) / (r_max - r_min)) * 255

Isso distribui os níveis do bloco por toda a faixa [0, 255], garantindo contraste máximo local.

4.3. Resultado

  • Regiões escuras tornam-se mais claras.
  • Regiões claras ganham contraste.
  • Detalhes e bordas em áreas pouco iluminadas ficam mais visíveis.

5. Observações de Implementação (Resumo dos Requisitos)

  • Abrir, exibir, manipular e salvar imagens RGB (24 bits/pixel, 8 bits por canal).
  • Correlação 2D m × n com bias (−255 a 255) e ativação (Identidade ou ReLU).
  • Leitura de filtros a partir de arquivo .txt (máscara, bias, ativação).
  • Testes com: Gaussiano 5×5, Box 1×10, Box 10×1, Box 10×10, Sobel Horizontal, Sobel Vertical.
  • Para Sobel: aplicar |valor| + expansão de histograma para [0,255].
  • Equalização seguida de expansão de histograma local (janela m × n) em cada canal R, G e B.

About

Sistema de manipulação de imagens desenvolvido na cadeira de PDI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors