OpenCV cvLoadImage() ne prend pas en charge les images dans le débogueur de visual studio?

Je suis en train de travailler sur un simple hello world pour OpenCV, mais je suis à cours d'idées pour lesquelles il n'est pas de travail.

Quand j'ai compiler et exécuter ce code:

#include <cv.h>
#include <highgui.h> 
int main(int argc, char* argv[])
{
 IplImage* img = cvLoadImage( "myjpeg.jpg" );
 cvNamedWindow( "MyJPG", CV_WINDOW_AUTOSIZE );
 cvShowImage("MyJPG", img);
 cvWaitKey(0);
 cvReleaseImage( &img );
 cvDestroyWindow( "MyJPG" );
 return 0;
}

Je reçois une boîte grise 200x200 au lieu de l'indication .fichier jpg. Si j'utilise un autre format jpg-je obtenir le même type de fenêtre, et si je mets un nom de fichier non valide, j'obtiens une très petite fenêtre (prévu).

Je suis à l'aide de Visual Studio 2008 sous Windows 7 Professionnel.

La plupart des exemples de programmes semblent bien fonctionner, donc je suis doublement confus comment ce code des charges de l'échantillon jpg très bien, mais dans le code ci-dessus ne fonctionne pas (même essayé de l'échantillon jpeg).

Mise à jour

Les exécutables produits par la compilation de bien fonctionner, cependant, le débogueur Visual Studio 2008 charges d'un pointeur null dans img chaque fois que j'essaie d'exécuter le débogueur - peu importe si l'emplacement du fichier est implicite ou explicite.

  • Sur quelle plate-forme ne vous compilez le programme? Pouvez-vous vérifier si l'image est en fait chargé if(img == NULL) { std::cout << "Trouble" << std::endl; }
  • De plus les tests montrent que l'exécutable fonctionne très bien en dehors de l'environnement de visual studio fourni la OpenCV .les fichiers dll sont présents dans le même répertoire, mais en effet, img est un pointeur null après cvLoadImage() est appelée lors de l'exécution dans l'environnement de débogage.
  • Le problème est peut-être que votre programme n'est pas exécuté dans le même répertoire que le fichier de l'image réside dans. (c'est un problème que vous utilisez un chemin relatif)
  • Cela semble être un problème lié le débogueur. J'ai remplacé le chemin d'accès relatif explicite et encore l'img variable revient un pointeur null après cvLoadImage(), mais l'exécutable s'exécute correctement (l'image est affichée) lorsque fonctionner de manière autonome (avec les fichiers locaux).
  • La version d'OpenCV utilisez-vous?
  • OpenCV2.0 est la version utilisée.

InformationsquelleAutor Nerf42 | 2010-01-22