Bonjour,
Mon problème est comment créer un procédure ou un fonction si j'utilise mfc application.
Ma fenêtre contient deux slider et une partie pour afficher une image. (Mon programme est fais le fonction de binarisation). Le premier slider pour seuil de binarisation et le deuxième pour dit que la fonction de binarisation est inverse ou non. J’ai un procédure qui a pour but de fonction de callback va être appelée chaque fois qu'une TrackBall sera modifiée.
Dans cette fonction, on a juste à :
-déterminer l'algorithme de seuillage à utiliser (en fonction de la valeur de la variable inverser) ;
-effectuer le seuillage avec le seuil ;
-rafraîchir l'affichage de l'image binarisée.
En gros, ça va nous donner :
Code : C++
et j'ai une fonction main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void seuillage(int valeur){ int traitement; if(inverser==0)traitement=CV_THRESH_BINARY; else traitement=CV_THRESH_BINARY_INV; cvThreshold(img_nvg, img_bin, seuil, 255, traitement); cvShowImage("Binarisation", img_bin); }
Code : C++
merci
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
29
30
31
32
33
34
35
36
37
38
39
40 int main() { //Initialisations img=cvLoadImage("/home/arnaud/Images/lena.jpg"); img_nvg=cvCreateImage(cvGetSize(img), img->depth, 1); img_bin=cvCloneImage(img_nvg); //Contrôle de l'origine inverser=0; int flip=0; if(img->origin!=IPL_ORIGIN_TL){ flip=CV_CVTIMG_FLIP; } cvConvertImage(img, img_nvg, flip); cvNamedWindow("Originale", CV_WINDOW_AUTOSIZE); cvNamedWindow("Binarisation", CV_WINDOW_AUTOSIZE); cvShowImage("Originale", img); //Première binarisation seuil=127; cvThreshold(img_nvg, img_bin, seuil, 255, CV_THRESH_BINARY); //Affichage du résultat cvShowImage("Binarisation", img_bin); //Création des trackbars cvCreateTrackbar( "Seuil de binarisation ", "Binarisation", &seuil , 255 , seuillage ); cvCreateTrackbar( "Inverser (0 = non, 1 = oui)", "Binarisation", &inverser, 1, seuillage ); cvWaitKey(0); return 0; }
Partager