Imagens Digitais
Processamento de Imagens
Visão Computacional
Compressão
Modelos de uma Imagem Digital
Físico
Matemático
Computacional
Matematicamente imagem é uma função
u v L L(u,v) 0% 20% 40% 60% 80% 100% Ní ve is d e c in za
Posição ao longo da linha x
[ ] [ ]
0
,
´
0
,
Ì
Â
2®
C
:
w
h
L
L
v
u
®
÷÷
ø
ö
çç
è
æ
Imagem em tons de cinza
Imagem colorida como uma função do
R
2
®R
3
R G Bu
v
Imagem coloridas como 3 “canais” de cor
=
+
+
u v R R(u,v) u v G G(u,v) u v BB(u,v)
Processos que ocorrem na captura
de uma imagem
Amostragem, quantização e
codificação
1) No plano de imagem a câmera tem um banco de sensores.2) Filtros controlam a cor que cada sensor amostra. 3) Um padrão comum é o de Bayer, que privilegia o verde. 4) A imagem mixta é decomposta em tres canais incompletos. 5) Os mapas incompletos são reconstituídos e reamostrados (formato RAW). 6) A imagem comprimida e armazenada num formato mais eficiente (jpg ou png).
Aquisição de imagem numa camera fotográfica
Digitalização de Imagens
Processos básicos
Imagem de tons contínuos 64x54 - floats Imagem amostradaamostragem
64x54 - 256 tons Imagem amostrada e quantizadaquantização
55 55 55 55 55 55 55 55 20 22 23 45 55 55 55 55 10 09 11 55 55 55 55 43 42 70 55 55 55 55 28 76 22 55 55 55 55 55 55 55 55 55codificação
8*55, 1*20, 1*22, 1*23, …. Imagem amostrada, quantizada e codificadaQuantização
Exposição (quantidade de luz)
N
íve
is
Seis fotos da mesma cena com variação do tempo
de abertura da câmera
Razões de lados e resolução típicas
16:10 1920×1200 ou 1280×800 16:9 1920×1080 (HDTV) ou 1600×900 ou 4:3 1024×768 ou 800×600 ou 640×480
1D
Amostragem e reconstrução
Amostragem
0 10 20 30 40 50 60 70 𝑓(𝑥) 𝑥 0 10 20 30 40 50 60 70 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 𝑓(𝑥) 𝑥i-2 i-1 i i+1 i+2
ℎ(𝑥) 𝑥 0 10 20 30 40 50 60 70 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 𝑓(𝑥) 𝑥
𝑓 𝑥 = ( 𝑓
)ℎ
)(𝑥)
) ℎ)(𝑥)𝑓 𝑥 = ( 𝑓
)ℎ
)(𝑥)
)∫ ℎ
,(𝑥)𝑓 𝑥 𝑑𝑥 = ∫ ℎ
,(𝑥) ∑ 𝑓
) )ℎ
)(𝑥)
𝑑𝑥 = ∑ 𝑓
) )∫ ℎ
,(𝑥) ℎ
)(𝑥)𝑑𝑥
𝑓,= / 𝑓 𝑥 ℎ, (𝑥) 𝑑𝑥 = / 𝑓 𝑥 𝑑𝑥 ,01 ,i-2 i-1 i i+1 i+2
ℎ(𝑥)
𝑥 ℎ)(𝑥)
/ ℎ, 𝑥 ℎ) 𝑥 𝑑𝑥 = 2 0, 𝑠𝑒 𝑖 ≠ 𝑗 𝑖, 𝑠𝑒 𝑖 = 𝑗
i-2 i-1 i i+1 i+2
i-3 i+3
ℎ(𝑥)
𝑥
i-2 i-1 i i+1 i+2 i-3
i-4 i+3 i+4
ℎ(𝑥)
𝑥
i-2 i-1 i i+1 i+2
ℎ(𝑥) 𝑥
Amostragem, quantização e
codificação de f(x)
x
f(x)
Amostragem, quantização e
codificação de f(x)
x
f(x)
amostra
partição do eixo x
Amostragem, quantização e
codificação de f(x)
0
1
2
3
4
5
6
x
f(x)
amostra
quantizada
´
´
´
´
´
´ ´ ´
´
´
´
´
´
partição do eixo y
𝑓
)= (3,4,5,5,4,2,2,3,5,5,4,2)
Amostragem, quantização e
codificação de f(x)
0
1
2
3
4
5
6
x
f(x)
função
reconstruída
´
´
´
´
´
´ ´ ´
´
´
´
´
´
𝑓>(𝑥)
Amostragem mínima f(x)
x f(x)Fourier
Jean Baptiste Joseph Fourier (1768-1830) Paper de 1807 para o Institut de France
𝑓 𝑥 = 𝑎
@+ ((𝑎
,cos
2𝜋𝑘𝑥
𝑛
+ 𝑏
,sin
2𝜋𝑘𝑥
𝑛
)
K ,L1onde:
𝑎
@=
1
𝑛
/ 𝑓(𝑥)𝑑𝑥
𝑎
,=
1
𝑛
/ 𝑓(𝑥)𝑐𝑜𝑠
2𝜋𝑘𝑥
𝑛
𝑑𝑥
𝑏
,=
1
𝑛
/ 𝑓(𝑥)𝑠𝑖𝑛
2𝜋𝑘𝑥
𝑛
𝑑𝑥
Funções seno e cosseno
-1 -0,8 -0,6 -0,4 -0,2 0 0,2 0,4 0,6 0,8 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32Domínios de amostragem de um sinal
x
f(x)
0
n
w
a
k0
w
b
k0
tempo ou espaço freqüencia ∆𝜔 =2𝜋 𝑛Transformada de Fourier
t
0 1 2 3 4 5 6 N-1 rf
r
)
(t
f
t
N
T
=
D
t
D
t
r
t
=
D
(
f
o
,
f
1
,
f
2
,
!
,
f
r
,
!
,
f
N
-
2
,
f
N
-
1
,
)
å
-=@
1 0)
2
cos(
1
N r r kN
r
k
f
N
a
p
å
-=÷
ø
ö
ç
è
æ
@
1 02
sin
1
N r k kN
r
k
f
N
b
p
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ë
é
ú
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ê
ë
é
=
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ë
é
-- 1 1 0 ) 1 )( 1 ( 1 ) 1 ( 0 ) 1 ( ) 1 ( 1 11 10 ) 1 ( 0 01 00 1 1 01
N N N N N N N Nf
f
f
c
c
c
c
c
c
c
c
c
N
a
a
a
!
"
!
#
!
!
"
"
!
c
krcos(
2
N
kr
)
p
=
onde:ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ë
é
ú
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ê
ë
é
=
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ë
é
-- 1 1 0 ) 1 )( 1 ( 1 ) 1 ( 0 ) 1 ( ) 1 ( 1 11 10 ) 1 ( 0 01 00 1 1 01
N N N N N N N Nf
f
f
s
s
s
s
s
s
s
s
s
N
b
b
b
!
"
!
#
!
!
"
"
!
s
krsin(
2
N
kr
)
p
=
onde:(
f
o
,
f
1
,
f
2
,
!
,
f
r
,
!
,
f
N
-
2
,
f
N
-
1
,
)
Base de Haar
ℎ@(𝑥) 𝑥 ℎ1(𝑥) +1 +1 −1 𝑥 ℎS(𝑥) 𝑥 ℎT(𝑥) 𝑥 + 2 − 2 + 2 − 2 ℎU(𝑥) 𝑥 +2 −2 ℎV(𝑥) 𝑥 +2 −2 ℎW(𝑥) 𝑥 +2 −2 ℎX(𝑥) 𝑥 +2 −2Transformada Haar
𝑓1 𝑓T 𝑓S 𝑓U ……….. 𝑓TYZ1 𝑓TY 𝑓1+ 𝑓T 2 𝑓S+ 𝑓U 2 𝑓TYZ1+ 𝑓TY 2 …… . 𝑓1− 𝑓T 2 𝑓S− 𝑓U 2 𝑓TYZ1− 𝑓TY 2 …… .Coeficientes de aproximação Coeficientes de detalhes
Exemplo de transformada Haar
10 4 6 12 8 4 2 6
7 9 6 4 3 -3 2 -2
8 5 -1 1 3 -3 2 -2
6,5 1,5 -1 1 3 -3 2 -2
três iterações de Haar sobre um vetor
Inversa Transformada de Haar
Coeficientes de aproximação Coeficientes de detalhes
…… . ……. 𝐴1 𝐴T 𝐴TYZ1 𝐷1 𝐷T 𝐷TYZ1 𝐴1+ 𝐷1 … 𝐴1− 𝐷1 𝐴T+ 𝐷T 𝐴T− 𝐷T 𝐴TYZ1+ 𝐷TYZ1 𝐴TYZ1− 𝐷TYZ1
Transformada Haar
Aplicando a transformada de Haar na horizontal Aplicando a transformada de Haar na verticalUma iteração da transformada de Haar sobre
Duas iterações da Transformada de Haar
REDUÇÃO DE RUÍDOS
Ruídos gaussianos e impulsivo (sal e pimenta)
O problema
• Dada uma imagem 𝐼 𝑥, 𝑦 com um ruído 𝑁(𝑥, 𝑦), reduza
𝑁(𝑥, 𝑦) o máximo que puder sem alterar significativamente
𝐼 𝑥, 𝑦 .
n sSNR
s
s
=
n s dBSNR
s
s
10log
10
=
100
=
n ss
s
20 dB significam
Modelo aditivo de ruído:
𝐼> 𝑥, 𝑦 = 𝐼 𝑥, 𝑦 + 𝑛(𝑥, 𝑦)
Dois tipos básicos de ruídos
• Ruído impulsivo: causado por erro de
transmissão, CCDs defeituosos, etc...
Também chamado de pico e de sal e pimenta.
î
í
ì
³
-+
<
=
l
x
i
i
y
i
l
x
j
i
n
sp)
(
0
)
,
(
min max min[ ]
0
,
1
,
y
Î
x
são v.a. uniformemente distribuídasDois tipos básicos de ruídos
• Ruído Gaussiano branco : processo estocástico
de média zero, independente do tempo e do
espaço.
2 2 22
1
)
(
ss
p
xe
x
G
=
-0
)
,
(
i
j
=
n
)
,
(
~
)
,
(
i
j
n
i
i
0j
j
0n
+
+
é o mesmo processo estocástico
que não varia no tempo.
)
,
(
i
j
n
é uma variável aleatória com a distribuição:Exemplo de ruído Gaussiano ( s=5) e Impulsivo (
!
=0.99)
Imagem com ruído impulsivo
223 204 204 204 204 204 204 204 204 204 204 204 204 223 171 120 120 120 18 120 50 120 120 120 120 120 120 171 171 120 120 120 116 120 120 120 120 120 120 120 120 171 138 120 120 120 120 120 50 120 97 120 120 120 120 171 171 120 120 120 120 120 120 120 120 120 187 120 120 242 172 120 120 120 120 120 120 120 120 120 120 120 120 171 171 120 120 120 120 120 179 120 120 120 120 167 120 171 171 120 120 120 120 120 120 235 120 120 120 120 120 171 171 120 120 120 120 120 120 235 120 76 175 120 120 171 171 120 120 120 120 120 120 120 120 120 120 120 120 171 171 120 120 120 120 120 120 120 123 120 120 214 120 114 171 120 120 120 120 120 120 120 120 120 120 120 143 171 171 120 120 120 232 120 120 198 120 120 120 120 120 171 203 171 171 171 171 171 171 171 171 205 171 171 171 203
Uso da mediana para reduzir o ruído
I
ij
= mediana Ω
ij
= 120
Sinal com ruído gaussiano
:= ( )
f3 x 10cos 2( p x) + 6sin 10( p x) + .8cos 40( p x)
-20 -15 -10 -5 0 5 10 15 20
Suavização
f
h
4
2
1 1 + -+
+
=
i i i if
f
f
h
Filtragem Gaussiana
-20 -15 -10 -5 0 5 10 15 20 w1+w2+w3 filtro w1+w2Mascara ou Filtro
4
2
1 1 + -+
+
=
i i i if
f
f
h
å
-=-=
1 0 ) ( n k k i k ig
f
h
ï
ï
ï
î
ï
ï
ï
í
ì
+
>
+
=
=
-=
-<
=
1
0
1
4
/
1
0
4
/
2
1
4
/
1
1
0
l
se
l
se
l
se
l
se
l
se
g
lou:
Convolução
ò
¥ = -¥ =-=
t tdt
t
f
x
t
g
x
h
(
)
(
)
(
)
å
-=
-=
1
0
)
(
n
k
k
i
k
i
g
f
h
ò
-
¥
¥
-=
Ä
=
f
g
f
u
g
x
u
du
x
h
(
)
(
)
(
)
Ilustação da convolução
ò
¥ = -¥ =-=
t tdt
x
f
x
t
g
x
h
(
)
(
)
(
)
Ilustração da convolução
ò
¥ = -¥ =-=
t tdt
x
f
x
t
g
x
h
(
)
(
)
(
)
Discretização da Gaussiana 1D
0.1 0.2 0.3 -4 -3 -2 -1 0 1 2 3 4 2 2 22
1
)
(
ss
p
xe
x
G
=
-[
1
2
1
]
4
1
[
1 4 6 4 1]
16 1[
1
6
15
20
15
6
1
]
1
Discretização da Gaussiana 2D
2 2 2 22
1
)
,
(
ss
p
y xe
y
x
G
+-=
ú
ú
ú
û
ù
ê
ê
ê
ë
é
1
2
1
2
4
2
1
2
1
16
1
ú ú ú ú ú ú û ù ê ê ê ê ê ê ë é 1 4 7 4 1 4 16 26 16 4 7 26 41 26 7 4 16 26 16 4 1 4 7 4 1 273 1Convolução com máscara
Separabilidade do filtro gaussiano
207 247 38 131 38 62 90 129 234 231 211 175 44 1 26 236 58 75 128 112 210 141 125 168 58 ú ú ú û ù ê ê ê ë é 1 2 1 2 4 2 1 2 1 16 1 130 117 129 125 90 88 129 93 92 ú ú ú û ù ê ê ê ë é 1 2 1 4 1
[
1 2 1]
4 1 185 113 84 93 145 207 151 66 18 107 84 111 154 140 130 130 117 129 125 90 88 129 93 92Arestas e cantos
• Locais de mudanças significativas na intensidade da
imagem
Edgedels = edge elements
Tipos de arestas
degrau (step) rampa (ramp)
cume (roof) impulso (spike)
Derivadas e arestas
f(x) f(x)+n(x) | f'(x)+n'(x) | f"(x)+n"(x)Série
de Taylor
)
(
)
(
2
)
(
)
(
)
(
)
(
)
(
x
x
f
x
x
f
'x
x
2f
"x
O
x
3f
+
D
=
+
D
+
D
+
D
i i i if
f
f
f
' " 12
1
+
+
@
+Com Dx=1, f(x)=f
ie f(x+Dx)=f
i+1Com Dx=-1, f(x)=f
ie f(x+Dx)=f
i-1 i i i if
f
f
f
' " 12
1
+
-@
-(a)
(b)
Aproximações para derivadas
(a-b)
Þ(
1 1)
/
2
' -+-@
i i if
f
f
(a+b)
Þ(
2
)
1 1 " -++
-@
i i i if
f
f
f
f(x)
x
f
i-1f
if
i+1 i+1 i i-1Em 2D
÷ ÷ ÷ ø ö ç ç ç è æ ¶ ¶ ¶ ¶ = Ñ y f x f y x f( , )Gradiente
Laplaciano
2 2 2 2 2(
,
)
y
f
x
f
y
x
f
¶
¶
+
¶
¶
=
Ñ
( )
(
) (
)
x y x f y x f x y x f n m n m D -» ¶ ¶ , +1, ,( )
(
) (
)
x y x f y x f y y x f n m n m D -» ¶ ¶ , , +1 ,[
-
1
1
]
ú
û
ù
ê
ë
é
-1
1
Núcleos de convoluçãoú
ú
ú
û
ù
ê
ê
ê
ë
é
-0
1
0
1
4
1
0
1
0
Derivação após suavização
÷
÷
÷
ø
ö
ç
ç
ç
è
æ
-1
4
1
4
20
4
1
4
1
−1 0 1
−2 0 2
−1 0 1
−1 0 1
−2 0 2
−1 0 1
Sobel: Laplaciano:Imagem filtrada com um filtro passa alta
Projeto 1
Imagem resultante de um algoritmo de
HDRI
PROJETO 2: SLICO
Implemente o algoritmo de superpixel SLICO descrito em:
https://infoscience.epfl.ch/record/177415/files/Superpixel_PAMI2011-2.pdf https://infoscience.epfl.ch/record/177415
Superpixels
O algoritmo SLIC (Simple Linear Iterative Clustering)
Entrada: ns(número aprox. de superpixels) e, opcionalmente, m (compacidade)1. Calcule as coordenadas CIE Lab de todos os pixels da imagem; 2. Calcule o tamanho, s, da cédula quadrada
3. Initialize os representantes das cédulas ci= [li; ai; bi; xi; yi]Tamostrando em uma
grade de tamanhos, i=0,…,(ns-1)
evite as bordas e pontos ruidosos: escolha na vizinhança 3x3 do centro da célula o pixel que tenha o menor gradiente para ci
𝑠 = 𝑤 ∗ ℎ
𝑛𝑠
4. Para cada superpixel ckcrie uma janela de tamanho 2
s
centrada em(xk, yk)
a) Para cada pixel neste janela que estiver atribuído a outro superpixel cj, verifique se a distância dele ao
c
ké menor e, se for, atribua este pixel ao ck.5. Quando todos os superpixels tiverem sido visitados, recalcule o sua cor e centro através da média de seus pixels. Calcule também o deslocamento de seu centro e acumule numa medida de erro E. 6. Se o erro acumulado (de todos os superpixels) for pequeno ou se o
número de iterações for excessivo, maior que 10, por exemplo, pare. Caso contrário volte para o passo 4.
O algoritmo SLIC (cont.)
Cálculo de distância
Distância entre o pixel
p
j= [l
j; a
j; b
j; x
j; y
j]
Te o superpixel
c
i= [l
i; a
i; b
i; x
i; y
i]
T 𝑑c= (𝑙)− 𝑙e)T+(𝑎)− 𝑎e)T+(𝑏)− 𝑏e)T 𝑑f= (𝑥)− 𝑥e)T+(𝑦)− 𝑦e)T 𝑑g= 𝑑c 𝑚c T + 𝑑f 𝑚f Tonde mce mssão as máximas distâncias esparadas no superpixel.
Opções:
1. constantes: ms=s e mc é parâmetro de entrada.