Академический Документы
Профессиональный Документы
Культура Документы
Abstract Se realizo la convolucin de algunas seales con el fin de observar esta operacin en el simulador, de igual forma se procesaron imgenes y sonidos para ver el efecto que tiene sobre estas la operacin. Otro de los procesos hechos en el laboratorio fueron observar las herramientas del imagen y crear funciones que hicieran lo mismo en Matlab. Palabras clave Convolucion, Matlab, Seal, ImageJ, Formato de Imagen.
I. INTRODUCCION Matlab tiene implementado el soporte para la convolucin de tiempodiscreto usando la funcin conv. Realmente la funcin conv puede ser usada para otras cosas adems de la convolucin en tiempo-discreto. El propsito de este laboratorio es el de introducir a las herramientas bsicas de procesamiento de seales, voz e imgenes usando el Matlab, Simulink y el software ImageJ para el procesamiento de imgenes.
2.2 Convolucion de un impulso y una onda cuadrada: d = [0 1 0 0 0 0]; xs = [1 1 1 1 1 1]; y = conv(d,xs); t = 0:length(y)-1; stem(t,y) La grafica obtenida es :
II. OBJETIVOS A. Objetivo general Mediante el uso del Matlab observar la aplicaciones sobre imgenes comparando con los procesos en ImageJ.
III. OBJETIVOS ESPECIFICOS Realizar la convolucin a cierto tipo de seales o funciones Procesar seales de voz mediante filtros. Procesar seales visuales o imgenes y compararlas con el proceso en ImageJ
IV. PROCEDIMIENTO 2. Convolucion: 2.1 Convolucion de dos funciones impulso: x1 = [1 0 0]; x2 = [0 1 0]; y = conv(x1,x2); t = 0:length(y)-1; stem(t,y) Al realizar estos comandos se genera la siguiente seal: Si corro el impulso de la siguiente forma obtenemos esto: d = [0 0 1 0 0 0]; xs = [1 1 1 1 1 1]; y = conv(d,xs); t = 0:length(y)-1; stem(t,y)
2
for n=min(t):max(t),%ciclo de incremento de la n para evaluar pause(3); ht = fliplr(h);% reflexin de h if n<0, ht = [ht(-n+1:length(h)) zeros(1,-n)];% desplazamiento a la izquierda else ht = [zeros(1,n) ht(1:length(h)-n)];% desplazamiento a la derecha end y(yc) = sum(x.*ht);%sumatoria del producto de vectores yc = yc + 1;%incremento posicion contador subplot(2,1,1);%2 graficas en 1 ventana stem(t,x);%grafico hold on;%retiene la grafica stem(t,ht,'filled','r');%grafica de los vectores hold off;%sigue la grafica xlabel('t');%leyenda de grafica legend('x[n]','h[n-k]',0);%leyenda de las graficas title(['n= ' num2str(n)]);% titulo subplot(2,1,2);%segunda grafica stem(t,y);%grafica y xlabel('t'); ylabel('y[n]');%leyendas end
2.3 Convolucion animada en tiempo discreto: clear all; close all; t = [-4 -3 -2 -1 0 1 2 3 4]; x = [ 0 0 0 0 1 2 3 0 0]; h = [ 0 0 0 0 2 1 0 0 0]; y = [ 0 0 0 0 0 0 0 0 0];%declaracion de vectores yc = 1;%contador
3.
Procesamiento de seales
4
Dandole valores de amplitud a cada onda seno tenemos:
Y en el Scope 2:
Y ahora a -1:
Y en el Scope 2:
3. Procesamiento de Voz
5
plot(nspeech (1:50)) La primera imagen es la original, luego tenemos el original en blanco y negro, despus se invierten los colores, y luego solo se enfoca la cara. Usando la funcin imhist, primero tomamos la imagen y la pasamos a escala de grises, para luego usar el imhist: y=imread('len_full.jpg'); I = rgb2gray(y) imhist(I); imagen en escala de grises
Smoothing Filtramos la seal: FilterSpeech sound(speech) Y miramos el espectro: Imagen Original set(figure(3), 'pos', [800 10 400 250]) plot(frequency, speechspec) Ingresando el siguiente script, nos da las siguientes graficas: kernal1 = [0.06 0.13 0.06 0.13 0.25 0.13 0.06 0.13 0.06] FilterImg('teton_clouds.pgm',kernal1);
6. Comenzando con el Matlab en el procesamiento de imgenes Ingresando los cdigos dados, observamos los siguientes cambios en la imagen:
Imagen Filtrada
Creando la imagen de los 4 cubos, 2 negros y 2 blancos, y aplicando los filtros tenemos: Se nota en la calidad de la imagen que la filtrada tiene rasgos ms suaves. Figura Original
Cambiando los valores de kernal1 de la siguiente forma nos muestra como resultado: kernal1 = [-0.11 -0.11 -0.11 -0.11 1.89 -0.11 -0.11 -0.11 -0.11] FilterImg('teton_clouds.pgm',kernal1);
Deteccin de bordes Variando el script de nuevo logramos los bordes de una imagen kernal1 = 10*[-0.11 -0.11 -0.11 -0.11 0.89 -0.11 -0.11 -0.11 -0.11] FilterImg('edge_in.tif',kernal1); Imagen Original
Y el ultimo kernel:
Imagen Filtrada
V. CONCLUSIONES Con MATLAB, se puede hacer la convolucion de varios tipos de seales, como funcin impulso, funciones continuas, etc. Se les pueden aplicar filtros a seales de audio e imagen, para mejorar la calidad de sonido en cuando al audio o la calidad de la imagen. La funcin imhist de MATLAB solo sirve para imgenes en blanco y negro.