Я работаю с годами над обработкой изображений с OpenCV 2.2.0.
Я получаю ошибку выделения памяти ТОЛЬКО при попытке выделить IplImage> 2 ГБ, учитывая, что такое же распределение с CvMat работает.Я могу выделить все, что захочу, используя CvMat, я попробовал также> 10 ГБ.
OpenCV был скомпилирован 64-битным, а также это простое приложение.Кроме того, я уверен, что приложение работает в 64-битном режиме, как я вижу из диспетчера задач.ОС (Windows 7) тоже 64-битная.
int main(int argc, char* argv[])
{
printf("trying to allocate >2GB matrix...\n");
CvMat *huge_matrix = cvCreateMat(40000,30000,CV_16UC1);
cvSet(huge_matrix,cvScalar(5));
printf("...done!\n\n");
system("PAUSE");
printf("trying to allocate >2GB image...\n");
IplImage *huge_img = cvCreateImage(cvSize(40000,30000),IPL_DEPTH_16U, 1);
cvSet(huge_img,cvScalar(5));
printf("...done!\n\n");
system("PAUSE");
cvReleaseMat(&huge_matrix);
cvReleaseImage(&huge_img);
}
Сообщение об ошибке «Недостаточно памяти: в неизвестной функции ... это может быть ошибка?