Bonjour,

J'essaie de créer un fichier header pour gérer mes fonctions correctement

J'ai lu sur internet deux conseils : "Eviter à tout prix les includes dans le .h" et "Mettre les includes .... là où il y en a besoin"

Voici ma fonction principale :

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
# include "cv.h"
# include "highgui.h"
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include "fonctions.h"
using namespace cv;
 
int main()
{
 
		 std::vector<Mat> frames;
 
		frames=Buffer("C:\\Documents and Settings\\SY_R\\red_car_video.avi");
 
		imshow("image:",frames[0]);
 
		imshow("image2:",frames[20]);
 
		cvWaitKey (0);
        return 0;
}
mon fichier fonctions :
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
 
#include "fonctions.h"
# include "cv.h"
# include "highgui.h"
#include <stdio.h>
#include <stdlib.h>
#include <vector>
using namespace cv;
 
std::vector<Mat> Buffer(String URL)
{
 
	   VideoCapture capture;
 
		capture.open(URL);
 
		  std::vector<Mat> v;
		  Mat frames;
 
		 for (int i = 0; i < 50; i++)
			{
 
				capture>>frames;
				v.push_back (frames);
			}
 
		return v;
}
et mon header :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
#include <vector>
#include <stdio.h>
#include <stdlib.h>
 
std::vector<Mat> Buffer(String URL);
J'ai mis des bibliothèques dans le header pour gérer le String et le vector


Mis bout à bout ces morceaux de code fonctionnaient très bien !

Et en les séparant j'obtiens beaucoup d'erreur :

1>c:\documents and settings\sy_r\mes documents\visual studio 2010\projects\open_cv\open_cv\fonctions.h(5): error C2065: 'Mat'*: identificateur non déclaré
1>c:\documents and settings\sy_r\mes documents\visual studio 2010\projects\open_cv\open_cv\fonctions.h(5): error C2065: 'String'*: identificateur non déclaré
1>c:\documents and settings\sy_r\mes documents\visual studio 2010\projects\open_cv\open_cv\fonctions.h(5): error C2146: erreur de syntaxe*: absence de ')' avant l'identificateur 'URL'
..... ..... ... .. .. .... . .. . ..


J'imagine que j'ai mal utilisé les includes...

De plus je sais qu'on peut utiliser des balises #ifdefine ... mais je ne me souviens plus du tout comment on fait .

Si vous avez quelques conseils concernant ces sujets, merci!

Cordialement,

Ronan