IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Flux video Picamera


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 91
    Par défaut Flux video Picamera
    Bonjour,

    J'aurais besoin d'aide pour la question suivante :
    Comment faire pour intégrer dans une frame (Tkinter) un flux vidéo provenant d'une webcam ?
    Attention, je ne cherche pas à lire une vidéo mais a afficher un flux vidéo. De plus, je souhaiterais que la vidéo débute après un clic sur un bouton.

    Merci d'avance pour vos pistes.

    Samuel

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par patarins Voir le message
    Comment faire pour intégrer dans une frame (Tkinter) un flux vidéo provenant d'une webcam ?
    Vous avez 2 solutions.
    Vous récupérez la vidéo image par image et vous les affichez en mettant à jour l'image associée à un Label (ou autre widget qui supporte l'affichage d'images).
    Vous utilisez une bibliothèque/programme externe pour afficher vos vidéos. Dans ce cas, on peut lui demander (s'il le supporte) d'afficher dans une fenêtre contrôlée par tkinter.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 91
    Par défaut Flux video
    Merci pour vos réponses mais comment afficher la vidéo image par image.

    Merci d'avance.

    Samuel

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par patarins Voir le message
    Merci pour vos réponses mais comment afficher la vidéo image par image.
    çà dépend de l'interface existante avec la caméra: il n'y a que vous pour le savoir en consultant la documentation de l'engin et/ou en recherchant sur Internet ce qu'on peut en faire via Python.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Par défaut
    Bonjour,
    je ne sais pas si cela peut vous aider, mais voici comment afficher le flux video de la webcam dans une fenêtre pendant un temps que l'on choisit (ici 30 s):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    import cv2,time
    n=.5 #échelle d'affichage du flux video
    l,L=720,1280  #choix de la résolution du flux video
     
    cap = cv2.VideoCapture(0)
    cap.set(l, L)
    temps=30
    t=time.time()
    while time.time()-t<temps:
        ret,im = cap.read()
        img=cv2.resize(im,(int(n*L),int(n*l)))
        cv2.imshow('Que tu es beau !!!',img)
        key = cv2.waitKey(1)
     
    cap.release()
    Par contre je ne sais pas comment envoyer le flux video à Tkinter.
    Bon courage.

  6. #6
    Membre confirmé Avatar de racine carrée
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 156
    Par défaut
    Bonjour,
    je ne sais pas si cela peut vous aider, mais voici comment afficher le flux video de la webcam dans une fenêtre pendant un temps que l'on choisit (ici 30 s):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import cv2,time
    n=.5 #échelle d'affichage du flux video
    l,L=720,1280  #choix de la résolution du flux video
    cap = cv2.VideoCapture(0)
    cap.set(l, L)
    temps=30
    t=time.time()
    while time.time()-t<temps:
        ret,im = cap.read()
        img=cv2.resize(im,(int(n*L),int(n*l)))
        cv2.imshow('Que tu es beau !!!',img)
        key = cv2.waitKey(1)
     
    cap.release()
    Par contre je ne sais pas comment envoyer le flux video à Tkinter.
    Bon courage.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2019
    Messages : 4
    Par défaut
    Bonjour,

    Je souhaite intégrer un flux vidéo provenant de la picamera dans une fenêtre tkinter. Pour afficher les flux vidéo je suis passé par une liaison TCP. Le but étant de créer une interface permettant de visualiser le flux vidéo en direct mais aussi d’afficher différentes variables.

    Toutes aide apportée sera la bienvenue.
    Cordialement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    import numpy as np
    import cv2
    import socket
    from tkinter import*
     
    class VideoStreamingTest(object):
        def init(self, host, port):
     
            self.server_socket = socket.socket()
            self.server_socket.bind((host, port))
            self.server_socket.listen(0)
            self.connection, self.client_address = self.server_socket.accept()
            self.connection = self.connection.makefile('rb')
            self.host_name = socket.gethostname()
            self.host_ip = socket.gethostbyname(self.host_name)
            self.streaming()
     
        def streaming(self):
     
            try:
                print("Host: ", self.host_name + ' ' + self.host_ip)
                print("Connection from: ", self.client_address)
                print("Streaming...")
                print("Press 'q' to exit")
     
                # need bytes here
                stream_bytes = b' '
                while True:
                    stream_bytes += self.connection.read(1024)
                    first = stream_bytes.find(b'\xff\xd8')
                    last = stream_bytes.find(b'\xff\xd9')
                    if first != -1 and last != -1:
                        jpg = stream_bytes[first:last + 2]
                        stream_bytes = stream_bytes[last + 2:]
                        image1 = cv2.imdecode(np.frombuffer(jpg, dtype=np.uint8), cv2.IMREAD_COLOR)
                        cv2.imshow('image1', image1)
     
                        #window = Tk()
                        #window.geometry('1080x720')
                        #frame1 = Frame(window, width=1080, height=720)
                        #frame1.pack()
                        #window.mainloop()
     
                        if cv2.waitKey(1) & 0xFF == ord('q'):
                            break
            finally:
                self.connection.close()
                self.server_socket.close()
     
     
    if name == 'main':
        # host, port
        h, p = "192.168.0.14", 8000
        VideoStreamingTest(h, p)

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/04/2008, 13h59
  2. Enregistrer flux Video d'une WEBCAM
    Par yakoz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/03/2006, 15h23
  3. Réponses: 6
    Dernier message: 10/03/2006, 13h50
  4. [Info] Comment recupere le flux video en JAVA?
    Par jeanluc38 dans le forum Multimédia
    Réponses: 4
    Dernier message: 26/11/2005, 01h27
  5. [Indy] Client-serveur pour recevoir des flux videos
    Par Nicodemus dans le forum Web & réseau
    Réponses: 7
    Dernier message: 10/10/2005, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo