bonjour,
j'ai un problème de fuite mémoire pour cvGet2D.
je suis aller un peut partout sur le net mais je n'ai pas trouver la solution mis a part qu'il y avait bien des problème de fuite mémoire sur la fonction CvGet2D.
je cherche donc à la contourner.
voila ma fonction fonction suivante:
j'ai tenté de passer avec un seul cvGet2D comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 for(i = 0; i < abs(Xx2-Xx1+1); i++) { for(j = 0; j < abs(Yy2-Yy1+1); j++) { int r = cvGet2D(img2, j, i).val[2]; int g = cvGet2D(img2, j, i).val[1]; int b = cvGet2D(img2, j, i).val[0]; CvScalar pixel = cvScalar(b, g, r); cvSet2D(img4, j, i, pixel); } }
effectivement j'ai moins de perte mémoire donc mon programme tourne plus longtemps mais il plante quand même au bout de 30 secondes!!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 for(i = 0; i < abs(Xx2-Xx1+1); i++) { for(j = 0; j < abs(Yy2-Yy1+1); j++) { CvScalar c= cvGet2D(img2, j, i); int r = c.val[2]; int g = c.val[1]; int b = c.val[0]; CvScalar pixel = cvScalar(b, g, r); cvSet2D(img4, j, i, pixel); } }
comment puis-je faire pour ne pas utiliser cvGet2D?
ou pour éviter la fuite mémoire?
merci.
Partager