[ Foro de Python ]

Ayuda interfaz Python

02-Mar-2022 09:07
Invitado (Kirby)
0 Respuestas

Hola una pregunta quería saber si se puede hacer que una video captura donde ya se muestran los contornos y una mascara estén juntos en una misma ventana:
mi codigo:
import numpy as np
import cv2
import tkinter

def nada(x):
   pass
cv2.namedWindow('Parametros', cv2.WINDOW_NORMAL)
cv2.resizeWindow('Parametros', 300, 300)
cv2.createTrackbar('Tonalidad Minima','Parametros',0,179,nada)
cv2.createTrackbar('Tonalidad Maxima','Parametros',0,179,nada)
cv2.createTrackbar('Pureza Minima','Parametros',0,255,nada)
cv2.createTrackbar('Pureza Maxima','Parametros',0,255,nada)
cv2.createTrackbar('Luminosidad Minima','Parametros',0,255,nada)
cv2.createTrackbar('Luminosidad Maxima','Parametros',0,255,nada)
cv2.createTrackbar('Kernel X','Parametros',0,30,nada)
cv2.createTrackbar('Kernel Y','Parametros',0,30,nada)

#Crear Video
cap= cv2.VideoCapture(0)
while(1):
   ret, frame = cap.read()
   if ret:
       hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)

       Tmin= cv2.getTrackbarPos('Tonalidad Minima','Parametros')
       Tmax= cv2.getTrackbarPos('Tonalidad Maxima','Parametros')
       Pmin= cv2.getTrackbarPos('Pureza Minima','Parametros')
       Pmax= cv2.getTrackbarPos('Pureza Maxima','Parametros')
       Lmin= cv2.getTrackbarPos('Luminosidad Minima','Parametros')
       Lmax= cv2.getTrackbarPos('Luminosidad Maxima','Parametros')

       color_obscuro = np.array([Tmin, Pmin, Lmin])
       color_brilla = np.array([Tmax, Pmax, Lmax])

       mascara= cv2.inRange(hsv, color_obscuro, color_brilla)

       kernelx = cv2.getTrackbarPos('Kernel X','Parametros')
       kernely = cv2.getTrackbarPos('Kernel Y','Parametros')

       kernel= np.ones((kernelx, kernely), np.uint8)
       mascara= cv2.morphologyEx(mascara, cv2.MORPH_CLOSE, kernel)
       mascara= cv2.morphologyEx(mascara, cv2.MORPH_OPEN, kernel)

       contornos, _  = cv2.findContours(mascara, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
       cv2.drawContours(frame, contornos, -1, (0,0,0),2)

       for P in [0]:
           for (i,c) in enumerate(contornos, start=1):
               if i>0:
                   P=1
           print (P)  
 

       
       cv2.imshow("Camara", frame)
       cv2.imshow("Mascara", mascara)
       

       k = cv2.waitKey(5)
       if k == 27:
           cv2.destroyAllWindows()
           break
cap.release()

lo que pasa es que quiero que "frame" y "mascara" estén juntas en una ventana, intente hacerlo con Tkinter pero al parecer no se puede, ¿habrá alguna posibilidad de que aparezcan juntas en 1 ventana?




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)