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