Python - Crear interfaz de usuario a partir de codigo python

 
Vista:
sin imagen de perfil

Crear interfaz de usuario a partir de codigo python

Publicado por Felipe (3 intervenciones) el 04/12/2017 15:12:57
Buenos dias,
Tengo un codigo python realizado en opencv, al cual ahora debo realizar una interfaz de usuario.
El programa consiste en lo siguiente:
Toma datos de distancia entre dos puntos y luego los envia hacia un archivo txt que luego se sube a la nube
La idea es que la interfaz tenga una especie de logueo, donde la persona coloque nombre y apellido (No es necesario contraseña), para que esta vaya al archivo txt junto con los datos de distancia.
Una vez que se logue en el programa, que aparezca otra ventanda donde aparazca texto e imagenes de las instrucciones de como se debe hacer el ejercicio.
Ejemplo, esta imagen y que al lado pueda colocar un texto diciendo como debe hacer un ejercicio
EJERCICIO
Ya en esta ventana, que aparezca un boton que de inicio al programa en si.
El codigo es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import cv2
import numpy as np
 
#Captura de video a traves de la webcam
cap=cv2.VideoCapture(1)
 
D = []
max_samples = 10000
 
outfile = open('new.txt', 'w')
 
while(1):
        d=0.1
        centers=[]
        _, img = cap.read()
 
        hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV) #Se obtiene un histograma basada en las saturaciones de colores.
 
        blue_lower=np.array([95,150,100],np.uint8)
        blue_upper=np.array([150,255,255],np.uint8)
 
        blue=cv2.inRange(hsv,blue_lower,blue_upper) #Se crea una mascara utilizando intervalos de color azul.
 
        kernel = np.ones((5 ,5), "uint8") #Crea una matriz de 5x5 la cual recorrera el video,
        blue = cv2.morphologyEx(blue,cv2.MORPH_OPEN,kernel)
        blue = cv2.morphologyEx(blue,cv2.MORPH_CLOSE,kernel)
 
        blue=cv2.erode(blue,kernel, iterations=1) #Se erosiona utilizando el kernel sobre la mascara.
        res1=cv2.bitwise_and(img, img, mask = blue) #La nueva imagen reemplazara a blue.
 
 
        (_,contours,hierarchy)=cv2.findContours(blue,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) #Encuentra los contornos de los objetos que se ven en el filtro
 
        for pic, contour in enumerate(contours):
            area = cv2.contourArea(contour) #funcion de opencv que obtiene los contornos
            mayor_contorno = max(contours, key = cv2.contourArea)
 
            if(area>2000):
                x,y,w,h = cv2.boundingRect(contour) #Encuentra coordenadas de los contornos.
                img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
                cv2.putText(img,"Marcador",(x,y),cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255,0,0))
                M = cv2.moments(contour) #Se obtiene el centro de masa de los marcadores enconrados.
                cx = int(M['m10'] /M['m00'])
                cy = int(M['m01'] /M['m00'])
                centers.append([cx,cy])
                cv2.circle(img, (cx, cy), 7, (255, 255, 255), -1)
 
            if len(centers)==2:
                D = (np.linalg.norm(cx-cy))/10 #Se aplica distancia euclidiana para encontrar la distancia entre los centros de masa.
                print(D)
                outfile.write("{0} \n".format(D))
 
 
        cv2.imshow("Color Tracking",img)
        if cv2.waitKey(10) & 0xFF == ord('q'):
            outfile.close()
            print('Los datos han sido enviados al doctor')
            cap.release()
            cv2.destroyAllWindows()
            break
El programa ejecutado es asi, con las distancias a un costado.
MARCADORES
Ojala me puedan ayudar
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder