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

PyQt Python Discussion :

sauvegarde d'une capture webcam


Sujet :

PyQt Python

  1. #1
    Invité
    Invité(e)
    Par défaut sauvegarde d'une capture webcam
    Bonjour,
    j'aimerais sauvegarder une capture d'image issue de ma webcam.
    le code ci dessous me permet bien d'allumer et d'éteindre la webcam (voyant lumineux qui s'allume puis s’éteint)
    Aussi, la ligne de capture semble aussi marcher puisque le "print(type(img))" me renvoi: <class 'PyQt5.QtMultimedia.QCameraImageCapture'>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    self.camera=QCamera(QCamera.FrontFace)
    self.capture=QCameraImageCapture(self.camera,self)
    self.camera.start()
    img = self.capture
    #img.save()?????????????????
    #print(type(img))
    self.camera.stop()
    là ou j'ai du mal c'est que j'aimerais enregistrer ma capture sous un nom, un emplacement et un format que je choisi... et je galère dans les docs...
    des idées?

    autres infos:
    je tourne en PyQt5 sous win 7.


    merci,
    cordialement
    Dernière modification par Jiyuu ; 02/11/2015 à 23h55.

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Voilà comment ça a l'air de marcher:

    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
                # préparation de la capture
                self.imageCapture = QtMultimedia.QCameraImageCapture(self.camera)
     
                # capture dans un fichier (et non dans un buffer)
                self.imageCapture.setCaptureDestination(QtMultimedia.QCameraImageCapture.CaptureToFile)
     
                # format de l'image à capturer
                imageSettings = QtMultimedia.QImageEncoderSettings()
                imageSettings.setCodec("image/jpeg");
                self.imageCapture.setEncodingSettings(imageSettings)
     
                # capture dans le fichier jpg fourni (avec chemin)
                self.camera.searchAndLock()
                self.imageCapture.capture(r"E:\Pythondev\Pydev3_qt5\python3\PyQt5\QCamera\toto.jpg")
                self.camera.unlock()
    Et on récupère le fichier toto.jpg à l'endroit prévu.

    Je me suis débrouillé avec la doc, et effectivement, ce n'était pas facile...
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Invité
    Invité(e)
    Par défaut capture webcam
    bonjour,
    merci beaucoup!!!
    je peux pas essayer le code là maintenant mais ça a déjà l'air joli à la lecture...
    j'essaye ça ce soir,
    encore merci

  4. #4
    Invité
    Invité(e)
    Par défaut capture image avec webcam
    Bonjour,
    je confirme, les lignes présentées ci dessus marche très bien pour capturer une image.

    en plus court (et peut être en moins joli) seules ces 3 lignes permettent de faire la même chose:

    déclaration des objets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    fenetre_widget = QWidget()
    self.videoWidget = QVideoWidget()
    self.camera=QCamera(QCamera.FrontFace)
    self.camera.setViewfinder(self.videoWidget)
    self.camera.start()
    capture et sauvegarde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    self.imageCapture = QCameraImageCapture(self.camera)
    self.imageCapture.setCaptureDestination(QCameraImageCapture.CaptureToFile)
    self.imageCapture.capture(r"C:\Users\Clement\Desktop\python\camera\moi.jpg")
    Par contre, je n'arrive pas à figer une image pour l'enregistrer par la suite...
    Je ne trouve pas d'équivalent à une fonction du genre: camera.pause()...

    la sauvegarde ne marche que lorsque la camera est lancée (aprés un camera.start()) et du coup les captures ne peuvent se faire qu'à la volée...
    N'y a-t-il pas d'équivalent à un "pause"?

    Cela m'est important car je comptais utiliser des sliders pour contrôler certains paramètres d'affichage (contraste, luminosité etc....)
    les lignes de code ci dessous marchent bien lorsque j'affiche (dans un videowidget) une vidéo issue d'un fichier vidéo... mais ça marche plus avec le flux de la caméra... Pourquoi??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    self.slidercontraste = QSlider(QtCore.Qt.Horizontal)
    self.slidercontraste.valueChanged.connect(self.videoWidget.setContrast)
    merci pour votre aide,
    cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réaliser et sauvegarder une capture d’écran
    Par edsaar dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/09/2019, 16h44
  2. Sauvegarde d'une vidéo via capture d'écran
    Par Axiome dans le forum C#
    Réponses: 0
    Dernier message: 16/07/2010, 17h18
  3. Réponses: 3
    Dernier message: 12/08/2009, 13h33
  4. Comment sauvegarder une capture d'écran dans ACCESS ?
    Par GunnyMiK dans le forum VBA Access
    Réponses: 5
    Dernier message: 17/04/2008, 18h55
  5. Capturer une image WebCam?
    Par gui38 dans le forum Flex
    Réponses: 2
    Dernier message: 22/08/2007, 16h28

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