You are on page 1of 17

PROCESAMIENTO AUDIOVISUAL

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

Tema 1. Adquisicin y representacin de imgenes.


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

1.1. El proceso de formacin de imgenes.


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.
http://webvision.med.utah.edu/anatomy.html

1.1. El proceso de formacin de imgenes.


Modelo de cmara simplificado.

Eje ptico Sistema Plano de imagen ptico (fotodetectores)

Mundo 3D

Apertura

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

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

1.1. El proceso de formacin de imgenes.


Modelo ideal de cmara (pinhole).
P Distancia focal

1.1. El proceso de formacin de imgenes.


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

Eje ptico Mundo 3D Apertura

P 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. 5

Los puntos se difuminan.

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

Crculos de confusin

La imagen estar enfocada cuando el tamao del crculo de confusin sea menor que el tamao de cada celda del fotodetector.
http://www.pinhole.org/

1.1. El proceso de formacin de imgenes.

1.1. El proceso de formacin de imgenes. Solucin 1: aumentar el tiempo de exposicin, manteniendo el tamao de la apertura.
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. 7 Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes. 8

1.1. El proceso de formacin de imgenes. Solucin 2: aumentar el tamao de la apertura y utilizar unas lentes que realicen el enfoque.
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.
Prof. campo (aprox.) de unos pocos cm. Prof. campo (aprox.) desde 3 m. a infinito

1.1. El proceso de formacin de imgenes.


Solucin 3: manteniendo reducidos el tiempo de exposicin y el tamao de la apertura, aumentar la sensibilidad de los fotodetectores.
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


10

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.


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

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

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

1.1. El proceso de formacin de imgenes. Abertura del diafragma

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.

1.1. El proceso de formacin de imgenes. Sensibilidad de los fotodetectores


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

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

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

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

70

26

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

Teleobjetivo
16

1.1. El proceso de formacin de imgenes.


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

1.1. El proceso de formacin de imgenes.


Ejemplo. Aumento de 25x
Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes. 18

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

1.1. El proceso de formacin de imgenes.


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.
http://www.solarviews.com/cap/face/face3.htm

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 ap

df

Cunto vale en funcin de df y ap? df

ap

20

ap

Con zoom digital

Con zoom ptico


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


= 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. 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. Tiburn (1975).

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

22

1.1. El proceso de formacin de imgenes. El efecto zoom de Hitchcock. ESDLA 1 (2001).

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

1.1. El proceso de formacin de imgenes.

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 distancia aumenta el tamao del crculo de confusin Procesamiento Audiovisual 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:
Centro de proyeccin (equivale a la apertura del pinhole). Plano de proyeccin (plano de la imagen).
X, Y Distancia focal

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)
Distancia focal X, Y P Q Centro de Proyeccin R S Plano de Proyeccin R S
26

P Q

La imagen de un punto P viene dada por la interseccin de la recta P-C.P. con el plano de Punto proyeccin. principal
Eje ptico P
25

Por eso los objetos lejanos se ven ms pequeos que los cercanos!
Z

Centro de Proyeccin

P Plano de Proyeccin

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.


Pero el modelo proyectivo no es completo. No explica algunos fenmenos como el desenfoque, la distorsin radial y la separacin de colores.

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.
90 92 63 45 39 34 37 66 127 143 141 139 137 135 132 67 87 102 83 69 80 93 117 136 134 137 137 133 132 132 68 73 89 109 92 73 88 106 107 99 96 80 56 65 88 75 78 76 80 115 132 136 147 144 143 146 131 104 86 50 78 82 98 130 154 144 171 188 188 188 167 162 165 173 149 98 132 163 158 122 110 164 202 197 172 123 145 167 186 182 185 180 166 166 144 142 137 198 188 129 91 131 174 200 189 180 152 164 174 173 181 171 187 184 127 90 129 181 198 191 153 134 175 158 155 173 190 187 192 179 151 154 175 181 186 139 120 159 134 105 122 149 159 172 167 156 161 169 171 178 132 102 120 105 98 100 110 124 124 106 121 158 165 162 166 106 106 103 71 86 88 137 151 151 118 93 149 162 153 157 70 95 132 82 82 141 168 167 138 111 78 134 158 145 148 80 75 96 121 106 142 161 158 108 54 82 122 142 135 131 81 72 68 80 83 111 132 138 116 70 97 115 124 121 106 69 63 42 51 76 87 96 105 114 95 91 99 103 104 78 69 75 49 12 17 33 56 80 84 90 87 84 67 53 28

Un pxel

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

67 42 46 50 29 18 23 55 46 46 45 35 19 14 10

35 19 17 31 41 46 48 59 67 69 66 52 31 15 15

34 29 22 17 19 36 49 54 54 52 39 30 23 33 44

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

28

1.2. Representacin de imgenes digitales.


Una forma ms comn de visualizar una imagen...

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

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.


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

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.

Una imagen digital es un muestreo discreto de la seal continua.

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

Vecindad a 8
32

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

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.


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.


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

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

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

Canal R

Canal R

Canal B
36

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

1.2. Representacin de imgenes digitales. Imgenes multicanal:


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.
http://www.rit.edu/~andpph/

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

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

37

1.2. Representacin de imgenes digitales.

1.3. Dispositivos de captura.


Podemos distinguir entre captura y digitalizacin.

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.

Seal analgica

Seal digital

Escena

Cmara

Digitalizador

Ordenador

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

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.

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

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

1.3. Dispositivos de captura.


Sony Semiconductors

1.3. Dispositivos de captura.


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

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

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

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.
Desplazamiento de filas

1.3. Dispositivos de captura.


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

Registro serie

Salida

Desplazamiento de pxeles

Esto es el llamado full frame CCD.


Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

1.3. Dispositivos de captura.


Campo de estrellas. Mayor cuanto peor es la cmara.
QUICKCAM PRO SONY DFW500

1.3. Dispositivos de captura.


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/

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

47

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

48

Courtesy Eastman Kodak Co.

Ruido fotnico

Rebosamiento (blooming)

duncantech.com

Esquema de una celda del CCD (o pxel).

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.
Todos los pxeles deberan leerse al mismo tiempo

1.3. Dispositivos de captura.


Ejemplo. Los chips CMOS suelen usarse en aplicaciones que necesitan una velocidad de muestreo muy alta. Capturado a 2.000 imgenes por segundo.

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.

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

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.

1.3. Dispositivos de captura.


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://micro.magnet.fsu.edu/primer/digitalimaging/

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

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

51

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

52

1.3. Dispositivos de captura.


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.

1.3. Dispositivos de captura.


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

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

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

Imagen de ultrasonidos (ecografa)


53

RMN Resonancia

Imgenes de profundidad
54

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

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

1.4. Formatos de almacenamiento.


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.


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

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

R= 51 G= 153 B= 255

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


3 4 4 4 4 4 3 0 0 0 0 0 3 1 2 2 1 4 4 1 2 2 1 4 4 4 1 2 2 1 4 4 1 2 2 1 4 1 2 2 1 4 4 1 2 2 1 4

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

Sin paleta

Con paleta (256 colores)


58

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

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

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

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

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

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). 2 3 4

1.4. Formatos de almacenamiento.


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

7 1 6 6
Imagen de entrada

8 7 1 6

1 8 2 2

2 7 6 2

2 2 7 7

8
63

Imagen comprimida
64

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

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

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.

Sin comprimir

Ratio 1:4

Ratio 1:10

Ratio 1:26

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

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

1.4. Formatos de almacenamiento.


Formato BMP (Windows Bitmap)
Ejemplos:

Aplicaciones:
Aplicaciones que requieran una rpida salida por pantalla. Aplicaciones donde no deba haber prdida de calidad, aun a costa del tamao. Resolucin: 512x384 Profundidad: 24 bits/pxel Tamao: 576 Kbytes Resolucin: 400x308 Profundidad: 24 bits/pxel Tamao: 167 Kbytes
68

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

67

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

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

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

Formato GIF (Graphics Interchange Format)


Paleta: 32 colores Tamao: 33 Kbytes Paleta: 256 colores Tamao: 87 Kbytes

1.4. Formatos de almacenamiento.

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

72

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.

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

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

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


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

1.4. Formatos de almacenamiento.


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

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

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.

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.

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

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

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

81

Tipos de datos en IPL y OpenCV.


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

Anexo A.1.

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


Tipos de datos auxiliares:
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;

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

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

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


CvRect: rectngulo en la imagen, dado por el pxel superior izquierdo, anchura y altura.
typedef struct CvRect { int x; int y; int width; // Anchura int height; // Altura } CvRect;

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


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

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

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.


Las variables manejadas sern punteros a IplImage. Creacin de una imagen: IplImage* cvCreateImage(CvSize size, int depth, int channels)
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

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


Definicin del tipo IplImage. Observar que algunos campos no se usan en OpenCV (slo se usan en IPL).
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

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

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


/* 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.


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 b0 g0 r0 b1 g1 r1 b2 g2 r2 b3 g3 r3 0 0
92

int align;

widthStep= 8
0 0

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

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


Acceso a un pxel de una imagen
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]

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


Entrada/salida de imgenes a disco
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

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

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.


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.

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.

Slo se echa en falta el formato GIF... pero recordar el problema de las patentes...

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

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.

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.

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

Clonar una imagen: IplImage* cvCloneImage (const IplImage* image)


image: imagen a clonar, se devuelve una copia exacta

Esperar pulsacin de una tecla: int cvWaitKey (int delay= 0)


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

Otras operaciones (consultar en la documentacin):


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

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


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

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


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

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

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

Procesamiento Audiovisual Tema 1. Adquisicin y representacin de imgenes.

101

You might also like