thenemesys
Messages postés4Date d'inscriptionlundi 4 janvier 2010StatutMembreDernière intervention 5 janvier 2010
-
5 janv. 2010 à 09:14
cyrine2
Messages postés4Date d'inscriptionvendredi 17 juillet 2009StatutMembreDernière intervention25 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);
thenemesys
Messages postés4Date d'inscriptionlundi 4 janvier 2010StatutMembreDernière intervention 5 janvier 20101 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.
akroutos
Messages postés10Date d'inscriptionmardi 12 juillet 2005StatutMembreDernière intervention13 octobre 20101 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")
altyok
Messages postés11Date d'inscriptionmardi 30 mars 2010StatutMembreDerniè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.
//
// 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
// 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); ""