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 :
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 # 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; }
et mon header :
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; }
J'ai mis des bibliothèques dans le header pour gérer le String et le vector
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);
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
Partager