Bonjour,
J'ai un petit problème de mémoire. Voici mon soucis :
Je travaille sur un gros projet j'ai localisé mon problème mais je n'arrive toujours pas à le résoudre.
Je travaille avec de grosses images (1024*50000).
Donc je dois convertir deux images (Ir et Vis) en RGB avec cette fonction :
Lors de la première "passe" Ir il n'y a aucun soucis. J'ai en entré une image (Gray) de taille 1024*50000 convertie grâce à cette fonction en image RGB de taille identique.
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 IplImage* COpenCvProcess::convertToRGB(IplImage *image) { try { cvSetErrMode(CV_ErrModeParent); // Déjà en couleurs if((image->nChannels == 3) || (image->nChannels == 4)) return image; // Conversion else { IplImage *tmp = cvCreateImage(cvSize(image->width, image->height), IPL_DEPTH_8U, 3); cvCvtColor(image, tmp, CV_GRAY2RGB); // Suppression de l'ancienne image destroyIpl(&image); // Reassignation return tmp; } } catch(std::exception &e) { qWarning() << e.what(); return 0; } }
Par contre lors de la seconde "passe" Vis lors du cvCreateImage() OpenCv m'envoie une erreur : Out of Memory (Insufficient memory) cvAlloc.
Je ne sais pas trop où viser, avez vous des indices?
Merci d'avance,
Partager