Você está na página 1de 54

UNIVERSIDAD POLITCNICA DE DURANGO

Procesamiento de
seales

Procesamiento digital de imgenes


1. Introduccin
2. Conceptos bsicos de las imgenes.
3. Procesamiento de imgenes en Matlab.

Para poder realizar el procesamiento digital de imgenes se


requiere de la captura de las imgenes digitales lo cual se hace
mediante un digitalizador (conversin A-D)

Muestreo
Cuantificacin
Codificacin

Pixel. Elemento bsico que compone una imagen digital y


corresponde a una de las muestras del proceso de digitalizacin

Definicin de imagen digital

La luz es un tipo de energa por lo que I(x,y) debe cumplir con


0 < I(x,y)<

Es comn referirse a la imagen slo en funcin de su intensidad,


pero su denotacin completa es
I(x,y) = i(x,y)r(x,y)

i(x,y) cantidad de luz incidente (iluminacin)


r(x,y) cantidad de luz reflejada (reflectancia)
0 < i(x,y)<
0 < r(x,y)< 1

Elementos de un digitalizador
de imgenes

Ventana de muestreo: permite el acceso a elementos de la imagen en


forma individual

Barrido de la imagen: mover la abertura de muestreo sobre la imagen en un


patrn determinado

Fotosensor: Mide el brillo de la imagen en cada pixel a travs de la abertura


de muestreo

Cuantizador o cuantificador: Convierte la salida continua del sensor a un


valor entero.

Fuente de luz: Proporciona una iluminacin adecuada al objeto que se


quiere digitalizar.

Muestreo y cuantificacin

En una imagen el valor de la funcin I(x,y) varia con respecto a la


posicin o al espacio definido por la imagen.

1. A la digitalizacin de coordenadas espaciales (x,y) se denomina


muestreo de imagen

2. A la digitalizacin de amplitud se denomina cuantificacin de


nivel gris.

Ejemplos:
1. 64 puntos por pulgada, 128 , 512
2. Tonos de gris 4 8 16

Ejemplos:

Adquisicin de Imagen

Dispositivo fotosensor CCD (Charge Coupled Device)


Tarjerta digitalizadora
Cmaras

Resolucin

Una imagen es una funcin de las coordenadas espaciales por lo que la frecuencia
no se establece respecto al tiempo sino respecto al espacio dentro de la imagen
Se refiere a que tan rpido cambia la seal respecto al espacio.

Para poder apreciar los cambios en frecuencia y los contenidos de frecuencia es


necesaria la transformada de Fourier.

Tonos gris

En tonos de gris podemos detectar cerca de 20 cambios de brillo en


un rea pequea, para un rea grande se requieren 100 cambios
para una imagen realista.

0-255
Margen de ruido
Binarizada (blanco y negro)
12 o 16 bits por pixel

Corte en 50 ciclos por grado

SVH (Sistema Visual Humano)


Corte 50 ciclos por grado
Respuesta Mxima 4 ciclos /grado

SVH

Resolucin temporal: respuesta temporal del SVH 50 Hz por ello a


60 Hz no percibimos el barrido de la imagen

Existen otros efectos del SVH como:


Percepcin de objeto en movimiento
Retencin
Cambio de color
Igualacin de banda

Relaciones entre pixeles

Imagen digital I(x,y)

Subimagen Is(x,y) es un subconjunto de pixeles i(x,y) que


pertenecen a I(x,y)

VECINOS DE UN PIXEL
Relaciones entre pixeles, concepto bsico para el procesamiento de
imgenes

Vecinos de un Pixel

Conectividad

Definir o delimitar regiones de objetos contenidos en una imagen.

Los bordes de un objeto se pueden definir mediante el


encadenamiento de pixeles vecinos que cumplen con un criterio
especfico.

Usando slo los tonos de gris y considerando V como el conjunto


de valores de tonos de gris usados para definir conectividad
algunas posibilidades son:

Imagen binaria V={1}


Niveles de gris V={32,33,63,64}

Tipos de conectividad

Conectividad

1. Introduccin
La implementacin de algoritmos en visin por computador resulta muy
costoso en tiempo ya que se requiere de la manipulacin de punteros,
gestin de memoria, etc. Hacerlo en lenguaje C++ (que por sus
caractersticas compartidas de alto y bajo nivel lo hacen el mas
apropiado para la implementacin de algoritmos de visin
computacional) supondra la inversin de tiempo y sin la seguridad de
que lo queremos implementar funcionar. Adems utilizar C++ para el
periodo de prueba exige un tiempo normal de correccin de errores
debidos al proceso de implementacin del algoritmo, es decir errores
programticos efectuados por ejemplo al momento de multiplicar dos
matrices, etc.

Todos estos problemas pueden ser resueltos si la implementacin de


prueba es realizada en Matlab o Labview utilizando su toolbox de
procesamiento de imgenes con ello el tiempo de implementacin se
convierte en el mnimo con la confianza de utilizar algoritmos
cientficamente probados y robustos.
El toolbox de procesamiento de imgenes de Matlab contiene un
conjunto de funciones de los algoritmos mas conocidos para trabajar
con imgenes binarias, trasformaciones geomtricas, morfologa y
manipulacin de color que junto con las funciones ya integradas en
Matlab permite realizar anlisis y trasformaciones de imgenes en el
dominio de la frecuencia (Trasformada de Fourier y Wavelets).

2. Conceptos bsicos de las imgenes


Se trataran los conceptos bsicos de las imgenes y como son
representadas en Matlab as como una introduccin a las
operaciones bsicas de manejo de archivos.
En Matlab una imagen a escala de grises es representada por
medio de una matriz bidimensional de m x n elementos en donde n
representa el numero de pxeles de ancho y m el numero de pxeles
de largo. El elemento v11 corresponde al elemento de la esquina
superior izquierda (ver figura 1), donde cada elemento de la matriz
de la imagen tiene un valor de 0 (negro) a 255 (blanco).

Por otro lado una imagen de color RGB (la mas usada para la visin
computacional, adems de ser para Matlab la opcin default) es
representada por una matriz tridimensional m x n x p, donde m y n
tienen la misma significacin que para el caso de las imgenes de
escala de grises mientras p representa el plano, que para RGB que
puede ser 1 para el rojo, 2 para el verde y 3 para el azul. La figura 2
muestra detalles de estos conceptos.

Adquisicin de imgenes en MATLAB


Obtencin de informacin del dispositivo de captura
imaqhwinfo. Devuelve informacin del hardware y software
disponibles, tales como: adaptador de video instalado,
versin del Matlab, versin del Toolbox.
imaqhwinfo(adaptor).Donde adaptor es el nombre del
adaptador instalado, por lo general se llama winvideo. Este
comando devuelve informacin relacionada al adaptador.
imaqhwinfo(adaptor,DeviceID). Donde DeviceID es el ID
del dispositivo a utilizar obtenido con el comando anterior. Si
solo se cuenta con un dispositivo conectado el DeviceID ser
1. Este comando muestra informacin de la cmara
conectada.

Preparacin del dispositivo de captura

Crear la estrucura:
cam=imaqhwinfo(winvideo,1,)
Para poder obtener las caractersticas del dispositivo con
facilidad. Por ejemplo para obtener los formatos soportados.
cam.SupportedFormats
Ejecutar el comando:
video=videoinput(winvideo,1,format)
Construye un objeto de video de entrada. Si no se especifica
format se asume el formato por defecto.

Para capturar VIDEO


Ejecutar el comando:
preview(video)
Para captura y mostrar una IMAGEN
Ejecutar los comandos:
imagen1=getsnapshot(video)
imshow(imagen1)
Nota: Para especificar el tipo de imagen retornada por snapshot se
tiene que definir a travs del siguiente comando:
set(video,ReturnedColorSpace,rgb)
Se puede retornar la imagen en grayscale,rgb,YCbCr,bayer

Prctica 1. Captura de video e imgenes en Matlab

2.1 Lectura y escritura de imgenes a travs de


archivo
Para leer imgenes contenidas en un archivo al ambiente de Matlab se
utiliza la funcin imread, cuya sintaxis es:
imread(nombre del archivo)
Donde nombre del archivo es una cadena de caracteres conteniendo el
nombre completo de la imagen con su respectiva extensin, los
formatos de imgenes que soporta Matlab son los mostrados en la
tabla 1.

Una vez que la imagen esta contenida en una variable de matlab es


posible
utilizar las funciones para procesar la imagen.
>image=imread(data.jpg);
Por ejemplo, una funcin que permite encontrar el tamao de la imagen es
size(variable)
> >[m, n]=size(image);
en donde m y n contendrn los valores de las dimensiones de la imagen.

Para grabar el contenido de una imagen en un archivo se utiliza la


funcin imwrite(variable,nombre del archivo), en donde variable
representa la variable que contiene a la imagen y nombre del archivo
el nombre del archivo con su respectiva extensin de acuerdo a la
tabla .
> >imwrite(variable, nombre del archivo.jpg) ;

La funcin imshow(variable) permite desplegar la imagen en una


ventana en el ambiente de trabajo de matlab.
> >imshow(variable);

2.2. Acceso a pxel y planos en las imgenes


El acceso a pxel de una imagen es una de las operaciones mas comunes
en visin computacional y en matlab esta sumamente simplificado; solo
bastar con indexar el pxel de inters en la estructura de la imagen.
Consideremos que tenemos una imagen de color RGB con el nombre
image1 y deseamos obtener su valor de intensidad en el pxel especificado
por m=100 y n=100 y en el plano 3 ; solo tendramos que escribir
>image1(100,100,3)
ans =
11

De igual forma si se desea cambiar el valor de este pxel a negro, es


decir
asignarle el valor de 0 lo que tendra que escribirse en lnea de comandos
es:
> >image1(100,100,3)=0 ;
De igual forma si se desea cambiar el valor de este pxel a blanco, es
decir asignarle el valor de 255 lo que tendra que escribirse en lnea de
comandos es:
> >image1(100,100,3)=255 ;

En el caso de imgenes a escala de grises estas solo tienen un plano,


constituido por la matriz m x n que contiene los valores de intensidad para
cada ndice.
Sin embargo las imgenes de color cuentan con mas de un plano. En el
caso de imgenes RGB (tal como se explico arriba) estas cuentan con 3
planos uno para cada color que representa. Consideremos ahora que la
imagen RGB contenida en la variable image2 es la mostrada en la figura
2.3, y deseamos obtener cada uno de los planos que la componen.
Entonces escribiramos:
> >planeR=image2( :, :,1) ;
> >planeG=image2( :, :,2) ;
> >planeB=image2( :, :,3) ;
Los planos resultantes por los anteriores comandos son mostrados en la
siguiente figura.

En ocasiones resulta preferible saber el color o la intensidad de gris (el


valor del pxel) de forma iteractiva, es decir tener la posibilidad de
seleccionar un pxel en una regin y obtener el valor de este. Esta
posibilidad es ofrecida por la funcin impixel, la cual iterativamente
entrega el valor (uno o tres) del pxel seleccionado que aparezca en la
ventana desplegada por la funcin imshow. El formato de esta funcin es:
value=impixel;
Donde value representa un escalar, en el caso de que la imagen sea a
escala de grises o bien un vector de 1 x 3 con los valores correspondientes
a cada uno de los planos RGB.
Para utilizar esta funcin es necesario antes, desplegar la imagen con la
funcin imshow.

Una vez desplegada se llama a la funcin y cuando el cursor del ratn


este sobre la superficie de la imagen cambiara a una +. Cuando se
presione el botn izquierdo del ratn se seleccionara el pxel, el cual
podemos seleccionar otra vez en caso de que se all cometido un error a
la hora de posicionar el ratn, ya que la funcin seguir activada hasta
que se presione la tecla de enter.
La figura muestra una imagen de la operacin aqu descrita.

Pixel
seleccionado
value =
216 117 199

Una operacin importante en visin computacional es el determinar un


perfil de la imagen; es decir convertir un segmento de la imagen a una
seal unidimensional para analizar sus cambios. Esto es de especial
significado en la visin estereo en donde se analizan para los algoritmos
segmentos epipolares de cada camara. Matlab dispone de la funcin
improfile que permite trazar el segmento interactivamente con el ratn,
desplegando despus el perfil de la imagen en una grafica diferente. Esta
funcin necesita que la imagen original sea previamente desplegada
mediante la funcin imshow. Debe de considerarse que si la imagen es a
escala de grises, el perfil mostrara solo una seal correspondiente a las
fluctuaciones de las intensidades de la imagen, sin embargo si la seal es
de color RGB esta mostrara un segmento de seal para cada plano. Para la
utilizacin de esta funcin solo es necesario escribir en lnea de comandos
> >improfile
como es una funcin iteractiva en cuanto el ratn se encuentra en la
superficie de la imagen el puntero cambiara de smbolo a una +, de esta
manera podemos mediante el establecimiento de una lnea en la imagen
configurar el perfil deseado. La figura muestra una imagen de la
operacin descrita.

Perfil
seleccionado

Prctica 2 Frames

Objetivo:

Obtener los frames de video dependiendo de los que soporta la


cmara, y as mostrar la informacin de los frames mostrada en el
formulario.

Desarrollo:

1. El alumno investigar y discutir que son los Frames y qu es el


Trigger

2. Buscar en Help de Matlap cmo usar y para que sirve la funcin


Triggerconfig

La funcin de pelcula se reproduce la pelcula definida por una


matriz cuyas columnas son fotogramas de la pelcula (por lo general
producido por GetFrame).

La funcin de movie reproduce la pelcula en la matriz M una vez,


utilizando los ejes actuales como el destino predeterminado.

Si desea reproducir la pelcula en la figura en lugar de los ejes,


especifique figura (o GCF) como primer argumento el video
(figure_handle,...). M debe ser una matriz de cuadros de pelcula.

Investigar Help getframe

Agregar una text box para que muestre los


datos de la cmara

Prctica 3: Manipulacin y
anlisis a nivel pixel

Objetivo: Manipular una imagen desde una interfaz de MATLAB,


cambindola a grises, seccionando la imagen en RGB (Red, Green,
Blue), y analizar imagen pixel por pixel.

Desarrollo:
Se crear una interfaz (GUI) en MATLAB, en la cual debern existir
botones para abrir una imagen, cambiarla a escala de grises,
seccionarla en RGB, y analizarla pixel por pixel.

Usar Help impixelregion para el anlisis de pixel a pixel

Prctica 4: Imgenes binarias

Objetivo
Manipular una imagen desde una interfaz de MATLAB, cambindola
primero a escala de grises y despus sacndole el umbral, que se
trata de binarizar la imagen para nicamente trabajar en dos
colores, negro y blanco.

Desarrollo:

Consultar en Matlab help im2bw para realizar la binarizacin de la


imagen

Prctica 5: Operaciones
morfolgicas: erosin y dilatacin

Objetivo
Manipular una imagen mediante las operaciones morfolgicas
(erosin y dilatacin), para procesar el contenido de una imagen de
una manera ms exacta, erosionando o dilatando valores binarios
de la imagen.

Desarrollo:
Help Imerode
Help Imdilate

Você também pode gostar