Escolar Documentos
Profissional Documentos
Cultura Documentos
Introducción Primero se debe comprender que un video es una sucesión de imágenes continua
durante un periodo de tiempo, lo cual hace posible aplicar las mismas técnicas de
procesamiento de imágenes que en las mismas imágenes estáticas. Las limitaciones
serian que se tiene un tiempo limitado para procesar las imágenes de los fotogramas,
precisamente procesar una imagen antes de que se adquiera la siguiente. Además
de que se requieren computadores de una mayor capacidad y velocidad.
Materiales y Equipo
1. Bases de datos UACJ
2. IEEE
3. Overleaf
4. Internet
Esquema
1 of 7
Procedimiento
1. Abrir Matlab
2. Abrir guide en Command Window
s e t ( h a n d l e s . pushbutton1 , ’ Enable ’ , ’ o f f ’ ) ;
s e t ( h a n d l e s . pushbutton2 , ’ UserData ’ , 0 ) ;
v i d = v i d e o i n p u t ( ’ w i n v i d e o ’ , 1 , ’ YUY2 320x240 ’ ) ;
v i d . R e t u r n e d C o l o r s p a c e= ’ rgb ’ ;
src = g e t s e l e c t e d s o u r c e ( vid ) ;
v i d . FramesPerTrigger =1;
v i d . FrameGrabInterval =3;
v i d . T r i g g e r R e p e a t=I n f ;
s t a r t ( vid ) ;
c o n t e r =0;
2 of 7
Se utilizan dos handles uno para cada pushbutton, para permitir que inicie el video,
posteriormente utilizaremos un while para que el programa capture los frames del
video que estará ejecutándose cuando mientras la señal que obtendremos del push-
button2 sea ”true” o verdadera, por lo que se agregó la segunda lı́nea de han-
dles.pushbutton2, ’UserData’, 0. El caso opuesto se da en la función del pushbutton
2.
s e t ( h a n d l e s . pushbutton1 , ’ Enable ’ , ’ on ’ ) ;
s e t ( h a n d l e s . pushbutton2 , ’ UserData ’ , 1 ) ;
Las siguientes lı́neas en la función de pushbutton1 son para configurar los colores,
los frames y el comienzo del video, la variable ”conter” que es un contador que se
utilizara para arrojar la información de cuantos vehı́culos aparecerán en el video.
imagen=g e t d a t a ( vid , 1 , ’ u i n t 8 ’ ) ;
g r i s=r g b 2 g r a y ( imagen ) ;
b i n=im2bw ( g r i s , 0 . 3 ) ;
n e g b i n=not ( b i n ) ;
Se dilataron y erosionaron los frames del video para obtener una mejor definición
de las figuras que aparecerı́an en las imágenes. Posteriormente utilizamos un han-
dles para ”axes” que es el elemento que contendrá esta sucesión de imágenes y
seleccionamos la imagen que se desea mostrar precisamente en el cuadro del axes
con un imshow.
forma=s t r e l ( ’ d i s k ’ , 5 ) ;
i m g d i l=i m d i l a t e ( negbin , forma ) ;
imgero=imerode ( i m g d i l , forma ) ;
i m g d i l 2=i m d i l a t e ( imgero , forma ) ;
[ e t i q , num]= b w l a b e l ( i m g d i l 2 ) ;
d e s c r i p t=r e g i o n p r o p s ( i m g d i l 2 , ’ a l l ’ ) ;
tam=l e n g t h ( d e s c r i p t ) ;
3 of 7
Se creó un ciclo ”for” que se ejecutara según el tamaño de la variable ”tam”. Den-
tro del ciclo for obtenemos el MajorAxisLength y el MinorAxisLenght de todas las
formas que aparecerán en el video. El MajorAxisLength arroja la medición del eje
mayor suponiendo que la figura es una elipse ósea el radio ”a” y MajorAxisLength
el eje menor o radio menor llamado ”b”. Obteniendo estas dos mediciones podemos
calcular el área de la ”elipse”. El área calculada con los ejes es comparada con el
área que regionprops calcula, la razón que existe entre estas dos áreas se utilizara
para parametrizar las figuras.
a e l p = d e s c r i p t ( i ) . MajorAxisLength / 2 ;
b e l p = d e s c r i p t ( i ) . MinorAxisLength / 2 ;
a1 ( i , 1 ) = ( p i ∗ a e l p ∗ b e l p ) ;
a2 ( i ,1)= d e s c r i p t ( i ) . Area ;
r e s ( i ,1)= a2 ( i , 1 ) / a1 ( i , 1 ) ;
kelp = res ( i , 1 ) ;
e l p=1−k e l p ;
elpmat ( i ,1)= e l p ;
Se obtuvo el Bounding Box de cada una de las figuras que aparecerán en el video
y el número de figura que es posteriormente se grafica en el imshow.
thisBB = d e s c r i p t ( i ) . BoundingBox ;
r e c t a n g l e ( ’ P o s i t i o n ’ , [ thisBB ( 1 ) , thisBB ( 2 ) , thisBB ( 3 ) , thisBB ( 4 ) ]
, ’ EdgeColor ’ , ’ r ’ , ’ LineWidth ’ , 2 )
c e n t r o=d e s c r i p t ( i ) . C e n t r o i d ;
t x t 1=num2str ( i ) ;
t e x t ( c e n t r o ( 1 ) , c e n t r o ( 2 ) , txt1 , ’ V e r t i c a l A l i g n m e n t ’ , ’ top ’ , . . .
’ H o r i z o n t a l A l i g n m e n t ’ , ’ l e f t ’ , ’ C o l o r ’ , ’m’ , ’ FontWeight ’ , ’ Bold ’ )
Al momento de analizar los datos obtenidos por ”elp”, que es la razón entre las
áreas menos 1, se observó que los autos tenı́an un valor siempre menor a 0.03 y
4 of 7
cualquier otra figura un valor mayor a 0.1 y se parametrizaron estos lı́mites dentro
de un if. Dentro de estos ciclos se utilizó un contador que mostrar el número de
figuras que representan a los autos y que mostrar 0 cuando hubiese ausencia de los
mismos en el video.
f o r i =1:tam
i f e l p >0.1
c o n t e r =0;
end
i f e l p <0.03
c o n t e r=tam−1;
s e t ( h a n d l e s . e d i t 1 , ’ S t r i n g ’ , num2str ( c o n t e r ) ) ;
end
hold o f f
end
Resultados
Al momento de probar el programa primero se visualizó el video en binario para
ajustar el umbral y la luz que afectaba al video. Una vez ajustado el umbral los
resultados fueron buenos.
5 of 7
Figure 6: El sistema contando correctamente el único auto que existe en el video
Figure 8: El sistema contando correctamente los tres autos del video e ignorando
el objeto desconocido.
6 of 7
Referencias S. Somaraj and M. A. Hussain, ”A Novel Image Encryption Technique Using RGB
Bibliográficas Pixel Displacement for Color Images,” 2016 IEEE 6th International Conference on
Advanced Computing (IACC), Bhimavaram, 2016, pp. 275-279. doi: 10.1109/I-
ACC.2016.59
7 of 7