Proyecto Final
Descripción del proyecto
Módulos mas relevantes
La forma en la que opera lógicamente hablando es la siguiente:
1.- Se captura una imagen a través de una cámara web
2.- Se pasa por una serie de "filtros" hechos por nosotros mismos, los cuales contienen restricciones de colores, convertirla en binaria, aplicarle umbral, entre otros.
3.- Se generan puntos externos de la imagen, los cuales por red compleja se saca el punto medio de la imagen.
3.- Se obtienen las coordenadas de los puntos. Y todo esto se realiza una y otra vez, es decir, cambia la imagen, se aplica filtro, puntos, centro, coordenadas, ...
4.- Estas coordenadas son aplicadas en el movimiento de cualquier juego, por ejemplo, el movimiento de la barra de este juego
Código relevante:
while 1: #Repeticion constante para recivir imagenes de la camara una y otra vez _,f = c.read() #Captura de la imagen . . . . . gray = cv2.cvtColor(f,cv2.COLOR_BGR2GRAY)#Filtros ret,thresh = cv2.threshold(gray,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)#Filtros fg = cv2.erode(thresh,None,iterations = 2)#Filtros bgt = cv2.dilate(thresh,None,iterations = 3)#Filtros ret,bg = cv2.threshold(bgt,1,128,1)#Filtros marker = cv2.add(fg,bgt)#Filtros . . . . . cv2.imshow('final',marker)#Imprecion de la imagen filtrada cv2.imshow('Original',f) #Imagen original . . . . . M = cv2.moments(marker) #Localizacion de puntos . . . . . x = int(M['m10']/M['m00']) y = int(M['m01']/M['m00']) print "Cordenada x: ",x #imprecion de coordenada x print "Cordenada y: ",y #imprecion de coordenada y
Herramietas pricipales:
Webcam: Dispositivo de entrada del juego que sirve para
lanzar las coordenadas hacia el juego, haciendo que este tome el patrón de la mano para guiarse.
Python: Plataforma usada para diseñar el sistema, tanto en juego como en la aplicación de la web cam.
OpenCV: Es la librería principal del programa ya que se utiliza para reconocer objetos, dependiendo del patrón que esté buscando.
NumPy & ScyPy: Son librerías "complemento" si se les puede llamar así, de OPENCV las cuales ayudan al reconocimiento mas sencillo y especifico de patrones.
PyGame: Es una librería de python, como su nombre lo dice, está orientada al desarrollo de juegos y forma un papel de vital importancia en el proyecto.
No hay comentarios:
Publicar un comentario