Я искал несколько дней по этой проблеме и не нашел ни одной решенной темы. Мне нужно загрузить довольно большие изображения (4 ГБ и более, либо .tiff/.png) в код openCV с помощью простого
src = imread(filepath, 1);
Я использую Visual Studio 2013, С++.
Хотя я использую машину с 96 ГБ ОЗУ, при загрузке этих больших изображений с помощью функции «imread» OpenCV появляются предупреждения во время выполнения. Пробовали с меньшими и меньшими изображениями/файлами до тех пор, пока они действительно не будут прочитаны/загружены, поэтому мы знаем, что это вопрос памяти/распределения, поскольку изображения меньшего размера загружаются и обрабатываются правильно.
Консоль обрабатывает следующее сообщение, извлеченное с помощью "catch (...)"
Ошибка OpenCV: значение одного из аргументов выходит за пределы диапазона (общий размер матрицы не соответствует типу «size_t») в cv::setSize, файл C:\builds\2_4_PackSlave-win32-vc12-shared\opencv\modules\ core\src\matrix.cpp, строка 126
С другой стороны, VS2013 показывает следующее предупреждение во время работы (вообще никаких проблем с компиляцией):
Необработанное исключение по адресу 0x76385608 в poblacion.exe: исключение Microsoft C++: cv::Exception в ячейке памяти 0x00C7EA70
также утверждает, что «символы не загружены». Компилируем в Win32, в режиме отладки.
Эта проблема является ошибкой № 3258, но там не обнаружено решенной темы, просто обсуждение типа size_t не приводит к четкому решению... Должен быть способ чтения больших изображений без использования библиотек openCV...
Это случилось с кем-нибудь там, кто может нам помочь?? Выкладываю любое удовлетворяющее решение.
СПАСИБО заранее!
Алекс