Title: Procesamiento Digital de Imgenes
1Procesamiento Digital de Imágenes
- M.C. Juan Carlos Olivares Rojas
- jolivares_at_uvaq.edu.mx
- Mayo, 2009
2Agenda
- Introducción
- Transformaciones punto a punto.
- Transformaciones de 2 imágenes.
- Operaciones de vecindad.
- Transformaciones lógicas y geométricas.
3Agenda
- Detección de bordes.
- Extracción de Regiones.
- Detección de Movimiento.
- Detección de objetos 3D.
4Introducción
- El Procesamiento Digital de Imágenes es un área
de la graficación por computadora muy importante. - Los fundamentos del Procesamiento Digital de
Imágenes están íntimamente relacionados con el
tratamiento de señales, por lo que se les puede
aplicar elementos como filtros, transformación,
detección, extracción de elementos, entre otras
cosas.
5Procesamiento Digital de Imágenes
- Mejorar la calidad de las imágenes para su
posterior interpretación por una persona. - Objetivo
- Remover objetos
- Remover problemas por movimiento o desenfoque.
- Mejorar ciertas propiedades (color, contraste,
brillo, etc.).
6Visión Artificial
- Extraer características de la imagen para su
descripción e interpretación por una computadora. - Objetivos
- Determinar la localización y tipo de objetos en
la imagen. - Construir una representación tridimensional de un
objeto. - Analizar un objeto para determinar sus
características.
7Aplicaciones
- Aplicación
- Robótica móvil y vehículos autónomos.
- Manufactura (localización, identificación y
ensamblado de piezas). - Interpretación de imágenes aéreas y de satélite.
- Análisis e interpretación de imágenes médicas.
- Interpretación de escritura, dibujos, planos.
- Análisis de imágenes microscópicas en química,
física, biología. - Monitoreo de objetos y personas (control y
seguridad).
8Aplicaciones
- Mediciones.
- Empaque.
- Robótica.
- Verificación de ensambles.
- Inspección Industrial.
- Inspección de Papel y Madera.
- OCR
9Empaque
10OCR
11Inspección de Alimentos
12Procesamiento
13Calidad de la Imagen
Mala
Buena
14Iluminación
- La iluminación también juega un papel muy
importante en el proceso de adquirir buenas
imágenes aptas para procesamiento
15Detección de Bordes
16Segmentación
17Segmentación
18Proyectos de Visión Artificial
19Proyectos de Visión Artificial
Experimento No. 8
MODULO DE LOCALIZACIÓN
MODULO DE SEGUIMIENTO
20Proyectos de Visión
21Proyectos de Visión
22Procesamiento de Visión Artificial
23Introducción
- La adquisición de la imagen consiste en la
obtención de una señal visual del mundo analógico
al digital (cámara fotográfica, video, escáner,
etc.). - La limpieza consiste en eliminar aspectos como el
ruido al aplicar filtros o bien mejorar la
calidad de la imagen.
24Introducción
- El proceso de segmentación consiste en dividir la
imagen en sus partes principales. - Presentación y Descripción en base a la
segmentación se describe cada parte. - Interpretación y Reconocimiento dado el
descriptor de un objeto se compara con la
descripción que se cuenta en la base de
conocimientos y se realiza una acción.
25Introducción
- Base de Conocimientos es un repositorio donde se
almacén la descripción de diversos objetos que
serán útiles en el reconocimiento de patrones
(formas visuales).
1 punto en 8 píxel
Normal
26Introducción
4 Niveles de Gris
256 Niveles de Gris
27Introducción
Valores del Ojo
Ojo de Lena
28Características de las Imágenes
- Antes de entrar a los algoritmos y métodos de
procesamiento digital de imágenes es conveniente
ver las características de las imágenes. - Histograma es una gráfica en el cual se cuenta la
frecuencia de color, es útil para cambiar la
intensidad de luz de una imagen respetado sus
atributos característicos.
29Histograma
Histograma de Lena Normal
Histograma de Lena Obscuro
30Ruido
- Se considera ruido a toda aquella variación de la
tonalidad de la imagen no debida a la luz
recibida. - Existen diversos tipos de ruidos correlados
(cuando depende de la posición del pixel), no
correlados (cuando depende de la posición del
pixel, se basan en distribuciones de probabilidad
como la Gaussiana) y los ruidos aleatorios o de
sal y pimienta.
31Ruido
Normal
Ruido Gaussiano
Ruido Correlado
Ruido Aleatorio
32Brillo
- Se define como brillo al nivel medio de gris de
una imagen.
Brillo 104
Brillo 56
33Contraste
- Es la variación de gris de un punto respecto al
brillo de la imagen. Se puede definir de forma
aproximada con bajo consumo de recursos
computacionales como - La definición correcta es
34Contraste
C1 95.81 C2 26.45
C1 94.42 C2 10.56
35Nitidez
- Es la respuesta de la imagen ante cambios bruscos
de iluminación.
36Nitidez
- La baja nitidez de una imagen puede estar
motivada por - Objetos fuera del rango de enfoque de la óptica.
- Deficiencias en el elemento sensor.
- Efectos de algoritmos de tratamiento de imágenes.
37Nitidez
Nitidez 18.245
Nitidez 9.777
38Diferencia Cuadrática de Dos Imágenes
- La diferencia es útil cuando se desea calcular el
grado de variación de una imagen obtenida con un
algoritmo de procesamiento de imagen con respecto
a la original. - En donde Fr es la imagen base y f la imagen que
se desea analizar.
39Diferencia Cuadrática de Dos Imágenes
ECT28.957, ECN26.536
40Transformaciones Punto a Punto
- Son las transformaciones más simple sobre una
imagen o señal. - Las imágenes se pueden representar como matrices
de puntos, donde cada punto tiene asociado un
modelo de color. - Un ejemplo básico sería la multiplicación por un
escalar.
41Transformación Punto a Punto
- Algunos ejemplos de transformaciones puntuales
- Suma.
- Resta.
- Multiplicación.
- División.
- Máximo.
- Mínimo.
- Umbralización.
- Inversa.
42Transformación Punto a Punto
Inversa
Original
43Adquisición de Imágenes
- Una imagen no es otra cosa que una señal (función
en el tiempo),la cual representa un conjunto de
puntos en un plano cartesiano y en donde cada
punto tiene asociado un valor de intensidad
(color) de un rango válido. - Para este curso se utilizará Java en su forma
nativa (Clase PixelGrabber) así como algunas
otras APIs como J2ME
44PixelGrabber
- //Carga de una imagen
- import java.awt.
- import java.awt.event.
- import java.awt.image.
- public class Carga extends Frame
- Image imagen, imagenNueva
- int ancho, alto, insetArriba, insetIzqda
45PixelGrabber
- Public Carga()
- imagen Toolkit.getDefaultToolkit().getImage("ima
gen_01.jpg") - MediaTracker tracker new MediaTracker( this )
- tracker.addImage( imagen,1 )
- try
- if( !tracker.waitForID( 1,10000))
46PixelGrabber
- System.out.println( "Error en la carga" )
- System.exit( 1 )
- catch( InterruptedException e )
- System.out.println( e )
- ancho imagen.getWidth( this )
- alto imagen.getHeight( this )
- this.setVisible( true )
- insetArriba this.getInsets().top
- insetIzqda this.getInsets().left
47PixelGrabber
- this.setSize(insetIzqdaancho, insetArriba(2alto
) ) - this.setTitle( "Cargar una Imagen" )
- this.setBackground( Color.yellow )
- int pix new intancho alto
- try
- PixelGrabber pgObj new PixelGrabber(
imagen,0,0,ancho,alto,pix,0,ancho ) - if( pgObj.grabPixels() ( (pgObj.getStatus()
ImageObserver.ALLBITS ) ! 0 ) )
48PixelGrabber
- For ( int i0 i lt (anchoalto) i )
- System.out.println(valpixi)
- else
- System.out.println( "Problemas al descomponer la
imagen" ) catch( InterruptedException
e ) System.out.println( e ) - imagenNueva this.createImage( new
MemoryImageSource(ancho,alto,pix,0,ancho ) )
49PixelGrabber
- this.addWindowListener(new WindowAdapter()
public void windowClosing( WindowEvent evt )
System.exit( 0 )) - public void paint( Graphics g )
- if( imagenNueva ! null )
- g.drawImage( imagen,insetIzqda,insetArriba,this
) - g.drawImage( imagenNueva,insetIzqda,insetArribaal
to,this )
50PixelGrabber
- public static void main (String args)
- Cargar obj new Cargar()
- obj.repaint()
-
51Operador Identidad
- Este operador crea una imagen de salida que es
idéntica a la imagen de entrada. - Función de transformación
52Operador Identidad
Transformación
Imagen 1
53Operador Inverso o Negativo
- Este operador crea una imagen de salida que es la
inversa de la imagen de entrada. - Para una imagen con valores de gris en el rango
de 0 a 255 la función de transformación es
54Operador Inverso o Negativo
Transformación
Imagen 1
55Operador Umbral
- Se crea una imagen de salida binaria a partir de
una imagen de grises, donde el nivel de
transición está dado por el parámetro de entrada
p1. - Función de transformación
56Operador Umbral
Transformación
Imagen 1
57Operador Umbral Binario
- Esta clase de transformación crea una imagen de
salida binaria a partir de una imagen de grises,
donde todos los valores de gris cuyo nivel está
en el intervalo definido por p1 y p2 son
transformados a 255, y todos los valores fuera de
ese intervalo a 0. - Función de transformación
58Operador Umbral Binario
59Operador Intervalo Umbral Binario
Transformación
Imagen 1
60Operador Intervalo Umbral Binario Invertido
- Esta clase de transformación crea una imagen de
salida binaria a partir de una imagen de grises,
donde todos los valores de gris cuyos niveles
están en el intervalo definido por p1 y p2 son
transformados a 0, y todos los valores fuera de
ese intervalo a 255. - Función de transformación
61Operador Intervalo de Umbral Binario Invertido
62Operador Intervalo de Umbral Binario Invertido
Transformación
Imagen 1
63Operador Umbral Escala de Grises
- Se crea una imagen de salida con los únicos
valores de nivel de gris comprendidos en el
intervalo definido por p1 y p2, y el resto a 255. - Función de transformación
64Operador Umbral Escala Grises
Transformación
Imagen 1
65Operador Umbral Escala Grises Invertido
- Se crea una imagen de salida con los únicos
valores de nivel de gris invertidos comprendidos
en el intervalo definido por p1 y p2, y el resto
a 255. - Función de transformación
66Operador Umbral Escala de Grises Invertido
Transformación
Imagen 1
67Operador de Extensión
- Proporciona una imagen de salida con la escala de
grises completa correspondiente al intervalo de
entrada definido por p1 y p2, y suprime todos los
valores fuera de este rango. - Función de transformación
68Operador de Extensión
Transformación
Imagen 1
69Operador de Reducción del Nivel de Gris
- Proporciona una imagen de salida con un menor
número de niveles de gris respecto de la imagen
original de entrada, la imagen de entrada es
reducida a n1 niveles de gris. - Función de transformación
70Transformaciones de 2 imágenes
- La transformación de dos imágenes generalmente
hace referencia a que se utiliza otra matriz para
modificar cierto aspecto de los atributos de la
señal original. Por ejemplo la intensidad, los
tonos de luz, etc. - Se pueden utilizar algunos operadores como la
multiplicación, suma de matrices, entre otras.
71Transformación de Dos Imágenes
- Algunos ejemplos de operaciones son
- Suma.
- Resta.
- Multiplicación.
- División.
- Máximo.
- Mínimo.
- AND.
- OR.
- XOR.
72Transformación de dos Imágenes
Imagen con ruido Gausiano
original
Diferencia multiplicada por 6
Diferencia entre las imagen
73Transformaciones de Dos Imágenes
Original Umbralizada 128
Imagen Inversa de la Umbralizada 128
Mínimo de la Inversa Umbralizada 128 y la original
74Transformación Punto a Punto
- Para esta transformación se utilizan 2 imágenes
de entrada A y B, para crear una nueva imagen C. - La dimensión de las imágenes es la misma.
- La función de la transformación fD puede ser
lineal o no. - Esta función se aplica a todos los pares de
pixeles en las imágenes de entrada.
75Transformación Punto a Punto
- La función característica esta dada por la
siguiente ecuación - La función fD puede ser adición, sustracción,
multiplicación, división, exponenciación, máximo,
o cualquier otra función que se pueda definir.
76Transformación Punto a Punto
- La función deberá tener un factor de escala
apropiado k para mantener los valores de salida
dentro de un rango adecuado, así como para evitar
desbordamientos y valores negativos. - La transformación implica dos variables asociadas
con los pares de pixeles
77Transformación Punto a Punto
78Suma (Adición)
- La adición puede utilizarse para reducir los
efectos del ruido en la imagen. - El valor de salida es
- Donde k es 2 para el caso de las 2 imágenes de
entrada. - Los valores de salida finales deben redondearse
por defecto o por exceso.
79Sustracción
- La sustracción es técnica útil para detectar el
cambio producido en dos imágenes que han sido
captadas en 2 instantes de tiempo diferentes. - Los datos de ambas imágenes también pueden
representar pérdidas de calor o frío, o si la
fuente de datos es el espectro infrarrojo.
80Sustracción
- Puesto que en el procesamiento de imágenes se
utilizan números positivos, es necesario definir
la salida de alguna manera que haga todos los
valores positivos, esto implica un reescalado
donde el valor mas negativo se corresponde con el
0 y el máximo con el 255 para la escala de grises
del 0 al 255.
81Adición y Substracción
Imagen 2
Imagen 3
Suma 23
Resta 2-3
82Operadores de Vecindad
- En esta transformación, el nuevo valor del pixel
en la imagen de salida, depende de la combinación
de los valores de los pixeles en la vecindad del
pixel de la imagen original que esta siendo
transformada. - Lo que resta definir son los valores de la
ponderación, lo cual se hace generalmente
definiendo una máscara con valores constantes,
dicha máscara es un filtro.
83Operadores de Vecindad
- Para la siguiente máscara
- El valor del pixel q(x,y) esta dado por la suma
ponderada, la cual nos da el efecto de Repujado
en Relieve
84Operadores de Vecindad
Transformación
Imagen 1
85Operador Vecindad Mayor Contraste
- Con la máscara siguiente se obtiene mayor
contraste
Transformación
Imagen 4
86Transformaciones Globales
- La transformación depende de todos los puntos de
la imagen. Pueden utilizarse estadísticos como en
la ecualización o máximos y mínimos para el
escalado de imágenes.
87Transformaciones Globales
Imagen Ecualizada
Imagen Original
88Operaciones de vecindad
- Antes de ver los operadores de vecindad conviene
recalcar las formas en que ésta se da.
Vecindad a 4
Vecindad a 8
89Reducción de Ruido
- Los operadores de vecindad permiten definir
filtros para la eliminación de ruido en las
imágenes. - El promedio del entorno de vecindad es un filtro
lineal en el cual se promedian los valores de
intensidad de un punto en base a sus vecinos.
90Reducción de Ruido
Entorno de vecindad
Imagen con ruido gausisano s5
Imagen Filtrada
91Reducción de Ruido
- Existen otros filtros como los no lineales o
estadísticos. Donde el algoritmo y los entornos
de vecindad cambian. - No todos los filtros aplican de la misma manera a
las imágenes por lo que se debe probarlos.
92Transformaciones lógicas
- Generalmente se utilizan máscaras para poder
encontrar alguna característica útil en las
imágenes - AND.
- OR.
- XOR.
93Transformaciones Lógicas
Imagen 5
Imagen 6
Binarización de 5 (umbral 128)
Binarización de 6 (umbral 128)
94Transformaciones Lógicas
Negación de la Binarización de 5
Negación de la Binarización de 6
Operación OR entre 5 y 6
Operación AND entre 5 y 6
95Transformaciones Lógicas
Operación XOR entre 5 y 6
Transformación 5 lt 6
96Transformaciones geométricas
- La imagen se transforma, realizándose un cambio
de variables pero no de dominio. - La posición de cada píxel es función de la
posición del píxel correspondiente en la imagen
original, y viene determinada por una
transformación geométrica.
97Transformaciones Geométricas
- Entre las más empleadas están
- Homotecia.
- Zoom.
- Traslación.
- Rotación. Transformación de Hotelling.
- Warping. Corrección de distorsiones.
- Morphing.
98Transformaciones Globales
- La imagen se transforma en globalmente, sin
considerar los píxels de forma individual,
realizándose un cambio de dominio. Entre las más
empleadas están - Transformada de Fourier.
- Transformada de Hadamard-Walsh.
- Transformada de Karhunen-Loève (KLT).
- Transformada discreta del coseno (DLT).
99Transformaciones Globales
- Transformada de Hough.
- Cambio entre modelos del espacio de colores.
- Y sus correspondientes transformadas inversas.
100Detección de bordes.
- Se denomina borde en una imagen a cualquier
discontinuidad que sufre alguna función de
intensidad sobre los puntos de la misma. - En la proyección bidimensional de una escena
tridimensional intervienen distintos tipos de
bordes
101Detección de Bordes
- Cambio brusco en la distancia cámara-objetos, con
normal continua (dc) o con discontinuidad en la
normal (dnc). - Cambio en la normal del objeto (n).
- Cambio en la reflectancia del objeto (r).
- Cambio en la proyección de la luz incidente (s).
102Detección de Bordes
103Detección de Bordes
Realce de Bordes Operador Sobel
Aplicación del Umbral
Imagen Original
104Detección de Bordes
- También se utilizan los gradientes.
- La detección de bordes es la primera parte para
la segmentación. Consiste en determinar los
cambios de intensidad de los pixeles, es muy
sensible al ruido. - Esta técnica nos permitirá más adelante extraer
características de las regiones de la imagen.
105Extracción de Regiones
- Una vez que se ha podido segmentar una imagen, es
posible extraer toda la información de una
imagen, la cual no es otra cosa que otra matriz. - A esa matriz se le pueden hacer comparaciones
como por ejemplo para detectar el reconocimiento
de escritura en un PDA o el reconocimiento de una
huella digital.
106Detección de Movimiento
- La detección de movimientos ocurre cuando se
realiza una comparativa entre dos imágenes muy
similares. - Se debe realizar una segmentación de la imagen
para poder ubicar un área sobre la cual trabajar
y notar las diferencias. - Las imágenes deben tener las mismas
características.
107Detección de Movimiento
- Cualquier dispositivo de adquisición de video
debe permitir el poder almacenar y manipular
imágenes de manera individual. - Al detectar movimiento surgen algunas preguntas
de interés -
- Cómo detectar el movimiento de un ojo?
- Cómo detectar el movimiento de una persona?
108Detección de Movimiento
- Qué ocurre cuando una imagen es totalmente
diferente a otra? - Para auxiliarse en la detección de movimiento se
suele utilizar puntos clave que ayuden a detectar
los movimientos. En un cuerpo humano esos puntos
clave son generalmente las extremidades codos,
rodillas, tobillo, dedos, etc. y depende de lo
que se va a tratar de detectar.
109Detección de objetos 3D
- Para poder detectar figuras en 3D se ocupan tener
conocimiento de cómo está formado la imagen. - En imágenes bidimensionales se tienen que
detectar bordes que puedan definirnos el volumen
de un objeto. - Tambien se pueden utilizar imágenes del mismo
objeto desde diferentes puntos de vista.
110Detección de objetos 3D
- En algunos casos se analizan las imágenes desde
diferentes ángulos y se trata de reconstruir las
imágenes en 3D. - Por ejemplo se trata de aplicar las tomografías
desde diferentes cortes para poder definir un
modelo en 3D del cerebro.
111Transformaciones Lógicas
- Dentro de las operaciones básicas se encuentra la
binarización de una imagen, donde la imagen de
salida sólo posee 2 niveles de gris, 0 y 255. - Si se considera los números anteriores como el 0
lógico y el 1 lógico se obtiene una imagen
binaria lógica.
112Transformaciones Lógicas
- Con una imagen de estas características es
posible realizar operaciones lógicas, entre ellas
negación, and, or, xor. - También, dadas 2 imágenes, es posible realizar
sobre ellas otro tipo de operaciones
relacionales, tales como lt, gt, lt, gt, por
ejemplo, dadas las imágenes A y B, una nueva
imagen C (AltB), se obtiene realizando la
comparación dada pixel a pixel y obteniendo el
valor de 1 para C en aquellos pixeles donde se
cumple la relación y 0 donde no se cumple.
113Transformadas Geométricas
- El objetivo fundamental de una operación
geométrica es la transformación de los valores de
una imagen tal y como podría observarse desde
otro punto de vista. - Las operaciones de ampliar o reducir una imagen,
no es sino aproximar o alejar el punto de vista,
rotarla equivale a girar el punto de observación,
trasladarla es hacer lo propio con dicho punto.
114Transformaciones Geométricas
- En una imagen original, los pixeles se encuentran
dentro de una estructura matricial (retícula) es
decir, una rejilla. - Al transformar esta rejilla según un
desplazamiento, un giro o un acercamiento, los
nuevos pixeles ya no tienen por qué quedar
situados sobre tales intersecciones y caerán, por
lo general, sobre puntos intermedios de ellos.
115Transformaciones Geométricas
116Transformaciones Geométricas
- Para encontrar los nuevos puntos se requiere
interpolar. - La interpolación puede considerarse como el
cálculo del valor de intensidad de un pixel, en
una posición cualquiera, como una función de los
pixeles que le rodean. - Una forma de hacerlo es suponer que el pixel toma
el mismo valor que el mas cercano de entre los
cuatro que le rodean.
117Transformaciones Geométricas
- Para decidir cual es el mas cercano se puede
utilizar la distancia Euclídea. - Una forma de interpolar con mejores resultados
pero con mayor costo computacional es la
interpolación bilineal, la cual asigna al pixel
en cuestión un valor medio ponderado de las
intensidades de los 4 pixeles que le rodean. - Los factores de ponderación vienen dados por la
distancia entre el pixel y los del entorno.
118Transformaciones Geométricas
119Referencias
- Súcar, E, Gómez, G, Procesamiento de Imágenes y
Visión Computacional, Departamento de
Computación, Tecnológico de Monterrey Campus
Cuernavaca. - http//isa.umh.es/titere/tutorial/vision/
- Ferreira, R. (2009), Procesamiento Digital de
Imágenes con Java, Flisol, Morelia.
120Referencias
- González, R., et al., (2007) Digital Image
Processing, Addisson-Wesley, Estados Unidos.
121(No Transcript)