walidoss1
Messages postés13Date d'inscriptionlundi 11 août 2008StatutMembreDernière intervention13 décembre 2008
-
12 août 2008 à 00:25
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 2009
-
12 août 2008 à 03:20
Salut tout le monde ! je suis nouveau ici et j'espère trouver de l'aide :) alors je suis entrain d'implémenter l'algorithme "kmeans" avec opencv , j'ai bien intégrer la bibliothèque opencv sur code::blocks , au début j'ai écrit un seul fichier .cpp qui contient le main , quand le fichier commence a s'encombrer j'ai décomposé le fichier en 3 fichiers ,j'ai crée un nouveau projet et j'ai essayé d'exécuter , là je suis dans la merde !
voici le code :
//main.cpp
#include "main.h"
using namespace std;
int main()
{
/*initialisation des images*/
img=cvLoadImage("C:\A.bmp");
img_nvg=cvCreateImage(cvGetSize(img), img->depth, 1);
img_inv=cvCloneImage(img_nvg);
//Création des fenêtres dans lesquelles nous afficherons les images
cvNamedWindow("img",CV_WINDOW_AUTOSIZE);
cvNamedWindow("nvg",CV_WINDOW_AUTOSIZE);
cvNamedWindow("inv",CV_WINDOW_AUTOSIZE);
//On vérifie l'origine de l'image chargée
//Si elle n'est pas en haut à gauche, il faut la corriger
int flip=0;
if(img->origin!=IPL_ORIGIN_TL)
{
flip=CV_CVTIMG_FLIP;
}
//Conversion en niveaux de gris
cvConvertImage(img, img_nvg, flip);
/*initialisation des centres de classes*/
scalaire=cvGet2D(img_nvg,0,0);
class1=scalaire.val[0];
scalaire=cvGet2D(img_nvg,100,200);
class2=scalaire.val[0];
cout<<class2 ;
res=(img_nvg->width)*(img_nvg->height);
matrice=allouer_matrice(2,res);
cout << res << endl ;
cout << img_nvg->width << "x" << img_nvg->height << endl;
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 12 août 2008 à 03:20
Sauf exceptions, un header ne peut contenir quelque chose qui a une déclaration (tel une fonction ou une variable), car sitôt que ton header est inclut plus d'un fichier, tes variables (et fonctions) sont redéclarées dans chacun d'eux.
En ajoutant le mot clé extern devant le nom de ta variable, on indique qu'elle se trouve dans un autre fichier. La variables n'est donc pas redéclarée et c'est l'éditeur de liens qui se chargera de "faire le lien" vers la variable.
Pour une fonction, on déclare le prototype. Même principe.
walidoss1
Messages postés13Date d'inscriptionlundi 11 août 2008StatutMembreDernière intervention13 décembre 2008 12 août 2008 à 01:12
voila les erreurs , ça vous dit quelque chose ?
j'ai essayé la protection anti inclusion multiple mais ... prière de m'aider si vous pouvez , je suis bloqué , je ne plus avancer dans mon projet
walidoss1
Messages postés13Date d'inscriptionlundi 11 août 2008StatutMembreDernière intervention13 décembre 2008 12 août 2008 à 02:36
un grand merci !! c fantastique !! ca tourne ! waaw !
pffff ! maintenant je peux dormir :)
en fait j'ai pa bien assimiler ! mais pourquoi le header doit contenir les declarations des variables.
où je peux trouver des liens a propos de l'edition des liens ?
merci encore !