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

Téléchargez Discussion :

Visualisation à partir d'une webcam


Sujet :

Téléchargez

  1. #1
    Membre régulier

    Homme Profil pro
    gerant
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Points : 88
    Points
    88
    Par défaut Visualisation à partir d'une webcam
    Bonsoir à tous,
    J'avais besoin de réaliser des traitements sur une image capturée depuis une webcam dans le cadre d'un PFE pour un ami, alors je vous fait profiter de ce qu'il faut pour commencer a exploiter sa Webcam.

    Le fichier .pro
    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
     
    QT       += core gui
     
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
     
    TARGET = CamPreview
    TEMPLATE = app
     
     
    SOURCES += main.cpp \
        campreiew.cpp
     
    HEADERS  += \
        campreview.h
     
    LIBS += -lvfw32
     
    FORMS    += \
        campreview.ui
    le fichier campreview.h

    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
     
    #ifndef DIALOG_H
    #define DIALOG_H
     
    #include <QDialog>
    #include <windows.h>
     
    namespace Ui {
    class CamPreviewDialog;
    }
     
    class CamPreview : public QDialog
    {
        Q_OBJECT
     
    public:
        explicit CamPreview(QWidget *parent = 0);
        ~CamPreview();
     
    private slots:
        bool camConnect();
        bool camDisconnect();
     
    private:
        Ui::CamPreviewDialog *ui;
        HWND hWndC;
     
        bool connected;
    };
     
    #endif // DIALOG_H
    le fichier campreview.cpp
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    #include "campreview.h"
    #include "ui_campreview.h"
     
    #include <QWidget>
    #include <QDebug>
     
    #include <windows.h>
    #include <vfw.h>
     
    CamPreview::CamPreview(QWidget *parent) :
        QDialog(parent),
        ui(new Ui::CamPreviewDialog)
    {
        ui->setupUi(this);
     
        ui->pbtnConnect->setEnabled(true);
        ui->pbtnDisconnect->setEnabled(false);
     
        connect(ui->pbtnConnect, SIGNAL(clicked()), this, SLOT(camConnect()));
        connect(ui->pbtnDisconnect, SIGNAL(clicked()), this, SLOT(camDisconnect()));
     
        connected = false;
     
        //Creation de HANDLE de la fenetre d'affichage en etant un enfant d'un QWidget (capWidget dans mon cas)
        hWndC = capCreateCaptureWindow(TEXT("My Capture Window"),
            WS_CHILD | WS_VISIBLE, 0, 0, ui->capWidget->width(), ui->capWidget->height(), (HWND) ui->capWidget->winId(), 0);
     
    }
     
    CamPreview::~CamPreview()
    {
        if (connected)
            capDriverDisconnect( hWndC );    //Deconnecter le driver
     
        delete ui;
    }
     
     
    bool CamPreview::camConnect()
    {
     
        //  Lancer la connection sur le driver de la webcam deux fois
        //  (Je ne sais pas pourquoi mais c'est le seul moyen que j'ai trouvé
        //  pour la faire fonctionnée)
        bool OK = capDriverConnect(hWndC, 0);
        OK = capDriverConnect(hWndC, 0);
     
        if( OK )
        {
            capPreviewRate(hWndC, 15);      // Regler le taux de rafrechissement
            capPreviewScale(hWndC, true);   // Activer la mise a l'echelle
            capPreview(hWndC, true);        // Lancer la visualisation
     
     
            connected = true;
            ui->pbtnConnect->setEnabled(false);
            ui->pbtnDisconnect->setEnabled(true);
            qDebug() << "Connection OK" << endl;
        }
        else
            qDebug() << "Connection ERROR" << endl;
     
     
        return OK;
    }
     
    bool CamPreview::camDisconnect()
    {
        capPreview(hWndC, false);           // Arrêter la visualisation
     
        bool OK =  capDriverDisconnect( hWndC );    //Deconnecter le driver
     
        if (OK)
        {        
            connected = false;
            ui->pbtnConnect->setEnabled(true);
            ui->pbtnDisconnect->setEnabled(false);
            qDebug() << "Disconnection OK" << endl;
        }
        else
            qDebug() << "Disconnection ERROR" << endl;
     
     
        return OK;
    }
    le fichier main.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <QApplication>
     
    #include "campreview.h"
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        CamPreview camPreview;
        camPreview.show();
     
        return a.exec();
    }
    Le resultat :

    Capture d'écran

    j'espère que ça sera utile pour quelqu'un.
    Merci

  2. #2
    Robot Forum
    Avatar de forum
    Inscrit en
    Novembre 1999
    Messages
    2 774
    Détails du profil
    Informations forums :
    Inscription : Novembre 1999
    Messages : 2 774
    Points : 2 549
    Points
    2 549
    Par défaut Visualisation à partir d'une webcam
    Bonjour,

    Je vous propose un nouvel élément à utiliser : Visualisation à partir d'une webcam

    Visualisation du flux vidéo depuis une webcam en utilisation les API windows + Qt

    Qu'en pensez-vous ?

  3. #3
    Membre actif Avatar de Masmeta
    Homme Profil pro
    Ing. R&D informatique industrielle
    Inscrit en
    Mai 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Ing. R&D informatique industrielle
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 472
    Points : 221
    Points
    221
    Par défaut
    Bonjour,

    J'ai des erreurs de lien (LNK2019) malgré la présence de la librairie vfw32.lib.
    Comment puis je supprimer cette erreur?
    "Nulla Tenaci Invia Est Via"
    Aux persévérants aucune route n'est interdite

  4. #4
    Membre régulier

    Homme Profil pro
    gerant
    Inscrit en
    Mars 2011
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2011
    Messages : 42
    Points : 88
    Points
    88
    Par défaut
    Moi je l'ai compilé avec MinGW 4.8

Discussions similaires

  1. Capture de vidéo à partir d'une webcam enligne
    Par fatjoe dans le forum Flash
    Réponses: 2
    Dernier message: 10/06/2010, 14h05
  2. Capturer une image a partir d'une webcam
    Par Maxime10 dans le forum Multimédia
    Réponses: 0
    Dernier message: 07/12/2009, 14h53
  3. Réponses: 7
    Dernier message: 07/08/2009, 15h28
  4. Analyse d'images à partir d'une webcam
    Par DOC doc doc dans le forum Images
    Réponses: 1
    Dernier message: 20/06/2007, 13h58
  5. Analyse d'images à partir d'une webcam
    Par DOC doc doc dans le forum Images
    Réponses: 2
    Dernier message: 10/05/2007, 10h22

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