Vous êtes sur la page 1sur 301

PROCESAMIENTO

MULTIMEDIA
Dr. Juan Carlos Gutirrez Cceres
jcgutierrezc@gmail.com

Qu es el Procesamiento
Multimedia?
Procesamiento Multimedia: conjunto de mtodos,
tcnicas y herramientas destinadas a la manipulacin
y anlisis de imgenes, sonido y vdeo digital.
Finalidades del procesamiento:

Mejora, restauracin y eliminacin de ruido.


Creacin y manipulacin de contenido.
Compresin y transmisin de imgenes, sonido y vdeo.
Comprensin y extraccin de informacin.

Mejora, restauracin y eliminacin de ruido

Mejora, restauracin y eliminacin de ruido

Mejora, restauracin y eliminacin de ruido


Bueno, tampoco podemos hacer milagros...

Mejora y restauracin no evitan que la adquisicin


de imgenes siga siendo fundamental.

Creacin y manipulacin de contenido

Creacin y manipulacin de contenido

Compresin y transmisin

Usamos GIF, JPG, BMP, PNG, ...?

PROCESAMIENTO
MULTIMEDIA
1. Adquisicin y representacin de imgenes.

1.1. El proceso de formacin de imgenes.

Mundo 3D

http://webvision.med.utah.edu/anatomy.html

La formacin de imgenes es un proceso mediante el


cual una informacin luminosa 3D (la escena) es
proyectada en un plano 2D (la imagen).
Las cmaras imitan el proceso que tiene lugar en el
ojo humano.

1.1. El proceso de formacin de imgenes.


Modelo de cmara simplificado.

Eje ptico

Mundo 3D

Sistema Plano de imagen


Apertura
ptico (fotodetectores)

El objetivo del modelo es que cada punto de la escena


sea proyectado en un solo punto del plano de imagen.
De esa manera la imagen estar enfocada.

1.1. El proceso de formacin de imgenes.


Modelo ideal de cmara (pinhole).

Distancia focal

Eje ptico
Mundo 3D

P
Apertura

Plano de imagen
(fotodetector)

Una superficie mate emite luz en todas las direcciones.


Cuando la apertura es muy pequea, desde cualquier
punto slo pasa luz con una direccin.
Todos los puntos estn bien definidos: imagen enfocada.
+

1.1. El proceso de formacin de imgenes.


Comparar con lo que ocurre a medida que aumenta el
tamao de la apertura.
P

Los puntos se difuminan.

Crculos de
confusin

1.1. El proceso de formacin de imgenes.


Pero el modelo proyectivo no es completo. No explica
algunos fenmenos como el desenfoque, la
distorsin radial y las aberraciones cromticas.

Conclusiones:
El proceso de formacin est en la parte analgica
del mbito de procesamiento de imgenes.
Para nosotros las imgenes sern simples matrices
de nmeros, pero...
Es importante conocer los elementos, factores y
parmetros que intervienen en los dispositivos de
captura.
Por suerte (o por desgracia), muchas cmaras no
permiten ajustar los parmetros, lo hacen
automticamente.

1.2. Representacin de imgenes digitales.


Una imagen digital es una matriz, o array bidimensional, de nmeros.
Cada celda de la matriz es un pxel.
Ejemplo. Imagen de 20x15.

Un pxel

90

67

68

75

78

98

185

180

153

139

132

106

70

80

81

69

69

67

35

34

92

87

73

78

82

132

180

152

134

120

102

106

95

75

72

63

75

42

19

29

63

102

89

76

98

163

166

164

175

159

120

103

132

96

68

42

49

46

17

22

45

83

109

80

130

158

166

174

158

134

105

71

82

121

80

51

12

50

31

17

39

69

92

115

154

122

144

173

155

105

98

86

82

106

83

76

17

29

41

19

34

80

73

132

144

110

142

181

173

122

100

88

141

142

111

87

33

18

46

36

37

93

88

136

171

164

137

171

190

149

110

137

168

161

132

96

56

23

48

49

66

117

106

147

188

202

198

187

187

159

124

151

167

158

138

105

80

55

59

54

127

136

107

144

188

197

188

184

192

172

124

151

138

108

116

114

84

46

67

54

143

134

99

143

188

172

129

127

179

167

106

118

111

54

70

95

90

46

69

52

141

137

96

146

167

123

91

90

151

156

121

93

78

82

97

91

87

45

66

39

139

137

80

131

162

145

131

129

154

161

158

149

134

122

115

99

84

35

52

30

137

133

56

104

165

167

174

181

175

169

165

162

158

142

124

103

67

19

31

23

135

132

65

86

173

186

200

198

181

171

162

153

145

135

121

104

53

14

15

33

132

132

88

50

149

182

189

191

186

178

166

157

148

131

106

78

28

10

15

44

1.2. Representacin de imgenes digitales.


Una forma ms comn de visualizar una imagen...

Un pxel

1.2. Representacin de imgenes digitales.


Un poco de nomenclatura

N de columnas de la matriz: ancho de la imagen (width).


N de filas de la matriz: alto de la imagen (height).
Eje horizontal: eje x.
Eje vertical: eje y.
Normalmente el tamao de la imagen se expresa como:
Columna
ancho x alto

Ejemplo. Tamaos tpicos:


320x240, 640x480,
800x600, 1024x768, ...
Fila
y
x

1.2. Representacin de imgenes digitales.


Otra posible forma de visualizar la imagen...
Una imagen se
puede interpretar
como una superficie
bidimensional.

Una imagen digital


es un muestreo
discreto de la seal
continua.

1.2. Representacin de imgenes digitales.


Vecindad, proximidad: en una imagen, los pxeles
prximos tienen una relacin ms estrecha entre s que
los lejanos. Diferencia respecto a una matriz en sentido
genrico.
Por ejemplo, se espera que los valores de dos pxeles
prximos sean ms o menos parecidos.
Tiene sentido definir la vecindad de un pxel y la distancia
entre dos pxeles.

Vecindad a 4

Vecindad a 8
+

1.2. Representacin de imgenes digitales.


Supondremos un acceso indexado a los pxeles:
si i es una imagen, i(x, y) ser el valor del pxel en la
columna x, fila y.
Pero, qu indica el valor de un pxel?
Cada pxel representa el valor de una magnitud fsica.
Cantidad de luz en un punto de una escena.
Valor de color (cantidad de radiacin en la frecuencia del
rojo, verde y azul).
Nivel de radiacin infrarroja, rayos X, etc. En general,
cualquier radiacin electromagntica.
Profundidad (distancia) de una escena en una direccin.
Cantidad de presin ejercida en un punto.
Nivel de absorcin de determinada radiacin.
Etctera, etctera.

1.2. Representacin de imgenes digitales.


De qu tipo de datos es cada celda de la matriz?
Imagen binaria:
1 pxel = 1 bit
0 = negro; 1= blanco

Imagen en escala de grises:


1 pxel = 1 byte
Permite 256 niveles de gris
0 = negro; 255 = blanco

Imagen en color:
1 pxel = 3 bytes
Cada pxel consta de 3 valores:
(Rojo, Verde, Azul)
Un byte por color
16,7 millones de colores posibles

1.2. Representacin de imgenes digitales.


Pero no limitado a... existen infinitos tipos posibles.
Un nivel de gris, o un color, se puede representar con ms
o menos bits: profundidad de color (depth).

2 bits por pxel

3 bits por pxel

4 bits por pxel

Hi-color: mtodo reducido para representar colores


1 pxel = 2 bytes
5 bits por cada color (Rojo, Verde, Azul)

Imgenes en punto flotante: tiles en procesos intermedios


1 pxel = 1 float o un double

1.2. Representacin de imgenes digitales.


Imgenes multicanal:
Cuando los pxeles representan magnitudes en
distintos dominios fsicos, decimos que la imagen es
multicanal.
Ejemplo. Imagen en color Imagen con 3 canales:
canal R (rojo), canal G (verde), canal B (azul).

Canal R

Canal G

Canal B

1.2. Representacin de imgenes digitales.


Imgenes multicanal:

http://www.rit.edu/~andpph/

Ejemplo. RGBA Imagen RGB ms canal Alfa. El


canal Alfa representa el nivel de transparencia del pxel.
Ejemplo. En algunas aplicaciones (p.ej., imgenes de
satlite, visin nocturna) suelen usarse canales para
frecuencias no visibles, infrarrojo, ultravioleta, etc.

1.2. Representacin de imgenes digitales.


Almacenamiento de imgenes digitales
Cuestin 1: Cul es el origen de coordenadas y el
orden de las filas?
Top-left: el pxel i(0, 0) es la esquina superior izquierda.
Suele ser el ms habitual.
Bottom-left: el pxel i(0, 0) es la esquina inferior
izquierda. Usado en algunos formatos (p.ej. BMP).

Cuestin 2: Cmo se almacenan los distintos


canales?
Entrelazado (interleaved, pixel order): R0, G0, B0, R1, G1, B1,
R2, G2, B2, ..., Rn, Gn, Bn.
No entrelazado (non-interleaved, plane order): R0, R1, R2, ...,
Rn, G0, G1, G2, ..., Gn, B0, B1, B2, ..., Bn.

1.2. Representacin de imgenes digitales.

Resumen
Parmetros de una imagen digital:

Ancho y alto.
Nmero de canales y significado de cada uno.
Nmero de bits por pxel y canal (depth).
Origen de coordenadas y modo de almacenamiento
multicanal.

Resolucin espacial: tamao de la imagen.


Resolucin fotomtrica: profundidad de color.
Resolucin temporal: aplicable en vdeos.
+

1.3. Dispositivos de captura.


Podemos distinguir entre captura y digitalizacin.

Seal
analgica

Escena

Cmara

Seal
digital

Digitalizador

Ordenador

Seal analgica: seal de vdeo, foto impresa,


diapositiva, etc.
Digitalizadores: digitalizador de vdeo, escner, etc.
Actualmente, la distincin es cada vez ms difusa.
Captura y digitalizacin van incorporadas en los
mismos dispositivos (cmaras y escneres).

1.3. Dispositivos de captura.


Caractersticas de un digitalizador:
Tamao de imagen. Ancho y alto de las imgenes tomadas.
Depende del nmero de pxeles de fotodetector.
En cmaras fotogrficas se mide en megapxeles. Por ejemplo,
resolucin mxima: 2048x1536 3,34 megapxeles.
En cmaras de vdeo suele ser mucho menor. No suele pasar
de 800x600 0,48 megapxeles.

Tamao del pxel. Determina la densidad de pxeles. Es ms


relevante, por ejemplo, en escneres.
Propiedad fsica medida. Luz, infrarrojo, ultravioleta, etc.
Linealidad. El nivel de gris debera ser proporcional al brillo
de la imagen. Tb. es importante el nmero de niveles de gris.
Nivel de ruido. Ante una escena de color uniforme todos los
pxeles deberan ser iguales. Pero nunca lo son. El ruido se
mide en relacin al nivel de contraste en la imagen.

1.3. Dispositivos de captura.


Existen muchos tipos de dispositivos de captura,
segn el tipo de iluminacin, sensores y mecanismo
de escaneado de la imagen.
Los ms populares son los basados en CCD: ChargeCoupled Devices.
Se han impuesto en muchos
mbitos: fotografa digital,
vdeo digital, cmaras de TV,
astronoma, microscopa,
escneres, etc.
Utilizan sensores de silicio.
El CCD es un chip que integra
una matriz de fotodetectores.

1.3. Dispositivos de captura.

http://micro.magnet.fsu.edu/primer/digitalimaging/

OJO! la imgenes capturadas por una cmara no


siempre corresponden a lo que ve el ojo humano.
Lo que el ojo no ve: tanto los chips CCD como los
CMOS son sensibles a la radiacin infrarroja...
... como la emitida por un mando a distancia.

1.3. Dispositivos de captura.


Existen otros muchos tipos de dispositivos de captura,
usados con imgenes de informacin no luminosa.
Ejemplos.

Imagen de
ultrasonidos
(ecografa)

TAC (Tomografa
axial computerizada)
Imgenes de profundidad

1.3. Dispositivos de captura.


Conclusiones
La tecnologa predominante son los dispositivos
basados en CCD y CMOS.
Ambos consisten en arrays de fotodetectores
construidos sobre un semiconductor de silicio.
Parmetros ms relevantes: nmero de pxeles del
array y nivel de ruido.
Otros parmetros (zoom, enfoque, distancia focal, etc.)
dependen de la ptima de la cmara.
En cada aplicacin la mejor opcin puede ser
diferente.

1.4. Formatos de almacenamiento.


Existen muchos formatos. Podemos destacar: BMP, GIF,
PNG, JPG, TIFF, etc.
Diferencias entre los formatos:
Niveles de profundidad admitidos:
1 bit Imgenes en blanco y negro
1 byte Escala de grises o paleta de 256 colores
3 bytes Modelo RGB

Tipo de compresin:
Sin prdida: RLE, LZW, Huffman
Con prdida: mediante FFT, DCT, wavelets

Otras caractersticas:
Posibilidad de definir de transparencias
Diferentes imgenes en un mismo archivo (animaciones)

Como resultado, segn la aplicacin ser ms adecuado


uno u otro formato. +

1.4. Formatos de almacenamiento.


Almacenamiento de imgenes mediante paleta
Paleta de colores: es una tabla de tamao n, donde cada
posicin es un color (normalmente en RGB).
0

R= 51
G= 153
B= 255

El valor de un pxel de la imagen hace referencia a la paleta.


3

Nmero de bits/pxel Tamao de la paleta.


2 bits = 4 colores; 3 bits = 8 colores; 4 bits = 16 colores; ...

1.4. Formatos de almacenamiento.


Almacenamiento de imgenes mediante paleta
Normalmente, las paletas no suelen ser de ms de 256
colores (1 byte por pxel).
Si la imagen originalmente tiene ms colores, es necesario
reducir los colores Seleccionar los ms usados.
Resultado: hay una prdida de informacin de color.

Sin paleta

Con paleta (256 colores)

1.4. Formatos de almacenamiento.


Tipos de compresin
Compresin sin prdida: si se comprime y luego se
descomprime se obtiene la misma imagen.
Compresin con prdida: no se obtiene la misma
imagen, hay una prdida de calidad en la imagen.
Compresin RLE (Run Length Encoding): sin prdida.
Se basa en detectar la repeticin de un mismo valor.
Un valor no repetido se almacena directamente.
Un valor repetido se almacena de forma especial, mediante
un par (Valor, N repeticiones).
Ejemplo. Icono bandera: 3, 3, 3, 4, 4, 4, 4, 4, 4, 0, 1, 1, ...
Imagen comprimida: (3, 3), (4, 6), 0, (1, 2), ...

1.4. Formatos de almacenamiento.


Compresin RLE (Run Length Encoding)
La compresin/descompresin es muy sencilla y rpida.
Pero, funcionar bien?

En imgenes con muchas


regiones uniformes la
compresin ser alta.
Ocurrir en dibujos pintados
a mano.

En imgenes fotogrficas,
con RGB, difcilmente se
repetir un valor.
La compresin ser escasa
o nula.

1.4. Formatos de almacenamiento.


Compresin LZW (Lempel Ziv Welch): sin prdida.
Es un mtodo sustitucional o basado en diccionario.
Idea: si una misma secuencia de valores se repite varias
veces, hacer referencia al sitio donde se repite.
Ejemplo. Supongamos que queremos comprimir un texto.
Entrada: Pablito clav un clavito Qu clavito clav Pablito!
Diccionario: #1 = Pablito; #2 = clav; #3 = clavito
Comprimido: #1 #2 un #3 Qu #3 #2 #1!
Funcionar bien?
Igual que el anterior, el funcionamiento ptimo ser con
dibujos (ms que con fotos), y especialmente usando
paletas de colores. Compresin en torno al 50%.

1.4. Formatos de almacenamiento.


Compresin con prdida: mediante FFT (Transformada
Rpida de Fourier), DCT (Transformada Discreta del
Coseno), wavelets, etc.
Idea: si se permite cierta prdida en la calidad de las
imgenes es posible alcanzar cotas ms altas de
compresin.
Cuanta ms compresin, ms prdida de calidad.
La mayora de las tcnicas estn basadas en anlisis
frecuencial de las imgenes.
Recordatorio. Descomposicin
en series de Fourier: cualquier
seal continua se puede
expresar como una suma
de seales sinusoidales.

1.4. Formatos de almacenamiento.

Compresin mediante DCT en JPG:


Idea parecida a la FFT, pero usando cosenos y en dos
dimensiones.
Explicacin intuitiva:
a) Las imgenes se dividen en bloques de 8x8 pxeles.
b) Existe un catlogo estndar de bloques de 8x8 pxeles
(similar la paleta, pero con bloques y predefinida).

1.4. Formatos de almacenamiento.


c) Cada bloque de 8x8 de la imagen es sustituido por el
nmero del catlogo que sea ms parecido.
Poca
prdida

Mucha
prdida

7
1
6
6
Imagen de entrada

8
7
1
6

1
8
2
2

2
7
6
2

2
2
7
7

Imagen comprimida

1.4. Formatos de almacenamiento.

Compresin mediante DCT en JPG:


Es posible ajustar el nivel de compresin modificando
el tamao del catlogo de bloques.
Catlogo pequeo Mucha compresin, pocos bits
por cada gloque de 8x8, pero poca calidad.
Catlogo grande Poca compresin, muchos bits
por cada bloque, pero alta calidad.
Ojo, es una imagen pequea

Sin comprimir

Ratio 1:4

Ratio 1:10

Ratio 1:26

1.4. Formatos de almacenamiento.


Formato BMP (Windows Bitmap)
Fue desarrollado por Microsoft para la permitir una rpida
entrada/salida por disco/pantalla.
Caractersticas:
Permite muchos niveles de profundidad: 1 bit por pxel (2
colores), 4 bits (16 colores), 8 bits (escala de grises o paleta),
16 bits (Hi-color) y 24 bits = 3 bytes (True-color).
Utiliza compresin sin prdida: RLE o sin comprimir.
Almacenamiento bottom-left y entrelazado de canales.

Ventajas:
No hay prdida de calidad en las imgenes.
La lectura y escritura son muy rpidas.
Formato muy sencillo: cabecera + datos.

1.4. Formatos de almacenamiento.


Formato BMP (Windows Bitmap)
Inconvenientes:
El tamao de las imgenes es excesivamente grande, sobre
todo en imgenes fotogrficas. Tamao de imagen = (aprox.)
ancho*alto*bits_por_pixel
No adecuado para transmisin por red.
Poco popular fuera de los entornos de MS Windows (aunque
est libre de patentes).

Aplicaciones:
Aplicaciones que requieran una rpida salida por pantalla.
Aplicaciones donde no deba haber prdida de calidad, aun a
costa del tamao.

1.4. Formatos de almacenamiento.


Formato BMP (Windows Bitmap)
Ejemplos:

Resolucin: 512x384
Profundidad: 24 bits/pxel
Tamao: 576 Kbytes

Resolucin: 400x308
Profundidad: 24 bits/pxel
Tamao: 167 Kbytes

1.4. Formatos de almacenamiento.


Formato GIF (Graphics Interchange Format)
Desarrollado por Compuserve en 1987 para la rpida
transmisin de imgenes en color por las redes.
Caractersticas:

Mucho ms restringido que TIFF y que BMP.


Basado en uso de paletas, de hasta 256 colores.
Usa el algoritmo de compresin LZW.
Ojo: LZW es compresin sin prdida, pero el uso de paletas
implica una prdida de informacin de color.
Permite definir transparencias. Se puede definir una entrada
de la paleta como transparente.
Un fichero puede contener mltiples imgenes. Esto
permite crear animaciones sencillas.

1.4. Formatos de almacenamiento.


Formato GIF (Graphics Interchange Format)
Paleta: 32 colores
Tamao: 33 Kbytes

Paleta: 256 colores


Tamao: 87 Kbytes

1.4. Formatos de almacenamiento.


Formato GIF (Graphics Interchange Format)
Ventajas:
Caractersticas no admitidas por otros formatos, como
transparencias, animaciones y entrelazado.
Adecuado para transmisin en redes.
Muy popular.

Inconvenientes:
Poco adecuado para imgenes fotogrficas: prdida de color y
tamaos muy grandes.
Formato poco flexible.
Problemas de patentes hicieron que apareciera el formato
PNG como alternativa al GIF. Hoy da, las patentes existentes
sobre GIF han expirado.

1.4. Formatos de almacenamiento.


Formato GIF (Graphics Interchange Format)
Entrelazado: las filas no se almacenan en posiciones
consecutivas, sino salteadas (de 4 en 4).
Esto permite hacerse una
idea de la imagen cuando
slo se ha cargado una
cuarta parte de la misma.

Aplicaciones:
Compresin y almacenamiento de dibujos e imgenes
esquemticas con un nmero reducido de colores distintos.
Transmisin de imgenes por red: imgenes de tamao
reducido (iconos, smbolos, etc.), animaciones sencillas.

1.4. Formatos de almacenamiento.


Formato PNG (PNGs NOT GIF)

No adecuado para fotografas.


No permite animaciones.

Aplicaciones: las mismas que GIF.


320x240 pxeles
(57,2 Kbytes)

http://en.wikipedia.org/wiki/Portable_Network_Graphics

Diseado para reemplazar a GIF, est libre de patentes.


Utiliza compresin sin prdida, con el algoritmo DEFLATE
(el mismo que gzip), basado en prediccin: se espera que
cada lnea se parezca mucho a la anterior.
Profundidades admitidas: 1, 2, 4, 8 bits/pxel (paleta o gris),
8, 16 bits (gris, RGB, o RGBA).
Transparencias mediante canal alfa.
Desventajas:

1.4. Formatos de almacenamiento.


Formato JPEG (Joint Photographic Experts Group)
Es el formato ms elaborado de los cuatro y orientado al
almacenamiento de imgenes fotogrficas.
Caractersticas:
Admite imgenes en escala de grises (1 byte por pxel) y
RGB (3 bytes por pxel).
Incluye un mecanismo avanzado de compresin, que
puede ajustarse a distintos ratios de compresin.
La principal caracterstica es la compresin con prdida,
mediante DCT.
El fichero puede incluir una versin reducida, para
previsualizar la imagen antes de leerla entera.
Est libre de patentes.

1.4. Formatos de almacenamiento.


Formato JPEG (Joint Photographic Experts Group)
Mecanismo de compresin JPEG:
1) Conversin del espacio de color, de RGB a YUV
(Y= iluminacin, UV= crominancia).

2) Reduccin de resolucin (a la mitad) en los canales UV.


El ojo humano es ms sensible a la intensidad que al color.

3) Compresin mediante DCT de los grupos de 8x8 pxeles


en cada canal.
El tamao del catlogo depende del nivel de compresin.

4) Compresin sin prdida del resultado mediante cdigos de


Huffman.

1.4. Formatos de almacenamiento.


Formato JPEG (Joint Photographic Experts Group)
Tamao: 31 Kbytes

Tamao: 86 Kbytes

Comprimiendo al mismo tamao que GIF, la calidad es


mejor, sobre todo en imgenes fotogrficas. Pero...

1.4. Formatos de almacenamiento.


Formato JPEG (Joint Photographic Experts Group)
Con mayor compresin se producen distintos problemas.
Prdida de color

Efecto de cuadriculado

Aparicin de artefactos, en
imgenes con bordes abruptos

Desaparicin de estrellas

1.4. Formatos de almacenamiento.


Formato JPEG (Joint Photographic Experts Group)
Ventajas:
En la mayora de los casos, consigue un ratio
compresin/calidad mucho mejor que los otros formatos.
Nivel de compresin ajustable. Tpicamente entre 1:10 y 1:100
Formato muy popular y casi exclusivo en muchos mbitos.

Inconvenientes:

Compresin/descompresin complejas y costosas.


No incluye transparencias ni animaciones.
Genera artefactos o artificios (artifacts).
La informacin perdida no se recupera. Si trabajamos con un
JPEG guardando en disco tras cada operacin, la imagen se
va degradando.

1.4. Formatos de almacenamiento.


Formato JPEG (Joint Photographic Experts Group)
Aplicaciones:
Prcticamente, todas las aplicaciones de fotografa digital:
captura, almacenamiento, transmisin, impresin, etc.
No usar si no se permite prdida de calidad o si se trabaja con
dibujos.

Los artefactos pueden ser inadmisibles en ciertas


aplicaciones que requieren alta calidad.
Existe un nuevo estndar, JPEG2000 que evita los
artefactos. En lugar de DCT, usa una transformacin
basada en wavelets.
Mejora la compresin sobre un 20%, pero es ms costoso.

1.4. Formatos de almacenamiento.


Comparacin JPEG / JPEG 2000
JPG 3.12 Kbytes

JPG 1.27 Kbytes

PNG 135 Kbytes

JP2 3.08 Kbytes

JP2 1.13 Kbytes

JP2 832 bytes

1.4. Formatos de almacenamiento.


Otros: Formato TIFF (Tagged Image File Format)
Diseado para trabajos de impresin profesional de alta
resolucin y calidad (impresin industrial).
Es muy flexible, basado en tags (bloques de datos de formato
predefinido).
El formato es muy abierto: admite hasta 64.000 canales, n
arbitrario de bits por pxel (hasta enteros o reales de 64 bits),
distintos espacios de color, mltiples imgenes por fichero,
cualquier tipo de compresin existente, etc.

Otros: Formato RAW (o negativo digital)


No existe un nico estndar RAW, cada empresa usa el suyo.
Algunas caractersticas comunes: se almacenan los datos sin
procesar; la profundidad suele ser 12 14 bits/pxel; no son
RGB, sino los resultados del patrn de Bayer; normalmente
no hay compresin o es sin prdida.

1.4. Formatos de almacenamiento.


Conclusiones:
Buscar el formato y nivel de compresin ms
adecuado para cada aplicacin particular.
Cuidado con los formatos con prdida. Cada vez
que se guarda hay una prdida de calidad. Guardar
una copia sin prdida del original.
Ojo: son formatos de almacenamiento. Para procesar
las imgenes en memoria no se usan estos formatos,
sino imgenes descomprimidas (en crudo): matrices
de pxeles.

1. Adquisicin y representacin de imgenes.

Conclusiones:
Una imagen digital no es ms que una matriz de
nmeros.
Las imgenes digitales son muestreos discretos de
seales continuas bidimensionales.
Discretizacin en el espacio: ancho y alto.
Discretizacin en el valor: profundidad de pxel.

El procesamiento de imgenes recibe imgenes


como entrada y produce imgenes en la salida
(mejora, restauracin, etc.).
Pero... de donde no hay no se puede sacar. La
adquisicin de imgenes sigue siendo fundamental.

Tema 2. Procesamiento
global de imgenes.

2.1. Tipos de operaciones. Histogramas.


Pregunta: Cul es la base terica del procesamiento
de imgenes? Qu operaciones aplicar?
Recordatorio: una imagen digital no es ms que una
matriz, o array bidimensional, de nmeros!
90

67

68

75

78

92

87

73

78

82

63

102

89

76

98

45

83

109

80

130

39

69

92

115

154

Podemos aplicar las mismas operaciones que sobre


cualquier nmero: sumar, restar, multiplicar, dividir,
aplicar and, or, mximo, mnimo, integrales, derivadas...

2.1. Tipos de operaciones. Histogramas.


Principales tipos de
procesamientos de imgenes:
Operaciones de procesamiento
global: cada pxel es tratado de
forma independiente, ya sea con
una o con varias imgenes.
Filtros y convoluciones: se
considera la vecindad local
de los pxeles.
Transformaciones geomtricas: se modifica el tamao
y forma de las matrices.
Transformaciones lineales:
Fourier, wavelets, etc.

2.1. Tipos de operaciones. Histogramas.

Operaciones de procesamiento global:


Aritmticas: sumar, restar, multiplicar, mximo, etc.
Unarias: una sola imagen y un valor constante.
Binarias: con dos imgenes.

Booleanas: and, or, not, etc.


Unarias: una sola imagen y una constante.
Binarias: con dos imgenes.

Otras transformaciones generales:


Transformaciones de histograma.
Transformaciones de color.
Binarizacin, etc.

Cada operacin tendr un significado, utilidad y


aplicaciones especficos. +

2.1. Tipos de operaciones. Histogramas.

Supongamos una imagen de entrada A y una


imagen resultado R.
Una operacin global (pxel a pxel) se puede
expresar como una funcin:
R(x,y):= f(A(x,y))

El valor del pxel resultante es


funcin de (y slo de) el pxel
correspondiente de entrada.

Ejemplo. Invertir. R(x,y):= 255 A(x,y)


Imagen
A

Imagen
R

2.1. Tipos de operaciones. Histogramas.


R(x,y):= f(A(x,y)), (x,y)

Comparar con:
Filtros y convoluciones: el valor de un pxel depende
de la vecindad local de ese pxel:
R(x,y):= f(A(x-k,y-k), ..., A(x,y), ..., A(x+k,y+k))
Transformaciones geomtricas: el valor de un pxel
depende de pxeles situados en otras posiciones:
R(x,y):= A(f1(x,y), f2(x,y))
Transformaciones lineales: el valor de un pxel puede
depender de todos los pxeles de la imagen:
R(x,y):= f(A, x, y)

2.1. Tipos de operaciones. Histogramas.

Frecuencia
(nmero de pxeles)

Para comprender el significado de muchas transformaciones y saber cul conviene aplicar se usan histogramas.
Qu es un histograma? Repasar estadstica...
Un histograma representa grficamente una distribucin
de frecuencias.
Histograma de una imagen: representa las frecuencias
de los diferentes valores de gris en la imagen.

127

Nivel de gris

255

2.1. Tipos de operaciones. Histogramas.

Algoritmo. Clculo de un histograma.


Entrada. A: imagen de ancho x alto
Salida. Histograma: array [0,...,255] de entero
Algoritmo:
Histograma[]:= 0
para y:= 0, ..., alto-1 hacer
para x:= 0, ..., ancho-1 hacer
Histograma[A(x,y)]:= Histograma[A(x,y)]+1

2.1. Tipos de operaciones. Histogramas.


Los histogramas son una herramienta importante en
anlisis de imgenes: es buena la calidad de una
imagen?, sobra luz?, falta contraste?
Ayudan a decidir cul es el procesamiento ms
adecuado para mejorar la calidad de una imagen...

En principio, una buena


imagen debe producir un
histograma ms o menos
uniforme y repartido en
todo el rango de valores.

Frecuencia

Tanto cualitativamente (qu operacin aplicar),


Como cuantitativamente (en qu cantidad).

127

Nivel de gris

255

2.1. Tipos de operaciones. Histogramas.

Frecuencia

Ejemplo 1. La imagen es muy oscura. Falta luz.

127

255

Frecuencia

Ejemplo 2. La imagen es muy clara. Sobra brillo.

127

255

2.1. Tipos de operaciones. Histogramas.

Frecuencia

Ejemplo 3. La imagen tiene poco contraste.

127

255

Frecuencia

Ejemplo 4. Hay mucho contraste, pocos medios tonos.

127

255

2.1. Tipos de operaciones. Histogramas.


Histogramas de color. En imgenes multicanal podemos
obtener un histograma de cada canal por separado.

Canal Rojo

127

Canal Verde

255

127

Canal Azul

255

127

255

2.1. Tipos de operaciones. Histogramas.


O, tambin, podemos calcular histogramas conjuntos, en 2
3 dimensiones.
Canales R y G

Canales G y B

Canales R y B

Estos histogramas aportan informacin sobre los rangos de


colores ms frecuentes en la imagen.
En teora, el histograma es de 256x256 celdas (bins).
Pero, para obtener buenos resultados, mejor usar un
nmero reducido de celdas. Por ejemplo 64x64 32x32.

2.1. Tipos de operaciones. Histogramas.


Uso de histogramas para mejorar la calidad de las imgenes.
Ejemplo. El
histograma
indica tonos
muy oscuros.

Solucin.
Aplicar un
operador
que estire
el histograma.

2.2. Operaciones elementales con pxeles.

A: imagen de entrada.
R: imagen resultante (del mismo tamao que A).

Operaciones unarias:

Sumar una constante: R(x, y):= A(x, y) + a


Restar una constante: R(x, y):= A(x, y) - a
Multiplicar por una constante: R(x, y):= bA(x, y)
Dividir por una constante: R(x, y):= A(x, y)/b
Transformacin lineal genrica: R(x, y):= bA(x, y)+a
Transformacin de gama: R(x, y):= A(x, y)c
Cualquier funcin NN: R(x, y):= f(A(x,y))

2.2. Operaciones elementales con pxeles.

Sumar una constante: R(x, y):= A(x, y) + a


Significado: incrementar el brillo de la imagen en la
cantidad indicada en a.
El histograma se desplaza a la derecha en a pxeles.

a
+

2.2. Operaciones elementales con pxeles.


Ojo: la suma puede ser mayor que 255...
La operacin debera comprobar el overflow:
si A(x, y) + a > 255 entonces R(x, y):= 255
sino R(x, y):= A(x, y) + a

Ejemplo de imagen
muy saturada

Esto se debe hacer tambin en las dems operaciones,


comprobando si el valor es <0 >255.
Coloquialmente, un pxel por encima de 255 o por
debajo de 0 se dice que
est saturado.
La saturacin supone
una prdida de
informacin.

2.2. Operaciones elementales con pxeles.


En imgenes en color, la suma se realiza sobre los
tres canales (R, G y B) y con el mismo valor.
R(x, y).R:= A(x, y).R + a
R(x, y).G:= A(x, y).G + a
R(x, y).B:= A(x, y).B + a

Qu ocurre si se suma un valor distinto a cada canal?

2.2. Operaciones elementales con pxeles.

Restar una constante: R(x, y):= A(x, y) - a


Significado: decrementar el brillo de la imagen en la
cantidad indicada en a.
El histograma se desplaza a la izquierda en a pxeles.

2.2. Operaciones elementales con pxeles.

Multiplicar por una constante: R(x, y):= bA(x, y)


Significado: aumentar la intensidad de la imagen en b.
El histograma se estira hacia la derecha.

2.2. Operaciones elementales con pxeles.


Tanto en la suma como en la multiplicacin, se aumenta el
nivel de gris de los pxeles, pero de forma distinta.
En la suma, el parmetro a (entero) indica el nmero de
niveles de gris a aumentar: de -255 a 255.
En el producto, el parmetro b (real) indica el factor a
multiplicar.
b=1 Ningn cambio
b=2 Se duplica el valor de gris. Los px. >127 se saturan.
b=0,5 Se encoge a la mitad el histograma.
Multiplicacin

Suma

0+a

0*b

2.2. Operaciones elementales con pxeles.

Dividir por una constante: R(x, y):= A(x, y) / b


= Multiplicar por 1/b
... obviamente!
El histograma se encoge.

2.3. Transformaciones del histograma.

192
64

128

f: curva
tonal

Valor de salida

255

Las transformaciones elementales se pueden ver


como funciones f: N N.
Interpretacin: para cada valor de gris de entrada
hay un valor de salida.

64

128

192

255

Valor de entrada

Se puede usar cualquier funcin f.


La transformacin hace que se modifique el histograma.
+

2.3. Transformaciones del histograma.

192
64

128
64

128

192

255

Dividir 2: f(v):= v/2

64

128

192

255

64

128

192

255

Por 3: f(v):= 3v

128
64
0

64

64

128

128

192

192

Multiplicar 2: f(v):=2v

0
0

255

255

192

192

128

255

64

Resta: f(v):= v - a

255

255
128

64

192
128
64
0

255

Suma: f(v):= v + a

192

255

Identidad: f(v):= v

64

128

192

255

64

128

192

255

2.3. Transformaciones del histograma.

128

192

255

Ej. Inversa: f(v):= 255 - v

64

En general, podemos definir


una transformacin lineal
genrica de la forma:
f(v):= bv + a

64

128

192

255

Pero la transformacin tambin puede ser no lineal:


cuadrtica, polinomial, exponencial, logartmica,
escalonada, etc.
Cmo decidir cul es la transformacin ms
adecuada? Usar el histograma.

2.3. Transformaciones del histograma.


Normalmente, interesa estirar el histograma, para
conseguir que aparezca todo el rango de valores.
Idea: definir una transformacin lineal tal que el
histograma resultante vaya de 0 a 255.
Ajuste lineal o estiramiento (stretch) del histograma:
Buscar el valor mnimo del histograma: m
Buscar el valor mximo: M
f(v):= (v-m)*255/(M-m)

Nota: Esto es una


simple regla de 3

2.3. Transformaciones del histograma.


A

Ejemplo. m= 86, M= 214


R(x,y):= (A(x,y)-86)*1,99

Para imgenes en
color, se aplica la
misma funcin a los
tres canales (R,G,B)

Ojo: no
necesariamente el
mximo

192
128
64
0

Histograma de R

255

Histograma de A

64

128

192

255

2.3. Transformaciones del histograma.


Cuidado: un simple pxel con valor muy alto o muy bajo
puede hacer que el ajuste del histograma sea muy malo.
Por ejemplo, si hay un pxel con valor 0 y otro con 255, la
transformacin sera la identidad (la imagen no cambia).
Solucin: en lugar de mnimo y mximo, ajustar usando dos
percentiles del histograma (p. ej. 10%-90%, 5%-95%).
Histograma de A

5%

5%

2.3. Transformaciones del histograma.


Ms ejemplos de estiramiento lineal del histograma.

2.3. Transformaciones del histograma.


La transformacin de histograma puede tomar
cualquier forma (no necesariamente lineal).
Ejemplos.

128
64

128

64
0
0

64

128

192

255

Valor de entrada
Resultado: oscurecer
los medios tonos.

255
192

255

Raz: c1v0.5 + c2

192

255
192
128
64
0

Valor de salida

Parbola: c1v2 + c2v + c3

Dos trozos de curva


(parbola y raz)

64

128

192

255

64

128

192

255

Valor de entrada

Valor de entrada

Resultado: aclarar
los medios tonos.

Resultado: aclarar
tonos oscuros y
oscurecer los claros.

192
128
64
0

Elevar a 2, elevar a 1/2, ...


Se define la transformacin
de gama como:
f(v):= 255(v/255)1/GAMA

255

2.3. Transformaciones del histograma.

Gama 0,5

Gama 0,75

Gama 1

64

Gama 2

128

192

255

Gama 4

2.3. Transformaciones del histograma.


La diferencia entre diferentes dispositivos
(televisores, cmaras, escneres) se modela con
una transformacin de gama.
Si el comportamiento del dispositivo fuera
perfectamente lineal, Gama = 1.
Blanco

Negro

Dnde est el 50% de gris? Es la escala lineal?


Dnde estara si tomramos una foto?

2.3. Transformaciones del histograma.

192

255

Otra transformacin habitual es la ecualizacin del


histograma (del latn aequalis = igual).
Ecualizacin del histograma: es una transformacin
definida de forma que el histograma resultante se
reparte uniformemente en todo el rango de grises.

64 128

?
0

127

255

64

128

192

255

127

255

En este caso se usa una funcin escalonada:


f: array [0..255] de byte
+

2.3. Transformaciones del histograma.


Cmo definir f para conseguir la ecualizacin?
Idea: suponer que a la salida hay 5 niveles de gris.
20%
20%

20%
20%
20%

para todo pxel (x,y) de R hacer


R(x,y):= f[A(x,y)]
255

127

64

128

192

255

2.3. Transformaciones del histograma.


Algoritmo. Clculo de la funcin de ecualizacin del
histograma.
Entrada. Histograma: array [0,...,255] de entero
np: entero (nmero total de pxeles = mx*my)
Salida. f: array [0,...,255] de byte
Algoritmo:
La funcin de ecualizacin es
f[0]:= 0
la integral del histograma,
acumulado:= Histograma[0]
escalada por el factor 255/np.
para i:= 1, ..., 254 hacer
f[i]:= acumulado*255/np
acumulado:= acumulado + Histograma[i]
finpara
f[255]:= 255

2.3. Transformaciones del histograma.


Imagen de entrada (A)

Histograma de A

Imagen ecualizada (R)

Funcin f

Histograma de R

2.3. Transformaciones del histograma.


Ejemplos. Ecualizacin del histograma.

Cada canal (R,G,B)


es ecualizado por
separado

Cuidado, en algunos casos los resultados pueden ser


artificiosos.

2.3. Transformaciones del histograma.

192

255
0

64

128

192

255

Umbral
superior

64

Umbral
inferior

64

64

128

128

128

192

255
192

Umbral

Valor de salida

255

Umbralizacin de imgenes. En algunas


aplicaciones puede ser interesante convertir la imagen
en binaria, o recortar cierto rango de valores.
Las funciones tienen las siguientes formas:

64

128

192

255

Valor de entrada

Valor de entrada

Umbralizar la
imagen con valor cte.

Cortar un rango y
mantener el resto

64

128

192

255

Valor de entrada

Seleccionar un
rango

2.3. Transformaciones del histograma.


Las funciones sern del estilo:
f(v):= si v > umbral1 entonces g(v)
sino h(v)
Transformacin de binarizacin (saturar a 0 255).
f(v):= si v < umbral entonces 0 sino 255
Ejemplo 1. La binarizacin se suele aplicar en OCR.

Imagen de entrada
(256 grises)

Umbral = 160

Umbral = 215

2.3. Transformaciones del histograma.


Ejemplo 2. Segmentacin de objetos.

Imagen de entrada

Umbralizar, u = 42

Umbralizar, u = 180

La separacin del objeto del


fondo se llama segmentacin.
La umbralizacin se puede
usar para segmentar...
... aunque por s sola no suele
funcionar muy bien.
Cortar rango (192, 255)

2.3. Transformaciones del histograma.


Conclusiones:
Una transformacin elemental se puede ver desde
distintas perspectivas:
Como una funcin unidimensional: f: N N
Como una curva tonal.
Como una modificacin del histograma.

La caracterstica fundamental es que cada pxel se


trata independientemente de los dems.
Los histogramas son tiles para encontrar la
transformacin adecuada.
En imgenes RGB, aplicamos la misma operacin a
los 3 canales para que se mantenga el color.

2.4. Combinacin de imgenes.


Combinacin de imgenes: utilizar dos o ms
imgenes de entrada para producir una imagen de
salida.
Entrada: imgenes A y B. El valor del pxel resultante es
funcin de los pxeles de A y B
Salida: imagen R.
en la misma posicin

R(x, y):= f(A(x,y), B(x,y))

En principio, todas las


imgenes deben ser del
mismo tamao

Posibles operaciones de combinacin:


Booleanas: and, or, xor, not
Aritmticas: suma, resta, producto/divisin, media
Relacionales: mximo, mnimo

2.4. Combinacin de imgenes.

Operadores booleanos:
R(x, y):= A(x,y) AND B(x,y)
R(x, y):= A(x,y) OR B(x,y)
R(x, y):= A(x,y) XOR B(x,y)
R(x, y):= NOT A(x,y) AND B(x,y)
R(x, y):= A(x,y) OR NOT B(x,y)
...
Estos operadores tienen sentido cuando al menos
una de las imgenes es binaria.
Negro (0) = FALSE
Blanco (1 255) = TRUE

2.4. Combinacin de imgenes.


Ejemplos. Operadores booleanos.
Imagen de
entrada
A

A AND B

Imagen de
entrada
B

A OR B

A XOR B

ARGB AND BRGB

En imgenes
no binarias no
tienen mucho
sentido...
Cmo se
interpretan?

AGris AND BGris

2.4. Combinacin de imgenes.

Las operaciones binarias aparecen en anlisis de imgenes,


y tambin para trabajar con mscaras y recortes de
objetos.

2.4. Combinacin de imgenes.


Imgenes de entrada.
A

Cmo conseguir el montaje de la pgina anterior?

R:= (B AND NOT C) OR (A AND C)

2.4. Combinacin de imgenes.


1. T1:= B AND NOT C
B

NOT C

2. T2:= A AND C
A

T2
C

3. R:= T1 OR T2
T1

T1

R
T2

2.4. Combinacin de imgenes.


La imagen binaria (C) se suele denominar mscara.
La mscara permite segmentar el objeto de inters.
R

!?
Cuestiones:
Cmo crear la mscara de forma automtica?
La zona del pelo no se mezcla bien con el fondo.
Cmo evitar este problema?

2.4. Combinacin de imgenes.

Operaciones aritmticas:

R(x, y):= A(x, y) + B(x, y)


R(x, y):= A(x, y) - B(x, y)
R(x, y):= (A(x, y) + B(x, y))/2
R(x, y):= aA(x, y) + (1-a)B(x, y)
R(x, y):= A(x, y)B(x, y)c

Se usan en generacin y anlisis de imgenes.


Cuidado con los problemas de saturacin.
En imgenes binarias son equivalentes (en su
mayora) a los operadores booleanos.

2.4. Combinacin de imgenes.


Sumar dos imgenes: R(x, y):= A(x, y) + B(x, y)
Significado: mezclar las dos imgenes.
A

Ojo: [0..255] + [0..255] = [0..510]

2.4. Combinacin de imgenes.


Para evitar la saturacin se puede usar la media.

Media de 2 imgenes: R(x, y):= (A(x,y)+B(x,y))/2


A

Significado: las imgenes son


semitransparentes (al 50%).

2.4. Combinacin de imgenes.


De forma similar, se puede definir la media ponderada.

Media ponderada: R(x,y):= aA(x,y) + (1-a)B(x,y)


a = 0,25

a = 0,5

La media ponderada se puede


usar para crear una transicin
suave entre imgenes (o vdeos).

a = 0,75

2.4. Combinacin de imgenes.


La media de imgenes se puede usar para acumular
imgenes de un vdeo.
Ejemplo 1. Combinar imgenes con mucho ruido de una
escena, para obtener una mezcla con menos ruido.

Imgenes
capturadas
de TV

Imagen
acumulada

2.4. Combinacin de imgenes.


Ejemplo 2. Crear un modelo de fondo de una escena,
acumulando varias imgenes.

Modelo de
Imgenes de
fondo
Quickcam

Idea: si adems de la media en cada pxel calculamos


tambin la varianza, podramos tener un modelo
gaussiano del fondo (N(,)).

2.4. Combinacin de imgenes.


Restar dos imgenes: R(x, y):= A(x, y) - B(x, y)
Significado: obtener diferencia entre imgenes.
A

B
[0..255] - [0..255] =
[-255..255] La mitad
de los pxeles se
saturan a 0

A-B

B-A

2.4. Combinacin de imgenes.


Restar dos imgenes, manteniendo el rango de
salida: R(x, y):= (A(x, y) - B(x, y))/2 + 128
A

(A-B)*

(B-A)*

2.4. Combinacin de imgenes.


Muchas veces lo que interesa es conocer la diferencia
entre las imgenes. Solucin: tomar valor absoluto de
la resta.

Diferencia: R(x, y):= abs(A(x, y) - B(x, y))


A

? Son muy
distintas...
Pxel negro: las dos imgenes son
iguales en ese pxel.
Cuando ms clara es una zona, ms
se diferencian las imgenes.

2.4. Combinacin de imgenes.


Aplicaciones de la diferencia: encontrar variaciones
entre imgenes que, en principio, deberan ser
parecidas.
Ejemplo 1. Analizar la prdida de informacin al
comprimir una imagen. Por ejemplo, con JPEG.
Dif.
x16

Dif.
x16

2.4. Combinacin de imgenes.


Ejemplo 2. Segmentacin del fondo de una escena.
Tenemos un fondo (imagen media) y una nueva imagen.
Modelo de fondo

Frame 2

Frame 1

Idea: esto se
puede usar para
crear la mscara...
Cmo?
x2

x2

2.4. Combinacin de imgenes.

Proceso.

1. Obtener el modelo de fondo


M.
2. Para cada imagen A del
vdeo.
3. Calcular la diferencia: D =
abs(M-A).
4. Umbralizar la imagen con
un valor adecuado. U =
umbralizar(D, x).
5. Sea F el nuevo fondo.
6. R:= (F AND NOT U) OR (A
AND U)

M
A

D
U
F

Cmo
arreglar eso?

2.4. Combinacin de imgenes.


Ejemplo 3. Deteccin de movimiento en vdeo.
Dada una secuencia de vdeo, queremos saber si se
ha producido alguna modificacin, y en qu zonas de
la imagen (encuentra las 7 diferencias).
Frame 1

Frame 2

Diferencia x2

Qu objetos se han movido y en qu direccin?

2.4. Combinacin de imgenes.


Producto imgenes: R(x, y):= A(x, y)B(x, y)/255
A

AB

B Necesario escalar el resultado


(dividir por 255).
Efecto de mezcla, similar a la
suma, pero conceptualmente
ms prximo a un AND...

2.4. Combinacin de imgenes.


Divisin imgenes: R(x, y):= 255A(x, y)/B(x, y)
A

A/B

Tambin es necesario escalar


el resultado (multiplicar por
255).
Cul es interpretacin del
resultado?

2.4. Combinacin de imgenes.


Ejemplo 1. Realizar una transformacin de intensidad
distinta para cada pxel.
A

B1

B2

A*B1

A*B2

2.4. Combinacin de imgenes.


Estos mismos tipos de imgenes se pueden usar para
hacer sumas, restas, divisiones, etc.
Ejemplo. R(x, y):= A(x, y)B(x, y)/128
Si B(x, y) = 128 el pxel de A no cambia.
Si B(x, y) < 128 el pxel se oscurece.
Si B(x, y) > 128 el pxel se aclara.

El producto es tambin la base en la idea de mscara


o seleccin difusa.
Idea: una imagen se compone de distintos elementos o
capas, que tienen definido cierto nivel de
transparencia.

2.4. Combinacin de imgenes.


Ejemplo 2. Mezcla y combinacin de imgenes.
Queremos combinar dos imgenes, por ejemplo, para
poner una etiqueta descriptiva en una foto. Una imagen
binaria sirve de mscara: 0 = fondo, 1 = etiqueta.
A

Resultado:
R:= (A AND NOT M)
OR (B AND M)

R
No me convence...
mejor un reborde
suave (difuminado)

2.4. Combinacin de imgenes.


Solucin. Usar una mscara suave, una imagen en gris: 0
= transparente, 255 = opaco. Combinar: sumas y productos.

Resultado:
R:= A(255-N)/255 + BN/255
Producto de
imgenes

2.4. Combinacin de imgenes.


Indicaciones sobre el ejemplo 2.
La mascara suave es la idea del canal alfa.
RGB RGBA, donde el canal A indica el grado de
opacidad de un pxel (0= transparente, 255= opaco).
Uso: definimos imgenes, con sus canales alfa, y las
componemos poniendo unas sobre otras.
La composicin de imgenes con canal alfa es
bsicamente una media ponderada como hemos visto.
En el modo binario, muchas herramientas incorporan las
ideas de mscara, seleccin, regin de inters (cuando
es rectangular) o canal de inters (en multicanal).
No necesitamos trabajar con operaciones booleanas,
aunque implcitamente es lo que hay subyacente.

2.4. Combinacin de imgenes.


Otras operaciones no lineales
Mnimo de 2 imgenes. R(x, y):= min(A(x, y), B(x, y))
A

Mximo de 2 imgenes. R(x, y):= max(A(x, y), B(x, y))


A

2.4. Combinacin de imgenes.


Ejemplo. Una alternativa para crear modelos de fondo
es usar mximos y mnimos. En lugar de tener media y
varianza, tenemos mximo y mnimo del fondo en cada
pxel.
Fondo mnimo

Fondo mximo

Dada una imagen nueva, para cada pxel, comprobar si


su valor est entre el mximo y el mnimo. Si lo est:
fondo; si no lo est: objeto.

2.4. Combinacin de imgenes.


Con esto tenemos otra forma de hacer la segmentacin
de los objetos.
Modelo de fondo

La mscara ya
est binarizada

Frame 1

Frame 2

2.4. Combinacin de imgenes.

Conclusiones:
Operaciones de combinacin: a partir de dos o ms
imgenes obtener una nueva imagen.
La operacin a aplicar depende de lo que queramos
conseguir.
Operaciones booleanas: tiles para trabajar con
mscaras de objetos.
Operaciones aritmticas: tiles en vdeo, modelos
acumulados, deteccin de movimiento, transparencias
difusas, etc.
En general, cualquier tipo de operacin es posible, ya
sean lineales o no lineales.

2.5. Transformaciones de color.


En los puntos anteriores la transformacin era la
misma para todos los canales (R, G y B).
Si es distinta, hablamos de transformacin de color:
R(x, y).R:= f1(A(x,y).R, A(x,y).G, A(x,y).B)
R(x, y).G:= f2(A(x,y).R, A(x,y).G, A(x,y).B)
R(x, y).B:= f3(A(x,y).R, A(x,y).G, A(x,y).B)
Posibilidades:
Aplicar las mismas transformaciones que antes (suma,
producto, ajuste de histograma, etc.), pero con distintos
parmetros para cada canal.
Transformaciones basadas en modelos de color.
Cambiar el modelo de color (RGB, HSV, HLS, XYZ,
YUV, etc.) y aplicar la funcin en ese modelo.

2.5. Transformaciones de color.

Conversin color escala de grises


Conversin sencilla:
Pero, de
R(x, y):= (A(x,y).R + A(x,y).G + A(x,y).B)/3 dnde salen
esos pesos?
Conversin precisa:
R(x, y):= 0.21A(x,y).R + 0.72A(x,y).G + 0.07A(x,y).B

Imagen de entrada

Grises (media)

Grises (precisa)

2.5. Transformaciones de color.


Transformacin escala de grises escala de color
Idea: dada un imagen en gris, producir una imagen en
escala de cierto color dado.
Sea A una imagen en grises y un color objetivo (vr, vg, vb).
La escala se puede descomponer en dos partes:
A

R
(0,0,0)

(vr,vg,vb)

(255,255,255)

Transformacin (obviamos (x,y)):


si A<128 entonces
R.R:= vrA/128; R.G:= vgA/128; R.B:= vbA/128
sino
R.R:= vr+(255-vr)(A-128)/128; R.G:= vg+(255-vg)(A-128)/128
R.B:= vb+(255-vb)(A-128)/128
finsi

2.5. Transformaciones de color.


Ejemplo. Transformacin a sepia.

Imagen de entrada

Escala de grises

Escala de sepias

Cmo conseguir
que el punto
intermedio sea un
valor cualquiera
(distinto de 128)?
Escala de (30,255,0) Escala de (0,255,255)

2.5. Transformaciones de color.


Transformacin de color falso
Es una transformacin de la misma familia, cuyo objetivo es
hacer ms visibles las pequeas variaciones del nivel de
gris.
Se define una paleta de salida adecuada y una
transformacin de cada valor de gris en la paleta.
A

R=
G=
B=

255

255
0

0
255

255

0
255

255
0

2.5. Transformaciones de color.


Ejemplo. Transformacin de color falso.
Las transformaciones de este tipo son comunes en
imgenes mdicas y de satlite.
En estas aplicaciones, la profundidad del canal puede ser
fcilmente mayor que 1 byte. Al usar slo 256 grises se
pierde informacin.

Imagen de entrada

Imagen con color falso

2.5. Transformaciones de color.

Sumar (-20, 8, 60)

Imagen de entrada

Transformaciones de agregar color (colorear)


Idea: usar las operaciones de suma, resta y producto,
pero con una constante distinta por cada canal.
R.R:= vr+A.R; R.G:= vg+A.G; R.B:= vb+A.B
R.R:= frA.R; R.G:= fgA.G; R.B:= fbA.B
(vr, vg, vb) y (fr, fg, fb) indican el tono de color que se
da a la imagen.

Sumar (-10, 40, -10) Multipl. (1.4, 1.15, 1)

Multipl. (1.4, 0.9, 0.9) Imagen de entrada

2.5. Transformaciones de color.

Transformaciones de agregar color (colorear)

2.5. Transformaciones de color.


Estas transformaciones estn relacionadas con el
balance de blancos.
Las salidas de los fotodetectores de cada canal
(R,G,B) deberan ser acordes a la apreciacin
subjetiva del color por parte del humano.
Esto implica multiplicar cada canal por un factor
adecuado.
Cuestin: qu imagen tiene los colores ms
realistas?
Ejemplos:
Priorizar rojos (medio): fr= 1.2, fg= 0.9, fb= 0.9
Priorizar verdes (mucho): fr= 0.8, fg= 1.6, fb= 0.8
Priorizar amarillos (poco): fr= 1.1, fg= 1.1, fb= 0.8

2.5. Transformaciones de color.


Imagen de entrada

Tambin es posible mezclar y cambiar los canales,


con transformaciones como las siguientes.

R.R= A.B
R.G= A.R
R.B= A.G

R.R= A.G
R.G= A.B
R.B= A.R

R.R=
(A.R+A.B)/2
R.G=
(A.G+A.R)/2
R.B=
(A.G+A.B)/2

2.5. Transformaciones de color.


Finalmente, recordar que las operaciones de ajuste y
ecualizacin del histograma se pueden aplicar
conjuntamente (usando el histograma de gris) o por
separado (usando el histograma de cada canal).
La diferencia es que mientras el primero mantiene los
colores (cambia la intensidad) el segundo no los mantiene.
Los colores parecen
poco realistas

Imagen de entrada

Ajuste conjunto

Ajuste separado

2.5. Transformaciones de color.


Conclusiones:
Las transformaciones globales se pueden realizar
igual en todos los canales o con valores distintos.
En el primer caso, habr un cambio en la intensidad.
En el segundo, puede haber tambin un cambio de
color.
Balance de blancos: compensar los canales para
obtener los colores ms realistas posibles.
Veremos ms cuestiones relacionadas con el color
cuando estudiemos espacios de color.

2. Procesamiento global de imgenes.


Conclusiones:
Procesamiento global: el valor de un pxel de salida
depende del pxel (o pxeles) correspondientes de la
imagen de entrada.
Operaciones aritmticas, lgicas, etc.
Distintas aplicaciones: mejora del histograma,
reduccin de ruido, composicin de imgenes, ajuste
del color, etc.
Normalmente no aparecen solas, sino combinadas
con otros tipos de operaciones.

Tema 4. Transformaciones
geomtricas.

4.1. Interpolacin y transf. bsicas.


90

67

75

78

Transf. global

62

68

78

81

92

87

78

82

Transf. local

102

89

76

85

45

83

80

130

83

90

80

111

39

69

115

154

69

92

69

121

Tr. geomtrica

Entrada

R(x,y):= A(f1(x,y), f2(x,y))

Salida

Transformacin geomtrica: el valor de un pxel


depende de otro pxel (o varios) cuya posicin es
calculada a travs de un par de funciones f1 y f2.
El tamao de la imagen de salida puede ser distinto del
tamao de la imagen de entrada.

4.1. Interpolacin y transf. bsicas.


... R

Qu ocurre si el resultado es un nmero no


entero?
Por ejemplo, se puede conseguir un aumento de 2x
con una transformacin del tipo:
R(x,y):= A(x/2, y/2), con R: (0..2mX+1, 0..2mY+1)
0 1 2

0 1 2

0
1

3 4 5

0
R 1
2
3

R(0, 0):= A(0/2, 0/2) = A(0, 0) OK


R(1, 0):= A(1/2, 0/2) = A(0.5, 0)
R(1, 1):= A(1/2, 1/2) = A(0.5, 0.5)

ndices no definidos
en el array. Qu
hacer ah?

4.1. Interpolacin y transf. bsicas.


Problema: las imgenes son seales discretas, pero la
transformacin geomtrica las trata como si fueran
continuas (definidas en todo el plano).

0
Cunto vale la
imagen ah?
1
Y

Solucin: aplicar una interpolacin.


Tipos de interpolacin: vecino ms prximo, bilineal,
bicbica, supermuestreo.

4.1. Interpolacin y transf. bsicas.


Interpolacin: Vecino ms prximo
Cualquier punto del espacio toma el valor del pxel ms
cercano.
A

1
Y

Implementacin:
f1(x,y) f1(x,y) + 0,5
f2(x,y) f2(x,y) + 0,5

R(x,y)= A(f1(x,y) + 0,5, f2(x,y) + 0,5)

4.1. Interpolacin y transf. bsicas.


Ejemplo. Zoom de 10x con vecino ms prximo.
R(x,y):= A(x/10 , y/10)

Imagen
original
25x26

Imagen
ampliada
250x260

Ventajas:
Es muy sencilla y rpida de calcular.
Inconvenientes:
El efecto de cuadriculado es evidente, y da lugar
imgenes de poca calidad.

4.1. Interpolacin y transf. bsicas.


Interpolacin bilineal
En una dimensin, una interpolacin lineal significa trazar
una lnea recta entre cada par de puntos consecutivos.
Valores
interpolados

A(x)

1-a
p

Media ponderada,
de los valores de
i y d segn la
X
distancia a

Clculo de la interpolacin lineal. Sea p el punto que


queremos interpolar.
Sup. que p se encuentra entre i y d, es decir: i= p, d= i+1
El valor interpolado en p ser: A(p):= (1-a)A(i) + aA(d)
siendo a= p-i

4.1. Interpolacin y transf. bsicas.


En dos dimensiones, la interpolacin bilineal consiste en
aplicar dos interpolaciones lineales:
1. Interpolar la funcin horizontalmente, en las filas existentes.
2. Interpolar la funcin verticalmente en todo el espacio
(usando la anterior).
A(x,y)
0

1 interpolar
horizontalmt.
2 interpolar
verticalmt.

1
Y

Cmo calcular el valor interpolado de un punto (px, py),


A(px,py)?

4.1. Interpolacin y transf. bsicas.


Sea p= (px, py), con i= px, d= i+1, s= py, r= s+1
con a= px-i, b= py-s
A(x,y)

(px,py)

1-b

r
Y

1-a

Clculo de la interpolacin bilineal:

Media ponderada
de los 4 pxeles
circundantes

Esto recuerda a
A(px, s) = (1-a)A(i, s) + aA(d, s)
una convolucin,
A(px, r) = (1-a)A(i, r) + aA(d, r)
no?
A(px, py) = (1-b)A(px, s) + bA(px, r)
A(px, py) = (1-a)(1-b)A(i, s) + a(1-b)A(d, s) +
(1-a)bA(i, r) + abA(d, r)

4.1. Interpolacin y transf. bsicas.


Ejemplo. Zoom de 10x con interpolacin bilineal.
R(x,y):= A(x/10, y/10)

Imagen
original
25x26

Vecino ms prximo

Interpolacin bilineal

Indicacin: un zoom entero de K con interpolacin bilineal


es parecido (= a veces) a un zoom de K con vecino ms
prximo, seguido de un filtro de media de KxK.

4.1. Interpolacin y transf. bsicas.


La interpolacin bilineal mejora la de vecino ms prximo,
pero produce un efecto de zonas rectangulares.
Interpolacin bicbica: basada en dos interpolaciones
cbicas.
En una dimensin, la interpolacin cbica consiste en
trazar una cbica entre los 4 puntos ms prximos (2 a la
izquierda y 2 a la derecha).
A(x) = c1x3 + c2x2 + c3x + c4

Valores
interpolados

A(x)
i-1

i+1

i+2 X

4.1. Interpolacin y transf. bsicas.


Clculo de la interpolacin cbica.

Sea p el punto que queremos interpolar. i= p


Obtener las 4 ecuaciones:
A(i-1)=A(i-1); A(i)=A(i); A(i+1)=A(i+1); A(i+2)=A(i+2)
4 ecuaciones, 4 incgnitas despejar y obtener c1, c2, c3, c4
Aplicar las constantes, obteniendo A(p)

Interpolacin bicbica. Igual que la bilineal, se basa en


dos interpolaciones cbicas:
1. Interpolacin cbica horizontal, en las filas existentes
(usando 4 puntos).
2. Interpolacin cbica vertical en todo el espacio usando
4 puntos (usando la anterior interpolacin).
En la interpolacin bicbica de un punto (px, py)
intervienen los 16 puntos circundantes.

4.1. Interpolacin y transf. bsicas.


Clculo de la interpolacin bicbica.
Igual que con la
bilineal, el valor
del punto se
puede calcular
como una media
ponderada de
los 4x4 pxeles
circundantes.

i-1

i+2

i+1

j-1

j
Y

b
(px,py)

j+1

a
j+2

A(px,py) = n=-1..2m=-1..2 A(i+n,j+m)P(n-a)P(b-m)


Siendo:

P(k) = 1/6(C(k+2)3-4C(k+1)3+6C(k)3-4C(k-1)3)
C(k) = max(0, k)

4.1. Interpolacin y transf. bsicas.


Ejemplo. Zoom de 10x con interpolacin bicbica.

Imagen
original
25x26

Aumento de 10x con


interpolacin bilineal

Aumento de 10x con


interpolacin bicbica

4.1. Interpolacin y transf. bsicas.


Comparacin. Detalle del zoom de 10x, con vecino ms
prximo, interpolacin bilineal y bicbica. Se ha aplicado un
perfilado en las 3, para destacar el efecto del zoom.

Vecino ms prximo

Interpolacin bilineal

Interpolacin bicbica

En todos los casos se nota la falta de detalle (obviamente),


pero en la bilineal son ms evidentes los artificios
horizontales y verticales que en la bicbica.

4.2. Transformaciones afines.


Las transformaciones afines son cualquiera de los
cuatro tipos siguientes, o combinaciones de las mismas.
Escala
Traslacin

Rotacin
Inclinacin

4.2. Transformaciones afines.


Transformacin de traslacin (desplazamiento):
R(x,y):= A(x+dx, y+dy)
Ejemplos.
Traslacin (1, 1)
Traslacin (-1, -1)
A

R1(x,y):= A(x+1,y+1) R2(x,y):= A(x-1,y-1)

Si las imgenes A y R tienen el mismo tamao, algunos


pxeles caen fuera de la imagen A. Qu valor toman?
Ms que una interpolacin sera una extrapolacin...
Pero no tiene mucho sentido. Se puede usar mejor un valor
constante predefinido. O no modificar el contenido previo.

4.2. Transformaciones afines.


A
(dx,dy)

tX

Trasladar (dx, dy)


y recortar (tx, ty) R

tY

Aplicaciones:
Seleccionar y recortar una regin rectangular.
Aunque, como ya hemos visto, no suele aparecer de
forma explcita, sino al manejar ROI.
Tambin suele aparecer en combinacin con las otras
operaciones, para centrar la imagen resultante.
Ejemplo. Recordar la operacin de rotacin de 180:
R(x, y):= A(mX-x, mY-y)

4.2. Transformaciones afines.


Transformacin de escala:
R(x,y):= A(exx, eyy)
ex = escala en el eje X
ey = escala en el eje Y
Normalmente ser igual en ambos ejes (ex=ey), aunque
puede ser distinta.

Pero es ms intuitivo el concepto de aumento o zoom:


R(x,y):= A(x/ax, y/ay)
ax = aumento en el eje X = 1/ex
ay = aumento en el eje Y = 1/ey
Si la imagen A es de tamao mX x mY, la imagen resultante
R ser de mXax x mYay

4.2. Transformaciones afines.


ax, ay mayor que 1 Aumento o zoom de la imagen
Aplicar interpolacin bilineal o bicbica.
ax, ay menor que 1 Reduccin (decimate) de la imagen
Aplicar supermuestreo o suavizado previo.
Ejemplos. Transformaciones de escala.
R1
R2
A
ax= ay= 0,8
ax= 2 ay= 0,5

Reducir al 80%

El aumento sirve para hacer zoom


digital, pero recordar sus limitaciones.

Aumentar el doble
en X y reducir a la
mitad en Y

4.2. Transformaciones afines.


Transformacin de rotacin:
Hemos visto las rotaciones exactas (90, 180, 270), pero
cmo realizar una rotacin de un ngulo cualquiera (en
sentido horario)?
Punto en A
X

Punto en R

(0,y)
Y

(x,0)

Punto en R

Punto en A

El punto (x, 0) en R corresponde en A a (xcos , -xsen )


El punto (0, y) en R
en A a (ysen , ycos )
(x, y) en R (xcos + ysen , -xsen + ycos ) en A

4.2. Transformaciones afines.


Rotacin de una imagen A en un ngulo :
R(x,y):= A(xcos + ysen , -xsen + ycos )
La rotacin se suele expresar matricialmente:
cos
R(x,y):= A(

Ejemplos.

sen

-sen cos
Rotar 10

x
y

Lo que cae fuera


de la imagen no
se modifica

Rotar -10

Ojo: estas rotaciones son respecto al punto (0,0). Cmo


hacerlas respecto a un centro arbitrario (cx,cy)?

4.2. Transformaciones afines.


Ejemplos. Rotaciones respecto a un centro cualquiera.
Imagen de entrada
Rotar -10
Rotar 10

Se ha utilizado
interpolacin
bicbica.
Recordar la
importancia de la
interpolacin.

Vecino ms prximo

Interpolacin bilineal

4.2. Transformaciones afines.


Transformacin de inclinacin (shear):
La inclinacin transforma una regin rectangular en un
rombo. Sirve para simular una perspectiva.
Posibilidades: inclinacin en X, en Y o en ambos ejes.
Imagen de entrada

Inclinacin en X de b/a Inclinacin en X de -b/a


a

b
b
Inclinacin en Y de b/a Inclinacin en Y de -b/a Inclinacin en X e Y
b
b
a
a

El valor de inclinacin es la tangente del ngulo.

4.2. Transformaciones afines.


De manera similar... inclinacin en Y en cantidad iy:
R(x, y):= A(x, y - iyx)
Inclinacin X en ix, Y en iy:
R(x, y):= A(x - ixy, y - iyx)
Matricialmente:
1 -ix
x
R(x,y):= A(
)

-iy 1
y
Ejemplos.

Inclinacin ix=-0,4; iy=0 Inclinacin ix=0; iy=0,2

4.2. Transformaciones afines.


Parte de la imagen se sale.
Solucin: igual que antes, aplicar un desplazamiento para
centrar el resultado. De cunto?
O bien, ampliar el tamao de la imagen resultado para que
quepa toda la imagen.
Cunto? En X: abs(ix)mY; en Y: abs(iy)mX
Ejemplos.
Inclinacin ix=-0,4

Inclinacin iy=0,2

Inclinacin ix=0,1;iy=0,3

4.2. Transformaciones afines.


Qu tienen en comn todas las transformaciones afines?
Todas ellas se pueden expresar de forma matricial:

R(x,y):= A(

Traslacin

c11

c12

c13

c21

c22

c23

dx

Escala
ex 0 0

dy

ey

y )
1
Inclinacin

Rotacin
cos

sen

-ix

-sen cos

-iy

Es ms, cualquier combinacin de transformaciones


afines es una transformacin afn, y se puede expresar de
forma matricial.

4.2. Transformaciones afines.


Podemos definir una transformacin afn genrica:
R(x,y):= A(

c11

c12

c13

c21

c22

c23

x
y )

La matriz ((c11,c12,c13),(c21,c22,c23)) son los parmetros de la


transformacin. Puede implicar escalas, traslaciones,
rotaciones, etc.
Cmo calcular la tr. afn equivalente a dos tr. afines?
Usar el producto matricial, aadiendo una fila con (0, 0, 1).
c11

c12

c13

c21

c22

c23

d11

d12

d13

d21

d22

d23

r11

r12

r13

r21

r22

r23

4.2. Transformaciones afines.


Ejemplo. Sobre una imagen aplicamos 1) traslacin (a, b),
2) escala (c, d), 3) rotacin e, y 4) traslacin (f, g).
Podemos calcular la matriz de transformacin equivalente:
1

cos e

sen e 0

x -sen e cos e 0 x
0

x 0

ccos e

dsen e

accos e+f+bdsen e

-csen e

dcos e

bdcos e+g-acsen e

En lugar de aplicar 4 transformaciones sobre toda la


imagen, basta con aplicar la transformacin equivalente.

4.2. Transformaciones afines.


Uso. Una transformacin afn permite mapear una regin
rectangular cualquiera en un rombo cualquiera. O, en
general, cualquier rombo en otro rombo (se supone que un
rectngulo es tambin un rombo).
Transformacin
afn genrica

Cmo calcular los parmetros de esta transformacin?


Problema: dado un rombo en la imagen original y otro
rombo en la imagen de destino, calcular la transformacin
afn que realiza ese mapeo.

4.2. Transformaciones afines.


Ejemplo 1. La aplicacin ms inmediata y tpica de las
transformaciones afines es extraer y redimensionar un rea
de inters, dndole una forma predefinida de antemano.
Esto es lo que se llama normalizacin.
Por ejemplo, detectar una cara humana, seleccionar los
ojos y la boca y mapearlos a un rectngulo predefinido.
Cara
Cara detectada
Imagen de entrada
normalizada
Transf.
afn

4.2. Transformaciones afines.


Este proceso de normalizacin se puede aplicar sobre
vdeo, para conseguir una estabilizacin de los
objetos de inters.

4.2. Transformaciones afines.


Ejemplo 2. La normalizacin es fundamental en muchas
aplicaciones de reconocimiento de objetos, como los OCR
(Optical Character Recognition).
Se aplica: umbralizacin, segmentacin, normalizacin y
comparacin.
Rectificar: detectar
Imagen de entrada
Umbralizar
orientacin y rotar

Sera conveniente una


tcnica adaptativa

4.2. Transformaciones afines.


Detectar y separar
las lneas

Texto rectificado

Normalizar cada
carcter a un
tamao estndar

Segmentar los
caracteres

Aqu se usan integrales proyectivas

Comparar con un conjunto


de patrones (p.ej. diferencia)
a

Tomar el
mximo

Es
una
a!!

4.3. Transformacin bilineal y perspectiva.


Las transformaciones bilineal y perspectiva se
pueden ver como generalizaciones de las afines:
Transformacin afn: cualquier rombo se mapea en un rombo.
Transf. bilineal y perspectiva: cualquier cuadriltero se
transforma en otro cuadriltero (ambos convexos).
Transf.
bilineal

Imagen original

Transf. afn

Transf.
perspectiva

4.3. Transformacin bilineal y perspectiva.


Las transformaciones afines conservan el paralelismo de
las lneas; bilineales y perspectivas no.
La transf. perspectiva es la proyeccin perspectiva de un
plano, colocado en un espacio 3D.
La transf. bilineal se suele usar como una variante rpida
de la transf. perspectiva, aunque no es exactamente igual.
Es decir, se debera aplicar perspectiva, pero se usa bilineal
por eficiencia.
Imagen original

Transform.
afn

Transform.
bilineal

Transform.
perspectiva

4.3. Transformacin bilineal y perspectiva.

Transformac.
perspectivas

Transformac.
bilineales

La transf. bilineal es una simulacin de la perspectiva.


Tambin mapea un rectngulo en un cuadriltero.
Pero el resultado no es exactamente una perspectiva. La
diferencia es mayor cuanto mayor efecto de perspectiva.

4.3. Transformacin bilineal y perspectiva.


Ejemplo 1. La invertibilidad de la proyeccin perspectiva
puede ser til en navegacin de robots.
Idea: dada una imagen tomada con una cmara desde el
robot, obtener una vista superior. De esta forma, el robot
puede conocer las zonas por las que se puede mover.
Inverse Perspective Mapping: transformacin inversa a la
perspectiva producida por la cmara, respecto a cierto plano.
Imagen de entrada

I.P.M.

Aqu se pueden
tomar distancias y ngulos.
En la original no

4.3. Transformacin bilineal y perspectiva.


La tcnica de I.P.M. se ha aplicado en conduccin
automtica de vehculos.
I.P.M. de la imag.
Imag. capturada
desde el coche

capturada (vista
TOP)

http://www.argo.ce.unipr.it/ARGO/
El
proyecto
es un
poco
antiguo,
pero
bueno...

4.3. Transformacin bilineal y perspectiva.


Ejemplo 2. Integracin de elementos visuales artificiales
en un entorno. El objetivo es hacer que algo que no est
parezca que realmente est.
Problema: qu transformacin perspectiva se debe aplicar
para que la integracin sea realista. Calibracin.
Pasos:
1) Detectar el suelo
(color verde).
2) Transformacin
perspectiva del
elemento.
3) Media ponderada
entre el suelo y la
imagen
transformada.

4.3. Transformacin bilineal y perspectiva.


Cmo hacer la
calibracin?
Manualmente:
seleccionar el
cuadriltero en la
imagen donde se
proyectar el
elemento.
Automticamente.
Ms complejo. P.ej.
encontrando las
lneas del campo,
las blancas y las del
corte del csped.

Una vez
localizado el
campo, colocar
los elementos
en unos sitios
predefinidos

4.3. Transformacin bilineal y perspectiva.


Pasos:
1) Poner el panel donde
ir el dibujo en la
escena, y capturar
una imagen desde el
punto deseado.
2) Calibrar: encontrar los
4 puntos del rectngulo
del panel.
3) Aadir sobre la
imagen tomada
el dibujo que se
quiere poner (con
la escala y traslacin
adecuadas).

4.3. Transformacin bilineal y perspectiva.


4) Sobre la imagen del
paso 3, aplicar una
transformacin
perspectiva, desde el
cuadriltero del paso
2, hasta el rectngulo
dado por el tamao
del panel.
5) Imprimir el panel y
colocarlo en el mismo
sitio.
6) Y... Voil!!

4.3. Transformacin bilineal y perspectiva.


Ejemplo 4. Transformaciones de malla. Es una
transformacin libre y que da mucho juego. Sobre la
imagen original definimos una malla de puntos de control.
Estos puntos se pueden mover, y la imagen resultande debe
modificarse coherentemente con los puntos de control.
Imagen original

Imagen transformada

4.3. Transformacin bilineal y perspectiva.


Cmo conseguir la transformacin de malla?
La idea es muy sencilla:
La malla define una serie de rectngulos de posiciones
conocidas.
Despus de mover los puntos de la malla, conocemos el
cuadriltero al que se debe mapear cada rectngulo original.
En este caso, suele ser ms conveniente aplicar una
transformacin bilineal.
Se repite el proceso para todos los rectngulos originales.
Transformacin
bilineal
especfica para
cada trozo

4.3. Transformacin bilineal y perspectiva.


Conclusiones:
Las transformaciones afines, bilineales y perspectivas son
esenciales en generacin, procesamiento, anlisis de
imgenes, y en visin artificial.
Transformaciones afines: mapean un rombo en otro rombo. 3
puntos en la imagen origen y 3 en el destino.
Transf. bilineales y perspectivas: mapean un cuadriltero
convexo en otro cuadriltero convexo. 4 puntos en el origen y 4
en el destino.

Las transformaciones afines conservan el paralelismo de


las rectas.
Hay que conocer el significado de cada transformacin para
saber cul conviene aplicar.
Cmo se podra extender la idea a vdeo, considerando la
escala temporal?

4.4. Transformaciones de mapeo.


Recordemos que una transformacin geomtrica es
cualquier operacin del tipo:
R(x, y):= A(f1(x,y), f2(x,y))
Siendo f1 y f2 dos funciones cualesquiera:
f1, f2: N x N R
f1: posicin en X del original para el pxel resultante (x,y)
f2: posicin en Y del original para el pxel resultante (x,y)

Las transformaciones vistas hasta ahora tienen formas


particulares y son continuas.
Un mapeo (mapping) es cualquier transformacin
arbitraria, definida por un par de funciones f1 y f2,
continuas o escalonadas.

4.4. Transformaciones de mapeo.


A

f1(x,y)
f2(x,y)

(x,y)
(x,y)
g1(x,y)
g2(x,y)
Mapeo inverso: el mapeo puede venir dado al revs:
R(g1(x,y), g2(x,y)):= A(x,y)
Significado: el pxel (x,y) en la imagen original se mueve a
la posicin (g1(x,y), g2(x,y)).
Normalmente trabajaremos con mapeo directo.

Existen infinitos mapeos. Cualquier par de funciones locas,


(f1, f2), es posible, pero cules son plausibles?

4.4. Transformaciones de mapeo.


Ejemplo 1. Difuminado aleatorio, de radio a:
f1(x,y):= x+random(2a+1)-a
f2(x,y):= y+random(2a+1)-a
R1

R2

R3

a = 20

a=5

a=1

4.4. Transformaciones de mapeo.


Ejemplo 2. Pixelado: f1(x,y):= x/8*8; f2(x,y):= y/8*8
A

R
Aplicado
slo en la
ROI.

Ejemplo 3. Efecto de cristal a cuadros:


f1(x,y):= xx mod 30+y mod 30; f2(x,y):= yy mod 30+x mod 30

4.4. Transformaciones de mapeo.


Los mapeos pueden servir para simular las deformaciones
producidas por fenmenos fsicos naturales.
Por ejemplo, cmo se deforma una imagen pegada a un
cilindro (como una etiqueta de una botella)?

La coordenada Y no se
modifica: f2(x, y):= y
Qu pasa con la X?
La X de R es el coseno del
ngulo correspondiente en A.

4.4. Transformaciones de mapeo.


Ejemplo. Aplicacin de la transformacin cilndrica.
Imagen de entrada

Interpretacin de
la transformacin
cilndrica

Tr. cilndrica en X

Tr. cilndrica en Y

4.4. Transformaciones de mapeo.


El efecto se puede graduar, si en lugar de un semicrculo
consideramos una semielipse, ms o menos ovalada.
xR

mx 0

a 1

mx

mx 0

Ahora tenemos que medir el


ngulo en una elipse. Si
tomamos x= 1-xR/(mx/2), ent.:
f1(x, y):= atan(asqrt(1-x2)/x)mx/
siendo a el segundo radio de la
elipse (en relacin al ancho de
la imagen).

a=4
a=2
a=1

a=1/2
a=1/4

xA

4.4. Transformaciones de mapeo.

En X

En Y

Ejemplos. Transformaciones elpticas.


a = 0,3
a = 1,2

a=2

4.4. Transformaciones de mapeo.


De forma parecida, podemos definir otros muchos tipos de
transformaciones, basados en deformaciones producidas
por fenmenos fsicos naturales (o no).
Mtodo: estudiar la forma (matemtica) de la deformacin, y
obtener el par de funciones f 1(x,y), f2(x,y).
Ejemplo. Transformaciones geomtricas genricas.

Estirar: simula un
panel abombado
hacia afuera

Pinchar: simula
apretar la superficie
del panel

Ondulacin: simula
una deformacin por
ondas de agua

5 Procesamiento de Video

Procesamiento de video

Estructura de un video

Transiciones de un video

Transiciones abruptas

Transiciones graduales
cromticas

Transiciones graduales
Fades
Los fades son un tipo de transicin gradual y se clasifican en dos:
fade-out: Consiste en la disminucin progresiva de luminosidad entre
frames obteniendo cuadros totalmente negros.
fade-in: Inverso al anterior, en esta transicin se da un aumento
progresivo de luminosidad a partir de cuadros negros.

Transiciones graduales

Transiciones Graduales Espaciales:


Wipes
Adems de trabajar con la luminosidad del color
algunas transiciones tienen un dominio espacial
[Teixeira Santos, 2004]. El representante mas
comn es un wipe, en el cual una lnea se
mueve o se desliza a travs de los frames
mostrando una nueva escena detrs de ella

Mtodos de segmentacin de video


Deteccin de Transiciones Abruptas
Las imgenes pertenecientes a un mismo plano tienen un grado de
similitud entre ellas superior a las imgenes pertenecientes a planos
diferentes

Mtodos de segmentacin de video


Deteccin de Transiciones Abruptas
Las imgenes pertenecientes a un mismo plano tienen un grado de
similitud entre ellas superior a las imgenes pertenecientes a planos
diferentes

Mtodos de segmentacin de video

Deteccin de Transiciones Graduales


El proceso fade es un caso especial, recordemos que durante un fade existen
secuencias que se van poniendo negras hasta serlo totalmente, volviendo a empezar
la luminosidad inmediatamente. Normalmente un fade-in y un fade-out ocurren
juntos como un fade group.
Durante un proceso fade group dos shots adyacentes son separados de manera
espacial y temporal por frames monocromos [Lienhart, 1999]. A diferencia de un
dissolve los mtodos deben basarse en los cambios de intensidad de la varianza.
Es importante primero localizar los frames monocromos lo que para ello se
adoptara por evaluar la intensidad de los pixels que representen el contenido visual,
debiendo ser un posible primer paso para el algoritmo.

Segun lo planteado por [Alattar, 1993] debemos basarnos en usar la varianza de la


intensidad como la deteccin de transiciones graduales. Normalmente la varianza
tendr una forma parablica pero en secuencias reales con movimientos, la varianza
puede no ser constante.

Mtodos de deteccin de
transiciones
Histogramas
Escala de grises y color
Proyecciones

Mtodos de deteccin de
transiciones
Resta de pixeles

Mtodos de deteccin de
transiciones
Deteccin de bordes
Cany
Sobel
Laplaciano

Mtodos de deteccin de
transiciones
Mtodos basados en binarizacin
Thresholding
Otsu

6. Anlisis de imgenes.
Anlisis de imgenes: procesamiento inteligente de las
imgenes orientado a la extraccin de informacin de tipo
cualitativo (qu hay en las imgenes) o cuantitativo
(posiciones, tamaos, distancias, tonos, etc.).
Objetivos del anlisis:
Deteccin de objetos: encontrar en la imagen las instancias
de cierto tipo o clase de objetos.
Reconocimiento de objetos: distinguir la identidad especfica
de un objeto que se conoce que pertenece a cierta clase.
Segmentacin: separar los objetos de inters del fondo.
Seguimiento y correspondencia: encontrar la equivalencia
de puntos entre dos imgenes (por ejemplo, imgenes en una
secuencia de vdeo o en un par estreo).
Reconstruccin 3D: extraer informacin 3D de la escena,
posiciones, ngulos, velocidades, etc.

6.1. Bsqueda de patrones.

La bsqueda de patrones es una tcnica de anlisis que


se puede aplicar en deteccin de objetos, reconocimiento,
seguimiento y correspondencia.
Idea de la tcnica: dada una imagen (un patrn o modelo)
encontrar sus apariciones dentro de otra imagen mayor.
No se buscan slo las apariciones exactas, sino
permitiendo cierto grado de variacin respecto al patrn.

Ejemplo. Buscar el
patrn:
en la imagen dada.
Resultado: n de apariciones, localizacin de cada
una y verosimilitud

6.1. Bsqueda de patrones.


El mtodo ms sencillo de bsqueda de patrones es el
template matching (comparacin de plantillas).
Template matching: sea A una imagen (de tamao WxH),
y sea P un patrn (de wxh), el resultado es una imagen M
(de tamao (W-w+1)x(H-h+1)), donde cada pxel M(x,y)
indica la verosimilitud (probabilidad) de que el rectngulo
[x,y] [x+w-1, y+h-1] de A contenga el patrn P.
La imagen M se define usando alguna funcin de diferencia
(o similitud) entre dos trozos de imagen.
M(x,y):= d({A(x,y),...,A(x+w-1,y+h-1)}, {P(0,0),..., P(w-1,h-1)})
Ejemplo. Suma de diferencias al cuadrado:

M(x, y):=

(P(a, b) - A(x+a,

a= 0..w-1 b= 0..h-1

y+b))2

Es parecido a una
convolucin (pasar
una mscara por
toda la imagen)

6.1. Bsqueda de patrones.


Ejemplo. Template matching con suma de diferencias al
cuadrado.
Imagen de entrada A (239x156)
P - patrn a
buscar (68x37)

Mapa de
matching
M
6,58106
125,3106

Mapa superpuesto

6.1. Bsqueda de patrones.


Los valores bajos (color oscuro) indican alta probabilidad
de que el patrn se encuentre en esa posicin (esquina
superior izquierda).
Los valores altos (color blanco) indican probabilidad baja.
Cunto es alto o bajo? Normalizar el resultado.
Ejemplo. Diferencias
al cuadrado
normalizadas.
Mnimo:
0,119
Media:
2,5

6.1. Bsqueda de patrones.


Una de las principales aplicaciones del template matching
es la deteccin de objetos.
Proceso de deteccin de objetos usando bsqueda de
patrones.
1) Conseguir un patrn, P, representativo de la clase de
objetos a buscar.
2) Aplicar el template matching a la imagen, obteniendo M.
3) Buscar los mximos (o mnimos) locales de M.
3.1) Buscar el mximo global, (lx, ly)= argmaxx, y M(x, y).
3.2) Si M(lx, ly) es menor que cierto umbral, acabar.
3.3) Aadir la posicin (lx, ly) a una lista de localizaciones
resultantes del proceso.
3.4) Poner a cero en M el rectngulo [lx-w,ly-h][lx+w,ly+h].
3.5) Volver al paso 3.1.

6.1. Bsqueda de patrones.


Ejemplo 1. Deteccin de objetos con template matching.
Imagen de entrada, A
Mapa de matching, M
Patrn, P

Resultados:
Posicin (97, 87) con: 0.947
Posicin (93, 10) con: 0.941
Posicin (161, 47) con: 0.939
Posicin (12, 24) con: 0.906
Posicin (20, 121) con: 0.899
Posicin (165, 9) con: 0.332

6.1. Bsqueda de patrones.


Pero, normalmente, el problema no es tan sencillo. Las
clases de objetos presentan mayor variabilidad, y pueden
haber variaciones de tamao y rotacin.
El umbral debe bajarse, produciendo falsos positivos.
Ejemplo 2. Deteccin de caras humanas.
Imagen de entrada, A (640x480)
Patrn, P
(29x27)

Patrn
ampliado

6.1. Bsqueda de patrones.


Ejemplo 2. Deteccin de caras humanas con template
matching.
Mapa de matching, M
Resultados de la deteccin

Funcin: producto
vectorial.
Umbral usado: 0,5

Falsos
positivos

Falsos
negativos

6.1. Bsqueda de patrones.


Obviamente, la tcnica es muy sensible a cambios de
escala, rotacin o deformaciones 3D de los objetos.
Ejemplo 1. Cambio de escala.
Mapa de matching, M
Imagen de entrada, A
0,523 0,724 0,947 0,761

63% 82% 100% 116%

143%

Ejemplo 2. Cambio de rotacin.


Imagen de entrada, A

Mapa de matching, M

0,574 0,756 0,947 0,664

20

10

15

0,640

25

0,507

6.1. Bsqueda de patrones.


Soluciones:
Utilizar varios patrones, con distintos tamaos y rotaciones.
Hacer una bsqueda multiescala. Aplicar el proceso
escalando la imagen a: 50%, 75%, 100%, 125%, ...
Usar alguna tcnica de atencin selectiva. Por ejemplo, usar
color o bordes para centrar la atencin en ciertas partes de la
imagen.

Otra aplicacin interesante del template matching es la


correspondencia: dado un par de imgenes de una misma
escena, encontrar los puntos equivalentes de ambas.
Idea: el patrn se extrae de una imagen y se aplica en la
otra. El mximo (o mnimo) matching indica la equivalencia
de puntos.
Ejemplo: composicin panormica.

6.1. Bsqueda de patrones.


Problema: dadas dos imgenes de sitios adyacentes,
obtener una composicin panormica de forma automtica.
Imagen A (izquierda)

Imagen B (derecha)

Como vimos en el tema 4, se usa una transf. geomtrica.


Cmo obtener los parmetros de la transf.? Encontrar
puntos equivalentes entre ambas imgenes.

6.1. Bsqueda de patrones.

Proceso de composicin panormica:


1) Escoger dos trozos de la imagen A que se espera que
aparezcan en B. Qu trozos?
1.1) Deben ser trozos en el solapamiento entre A y B. Si A es la
imagen izquierda, un trozo de la derecha.
1.2) El trozo debe tener elementos claramente definidos.
Este patrn no es
Imagen A (izquierda)
muy bueno, no es
nada significativo...
descartarlo
Este patrn
es OK
Este patrn tambin
parece OK, pero...
y la barandilla?

6.1. Bsqueda de patrones.


2) Para cada patrn escogido, buscarlo en la imagen B.
2.1) Aplicar template matching.
2.2) Quedarse con el mximo.

Mapa de matching

Patrn 1

Imagen B (derecha)
Localizacin resultante

6.1. Bsqueda de patrones.


2) Para cada patrn escogido, buscarlo en la imagen B.
Mapa de matching
Patrn 2
Imagen B (derecha)

Localizaciones resultantes

Aqu la cosa no est tan clara, pero


podramos aplicar unas cuantas
heursticas sencillas y descartar las
localizaciones inviables...

6.1. Bsqueda de patrones.


3) Con las localizaciones equivalentes, calcular los
parmetros de la transf. geomtrica.
4) Aplicar la transformacin y componer las dos imgenes.

6.1. Bsqueda de patrones.


Otra aplicacin es el seguimiento de objetos: localizar la
posicin de un objeto a lo largo de una secuencia de vdeo.
En un vdeo se espera que haya cierta continuidad
temporal, los elementos de la escena varan lentamente.
Idea: aplicar template matching, usando como patrn el ROI
del objeto en el instante t, aplicado sobre la imagen en t+1.
Ejemplo. Seguimiento de caras. Suponemos una deteccin
inicial.
Imagen en t = 0
Patrn de cara,
P0

6.1. Bsqueda de patrones.


Proceso de seguimiento usando template matching:
1) Detectar la posicin inicial del objeto, R0.
2) Repetir para cada frame t= 1...N:
2.1) Extraer la regin Pt-1 del frame t-1 usando Rt-1.
2.2) Aplicar matching del patrn Pt-1 en la imagen del frame t.
2.3) Seleccionar la pos. del mximo, poniendo el resultado en Rt.
R0

Imagen en t = 0

Imagen en t = 1

6.1. Bsqueda de patrones.


Imagen en t = 1
Patrn de cara,
P0

Localizacin resultante

Mapa de matching

R1

Ver que aqu el mximo es


bastante destacado

6.1. Bsqueda de patrones.


El proceso se repite para todos los frames de la secuencia.

Se podran aadir algunas heursticas adicionales: que el


salto no sea muy grande, que el valor de matching no baje
de un umbral, etc.

6.1. Bsqueda de patrones.

Conclusiones:

Template matching: buscar las apariciones de un trozo de


imagen en otra imagen de tamao mayor.
El proceso de clculo es parecido a una convolucin.
Ventajas:
La idea es muy sencilla, aunque tiene un gran potencial.
Aplicacin en deteccin, reconocimiento, seguimiento de
objetos, etc.

Desventajas:
Es muy sensible a rotaciones, escala, etc.
Adems, en la vida real encontramos objetos 3D flexibles, lo
que supone ms variabilidad.
La aplicacin de la tcnica es muy costosa, O(WHwh).
Cuando la resolucin aumenta al doble, el tiempo se multiplica
por 16.

6.2. Flujo ptico.


El flujo ptico es una tcnica de anlisis de imgenes que
se aplica en secuencias de vdeo.
En concreto, el flujo ptico define los vectores de
movimiento de diferentes trozos de la imagen.
Aplicaciones: deteccin de movimiento, seguimiento de
objetos por partes, compresin de vdeo, composicin, etc.
Ejemplo. Imgenes de entrada

Flujo ptico resultante

6.2. Flujo ptico.


Existen diversas formas de calcular el flujo ptico.
Una forma sencilla est basada en la tcnica del template
matching: dividir la imagen en bloques, para cada bloque
de una imagen buscar la correspondencia en la otra.
Imagen en t-1

Imagen en t

Buscar todos los trozos en la otra imagen sera muy costoso...


Pero normalmente el desplazamiento ser pequeo
Buscar slo en una cierta vecindad local.

6.2. Flujo ptico.


Parmetros para el clculo del flujo ptico:
Tamao de los bloques a usar.
Ni muy pequeos ni muy grandes. Si son pequeos, contienen
pocas caractersticas y el matching es poco fiable.
Si son grandes, perdemos resolucin (menos vectores de
movimiento). Tambin hay problemas si el bloque se sale de la
imagen.

Radio de bsqueda. Determina el tamao de la zona, en la


imagen t, donde se busca el bloque de entrada de la t-1.
Cuanto ms grande, ms tiempo de ejecucin.
Si es muy pequeo y el movimiento es mayor, el resultado ser
impredecible.

Funcin de matching a emplear. Para este problema se


podra usar una simple suma de diferencias. Para conseguir
invarianza a cambios de iluminacin, mejor usar un producto
vectorial normalizado.

6.2. Flujo ptico.


Proceso de clculo del flujo ptico.
Parmetros de entrada: A, B: imgenes de tamao WxH;
(w, h) tamao de los bloques; (rx, xy) radio de bsqueda.
Salida: VelX, VelY: matrices de tamao W/w x H/h.
A

1) Para cada posicin (i, j) en el rango


de VelX y VelY hacer:

1.1) Sea P el rectngulo


[iw, jh][(i+1)w-1, (j+1)h-1] de A
1.2) Sea I el rectngulo [iw-rx, jh-ry]
[(i+1)w-1+rx, (j+1)h-1+ry] de B
1.3) Aplicar matching del patrn P en la
imagen I, obteniendo el resultado en M
de tamao (2rx+1, 2ry+1)
1.4) Buscar el mximo valor de matching:
(mx, my) = argmaxa,b M(a,b)
1.5) VelX(i, j)= mx-rx; VelY(i, j)= my-ry

VelX,
VelY

6.2. Flujo ptico.


Ejemplo.
Clculo del
flujo ptico
por
matching
de bloques.

Vdeo de
entrada
Resolucin:
408x240

Flujo ptico
resultante
Tamao de
bloque: 21x21
Radio de
bsqueda:
21x21

6.2. Flujo ptico.


Otra aplicacin interesante es la
composicin de vdeo por
barrido.
Problema: dada una secuencia
de vdeo donde la cmara gira (o
se desplaza lateralmente),
componer una imagen con todo
el campo de visin disponible.
Ejemplo.

Panormica resultante

Vdeo de entrada

6.2. Flujo ptico.

La composicin de vdeo se puede ver como un proceso


de aadir tiras de imgenes.
El tamao y posicin de la tira aadida depende de la
cantidad y direccin de movimiento detectado en las
imgenes.
Proceso de composicin por barrido:
Imagen en t=0
Acum0
1) En la imagen inicial t= 0,
seleccionar una regin
central (una tira)
perpendicular a la
direccin del movimiento.
Inicializar con ella la
imagen acumulada (Acum).
Por ejemplo, seleccionar
el rectngulo [100, 0][120, 320].

6.2. Flujo ptico.


2) Usando el flujo ptico, detectar la cantidad de movimiento de
cada nuevo frame, t, respecto al anterior, t-1. VelX, VelY
- Por ejemplo, se puede tomar la media de velocidad en X e Y,
vx= Media(VelX), vy= Media(VelY).
Imagen en t=0

Imagen en t=1

Ojo: descartar
los bloques de
los exteriores

VelX, VelY

vx= 38, vy= 4

6.2. Flujo ptico.


3) Aadir a la imagen acumulada, Acum, la tira correspondiente
en funcin de la velocidad calculada en el paso anterior.
- En el ejemplo, aadir el rectngulo [100, 0][100+vx, 320],
desplazado en (-vx, -vy) pxeles respecto al ltimo aadido.
Imagen en t=1

(vx, vy)

Tira1

Acum0

Acum1

6.2. Flujo ptico.


Ejemplo. Composicin de vdeo por barrido.

Otras cuestiones adicionales:


Compensacin del brillo (y tal vez del balance de blancos).
Al final puede ser necesario aplicar una rotacin de la imagen.
Qu ocurre si hay movimiento en la escena?

6.2. Flujo ptico.


Conclusiones:
Flujo ptico: vectores de movimiento entre dos imgenes
de una secuencia de vdeo.
Es una tcnica especfica de vdeo.
Adems del mtodo bsico (utilizando template matching)
existen otras muchas formas de calcularlo.
Ventajas:
Permite comprender mejor la informacin contenida en un
vdeo, la evolucin en la escena: detectar si hay cambios en
la escena, en qu posiciones, qu cantidad, etc.

Inconvenientes:
La tcnica es muy lenta. Es inviable aplicarla en tiempo real.
Difcil ajustar los parmetros para un funcionamiento ptimo:
tamao de bloques y radio de bsqueda.

6.3. Integrales proyectivas.


Una integral proyectiva (o, simplemente, una proyeccin)
de una imagen es la media de los pxeles por filas (proy.
vertical), por columnas (proy. horizontal) o a lo largo de un
ngulo cualquiera.
Proy. vertical

Imagen de entrada

Imagen de entrada

Proyeccin horizontal

Proyeccin horizontal
Aplicable en
grises o en
color
x

6.3. Integrales proyectivas.


Las integrales proyectivas se pueden usar en deteccin,
seguimiento y segmentacin. Normalmente como fase
previa a otros procesos.
La principal caracterstica es la reduccin de dimensiones
De imgenes 2D a proyecciones 1D.
Ms rpidas de procesar.
Pero, se puede perder informacin relevante.

Definicin. Sea A una imagen de WxH. La integral


proyectiva vertical, denotada por PVA, es una tabla de
tamao H definida por:
PVA(y) = 1/W A(x, y); y= 0, ..., H-1
x=0..W-1

la integral proyectiva horizontal, denotada por PHA, es:


PHA(x) = 1/H A(x, y); x= 0, ..., W-1
y=0..H-1

6.3. Integrales proyectivas.


De forma similar, la proyeccin a lo largo de un ngulo
cualquiera , PA, se puede definir como la integral vertical
de la imagen rotada en .
El anlisis de proyecciones consiste, en esencia, en
localizar los mximos y/o mnimos de las proyecciones.
Ejemplo. Deteccin y segmentacin del texto en un OCR.
Problemas: 1) rotar la imagen (alinearla horizontalmente),
2) detectar las lneas y 3) detectar las letras en cada lnea.
Imagen
de
entrada
A

6.3. Integrales proyectivas.


1) Alinear la imagen
horizontalmente. Calcular el
ngulo para el cual PA es
ms plausible.

= 2

PVA(y)

Imagen A

= 0

y
= -2
Criterio plausible: mayor
diferencia entre mximo y mnimo,
o mayor varianza de la proyeccin

= -4

PA(y)

6.3. Integrales proyectivas.


1b) Rotar la imagen en el ngulo ptimo.
2) Detectar la componente Y de las lneas usando la
proyeccin vertical.
Por ejemplo, fijando un umbral.
Imagen A

PVA(y)

Umbral, prefijado o
calculado
automticamente

Lneas detectadas

6.3. Integrales proyectivas.


2b) Segmentar las lneas (con cierto margen arriba y abajo).
3) Usando la proyeccin horizontal, detectar cada uno de los
caracteres.
Una lnea
segmentada, S

PHS(x)

Umbral, aqu
ya no est tan
claro...

Caracteres
detectados

Segmentacin
incorrecta...

6.3. Integrales proyectivas.


Las integrales proyectivas tambin se usan en deteccin y
seguimiento de otros tipos de objetos ms complejos,
como las caras humanas.
Idea: al aplicar las proyecciones sobre caras humanas, se
obtienen patrones tpicos de zonas claras y oscuras.
Ejemplo. Pv proy. vertical de la cara. Ph1 p. horizontal
de la regin de ojos. Ph2 p. horizontal de la regin boca.

6.3. Integrales proyectivas.


Deteccin de caras humanas usando proyecciones.
Crear un modelo de proy.: PV,CARA, PH,OJOS y PH,BOCA.
Para todas las zonas de la imagen, calcular sus 3 proy. (Pv,
Ph1 y Ph2) y comparar con PV,CARA, PH,OJOS y PH,BOCA. Si la
diferencia es pequea cara detectada.
Modelo de PV,CARA

Modelo de
PH,OJOS

Modelo de
PH,BOCA

Reproyeccin
del modelo

6.3. Integrales proyectivas.

http://dis.um.es/~ginesgm/fip

Ejemplo de aplicacin: Interface perceptual. Los


resultados del seguimiento se aplican en el control del
movimiento en un entorno virtual.

6.3. Integrales proyectivas.


Conclusiones:
Integrales proyectivas: acumulacin de los valores de los
pxeles a lo largo de cierta direccin.
A partir de una imagen 2D se extraen proyecciones 1D.
La tcnica es aplicable cuando los objetos de inters son
distinguibles por intensidad (ms claros o ms oscuros).
Si esto no es posible, tambin se pueden aplicar las
proyecciones sobre imgenes de bordes.
Ventajas:
Se trabaja con informacin simplificada y acumulada. Ms
eficiencia y menos sensibilidad a ruido.

Inconvenientes:
En algunas aplicaciones, la proyeccin puede suponer perder
informacin relevante.
Difcil establecer umbrales mximos y mnimos adecuados.

6.4. Anlisis de color.


Las tcnicas anteriores se pueden aplicar tanto en
imgenes en color como en escala de grises.
Existen otras tcnicas que hacen especficamente uso del
color:
Deteccin de zonas de color. Seleccionar y modelar un color
objetivo. Encontrar regiones conexas de ese color. Parecido al
relleno de color, pero aplicado a toda la imagen.
Aplicaciones: sistemas croma-key (segmentacin por color),
deteccin de objetos (p.ej. de caras humanas usando color de
piel), seguimiento basado en color.
Reproyeccin del histograma. Es un caso de la deteccin de
zonas de color. Para cada color se define una verosimilitud
(probabilidad), obtenida mediante un histograma de color.
Comparacin de histogramas. Definir y usar una medida de
diferencia entre histogramas. Aplicada fundamentalmente en
indexacin de imgenes (consultas basadas en similitud).

6.4. Anlisis de color.


Reproyeccin del histograma. Permite detectar un color
partiendo de una imagen con regiones amplias de ese color.
Idea: usar histogramas para modelar un color objetivo.
Proceso:
1) Calcular el histograma de color de una zona de la
imagen con el color objetivo.
- Ejemplo. Histograma (R, G), con 64x64 celdas.
Imagen de entrada, A

Recortes de
csped, B

Histograma, H R

6.4. Anlisis de color.


2) Usar el histograma como una medida de verosimilitud,
probabilidad o distancia en el espacio de color.
Valor alto: csped. Valor bajo: no csped.
Histograma, G

Histograma, H R

R
Blanco (255)
color de
csped

- Ejemplo. Buscar el mximo de H hmax


G(r, g) = min {255, 25510H(r, g)/hmax}

Negro (0)
color de no
csped

6.4. Anlisis de color.


3) Dada una imagen nueva, C, aplicar los valores del
histograma para detectar las zonas de csped.
M(x, y) = G(C(x, y).R, C(x, y).G), para todo (x, y)
Esto es lo que se conoce como la reproyeccin del hist.
Histograma, G

Imagen de
entrada C

M, reproyeccin del
histograma sobre C

Csped
segmentado

6.4. Anlisis de color.


Ejemplo de aplicacin: Sistema croma-key. Se toma una
imagen del panel de color usado como fondo. Y se calcula
su histograma.
Imagen de
fondo, F

Histograma R-B

Histograma R-G

En este caso vamos a usar


histogramas 3D de 32x32x32

6.4. Anlisis de color.


Despus se usa la reproyeccin para obtener la mscara de
M, reproyeccin del
segmentacin M.
histograma sobre A
Imagen
nueva, A

Imagen
compuesta, R

Binarizada y
erosionada
convenientemente
(3 iteraciones)

6.4. Anlisis de color.


Comparacin de histogramas. Permite obtener una
medida subjetiva de similitud entre imgenes, basada en
color. Es til en aplicaciones como indexacin de imgenes.
Idea: definir una medida de diferencia (o similitud) entre dos
histogramas. La diferencia entre dos imgenes se reduce a
la diferencia entre los histogramas correspondientes.
Se pueden usar distintas medidas como: suma de
diferencias al cuadrado, producto vectorial o solapamiento.
Histograma, H1 R Histograma, H2 R

min (H1, H2)

solap(H1, H2) =
min(H1, H2) =
0.608
60.8%
G

6.4. Anlisis de color.


Ejemplo de aplicacin: Indexacin de imgenes. En una
base de datos de imgenes queremos aadir consultas
basadas en similitud entre imgenes:
Busca la imagen de la BD que ms se parezca a una dada.
Busca las n imgenes de la BD ms relacionadas, en cuanto
a su contenido, con una dada.
Busca imgenes que traten sobre el mismo tema o
categora.
Por ejemplo, busca imgenes de ftbol.

Todas estas consultas se reducen a medidas de distancia


entre histogramas, entre la imagen dada y las de la BD.
En los dos ltimos ejemplos, adems, se deben etiquetar
(automticamente) las imgenes en ciertas categoras.

6.4. Anlisis de color.

Ejemplo 1. Base de datos de imgenes.


f1

f2

f3

f4

s1

s2

s3

s4

b1

b2

b3

b4

t1

t2

t3

t4

6.4. Anlisis de color.

Aadimos a la BD consultas del tipo: buscar las imgenes


que estn ms relacionadas con una dada, A.
Proceso:

Usar histogramas 3D de los canales (R,G,B), con 32 celdas


por dimensin.
Normalizamos los histogramas para que la suma total sea 1.
Tomamos como medida de similitud el solapamiento entre
histogramas. Esta medida ir entre 0 y 1 (entre 0% y 100%
de solapamiento).
1) Calcular los histogramas de todas las imgenes de la BD y
de la imagen A.
2) Calcular la similitud de esos histogramas con el de A.
3) Resultado: las imgenes de la BD con mayor valor de
similitud.

6.4. Anlisis de color.


Ejemplo 1.
Consulta: buscar las 3
imgenes ms
relacionadas con...

Imagen
de
entrada
A

Respuestas:
f4

Respuesta 1
Similitud: 33%

f2

Respuesta 2
Similitud: 32%

f3

Respuesta 3
Similitud: 29%

6.4. Anlisis de color.


Ejemplo 2.
Consulta: buscar las 3
imgenes ms
relacionadas con...

Imagen
de
entrada
A

Respuestas:
b1

s2

Respuesta 1
Similitud: 36%

Respuesta 2
Similitud: 35%

b4

Respuesta 3
Similitud: 34%

6.4. Anlisis de color.


Ejemplo 3.
Consulta: buscar las 3
imgenes ms
relacionadas con...

Imagen
de
entrada
A

Respuestas:
b1

Respuesta 1
Similitud: 64%

b4

Respuesta 2
Similitud: 63%

b2

Respuesta 3
Similitud: 62%

6.4. Anlisis de color.


Ejemplo 4.
Consulta: buscar las 3
imgenes ms
relacionadas con...

Imagen
de
entrada
A

Respuestas:
b2

t2

Respuesta 1
Similitud: 36%

Respuesta 2
Similitud: 33%

t3

Respuesta 3
Similitud: 32%

6. Anlisis de imgenes.
Conclusiones:
Existen otras muchas tcnicas de anlisis de imgenes,
muchas de ellas diseadas para problemas especficos.
Simplemente hemos dado una breve perspectiva de los
principales objetivos (deteccin, seguimiento,
reconocimiento, etc.) y algunas tcnicas para conseguirlos
(template matching, integrales proyectivas, etc.).
Disyuntiva: tcnicas genricas soluciones ad hoc.
El anlisis de imgenes es la base de la visin artificial,
cuyo objetivo es la comprensin de la informacin visual.
Adems, la visin artificial incorpora tcnicas ms propias
de la inteligencia artificial: reconocimiento de patrones,
clasificacin supervisada y no supervisada, toma de
decisiones, representacin del conocimiento, etc.

Procesamiento multimedia
Tratamiento de sonido

El concepto de voz
Sistema fonador humano
Onda de presin acstica originada
voluntariamente a partir de los
movimientos de la estructura
anatmica del sistema fonador.
Los distintos sonidos se producen al
pasar el aire emitido por los pulmones,
a travs de todo el sistema de
produccin, en una determinada
posicin de cada parmetro
articulatorio.
Este sistema puede modelarse como un
filtro, cuya funcin de transferencia depende
del sonido articulado. La entrada al filtro se
puede modelar mediante una seal de
excitacin, que se corresponde con el paso
del aire generado por los pulmones a travs
de la trquea y las cuerdas vocales, y
tambin ser dependiente del sonido
generado.

El concepto de voz
Clasificacin de sonidos
Sonidos sonoros En ellos las cuerdas
vocales vibran y el aire pasa a travs
del tracto vocal sin impedimentos
importantes.
Sonidos sordos En ellos las cuerdas
vocales no vibran y existen
restricciones importantes al paso del
aire que proviene de los pulmones, por
lo que son de amplitud menor y
normalmente de naturaleza ms
ruidosa que los sonoros.

El concepto de voz
Anlisis frecuencial
(I)
La seal de voz es limitada
en banda, a unos 8 kHz. Sin
embargo, la mayor parte de
la informacin se encuentra
en los primeros 4 kHz, que
es aproximadamente el
ancho de banda utilizado en
las comunicaciones por va
telefnica.
La frecuencia fundamental o
tambin denominada pitch,
brinda informacin sobre la
velocidad a la que vibran las
cuerdas vocales al producir un
sonido, el cual es generado por
la rpida apertura y cierre de las
cuerdas vocales con pequeos
soplidos de aire

Sonido sordo

Sonido sonoro

Espectrograma
(representacin tiempo - frecuencia)

278

Espectrograma
(representacin tiempo - frecuencia)

m b o i a kom p r a R

279

pa n

Ventana en el espectrograma: 64ms / 8 ms

El concepto de voz
Anlisis frecuencial (II)
De las figuras de antes se pueden sacar varias conclusiones:
La periodicidad del fonema /u/. (Hay que recordar que la
presencia de armnicos en el espectro indica cierta periodicidad de
la seal).
El margen habitual del valor del pitch para locutores
masculinos adultos del valor del pitch es de 50 a 250 Hz, mientras
que para locutoras se encuentra entre 120 y 500 Hz.

Existencia de resonancias o zonas enfatizadas (formantes),


en el espectro de los sonidos sonoros, por ejemplo las vocales, esto
permite identificar a la vocal a partir de sus formantes.
Nota: para formar el tringulo voclico solo se requiere dos formantes.

La seal de voz
/sal/

282

La seal de voz
/s/

283

/a/

/l/

El concepto de voz
Anlisis frecuencial (II)
Tringulo voclico castellano
Vocal\Formante
(Hz)
/i/
/e/
/a/
/o/
/u/

F1

F2

284
527
689
608
243

2430
2025
1458
1215
770

Espectro de las vocales


/i/
/a/
/o/
/a/ cerrada
/u/
/e/
285

Espectro de las vocales


/i/
/a/
/o/
/a/ cerrada
/u/
/e/
286

Espectro de consonantes sonoras


/m/
/l/
/n/
/y/
//
/R/
287

Espectro de consonantes fricativas

288

/s/

/z/

/sh/

/f/

/ss/

/j/

Reconocimiento de voz
El reconocimiento de la voz constituye una parte importante del
tratamiento del habla.
Las tcnicas de reconocimiento ms desarrolladas son aquellas
comnmente usadas para el idioma ingls, las cuales incluyen el
Anlisis de Prediccin Lineal (LPC) y el Alineamiento Temporal (DTW)
Tipos de enfoque en el reconocimiento:
Reconocer palabras aislados: las palabras se pronuncian entre pausas
pequeas de tal forma que el procesamiento se realiza teniendo como
unidades lingsticas las palabras de un vocabulario especfico.
Reconocer palabras conectadas: las palabras se pronuncian sin pausas
(habla normal) de tal forma que el reconocimiento se lleva a cabo basndose
en la coincidencia de palabras aisladas de referencia.

Reconocer fonemas y difonos (reconocimiento continuo de voz):


basada en la separacin de la seal de voz en estas unidades lingsticas,
para su posterior anlisis.

Reconocimiento de voz
Ventajas/Desventajas de los diferentes tipos de reconocedores
La complejidad de los reconocedores mediante fonemas es bastante
mayor en comparacin con los de palabras aisladas.
Los reconocedores de palabras aisladas no permiten vocabularios
extensos (<50 palabras), debido principalmente al alto coste de
memoria, que esta tcnica requiere. Mientras que los
reconocedores de fonemas permiten una mayor extensin del
vocabulario a reconocer.
Palabras del vocabulario castellano: 300 000 palabras
Fonemas existentes en el castellano: 37 fonemas
Una limitacin del reconocedor de palabras aisladas es tener que
dictar, de forma aislada, cada palabra del texto a reconocer.

Reconocimiento de voz
Modelado del tracto vocal (I)
Como ya se vio, existen dos tipos de
seales, que pueden describir el
proceso del habla:
Sonidos sonoros
Alta energa
300-4000 Hz
Cierta periodicidad
Matemticamente modelables como
un tren de impulsos

Sonidos sordos
Baja energa
Componente frecuencial uniforme
Cierta aleatoriedad
Matemticamente modelables como
un ruido blanco

Reconocimiento de voz
Modelado del tracto vocal (II)
Teniendo presente la clasificacin anterior y que el tracto vocal
modelado se manifiesta como un filtro variable en el tiempo, en el
que nicamente existen dos posibles seales de entrada (sonoras o
sordas), se puede hacer el siguiente sistema:

Reconocimiento de voz
Preprocesado de la seal de voz
1- Prenfasis
La etapa de prenfasis se realiza con el propsito de suavizar el espectro y
reducir las inestabilidades del clculo asociadas con las operaciones
aritmticas de precisin finita.
Bsicamente esta etapa consiste en un filtro digital de primer orden, cuya
ecuacin y repuesta en frecuencia corresponde a:

Reconocimiento de voz
Preprocesado de la seal de voz
2- Segmentacin y enventanado
La siguiente etapa del preprocesado, consiste en la segmentacin de la seal
de voz en tramas de 20 30 mseg, con un desplazamiento tpico de 10
mseg.

Reconocimiento de voz
Preprocesado de la seal de voz
2- Segmentacin y enventanado
Por ltimo a cada trama generada se le aplica una ventana de Hamming, que
elimina los problemas causados por los cambios rpidos de la seal en los
extremos de cada trama de voz.

Reconocimiento de voz
Anlisis de prediccin lineal (LPC)
Una de las tcnicas ms usadas en el procesamiento de seales de voz
viene a ser el anlisis de prediccin lineal. Esta tcnica permite
parametrizar una seal con un nmero pequeo de patrones, adems
de no requerir demasiado tiempo de procesamiento, con lo que hace de
este anlisis una herramienta bastante potente.

Ecuacin del filtro FIR (I)

Donde:
x[n] corresponde a la seal de entrada del filtro, que podr ser un tren de impulsos
o ruido.
G ganancia del filtro
y[n] salida del filtro.

Reconocimiento de voz
Anlisis de prediccin lineal (LPC)
Ecuacin del filtro FIR (II)
Observaciones de importancia:
El modelo matemtico expuesto establece que el tracto vocal puede modelarse
mediante un filtro digital siendo los parmetros los que determinan la funcin de
transferencia. El problema consiste en, dado un segmento de palabra, extraerle sus
parmetros que en este caso vienen a ser los coeficientes del filtro.
Tambin hay que tener en cuenta que un tren de impulsos a la entrada, producir
seales sonoras mientras que un ruido aleatorio producir seales no sonoras a la
salida del filtro.
El filtro viene a representar el modelo del tracto vocal.

Funcin de transferencia del filtro FIR

Reconocimiento de voz
Anlisis de prediccin lineal (LPC)
Autocorrelacin

La funcin de autocorrelacin proporciona una medida de la correlacin de la


seal con una copia desfasada en el tiempo de si mismo. De aqu se extraen
los p coeficientes de autocorrelacin.
Estos coeficientes son utilizados para calcular los coeficientes ak del filtro
FIR descrito antes. Para calcularlos se utiliza el algoritmo de Levinson-Durbin,
que permite resolver estas ecuaciones de forma eficiente.

Reconocimiento de voz
Alineamiento temporal (DTW)
La siguiente etapa del anlisis viene a ser la que se encarga de realizar
la comparacin de patrones acsticos. Esta tcnica tiene en cuenta la
variacin en la escala de tiempo de dos palabras a comparar.
Que problema se intenta resolver con el DTW?
El problema que se presenta cuando se pronuncia una palabra es que esta no
siempre se realiza a la misma velocidad, lo que produce importantes distorsiones.

Como resolverlo?
La forma de resolver este problema se realiza mediante algoritmos de programacin
dinmica.

i
time

i+2
time

Reconocimiento de voz
Cuantificacin vectorial
Particionar el espacio vectorial en sectores, cada uno de los cuales ser
representado por un solo vector que puede ser el centroide. El conjunto de
centroides viene a ser el libro ndice (codebook) que conforman los niveles de
cuantificacin y a cada una se le asignar una etiqueta o una direccin.
Decisin:
El funcionamiento bsico de esta tcnica se basa en la comparacin de un vector de
entrada, con los vectores del codebook, intentando minimizar la distancia entre ambos
vectores. La decisin se toma segn un umbral de distorsin. Si resulta mayor se
vuelve a comparar hasta que la de distancia total sea inferior al umbral.

Reconocimiento de voz
Esquema de un reconocedor de cuantificacin
vectorial

Vous aimerez peut-être aussi