trainingSet = imageDatastore(syntheticDir, 'IncludeSubfolders', true, 'LabelSource', 'foldernames');
numImages = numel(trainingSet.Files);
trainingFeatures = zeros(numImages, hogFeatureSize, 'single');
faceDetector = vision.CascadeObjectDetector;
cellSize = [64 64];
for i = 1:numImages
img = readimage(trainingSet, i);
img = rgb2gray(img);
bboxes = faceDetector(img);
img = imcrop(img,bboxes);
img = imresize(img,[100 100]);
trainingFeatures(i, :) = extractHOGFeatures(img, 'CellSize', cellSize);
end
上面的代码给出了“无法执行分配,因为左侧的大小是 1×2304,而右侧的大小是 1×0。” 为什么是这样?如果我删除面部检测并裁剪它不会出错。但是,当我将每个图像的大小调整为相同大小时,裁剪后 100x100,肯定不应该有大小差异吗?