Resultado:
La calidad del video no es la mejor pero se puede observar la erosion del video de abajo con respecto al de arriba.
Codigo:
Este codigo es muy similar al de la anterior entrada. Lo que tenemos que hacer es crear dos ventanas, ademas crear la barra que nos permita desplazarnos. despues al igual que antes mostramos un video pero enla segunda ventana creamos una imagen y vamos metiendo las imagenes erosionadas en ella.
Voy a explicar las lineas de codigo nuevas
cv.NamedWindow('Imagen',cv.CV_WINDOW_AUTOSIZE)
Esta linea ya la habiamos visto antes, sirve para crear una ventana nueva, lo nuevo que tiene es el segundo argumento, cv.CV_WINDOW_AUTOSIZE, con esto le decimos que el tamaño de la ventana debe ser autoconfigurado al tamaño del video o imagen que valla a mostrar.
out=cv.CreateImage(cv.GetSize(img),cv.IPL_DEPTH_8U,3)
Esta es la nueva linea en este programa, donde creamos una nueva imagen que va a ser nuestra imagen erosionada, con la funcion cv.GetSize(img) obtenemos el tamaño de la imagen original, para que la nueva imagen tenga el mismo tamaño de la primera, los otros dos argumentos son la profundidad de la imagen y los canales en los que se componen.
cv.Erode(img,out,None,3)
Aqui aparece nuestra primera transformacion, la funcion erode, tiene como argumentos la imagen origen, la imagen destino y la veces que se quiere erosionar en este caso 3 veces
ahora que sabemos como hacer transformaciones a un video en tiempo real, podemos mirar la documentacion de OpenCV y probar muchas otras transformaciones. en el libro, hacian la transformacion smooth pero como se podia observar con la baja calidad de los videos subidos aqui, preferi hacer una erosion que es un poco mas facil de ver.
Hasta luego
No hay comentarios:
Publicar un comentario