Я пытаюсь прочитать файл мата, указанный на следующем веб-сайте ufldl.stanford.edu/housenumbers, в файле train.tar.gz, есть файл мата named digitStruct.mat.Как читать файлы Mat v7.3 в python?
, когда я использовал scipy.io, чтобы прочитать файл мата, он предупреждает меня с сообщением «пожалуйста, используйте hdf-ридер для файлов Matlab v7.3».
исходный файл MATLAB предусмотрено ниже
load digitStruct.mat
for i = 1:length(digitStruct)
im = imread([digitStruct(i).name]);
for j = 1:length(digitStruct(i).bbox)
[height, width] = size(im);
aa = max(digitStruct(i).bbox(j).top+1,1);
bb = min(digitStruct(i).bbox(j).top+digitStruct(i).bbox(j).height, height);
cc = max(digitStruct(i).bbox(j).left+1,1);
dd = min(digitStruct(i).bbox(j).left+digitStruct(i).bbox(j).width, width);
imshow(im(aa:bb, cc:dd, :));
fprintf('%d\n',digitStruct(i).bbox(j).label);
pause;
end
end
, как показано выше, файл мат имеет ключ «digitStruct», и в «digitStruct», ключ «имя» и «BBOX» можно найти , Я использовал h5py API для чтения файла.
import h5py
f = h5py.File('train.mat')
print len(f['digitStruct']['name']), len(f['digitStruct']['bbox'] )
Я могу прочитать массив, однако, когда я петлю через массив, как я могу читать каждый элемент?
for i in f['digitStruct']['name']:
print i # only print out the HDF5 ref
Эй, у вас есть решение? У меня тоже такая же проблема. благодаря –