У вас проблема в том, что все ваши векторы имеют разный размер.Вместо того, чтобы пытаться заставить их принять размер кунжута путем заполнения нулями или интерполяции (обе я считаю плохими идеями), измените ваши вычисления так, чтобы длина выходного вектора не зависела от размера изображения.
Это ваш текущий код:
HOG_feat = extractHOGFeatures(I1,'CellSize', [2 2]);
% ^^^
% the image is split in cells of 2x2 pixels
2x2 ячейки слишком малы для этого метода в любом случае.Вместо этого вы можете разделить ваше изображение на определенное количество ячеек, скажем, 100 ячеек:
cellSize = ceil(size(I1)/10);
HOG_feat = extractHOGFeatures(I1,'CellSize', cellSize);
(я использую ceil
в делении, потому что я считаю, что необходимо иметь целочисленный размер. Но яЯ не уверен, нужен ли ceil
или floor
или round
здесь, и у меня нет доступа к этой функции, чтобы проверить ее. Немного проб и ошибок должно показать, какой метод дает согласованный размер вывода.)