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

C++ Discussion :

Programme qui ne s'éxecute pas jusqu'au bout


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Décembre
    Inscrit en
    Avril 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 277
    Par défaut Programme qui ne s'éxecute pas jusqu'au bout
    Bonjour à tous,

    je suis entrain de travailler sur ce code (de Seetaface engine), le problème c'est que le programme s'arrête dans la ligne du et ne continue pas
    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
    /*
     *
     * This file is part of the open-source SeetaFace engine, which includes three modules:
     * SeetaFace Detection, SeetaFace Alignment, and SeetaFace Identification.
     *
     * This file is an example of how to use SeetaFace engine for face detection, the
     * face detection method described in the following paper:
     *
     *
     *   Funnel-structured cascade for multi-view face detection with alignment awareness,
     *   Shuzhe Wu, Meina Kan, Zhenliang He, Shiguang Shan, Xilin Chen.
     *   In Neurocomputing (under review)
     *
     *
     * Copyright (C) 2016, Visual Information Processing and Learning (VIPL) group,
     * Institute of Computing Technology, Chinese Academy of Sciences, Beijing, China.
     *
     * The codes are mainly developed by Shuzhe Wu (a Ph.D supervised by Prof. Shiguang Shan)
     *
     * As an open-source face recognition engine: you can redistribute SeetaFace source codes
     * and/or modify it under the terms of the BSD 2-Clause License.
     *
     * You should have received a copy of the BSD 2-Clause License along with the software.
     * If not, see < https://opensource.org/licenses/BSD-2-Clause>.
     *
     * Contact Info: you can send an email to SeetaFace@vipl.ict.ac.cn for any problems.
     *
     * Note: the above information must be kept whenever or wherever the codes are used.
     *
     */
     
    #include <cstdint>
    #include <fstream>
    #include <iostream>
    #include <string>
    #include<conio.h>
     
    #include "opencv2/highgui/highgui.hpp"
    #include "opencv2/imgproc/imgproc.hpp"
     
    #include "face_detection.h"
     
    using namespace std;
     
    int main(int argc, char** argv) {
      if (argc < 3) {
          cout << "Usage: " << argv[0]
              << " image_path model_path"
              << endl;
     
          return -1;
      }
     
      const char* img_path = argv[1];
      seeta::FaceDetection detector(argv[2]);
     
      detector.SetMinFaceSize(40);
      detector.SetScoreThresh(2.f);
      detector.SetImagePyramidScaleFactor(0.8f);
      detector.SetWindowStep(4, 4);
     
      cv::Mat img = cv::imread(img_path, cv::IMREAD_UNCHANGED);
      cv::Mat img_gray;
     
      if (img.channels() != 1)
        cv::cvtColor(img, img_gray, cv::COLOR_BGR2GRAY);
      else
        img_gray = img;
     
      seeta::ImageData img_data;
      img_data.data = img_gray.data;
      img_data.width = img_gray.cols;
      img_data.height = img_gray.rows;
      img_data.num_channels = 1;
     
      long t0 = cv::getTickCount();
      std::vector<seeta::FaceInfo> faces = detector.Detect(img_data);
      long t1 = cv::getTickCount();
      double secs = (t1 - t0)/cv::getTickFrequency();
     
      cout << "Detections takes " << secs << " seconds " << endl;
    #ifdef USE_OPENMP
      cout << "OpenMP is used." << endl;
    #else
      cout << "OpenMP is not used. " << endl;
    #endif
     
    #ifdef USE_SSE
      cout << "SSE is used." << endl;
    #else
      cout << "SSE is not used." << endl;
    #endif
     
      cout << "Image size (wxh): " << img_data.width << "x" 
          << img_data.height << endl;
     
      cv::Rect face_rect;
      int32_t num_face = static_cast<int32_t>(faces.size());
     
      for (int32_t i = 0; i < num_face; i++) {
        face_rect.x = faces[i].bbox.x;
        face_rect.y = faces[i].bbox.y;
        face_rect.width = faces[i].bbox.width;
        face_rect.height = faces[i].bbox.height;
     
        cv::rectangle(img, face_rect, CV_RGB(0, 0, 255), 4, 8, 0);
      }
     
      cv::namedWindow("Test", cv::WINDOW_AUTOSIZE);
      cv::imshow("Test", img);
      cv::waitKey(0);
      cv::destroyAllWindows();
    }
    Voici ce qu'il affiche à la fin :
    'detection.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp120d.dll'. Cannot find or open the PDB file.
    'detection.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcr120d.dll'. Cannot find or open the PDB file.
    'detection.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imm32.dll'. Cannot find or open the PDB file.
    'detection.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msctf.dll'. Cannot find or open the PDB file.
    The program '[6068] detection.exe' has exited with code -1 (0xffffffff).
    Pouvez-vous m'aider s'il vous plait?

    merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    return -1 veut très clairement dire à la fonction de retourner une valeur. Si c'est le main, le programme retourne la valeur et forcément s'arrête.
    Et si tu regardes le code, ou la sortie de la console quand il s'arrête, il est assez sympa pour te dire comment l'appeler.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre éclairé Avatar de Décembre
    Inscrit en
    Avril 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 277
    Par défaut
    Merci Bousk,



    return -1 veut très clairement dire à la fonction de retourner une valeur. Si c'est le main, le programme retourne la valeur et forcément s'arrête.
    Et si tu regardes le code, ou la sortie de la console quand il s'arrête, il est assez sympa pour te dire comment l'appeler.

    Je suis débutante et je n'arrive pas à vous comprendre , en enlevant le return -1 le programme ne s'exécute plus

    Pouvez-vous s'il vous plait, me donnez plus de détails ???

    Mille mercis

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 282
    Par défaut
    Bonsoir Décembre

    Ne crois-tu pas que quand on veut faire de la programmation, il y a un minimum de bases à apprendre?
    Justement sur dvp, il y a plusieurs cours de C/C++, le lien est dans la signature de Bousk.

    La commande return -1; dans la fonction int main(int argc, char** argv) termine le programme avec le code -1, c'est prévu comme cela. Donc cherche à comprendre le pourquoi, c'est trivial.

    Delias

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

Discussions similaires

  1. Un programme simple qui ne s'éxecute pas
    Par malcolm41000 dans le forum C++
    Réponses: 3
    Dernier message: 01/10/2013, 18h40
  2. Commande batch qui ne s'exécute pas jusqu'au bout
    Par jejeman dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 03/10/2012, 13h04
  3. [1.x] fichier test qui ne s'execute pas jusqu'au bout
    Par erictomcat dans le forum Symfony
    Réponses: 2
    Dernier message: 20/08/2012, 23h04
  4. Programme qui ne va pas jusqu'au bout ?
    Par chicabonux dans le forum Débuter
    Réponses: 59
    Dernier message: 12/04/2009, 20h06
  5. Réponses: 8
    Dernier message: 08/05/2006, 20h40

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