Procesamiento de Señales

Embed Size (px)

DESCRIPTION

Manual de practicas enfocado al procesamiento de señales, utilizando el Software Matlab

Citation preview

  • Procesamiento de sealesUNIVERSIDAD POLITCNICA DE DURANGO

  • Procesamiento digital de imgenesIntroduccinConceptos bsicos de las imgenes.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)

    MuestreoCuantificacinCodificacin

    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 con0 < I(x,y)<

    Es comn referirse a la imagen slo en funcin de su intensidad, pero su denotacin completa esI(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 imgenesVentana 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 cuantificacinEn 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 , 5122. Tonos de gris 4 8 16

  • Ejemplos:

  • Adquisicin de ImagenDispositivo fotosensor CCD (Charge Coupled Device)Tarjerta digitalizadora

    Cmaras

  • ResolucinUna 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 imagenSe 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 grisEn 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-255Margen de ruidoBinarizada (blanco y negro)12 o 16 bits por pixel

    Corte en 50 ciclos por grado

  • SVH (Sistema Visual Humano)Corte 50 ciclos por gradoRespuesta Mxima 4 ciclos /grado

  • SVHResolucin 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 movimientoRetencinCambio de colorIgualacin de banda

  • Relaciones entre pixelesImagen 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 PIXELRelaciones entre pixeles, concepto bsico para el procesamiento de imgenes

  • Vecinos de un Pixel

  • ConectividadDefinir 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. IntroduccinLa 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 imgenesSe 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 MATLABObtencin de informacin del dispositivo de capturaimaqhwinfo. 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.SupportedFormatsEjecutar 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 captura y mostrar una IMAGENEjecutar el comando:preview(video)Para capturar VIDEOEjecutar 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 archivoPara 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 posibleutilizar 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 imgenesEl 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 decirasignarle 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 lafuncin 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 seleccionadovalue =

    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> >improfilecomo 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 FramesObjetivo:

    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 pixelObjetivo: 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 binariasObjetivo 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 ImerodeHelp Imdilate

  • Microcontrolador PIC16F877Universidad Politcnica de Durango*