Работаю с МАТЛАБ недавно. Установлена версия R2017a. Общая задача - анализ изображений. При работе с файлами - никаких вопросов не возникает все работает отлично. Но обработать придется миллионы изображений. Они содержатся в MS SQL, в поле blob, в виде JPG - файлов. Для теста попробовал произвести импорт 300 записей с помощью мастера Database Explorer. Используемый ODBC driver - SQL Server Native client 11.0. Все просто и замечательно. Получаю Cell Array 300x2 cell. Номер записи и непосредственно сам рисунок. При просмотре, видно что размерность изображений разная:
20243x1 uint8
19020x1 uint8 и т.д.
Поработал - убедился - все прекрасно: фотографии отличные.
С помощью того же DataBase Explorer сгенерил скрипт импорта данных:
%Set preferences with setdbprefs.
setdbprefs('DataReturnFormat', 'cellarray');
setdbprefs('NullNumberRead', 'NaN');
setdbprefs('NullStringRead', 'null');
%Make connection to database. Note that the password has been omitted.
%Using ODBC driver.
conn = database('Test10', 'user', 'pass');
%Read data from database.
curs = exec(conn, ['SELECT RecID, Image FROM Images'];
curs = fetch(curs);
close(curs);
%Assign data to output variable
ImpData = curs.Data;
%Close database connection.
close(conn);
%Clear variables
clear curs conn
Данные импортятся, НО! размерность изображений стала постоянная и урезанная :
8000x1 int8
8000x1 int8
Попытался поэксперементировать с параметрами setdbprefs, conn и exec - ничего путного не получилось (Возможно мало старался - но недельку угробил).
Вопросу поставил тип "Сложный", потому-что ни поисковые системы, ни обращение на официальные ресурсы (как на русском, так и на английском языке) ответа не дали.
Может кто - нибудь подсказать, хоть в каком направлении копать? Встроенный мастер же нормально импортирует.