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

Qt Discussion :

Ouverture de fichier AVI avec OpenCV


Sujet :

Qt

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Ouverture de fichier AVI avec OpenCV
    Bonjour, voici mon problème. J'ai créé une interface graphique avec Qt Creator, lorsque je clique sur un bouton je souhaite ouvrir un fichier vidéo. Une fois le fichier video sélectionné mon programme plante avec comme erreur:

    "Inferior stopped because it received a signal from the operating system. Signal Name : SIGSEGV. Signal meaning: Segmentation fault"

    Voici le code lorsque je clique sur mon bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void MainWindow::on_actionImporter_3D_triggered()
    {
        QString fichier = QFileDialog::getOpenFileName(this, "Ouvrir un fichier", QString(), "Images (*.png *.gif *.jpg *.jpeg *.avi)");
     
        const char *link = fichier.toStdString().c_str();
     
        CvCapture *avi = cvCaptureFromFile(link);
     
    }
    Merci de votre aide

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Vous connaissez beaucoup des vidéos dans ces formats :
    Images (*.png *.gif *.jpg *.jpeg *.avi)


    Êtes vous sûr que l'erreur arrive sur cette fonction ? Pouvez vous préciser la ligne ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    À oui petite erreur de copier collé en effet ^^

    Mais l'erreur ne vient pas de ça, l'erreur vient de la ligne 7 (Cvcapture)

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Faut-il initialiser OpenCV avant ?
    Sinon, avez vous essayé avec un autre fichier ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Comment ça initialiser opencv avant ? J'ai juste indiquer les librairie et les .H.

    Oui j'ai essayer avec d'autre fichier j'obtient toujours la même erreur

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Peut être une histoire de format : http://opencv.willowgarage.com/wiki/VideoCodecs
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre confirmé

    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 490
    Points
    490
    Par défaut
    Salut,

    L'erreur vient de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     const char *link = fichier.toStdString().c_str();
    Le pointeur n'est pas valide quand tu l'utilises.

    MG.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Salut,

    LittleWhite : J'ai regardé, ça ne vient pas du format

    Kmedghaith : ok mais alors qu’es qu'il faut que je fasse pour convertir un Qstring en char ?

    Merci

  9. #9
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Pour la conversion, pourquoi ne pas utiliser directement : http://qt-project.org/doc/qt-5.0/qtc...html#constData
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bon en fait je ne suis pas sure que ça viennent de ma conversion de Qstring en Qchar parce que lorsque je demande de directement ouvrir mon fichier.avi comme ci-dessous, ça plante aussi avec la même erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void MainWindow::on_actionImporter_3D_triggered()
    {
        CvCapture *avi = cvCaptureFromFile("video.avi");
    }

  11. #11
    Membre confirmé

    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Points : 490
    Points
    490
    Par défaut
    Salut,

    Essaye de regarder ce code pour mieux comprendre ce qui s'est passé :

    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
     
     
    struct A
    {
        A(){qDebug()<<__PRETTY_FUNCTION__;}
        ~A(){qDebug()<<__PRETTY_FUNCTION__;}
     
     
        const char * data()
        {
            qDebug()<<__PRETTY_FUNCTION__;
            return d.c_str();
     
        }
        std::string d;
    };
     
    struct B
    {
        A toA()
        {
            qDebug()<<__PRETTY_FUNCTION__;
            return A();
        }
    };
     
     
    int main(int argc, char *argv[])
    {
        B b;
        const char * d = b.toA().data();
        qDebug()<<"using d"<<d;
        return 0;
    }
    Pour utilier des const char * à partir de QString, personnellement j'utilise le macro qPrintable.

    MG.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bon du coup après plusieurs essaie rien ne marche. Peut-être que ma technique n'est pas la bonne. Je voudrais pouvoir charger un video.avi, lire cette vidéo dans une interface graphique Qt et surtout pouvoir transformer le fichier .avi en matrice 3D pour pouvoir retravailler l'intensité de chaque pixels. Es que quel qu'un aurais une idée ou un conseil pour moi ?

    Merci

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    As-tu pensé à regarder la FAQ Qt ?
    Comment convertir un QString en chaîne C (char *) ?

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut
    Bonjour, bon j'ai travaillé avec toute vos idées mais j'ai toujours la même erreur, ça compile bien, mais lorsque que je click son mon bouton ca plante avec cette erreur:

    "Inferior stopped because it received a signal from the operating system. Signal Name : SIGSEGV. Signal meaning: Segmentation fault"

    Voici où en est mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void MainWindow::on_actionImporter_3D_triggered()
    {
        QString adresse("C:\\acquicrop.avi");
        QByteArray adresseEncodee = adresse.toUtf8();
     
        CvCapture * avi = cvCaptureFromFile(adresseEncodee.constData());
    }

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/04/2013, 16h53
  2. Lecture d'un fichier avi avec mediaplayer
    Par jonathomas dans le forum Delphi
    Réponses: 4
    Dernier message: 09/10/2006, 11h05
  3. Ouverture de fichier Excel avec macros
    Par Mathusalem dans le forum MATLAB
    Réponses: 2
    Dernier message: 15/06/2006, 11h39
  4. ouverture de fichier txt avec excel
    Par blondelle dans le forum C++Builder
    Réponses: 5
    Dernier message: 24/05/2006, 11h33
  5. [BCB 5]Comment lire un fichier AVI avec un TAnimate ?
    Par Sitting Bull dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/09/2004, 11h57

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