[OpenCV 1.0] cvLoadImage, ne fonctionne pas

thenemesys Messages postés 4 Date d'inscription lundi 4 janvier 2010 Statut Membre Dernière intervention 5 janvier 2010 - 5 janv. 2010 à 09:14
cyrine2 Messages postés 4 Date d'inscription vendredi 17 juillet 2009 Statut Membre Dernière intervention 25 mai 2011 - 16 mai 2011 à 14:57
Bonjour,

Je commence à apprendre OpenCV, toutefois, je rencontre déjà un problème lors de l'exécution d'un code très simple. En effet, lorsque je veux utiliser la fonction cvLoadImage, celle ci ne charge pas l'image(fond gris), quelque soit l'écriture du chemin vers le fichier.

Le code : (copier/coller du tuto du siteduzero)

#include <cv.h>
#include <highgui.h>


using namespace std;

int main()
{
//On déclare "un pointeur vers une structure IplImage" :
//En gros, on "déclare une image".
IplImage *img;

//On charge notre image depuis un fichier.
img=cvLoadImage(1,"D:\\test.png");

//On crée une fenêtre intitulée "Hello World",
//La taille de cette fenêtre s'adapte à ce qu'elle contient.
cvNamedWindow("Hello World", CV_WINDOW_AUTOSIZE);

//On affiche l'image dans la fenêtre "Hello World".
cvShowImage("Hello World", img);

//On attend que l'utilisateur appuie sur une touche (0 = indéfiniment).
cvWaitKey(0);

//Destruction de la fenêtre.
cvDestroyWindow("Hello World");

//Libération de l'IplImage (on lui passe un IplImage**).
cvReleaseImage(&img);

//Fini ^^
return 0;

}

http://img9.imageshack.us/img9/5742/exemple2q.jpg
http://img31.imageshack.us/img31/8113/exemple1u.jpg

Si quelqu'un a une idée, sans ça, je suis bloqué !

Merci

8 réponses

thenemesys Messages postés 4 Date d'inscription lundi 4 janvier 2010 Statut Membre Dernière intervention 5 janvier 2010 1
5 janv. 2010 à 19:32
Salut,

Pour ce qui est du code, c'était une combinaison que j'avais essayé "comme ca"... De toute manière ca n'a jamais marché. J'ai installé la version 2.0 d'OpenCV, maintenant ca fonctionne bien.

Merci pour ta réponse en tout cas.
1
akroutos Messages postés 10 Date d'inscription mardi 12 juillet 2005 Statut Membre Dernière intervention 13 octobre 2010 1
3 oct. 2010 à 01:24
essayé de mettre votre image dans votre projet C++ et chargé le directement ('test.png')
exemple :
//créer une image en couleur
IplImage *img = cvLoadImage("test.jpg")
1
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
5 janv. 2010 à 14:40
Salut
Commence par telecharger la version 2.0 d'OpenCV.
Tu verras ici:
http://opencv.willowgarage.com/documentation/reading_and_writing_images_and_video.html'highlight=cvloadimage#cvLoadImage
que le premier argument de la fonction cvLoadImage et le nom du fichier et le second les couleurs et non l'inverse...

A+


____________________________________________________________________________
Logiciel en traitement de l'image gratuit et open source.
0
klibrexor Messages postés 1 Date d'inscription lundi 17 août 2009 Statut Membre Dernière intervention 13 mai 2010
13 mai 2010 à 21:54
thenemesys il fau just invérsé(Attention:ajouté un '\\' au lieu de'\')
ex :
IplImage *img=cvLoadImage("c:\\t.png"); //
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
altyok Messages postés 11 Date d'inscription mardi 30 mars 2010 Statut Membre Dernière intervention 2 septembre 2011
8 avril 2011 à 16:15
bonjour,

j'ai exactement le même problème que thenemesys mais j'ai tout tenté je ne voie pas ou je fait l'erreur?????
et pourtant je suis sur openCv2.1 mais quand je lance le prog j'ai une fenêtre grise...

voici mon prog

// test2.cpp : définit le point d'entrée pour l'application console.
//

#include "stdafx.h"
#include <cxcore.h>
#include <cv.h>
#include <highgui.h>

// Fonction qui crée et renvoit une image avec des formes dedans

IplImage* createGeometry(){
// Création d'une image de taille 640, 480, 8 bits par channel, 3 channels)
IplImage* image = cvCreateImage(cvSize(640,480), 8, 3);
// Remplir l'image avec tous des pixels noirs
cvZero(image);
// Dessin d'un cercle rouge (RGB 255, 0, 0), centré en 320, 240, rayon 10, plein(-1));
cvCircle( image, cvPoint(320,240), 10, CV_RGB(255,0,0), -1);
// Dessin d'un cercle vert (RGB 0, 255, 0), centré en 300, 200, rayon 20, épaisseur 3);
cvCircle( image, cvPoint(300,200), 20, CV_RGB(0,255,0), 3);
// Dessin d'une ligne ...
cvLine( image, cvPoint(0,0), cvPoint(640,480), CV_RGB(255,255,0),2);
// Dessin d'un rectangle...
cvRectangle(image, cvPoint(500,350), cvPoint(600, 450), CV_RGB(0,0,255), -1);
return image;
}

// Fonction qui crée et renvoit une image avec un degradé

IplImage* createColor(){
// Création d'une image de taille 640, 480, 8 bits par channel, 3 channels)
IplImage* image = cvCreateImage(cvSize(640,480), 8, 3);
// Remplir l'image avec tous des pixels noirs
cvZero(image);
float step = 255.0/480.0; // Pas pour le dégradé
float currentColor = 0; // Valeur courante du dégradé
for (int y = 0; y < 480;++y){
for (int x = 0; x < 640; ++x){
((uchar*)(image->imageData + image->widthStep*y))[x*3] = currentColor; // Canal bleu de l'image
((uchar*)(image->imageData + image->widthStep*y))[x*3+1] = currentColor; // Canal vert
((uchar*)(image->imageData + image->widthStep*y))[x*3+2] = currentColor; // Canal rouge

}
currentColor += step;
}

return image;
}



int main(int argv, char** argc){
IplImage *image1 = 0;
IplImage *image2 = 0;
IplImage *image3 = 0; // Chargement d'un fichier

image1 = createGeometry();
image2 = createColor();
image3 = cvLoadImage("./imagetest1.jpeg", 1);
cvNamedWindow("Geometry",1);
cvNamedWindow("Color",1);
cvNamedWindow("File",1);

// Affichage de l'image1 dans la fenêtre Geometry
cvShowImage("Geometry", image1);
// Idem pour image2 et 3
cvShowImage("Color", image2);
cvShowImage("File", image3);

// Attente infinie que l'utilisateur appuie sur une touche
cvWaitKey(0);

// Suppression des images en mémoire (avec vérification que l'image a bien été créée)
if (image1) cvReleaseImage (&image1);
if (image2) cvReleaseImage (&image2);
if (image3) cvReleaseImage (&image3);
}


et c cette ligne la qui ne va pas "" image3 = cvLoadImage("./imagetest1.jpeg", 1); ""
0
altyok Messages postés 11 Date d'inscription mardi 30 mars 2010 Statut Membre Dernière intervention 2 septembre 2011
8 avril 2011 à 16:17
0
altyok Messages postés 11 Date d'inscription mardi 30 mars 2010 Statut Membre Dernière intervention 2 septembre 2011
8 avril 2011 à 16:17
si qq a une idée ça serais vraiment sympa!!!

merci
0
cyrine2 Messages postés 4 Date d'inscription vendredi 17 juillet 2009 Statut Membre Dernière intervention 25 mai 2011
16 mai 2011 à 14:57
il suffit de mettre \\ au lieu de \
par exemple:
IplImage *image = cvLoadImage("C:\\Users\\toshiba\\Pictures\\lena.jpg", CV_LOAD_IMAGE_COLOR);
0
Rejoignez-nous