clc; clear all; close all; max_frames=1; red=1;green=2;blue=3; mov_frente=aviread('manos.avi',[1:max_frames]); mov_fondo=aviread('fondo2.avi',[1:max_frames]); mov_salida=avifile('salida.avi','FPS',25,'COMPRESSION','None','QUALITY',100,'KEYFRAME',2); s1=size(mov_frente(1).cdata); filas=s1(1); columnas=s1(2); fpb=[1 1 1 1 1;1 1 1 1 1;1 1 3 1 1;1 1 1 1 1; 1 1 1 1 1].*(1/27); for i=1:max_frames %recorre por frames tic mov_binario=zeros(filas,columnas); ImagenFondo=imresize(mov_fondo(i).cdata ,[s1(1) s1(2)], 'bilinear'); for j=1:filas %filas for k=1:columnas % columnas if ((0<=mov_frente(i).cdata(j,k,red) & mov_frente(i).cdata(j,k,red)<=92) & (35<=mov_frente(i).cdata(j,k,green) & mov_frente(i).cdata(j,k,green)<=160) & (70<=mov_frente(i).cdata(j,k,blue) & mov_frente(i).cdata(j,k,blue)<=255)) mov_frente(i).cdata(j,k,:)=ImagenFondo(j,k,:); mov_binario(j,k)=1; end end end for j=3:filas-2 %filas for k=3:columnas-2 % columnas if (sum(sum(mov_binario(j-2:j+2,k-2:k+2)))~=0 & (sum(sum(mov_binario(j-2:j+2,k-2:k+2))))~=25) %la ventana de 3*3 tiene pixeles blancos y negros mov_frente(i).cdata(j,k,red)=sum(sum(fpb.*double(mov_frente(i).cdata(j-2:j+2,k-2:k+2,red)))); mov_frente(i).cdata(j,k,green)=sum(sum(fpb.*double(mov_frente(i).cdata(j-2:j+2,k-2:k+2,green)))); mov_frente(i).cdata(j,k,blue)=sum(sum(fpb.*double(mov_frente(i).cdata(j-2:j+2,k-2:k+2,blue)))); end end end mov_salida=addframe(mov_salida,mov_frente(i).cdata); tiempos(i)=toc; beep end mov_salida=close(mov_salida); plot(tiempos); %figure; beep beep tiempos