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

OpenCV Discussion :

Null pointer (null filename) in function cvloadimage


Sujet :

OpenCV

  1. #1
    Membre averti
    Inscrit en
    Février 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 13
    Par défaut Null pointer (null filename) in function cvloadimage
    Bonjour,
    je veux que mon programme récupère une image qui se trouve dans le même répertoire de mon programme mais sans donner le nom de l'image puisque je doit testé plusieurs image alors sans renommer chaque fois l'image par le nom statique donné a la fonction cvloadimage je veux qu'il la récupère directement
    j'ai essayé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void FenPrincipale::traitement(){
     
        std::string imagePath;
       IplImage *nvg = cvLoadImage(imagePath.c_str(), CV_LOAD_IMAGE_COLOR);
    }
    mais il na pas marché il affiche l'erreur suivante :
    Null pointer (null filename) in function cvloadimage
    svp s'il ya quelqu'un peut m'aidé puisk c très urgent
    merci d'avance j'attend vos reponces

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 29
    Par défaut
    Citation Envoyé par milmil Voir le message
    Bonjour,
    je veux que mon programme récupère une image qui se trouve dans le même répertoire de mon programme mais sans donner le nom de l'image puisque je doit testé plusieurs image alors sans renommer chaque fois l'image par le nom statique donné a la fonction cvloadimage je veux qu'il la récupère directement
    j'ai essayé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void FenPrincipale::traitement(){
     
        std::string imagePath;
       IplImage *nvg = cvLoadImage(imagePath.c_str(), CV_LOAD_IMAGE_COLOR);
    }
    mais il na pas marché il affiche l'erreur suivante :
    Null pointer (null filename) in function cvloadimage
    svp s'il ya quelqu'un peut m'aidé puisk c très urgent
    merci d'avance j'attend vos reponces
    Normal: tu n'as pas initialisé imagePath avec le nom de ton fichier.

  3. #3
    Membre averti
    Inscrit en
    Février 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 13
    Par défaut
    Citation Envoyé par Picard2200 Voir le message
    Normal: tu n'as pas initialisé imagePath avec le nom de ton fichier.
    Mais comment j'initialise avec le nom de fichier ?????????

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 29
    Par défaut
    Citation Envoyé par milmil Voir le message
    Mais comment j'initialise avec le nom de fichier ?????????
    Là, je suis embêté car je pense que cela sort du scope du forum OpenCV.
    Initialiser une chaîne de caractères de type string fait partie des bases du développement C++.
    Je peux au moins te dire que tu devrais passer une string en paramètre de ta méthode.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void FenPrincipale::traitement(std::string imagePath)
    {
       if (imagePath=="")
       {
           std::cerr << "image name not specified" << std::endl;
           throw ...;
       }
       IplImage *nvg = cvLoadImage(imagePath.c_str(), CV_LOAD_IMAGE_COLOR);
    }

  5. #5
    Membre averti
    Inscrit en
    Février 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 13
    Par défaut
    Citation Envoyé par Picard2200 Voir le message
    Là, je suis embêté car je pense que cela sort du scope du forum OpenCV.
    Initialiser une chaîne de caractères de type string fait partie des bases du développement C++.
    Je peux au moins te dire que tu devrais passer une string en paramètre de ta méthode.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void FenPrincipale::traitement(std::string imagePath)
    {
       if (imagePath=="")
       {
           std::cerr << "image name not specified" << std::endl;
           throw ...;
       }
       IplImage *nvg = cvLoadImage(imagePath.c_str(), CV_LOAD_IMAGE_COLOR);
    }
    merci de votre reponce mais si je donne le nom de fichier comme parametre dans l'execution je suis obligé de donner a chaque fois le nom de l'aimge a traité et moi je veux qu'il récupère sans passer en parametre je sais pas si tu ma compris

  6. #6
    Membre averti
    Inscrit en
    Février 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 13
    Par défaut
    en d'autres termes voile ce ke je cherche :
    je télécharge une image qui se trouve dans ce dossier
    IplImage *nvg = cvLoadImage("C:\\Documents and Settings\\azerty\\Bureau\\IHM\\image.jpg");
    quand je lance mon programme il fait le traitement sur cette images apres je ferme mon programme et je remplace l'image précédente par une autres image et je veux pas que chaque fois je m'oblige a renommer mon image par le nom image ou entrer dans le code et le modifier
    je veux kil récupère l'image a partir de ce dossier kelk soi le nom de l'image
    j'espère ke je trouve kelk1 qui peut m'aider puisk vraiment ce problème m'embete et l'examen de mon application sera la semaine prochaine

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 29
    Par défaut
    Citation Envoyé par milmil Voir le message
    en d'autres termes voile ce ke je cherche :
    je télécharge une image qui se trouve dans ce dossier
    IplImage *nvg = cvLoadImage("C:\\Documents and Settings\\azerty\\Bureau\\IHM\\image.jpg");
    quand je lance mon programme il fait le traitement sur cette images apres je ferme mon programme et je remplace l'image précédente par une autres image et je veux pas que chaque fois je m'oblige a renommer mon image par le nom image ou entrer dans le code et le modifier
    je veux kil récupère l'image a partir de ce dossier kelk soi le nom de l'image
    j'espère ke je trouve kelk1 qui peut m'aider puisk vraiment ce problème m'embete et l'examen de mon application sera la semaine prochaine
    Bonjour,

    Je crois qu'il faut que tu écrives en français ce que tu souhaites faire et après que tu cherches sur Google comment réaliser chaque étape.
    Je ne pourrais pas t'aider plus car le but de ton examen est d'évaluer ta capacité à trouver une solution satisfaisante au problème posé: Prends confiance en toi et tu trouveras la solution.

  8. #8
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    Tu ne peux pas faire de traitement avec un nom dynamique sur l'image il faut forcement qu'elles aient un nom commun. Si tu travaille sous linux tu peux te faire un script qui remplace le nom de ton image en la copiant pour toi dans ton répertoire à chaque itération mais ceci sort du cadre de ce forum

  9. #9
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut ouvrir un repertoire "chemin"
    Exactement j'ai le même probleme que toi, sur ce notion de chemin.
    J'ai un dossier qui s'appelle ServImage (Il y a plusieur images à l'interieur exp: imag1.png; image5.png; France.jpg; itali.png ...); je dois lire mes 4 images sans que je les specifie à chaque fois. en un mot je vais dire automatiser le traitement des images.
    Au lieu de dire sur la fonction traitement :
    --> traitement (imge) pour une image donnée;
    je donne le chemin ou son stoquer les images et le programme traite tout seul les image
    -->traitement (chemin ...){
    .....
    }

  10. #10
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    C'est impossible à ma connaissance sans passer par un script tier qui déplace et renome toutes tes images une à une selon le besoin (mais il faudra quand même écrire en dur le chemin de tes images dans le script)

  11. #11
    Membre chevronné
    Homme Profil pro
    Ingénieur 3D
    Inscrit en
    Avril 2008
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur 3D

    Informations forums :
    Inscription : Avril 2008
    Messages : 400
    Par défaut
    Il y a pourtant moyen de scanner le contenu d'un dossier. Il faut juste passer par l'API du système d'exploitation.

  12. #12
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    En effet j'aurais appris quelque chose au moins merci =)

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Par défaut
    j'ai peut-être une petite solution pour charger plusieurs imagee sans avoir a connaitre le nom
    ce code fonctionne très bien avec Visual Studio
    C'est un peu le bordel mais vous trouverez l'essentiel
    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
     
    WIN32_FIND_DATA FindFileData;
    HANDLE hFind = INVALID_HANDLE_VALUE;
    DWORD dwError;
    LPCWSTR pb=L"C:\\Users\\Pictures\\*";
    TCHAR name[60610];
    TCHAR separateur[2]=L";";
     
    // Find the first file in the directory.
    hFind = FindFirstFile(pb, &FindFileData);
     
    if (hFind == INVALID_HANDLE_VALUE)
    {
    	printf ("Invalid file handle. Error is %u.\n", GetLastError());
    	return (-1);
    } 
    else
    {
    	printf ("First file name is %s.\n", FindFileData.cFileName);
     
    	// List all the other files in the directory.
    	_tcscpy(name,separateur);
    	while (FindNextFile(hFind, &FindFileData) != 0) 
    	{
    		_tcscat(name,FindFileData.cFileName);
    		_tcscat(name,separateur);
    	}
     
    	dwError = GetLastError();
    	FindClose(hFind);
     
    }
    char charname[60611];
    char nameImage[256];
    char* ptrchar=NULL;
    char separ[2];
     
    long somme=0;
    int cpti=0;
    double predictInter=-1;
    separ[0]=';';
    wcstombs(charname,name,60610);
    ptrchar=strtok(charname, separ);
    while(ptrchar!=NULL)
    {
     
    	ptrchar = strtok(NULL, separ);
    	strcpy(nameImage,"C:\\Users\\Pictures\\");
     
     
    	if ((ptrchar!=NULL)&&(ptrchar[0]!='.'))
    	{
    		strcat(nameImage,ptrchar);
     
    		cvLoadImage(nameImage,CV_LOAD_IMAGE_COLOR)
     
    			cpti++;
    	}
    }
    nb : c'est issu d'un code qui fonction bien il se peut que certaines variables soient déclarées mais non utilisées dans cette partie. A vous de faire le ménage

Discussions similaires

  1. Null Pointer Exception
    Par gloglo dans le forum Langage
    Réponses: 4
    Dernier message: 20/12/2006, 11h32
  2. [Struts] Null Pointer Exception
    Par n@n¤u dans le forum Struts 1
    Réponses: 1
    Dernier message: 01/08/2006, 13h10
  3. Null Pointer Exception
    Par snouppy dans le forum JBuilder
    Réponses: 3
    Dernier message: 13/06/2006, 21h53
  4. Null pointer assignement
    Par issou dans le forum C
    Réponses: 12
    Dernier message: 18/11/2005, 13h39
  5. [Language]Constructeur==> Null pointer?
    Par Chiwawa dans le forum Langage
    Réponses: 8
    Dernier message: 14/05/2005, 22h51

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