Está en la página 1de 17

PROCESAMIENTO

AUDIOVISUAL

Tema 1. Adquisicin y
representacin de imgenes.

Programa de teora
1. Adquisicin y representacin de imgenes.
2. Procesamiento global de imgenes.
3. Filtros y transformaciones locales.
4. Transformaciones geomtricas.
5. Espacios de color y el dominio frecuencial.
6. Anlisis de imgenes.
7. Vdeo y sonido digital.

1.1. El proceso de formacin de imgenes.


1.2. Representacin de imgenes digitales.
1.3. Dispositivos de captura.
1.4. Formatos de almacenamiento.
A.1. Tipos de datos en IPL y OpenCV.

Procesamiento
Audiovisual
(c) Gins Garca
Mateos, http://dis.um.es/profesores/ginesgm
Tema
1. de
Adquisicin
y representacin
de imgenes.
Dept.
Informtica
y Sistemas, Universidad
de Murcia

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

1.1. El proceso de formacin de imgenes.

1.1. El proceso de formacin de imgenes.

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

La formacin de imgenes es un proceso mediante el


cual una informacin 3D (la escena) es proyectada en
un plano 2D (la imagen).
Las cmaras imitan el proceso llevado a cabo por un
ojo.

Mundo 3D
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

Modelo ideal de cmara (pinhole).

Modelo de cmara simplificado.

Eje ptico

Mundo 3D

Apertura

Sistema Plano de imagen


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.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

1.1. El proceso de formacin de imgenes.


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

Distancia focal

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

Los puntos se difuminan.

Crculos de
confusin

Eje ptico

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

1.1. El proceso de formacin de imgenes.

La imagen estar enfocada cuando el tamao del


crculo de confusin sea menor que el tamao de
cada celda del fotodetector.

1.1. El proceso de formacin de imgenes.


Solucin 1: aumentar el tiempo de exposicin,
manteniendo el tamao de la apertura.

http://www.pinhole.org/

No funciona bien si hay movimiento.


Aunque, se puede usar para acumular movimiento.

Sin embargo, el modelo pinhole tiene muchas


limitaciones y es poco usado.
Apertura muy pequea Entra muy poca luz La
imagen sale muy oscura.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

1.1. El proceso de formacin de imgenes.

1.1. El proceso de formacin de imgenes.

Solucin 2: aumentar el tamao de la apertura y


utilizar unas lentes que realicen el enfoque.

Solucin 3: manteniendo reducidos el tiempo de


exposicin y el tamao de la apertura, aumentar la
sensibilidad de los fotodetectores.

1.1. El proceso de formacin de imgenes.


Realmente, los cuatro factores no son contradictorios,
sino que estn presentes a la vez en todos los
sistemas fotogrficos:

Tamao de apertura (o abertura del diafragma).


Tiempo de exposicin (o velocidad de obturacin).
Sensibilidad de los fotodetectores (o valor ISO).
ptica utilizada (sistema de lentes). Dos funciones:
Enfoque: su ajuste, junto con la apertura, determina la
profundidad de campo.
Aumento (zoom): establece el ngulo de visin y la
distancia focal.

Los distintos elementos se ajustan para conseguir dos


objetivos:
Que entre la cantidad de luz suficiente.
Que los objetos de inters estn enfocados.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

11

Usando pelculas ms sensibles o ajustando la


sensibilidad (o ganancia) en la cmara.
Problema: con ms sensibilidad aumenta el ruido.

Mucha luz, baja sensibilidad

Poca luz, alta sensibilidad

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

10

1.1. El proceso de formacin de imgenes.


Abertura del diafragma
El diafragma es una imitacin del iris
de un ojo humano.
Cuanto menor es la apertura, ms
profundidad de campo pero entra
menos luz. En el lmite, tiende al
modelo pinhole, y la profundidad de
campo abarcara, tericamente, desde
0 hasta el infinito.
La apertura se expresa en relacin a la constante f.
Valores tpicos entre f/1,4 y f/22.
A mayor nmero, menor tamao de apertura.
Suele mantenerse fija en cmaras de vdeo.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

http://www.fotonostra.com/fotografia/

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

Prof. campo (aprox.)


desde 3 m. a infinito

Prof. campo (aprox.)


de unos pocos cm.

Por las limitaciones fsicas de las lentes, slo se


pueden enfocar los objetos en cierta distancia.
Profundidad de campo: rango de distancias (en la
escena) en la que los objetos aparecen enfocados.

12

1.1. El proceso de formacin de imgenes.


Velocidad de obturacin
Es el tiempo durante el cual se deja pasar la luz al
fotodetector.
Se mide en segundos. Normalmente entre 1/8000 y
30 segundos. Lo habitual en fotografa es ~1/125 s.
Junto con la apertura, determina la cantidad de luz
que entra.
Otro problema es el movimiento. Si el tiempo es muy
grande, la imagen puede aparecer movida.
Objetos que se mueven rpido en condiciones normales.
Movimiento involuntario en escenas nocturnas u oscuras.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

En fotografa analgica, est relacionada con la


composicin y grosor de la pelcula.
Existen distintos estndares ISO de pelcula,
clasificados segn el nivel de sensibilidad. Desde 3200
ISO (muy sensible) hasta 50 ISO (poco sensible).
Cuanto ms sensible, ms ruido por la cuantizacin de
la luz (efecto de granularidad).
En fotografa digital, la sensibilidad est relacionada
con la ganancia (voltaje en relacin al nmero de
fotones entrantes).
En digital, a veces se asigna a la ganancia un valor
ISO, correspondiente al nivel analgico equivalente.

13

1.1. El proceso de formacin de imgenes.


ptica de enfoque
Junto con el tamao de apertura determina la
profundidad de campo. Cuanto ms amplia mejor.
La p.c. es un rango definido por dos valores: la
distancia ms prxima enfocada y la ms lejana.
Suele estar entre unos pocos centmetros (modo
macro) e infinito (paisajes, astronoma, etc.).
Tipos de sistemas de enfoque:
Enfoque fijo (sin lentes de enfoque): cmaras pinhole,
video-vigilancia,..., no muy habitual.
Enfoque manual: controlado por el usuario.
Enfoque automtico: requiere un motor y una lgica de
control. Normalmente basado en el punto central.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

1.1. El proceso de formacin de imgenes.


Sensibilidad de los fotodetectores

15

1.1. El proceso de formacin de imgenes.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

14

1.1. El proceso de formacin de imgenes.


ptica de aumento (zoom)
Los conceptos de aumento, zoom, ngulo de visin y
distancia focal estn estrechamente relacionados entre s.
ngulo de visin (o campo visual): cantidad (angular) de
una escena que aparece visible en una imagen.
Se distingue entre gran angular (ngulo de visin grande
>60) y teleobjetivo (ngulo pequeo, <30).

26

70

Gran angular
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

Teleobjetivo
16

1.1. El proceso de formacin de imgenes.

Tipos: zoom analgico y digital.


El zoom analgico se consigue modificando (desplazando)
el sistema de lentes, haciendo que disminuya el campo
visual.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

17

Ejemplo. Aumento de 25x

Zoom (aumento): relacin (cociente) entre el mximo y el


mnimo ngulo de visin.
Ejemplo. Mximo 70, mnimo 26.
Zoom = 70/26 = 2,7x
Aumento de 2,7x

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

18

1.1. El proceso de formacin de imgenes.

http://www.solarviews.com/cap/face/face3.htm

El zoom digital es un simple proceso, a posteriori, de


interpolacin. El zoom digital no mejora la informacin
ni la calidad de las imgenes. Ms bien al revs.
Ejemplos.

Con zoom digital

1.1. El proceso de formacin de imgenes.


El ngulo de visin y el zoom estn estrechamente
relacionados con la distancia focal.
Distancia focal: distancia entre la apertura y el plano de
imagen. Cuanto mayor distancia focal, menor ngulo de
visin y ms zoom, y viceversa.
Gran angular
Teleobjetivo

df

df

ap

Cunto vale en
funcin de df y ap? df

ap

ap

Con zoom ptico

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

19

1.1. El proceso de formacin de imgenes.


= 2arctan (ap/2df)
En analgico, la distancia focal se mide en milmetros. El
plano de imagen suele ser pelcula de 35 mm (ap = 35 mm).
ngulos de visin segn la distancia focal:
Gran angular df < 35 mm > 2 arctan(35/70) = 53,1
Teleobjetivo df > 70 mm < 2 arctan(35/140) = 28,1
El equivalente del ojo humano es de unos 45.
En fotografa digital, se debera medir en pxeles... pero se
mide tambin en mm. Por lo tanto, es necesario conocer el
ancho del chip CCD.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

20

1.1. El proceso de formacin de imgenes.


El efecto zoom de Hitchcock. Tiburn (1975).

El zoom sirve para acercar los objetos lejanos, pero...


Qu ocurre si hacemos un zoom al mismo tiempo que
alejamos la cmara? El efecto zoom de Hitchcock.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

21

1.1. El proceso de formacin de imgenes.


El efecto zoom de Hitchcock. ESDLA 1 (2001).

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

22

1.1. El proceso de formacin de imgenes.

Ojo: la distancia focal tambin influye en la cantidad de luz


entrante y en la profundidad de campo.
Cantidad de luz: a menor distancia focal, entra ms luz.
k
k
df
df
k
df

Foco

Foco

Foco

Razn: la misma cantidad de luz se distribuye en un espacio mayor

Profundidad de campo: mayor con un gran angular.


df
k
k
k
df
df

Punto
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

23

Punto

Punto

Razn: a igual distanciaProcesamiento


aumentaAudiovisual
el tamao del crculo de confusin
24
Tema 1. Adquisicin y representacin de imgenes.

1.1. El proceso de formacin de imgenes.


Matemticamente, el proceso de formacin de
imgenes es modelado como una proyeccin
perspectiva.
Elementos del modelo de proyeccin perspectiva:

1.1. El proceso de formacin de imgenes.


Si el centro de proyeccin es el punto (0, 0, 0) y la
distancia focal es 1, y el punto principal (0, 0, 1), la
proyeccin en la imagen de un punto P= (x, y, z) ser:
(u, v) = (x/z, y/z)

Centro de proyeccin (equivale a la apertura del pinhole).


Plano de proyeccin (plano de la imagen).
X, Y

Centro de
Proyeccin

Por eso los objetos


lejanos se ven ms
pequeos que los
cercanos!

Distancia focal
X, Y

Distancia focal

La imagen de un punto P viene


dada por la interseccin de la
recta P-C.P. con el plano de
Punto
proyeccin.
principal

P
Plano de
Proyeccin

R
S

Plano de
Proyeccin

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

Q
Q

Centro de
Proyeccin

Eje ptico

25

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

26

1.1. El proceso de formacin de imgenes.

1.2. Representacin de imgenes digitales.

Pero el modelo proyectivo no es completo. No explica


algunos fenmenos como el desenfoque, la
distorsin radial y la separacin de colores.

Una imagen digital es una matriz, o array bidimensional, de nmeros.


Cada celda de la matriz es un pxel.
Ejemplo. Imagen de 20x15.

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

90

1.2. Representacin de imgenes digitales.

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

83

109

45

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

27

67

Un pxel

80

131

137

133

56

104

165

167

174

181

175

169

165

162

158

142

124

103

67

19

31

23

135

132

137

65

86

173

162

186

145

200

131

198

129

181

154

171

161

162

158

153

149

145

134

135

122

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

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

115

99

84

35

52

30

28

1.2. Representacin de imgenes digitales.

Una forma ms comn de visualizar una imagen...

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

Un pxel
Ejemplo. Tamaos tpicos:
320x240, 640x480,
800x600, 1024x768, ...
Fila
y
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

29

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

30

1.2. Representacin de imgenes digitales.

1.2. Representacin de imgenes digitales.

Otra posible forma de visualizar la imagen...

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.

Una imagen se
puede interpretar
como una superficie
bidimensional.

Una imagen digital


es un muestreo
discreto de la seal
continua.

Vecindad a 4
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

31

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

33

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

Vecindad a 8

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

32

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
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

34

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).

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
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

35

Canal R

Canal R

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

Canal B
36

1.2. Representacin de imgenes digitales.


Almacenamiento de imgenes digitales

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.

Cuestin 1: Cul es el origen de coordenadas y el


orden de las filas?

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

1.2. Representacin de imgenes digitales.


Imgenes multicanal:

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

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.

37

1.2. Representacin de imgenes digitales.

Resumen

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

38

1.3. Dispositivos de captura.


Podemos distinguir entre captura y digitalizacin.

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

39

1.3. Dispositivos de captura.

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).
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

40

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

Seal
analgica

41

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

42

1.3. Dispositivos de captura.


Sony Semiconductors

El CCD est construido en un semiconductor de silicio.


Cuando llega un fotn, el semiconductor libera electrones.
Cada celda es un pozo, que acumula los electrones que
han saltado (similar a un condensador).
El n de electrones es proporcional a la intensidad de luz.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

El detector es independiente del color Se usa un


filtro de color (microfiltro).
Distribucin tpica de
los filtros de color
en el CCD
(patrn de
Bayer).

duncantech.com

1.3. Dispositivos de captura.


Esquema de una
celda del CCD
(o pxel).

Ojo: existen el doble de detectores de verde que de rojo y


de azul. Razn: el ojo humano es mucho ms sensible al
verde que a los otros colores.
Cada fotodetector es un pxel. Los colores no presentes se
interpolan usando los 2 4 pxeles vecinos de ese color.

43

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

1.3. Dispositivos de captura.

1.3. Dispositivos de captura.

Cmo se leen los valores de los pxeles?


Hay un desplazamiento de la carga de los pozos,
hasta salir por un extremo.

Por sus buenas caractersticas, los CCD son muy


usados en muchos mbitos.
Pero tambin tienen sus limitaciones:
Corriente oscura (dark current): los electrones saltan al
llegar un fotn, pero tambin pueden hacerlo por el calor.
Campo de estrellas: las imperfecciones provocan algunos
pxeles con alta corriente oscura. Aunque no llegue luz,
aparecen iluminados.
Ruido fotnico: debido a la naturaleza cuntica de la luz. Es
mayor con escasa iluminacin.
Rebosamiento (blooming): cuando un pozo se llena de
electrones, se desparrama su contenido a los pxeles
cercanos.

Desplazamiento
de filas

Registro serie

44

Salida

Desplazamiento de pxeles

Esto es el llamado full frame CCD.


45

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

1.3. Dispositivos de captura.

1.3. Dispositivos de captura.

Rebosamiento (blooming)

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

47

Otro tipo muy popular son los chips CMOS:


Complementary Metal-Oxide-Semiconductor.
Tambin basados en semiconductores de silicio.
Diferencia con CCD: cada pxel incorpora su propia circuitera,
se pueden leer y seleccionar independientemente (sin
necesidad de desplazamientos).
http://micro.magnet.fsu.edu/primer/digitalimaging/

SONY DFW500

QUICKCAM PRO

Campo de estrellas. Mayor cuanto peor es la cmara.

Ruido fotnico

46

Courtesy Eastman Kodak Co.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

48

1.3. Dispositivos de captura.

1.3. Dispositivos de captura.

Ventajas: suelen ser ms rpidos, tienen mejor integracin


(necesitan menos circuitera) y disminuyen el blooming.
Inconvenientes: hay menos
espacio de captura en el chip
(menos luz), son menos
uniformes (hay ms ruido) y
necesitan bfferes.

Ejemplo. Los chips CMOS suelen usarse en aplicaciones


que necesitan una velocidad de muestreo muy alta.
Capturado a
2.000 imgenes
por segundo.

Todos los pxeles deberan


leerse al mismo tiempo

Las cmaras fotogrficas digitales suelen usar CCD.


Las cmaras de videoconferencia suelen usar CMOS,
aunque las de ms calidad usan CCD.
Las diferencias entre unas y otras son cada vez menores.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

49

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

1.3. Dispositivos de captura.

Tambin son tiles, por ejemplo, en cmaras lineales.


Ejemplo. Aplicacin en foto-finish.
Capturado
aprox. a 1.000
columnas por
segundo.

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.

http://www.swatch.com/sport
szone/olympics2004/doc/ath
ens2004/at_photofinish.php

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

51

1.3. Dispositivos de captura.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

52

1.3. Dispositivos de captura.

http://www.spy.th.com/xraycam.html

Normalmente las cmaras utilizan filtros infrarrojos,


para reducir al mximo la sensibilidad al infrarrojo.
Las cmaras con visin
nocturna permiten
desactivar el filtro de
infrarrojo.

Pero, qu pasa si se
activa la visin nocturna
a plena luz del da?

50

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

1.3. Dispositivos de captura.

http://www.duncantech.com/
high_speed/motion_gallery.h
tml

Existen otros muchos tipos de dispositivos de captura,


usados con imgenes de informacin no luminosa.
Ejemplos.

Imagen de ultrasonidos
(ecografa)
53

RMN
Resonancia

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

Imgenes de
profundidad
54

1.4. Formatos de almacenamiento.

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

55

Existen muchos formatos. Destacan: BMP, TIF, GIF y JPG


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
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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

56

1.4. Formatos de almacenamiento.

1.4. Formatos de almacenamiento.

Almacenamiento de imgenes mediante paleta

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; ...
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

57

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. Dibujo bandera: 3, 3, 3, 4, 4, 4, 4, 4, 4, 0, 1, 1, ...
Imagen comprimida: (3, 3), (4, 6), 0, (1, 2), ...
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

59

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 colores ms usados.
Resultado: hay una prdida de informacin de color.

Sin paleta

Con paleta (256 colores)

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

58

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.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

60

10

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%.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

61

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).

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

gen pequea

Ratio 1:4

Ratio 1:10

Ratio 1:26

62

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

63

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 ima-

Sin comprimir

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

Imagen de entrada

1.4. Formatos de almacenamiento.

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.

8
7
1
6

1
8
2
2

2
7
6
2

2
2
7
7

Imagen comprimida

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

64

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

65

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

66

11

1.4. Formatos de almacenamiento.


Formato BMP (Windows Bitmap)

1.4. Formatos de almacenamiento.


Formato BMP (Windows Bitmap)

Inconvenientes:

Ejemplos:

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.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

67

1.4. Formatos de almacenamiento.


Formato TIFF (Tagged Image File Format)
Fue creado por Aldus (ahora Adobe) pensando en trabajos
de impresin de alta resolucin y calidad.
Caractersticas:
Es un formato muy flexible, basado en tags (etiquetas).
Un tag es un bloque de datos (de formato predefinido) que
contiene cierto tipo de informacin sobre la imagen.
Existen muchos tipos de tags (y se pueden crear nuevos) y
un fichero puede contener muchos tags, uno detrs de otro.
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.
Una imagen se puede almacenar por tiras (cada una 1 tag).
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

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

69

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:

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

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

68

1.4. Formatos de almacenamiento.


Formato TIFF (Tagged Image File Format)
Ventajas:
Es independiente de la plataforma, flexible y ampliable.
Puede adaptarse a muchos tipos de necesidades.
Puede contener (encapsular) ficheros con otros formatos.

Inconvenientes:
Demasiado flexible. Difcil crear un programa que soporte
todas las opciones y tipos de tags.
Almacenamiento en tiras Inadecuado para ciertos usos.

Aplicaciones:
Edicin fotogrfica de alta calidad, como impresin de carteles.
Aplicaciones con necesidades especiales, como imgenes
multiespectrales, con alta resolucin de color, etc.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

70

1.4. Formatos de almacenamiento.

Formato GIF (Graphics Interchange Format)


Paleta: 32 colores
Tamao: 33 Kbytes

Paleta: 256 colores


Tamao: 87 Kbytes

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

71

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

72

12

1.4. Formatos de almacenamiento.

1.4. Formatos de almacenamiento.

Formato GIF (Graphics Interchange Format)

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.

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

73

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

74

1.4. Formatos de almacenamiento.

1.4. Formatos de almacenamiento.

Formato JPEG (Joint Photographic Experts Group)


Es el formato ms reciente de los cuatro, ms elaborado y
orientado al almacenamiento de imgenes fotogrficas.
Caractersticas:

Formato JPEG (Joint Photographic Experts Group)


Mecanismo de compresin JPEG:

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

75

1.4. Formatos de almacenamiento.


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

Tamao: 86 Kbytes

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

76

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

Comprimiendo al mismo tamao que GIF, la calidad es


mejor, sobre todo en imgenes fotogrficas. Pero...
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

77

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

78

13

1.4. Formatos de almacenamiento.


Formato JPEG (Joint Photographic Experts Group)
Ventajas:

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

79

1.4. Formatos de almacenamiento.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

81

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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

80

1. Adquisicin y representacin de imgenes.


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.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

82

A.1. Tipos de datos en IPL y OpenCV.

Anexo A.1.

Tipos de datos auxiliares:

Tipos de datos en IPL y OpenCV.

CvPoint: coordenadas de un punto (un pxel) en una


imagen. La numeracin de filas y columnas empieza en 0.
typedef struct CvPoint {
int x;
int y;
} CvPoint;

Tipos de datos auxiliares


El tipo IplImage
Almacenamiento de las imgenes
Operaciones de entrada/salida
Ejercicios

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

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.

Conclusiones:

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.

Formato JPEG (Joint Photographic Experts Group)


Aplicaciones:

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.

1.4. Formatos de almacenamiento.

CvSize: tamao de una regin rectangular, en pxeles.


typedef struct CvSize {
int width; // Anchura
int height; // Altura
} CvSize;
83

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

84

14

A.1. Tipos de datos en IPL y OpenCV.


CvRect: rectngulo en la imagen, dado por el pxel
superior izquierdo, anchura y altura.

Estos tipos aparecern en los parmetros de las llamadas a


muchas de las funciones.
Existen funciones inline para crear e inicializar variables de
estos tipos de datos: cvPoint, cvSize, cvRect, cvScalar,
cvScalarAll.

typedef struct CvRect {


int x;
int y;
int width; // Anchura
int height; // Altura
} CvRect;

CvScalar: escalar o valor de un pxel, que puede contener


1, 2, 3 4 nmeros (segn el nmero de canales).
typedef struct CvScalar {
double val[4];
} CvScalar;
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

85

A.1. Tipos de datos en IPL y OpenCV.


En algunas funciones el valor de un pxel (un color) no se
representa mediante CvScalar, sino mediante un double
que encapsula los canales RGB.
Por ejemplo, en las funciones de dibujar:
void cvCircle(... CvPoint center, int radius, double color, ...)
Para crear un valor se usa el macro CV_RGB(r, g, b):
#define CV_RGB( r, g, b ) (int)((uchar)(b) + ((uchar)(g) << 8) +
((uchar)(r) << 16))
...
cvCircle(img, cvPoint(100,100), 50, CV_RGB(0,0,255));
...
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

A.1. Tipos de datos en IPL y OpenCV.

87

CvPoint pt1= cvPoint(3,4), pt2;


pt2.x= 5; pt2.y= 8;
printf(%d, cvSize(100, 200).width);
... cvRect(2, 2, 50, 50) ...
... cvScalarAll(3) ... cvScalar(5, 7, 9) ...
cvLine(imagen, pt1, pt2, color);
cvLine(imagen, cvPoint(1,1), cvPoint(10,10), col);
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

86

A.1. Tipos de datos en IPL y OpenCV.


El tipo IplImage
El tipo de datos para representar imgenes es el tipo
IplImage, tanto en IPL como en OpenCV.
Las imgenes se guardan descomprimidas, como una
matriz de pxeles que podemos consultar y modificar.
Principales propiedades de una imagen:
Tamao (size): anchura (width) y altura (height).
Profundidad de pxeles (depth): enteros de 8, 16 y 32 bits,
reales de 32 y 64 bits.
Nmero de canales (nChannels): 1, 2, 3 4.
Origen de coordenadas (origin): top-left, bottom-left; y orden
de los canales (dataOrder): entrelazado de pxeles (0) o por
canales (1).
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

88

A.1. Tipos de datos en IPL y OpenCV.

A.1. Tipos de datos en IPL y OpenCV.

Las variables manejadas sern punteros a IplImage.


Creacin de una imagen:
IplImage* cvCreateImage(CvSize size, int depth, int channels)

Definicin del tipo IplImage. Observar que algunos campos


no se usan en OpenCV (slo se usan en IPL).

size: tamao de la imagen


depth: profundidad de pxel:

IPL_DEPTH_8U - unsigned 8-bit integers


IPL_DEPTH_8S - signed 8-bit integers
IPL_DEPTH_16S - signed 16-bit integers
IPL_DEPTH_32S - signed 32-bit integers
IPL_DEPTH_32F - single precision floating-point numbers
IPL_DEPTH_64F - double precision floating-point numbers

channels: nmero de canales: 1, 2, 3 4


Implcitamente, el origen es top-left y el orden es entrelazado.
Con imgenes RGB el orden es: b0, g0, r0, b1, g1, r1, ...
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

89

typedef struct _IplImage {


int nSize;
/* sizeof(IplImage) */
int ID;
/* version (=0)*/
int nChannels; /* Most of OpenCV functions support 1,2,3 or 4 channels */
int alphaChannel; /* ignored by OpenCV */
int depth;
/* pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S,
IPL_DEPTH_16S, IPL_DEPTH_32S, IPL_DEPTH_32F and
IPL_DEPTH_64F are supported */
char colorModel[4]; /* ignored by OpenCV */
char channelSeq[4]; /* ditto */
int dataOrder;
/* 0 - interleaved color channels, 1 - separate color
channels. cvCreateImage can only create interleaved images */
int origin; /* 0 - top-left origin, 1 - bottom-left origin (Windows bitmaps style) */
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

90

15

A.1. Tipos de datos en IPL y OpenCV.


int align;

/* Alignment of image rows (4 or 8).


OpenCV ignores it and uses widthStep instead */
int width;
/* image width in pixels */
int height;
/* image height in pixels */
struct _IplROI *roi; /* image ROI. when it is not NULL, this specifies
image region to process */
struct _IplImage *maskROI; /* must be NULL in OpenCV */
void *imageId; /* ditto */
struct _IplTileInfo *tileInfo; /* ditto */
int imageSize; /* image data size in bytes (=image->height*
image->widthStep) in case of interleaved data)*/
char *imageData; /* pointer to aligned image data */
int widthStep;
/* size of aligned image row in bytes */
int BorderMode[4]; /* border completion mode, ignored by OpenCV */
int BorderConst[4]; /* ditto */
char *imageDataOrigin; /* pointer to a very origin of image data (not
necessarily aligned) it is needed for correct image deallocation */
} IplImage;
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

91

A.1. Tipos de datos en IPL y OpenCV.


Acceso a un pxel de una imagen

Almacenamiento en memoria de los datos


Los pxeles de la imagen estn referenciados en:
char *imageData;
Los pxeles se almacenan por filas, de izquierda a derecha,
empezando por la fila superior o la inferior (segn origin sea
0 1, respectivamente).
Entre una fila y la siguiente hay widthStep bytes (al final de
la fila pueden sobrar algunos bytes, con el propsito de
alinear las filas).
0 1
IplImage *img int width= 2
2 3
int height= 2
int nChannels= 3
int depth= 8U
char *imageData

widthStep= 8

b0 g0 r0 b1 g1 r1

b2 g2 r2 b3 g3 r3

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

92

A.1. Tipos de datos en IPL y OpenCV.


Entrada/salida de imgenes a disco

El acceso a pxeles concretos es necesario, aunque si existe


ya una funcin que haga lo que queremos, mejor usarla.
Acceso al pxel (x, y) de una imagen img:
Directamente usando imageData y widthStep:
1 canal, 8U: img->imageData[x+y*img->widthStep]
3 canales, 8U: img->imageData[x*3+y*img->widthStep], ...,
img->imageData[x*3+y*img->widthStep+2]

Usando las funciones iplGetPixel, iplPutPixel:


void iplGetPixel (IplImage *img, int x, int y, void *pixel)
void iplPutPixel (IplImage *img, int x, int y, void *pixel)
pixel es un buffer que almacena el valor del pxel (segn la
profundidad y el nmero de canales).
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

A.1. Tipos de datos en IPL y OpenCV.

93

A.1. Tipos de datos en IPL y OpenCV.


Entrada/salida de imgenes a disco
Guardar una imagen en un fichero:
int cvSaveImage (const char* name, const IplImage* image)
name: nombre del fichero a escribir.
image: imagen a guardar.
Formatos admitidos: BMP, DIB, JPEG, PNG, PBM, PGM,
PPM, RAS, TIFF.
Devuelve 0 si no se puede escribir.

Slo se echa en falta el formato GIF... pero recordar el


problema de las patentes...

Las funciones para la entrada/salida de imgenes se


encuentran en la librera <highgui.h>, de OpenCV.
Leer una imagen de un fichero:
IplImage* cvLoadImage (const char* name, int iscolor=1)
name: nombre del fichero a leer.
iscolor: nmero de canales en la imagen resultante:
>0 : la imagen resultante tendr siempre 3 canales (RGB)
=0 : la imagen tendr 1 canal (escala de grises)
<0 : el nmero de canales depende del propio fichero

Formatos admitidos: BMP, DIB, JPEG, PNG, PBM, PGM,


PPM, RAS, TIFF.
Si no se puede leer el fichero devuelve NULL.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

94

A.1. Tipos de datos en IPL y OpenCV.


Salida de imgenes por pantalla

La librera <highgui.h> ofrece tambin una forma sencilla de


visualizar las imgenes. Permite crear ventanas, que son
referenciadas por cadenas de texto.
Crear una ventana:
int cvNamedWindow (const char* name, unsigned long flags)
name: nombre de la ventana a crear.
flags: 0 = se puede modificar el tamao de la ventana; 1 = no
se puede modificar el tamao.

Destruir una ventana:


int cvDestroyWindow (const char* name)
name: nombre de la ventana a destruir.

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

95

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

96

16

A.1. Tipos de datos en IPL y OpenCV.


Salida de imgenes por pantalla

Mostrar una imagen en una ventana:


void cvShowImage (const char* name, const IplImage* image)
name: nombre de la ventana a usar.
image: imagen a mostrar.

Cambiar el tamao de una ventana:


void cvResizeWindow (const char* name, int width, int height)
name: nombre de la ventana a redimensionar.

A.1. Tipos de datos en IPL y OpenCV.


Obviamente, las imgenes creadas deben ser liberadas.
Liberar una imagen:
void cvReleaseImage (IplImage** image)
image: imagen a liberar, ojo es un doble puntero.
Si *image es NULL no hace nada.

Clonar una imagen:


IplImage* cvCloneImage (const IplImage* image)
image: imagen a clonar, se devuelve una copia exacta

Otras operaciones (consultar en la documentacin):

Esperar pulsacin de una tecla:


int cvWaitKey (int delay= 0)

cvSet: inicializar una imagen con un valor constante.


cvCvtPixToPlane, cvCvtPlaneToPix: separar los canales de
una imagen o componer varios canales en una imagen.
cvConvertScale: convertir una imagen, cambiando los valores
de profundidad de pxel.

delay: tiempo mximo de espera, en milisegundos. Si es


menor o igual que 0, espera indefinidamente.
Devuelve el cdigo de la tecla, o -1 si no se puls ninguna.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

97

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

A.1. Tipos de datos en IPL y OpenCV.

A.1. Tipos de datos en IPL y OpenCV.


Algunas cuestiones adicionales

Los tipos CvMat, CvMatND y CvArr


Adems de imgenes, OpenCV permite manejar tambin
matrices (CvMat) y arrays n-dimensionales (CvMatND).
Crear una matriz o array: cvCreateMat, cvCreateMatND
Distintos valores de profundidad y nmero de canales
Liberar una matriz: cvReleaseMat, cvReleaseMatND
Leer un elemento: cvGet1D, cvGet2D, cvGet3D, cvGetND
Escribir un elemento: cvSet1D, cvSet2D, cvSet3D, cvSetND

Normalmente no usaremos estos tipos, pero muchas


funciones sobre imgenes los admiten tambin.
El tipo CvArr se usa para indicar que una funcin puede
manejar tanto un IplImage, como un CvMat o un CvMatND.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

En la mayora de las funciones de IPL y OpenCV, tenemos


que crear previamente las imgenes (no lo hace la funcin).
Modo in-place: si una funcin lo admite, significa que la
imagen resultado puede ser la misma que la entrada.
Ejemplo: cvAdd (imagenA, imagenB, imagenA);
Regiones de Inters (ROI): una imagen puede tener
definida una regin de inters rectangular. Las operaciones
se aplican slo sobre la regin de inters.
Establecer una regin de inters:
void cvSetImageROI (IplImage* image, CvRect rect)
Conceptos relacionados son: canal de inters (COI) y
mscara (mask, imagen booleana; 0: no usar; 0: s usar).

99

A.1. Tipos de datos en IPL y OpenCV.


Ejemplo sencillo: leer una imagen y mostrarla en una
ventana.
IplImage *img;
cvNamedWindow("Imagen", 0); // Modificable
img= cvLoadImage("fichero.jpg", 1);
cvShowImage("Imagen", img);
cvWaitKey(0);
cvDestroyWindow("Imagen");
cvReleaseImage(&img);

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

98

101

Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

100

A.1. Tipos de datos en IPL y OpenCV.

Ejercicios.
1. Escribir un programa que lea una imagen en color, separe
los tres canales (R, G, B) y los muestre por pantalla en
ventanas distintas.
2. Escribir un programa que dada una imagen, la procese pxel
a pxel, tomando los n bits ms significativos (es decir,
poner a 0 los menos significativos, ya sea en 1 3 canales).
El resultado, para n= 1, 2, ...,8, se debe mostrar en pantalla
en sucesivas pulsaciones de teclas.
3. Igual que antes, pero para cada pxel reducir la profundidad
en cada canal a k niveles, de manera uniforme y espaciada,
y almacenando el resultado en disco.
4. Escribir un programa que transforme una imagen BMP a
formato JPG. Calcular la compresin con varios ejemplos.
5. Escribir un programa que lea una imagen cualquiera y
muestre en pantalla los campos de la estructura IplImage.
Procesamiento Audiovisual
Tema 1. Adquisicin y representacin de imgenes.

102

17

También podría gustarte