如何在MATLAB中将裁剪的人脸图像重塑为一维图像矢量?

时间:2014-01-10 06:06:34

标签: matlab image-processing crop

我使用函数“fdetect”裁剪出检测到的面部,现在我试图将获得的2D图像重塑为一维图像矢量。我尝试了以下方法:

for k=1:length(files)
    %read the images in the folder
    imgs=imread(fullfile);
    fdI=fdetect(imgs);

    targetsize=[256 256];
    img_resized=imresize(fdI,targetsize);
    [irow icol]=size(img_resized',irow*icol,1);
    T=[T temp]   %1D image vector
end

但我得到错误:

函数IMRESIZE期望它的第一个输入A是非空的。

我检查了函数“fdetect”的输出及其nonmpyt,它给出了裁剪的面。 任何人都可以指出我的错误或任何其他方式这样做? 提前致谢。

1 个答案:

答案 0 :(得分:2)

制作2D矢量1D的最简单方法就是使用冒号运算符:

img_resized(:)  %// or fdI(:), not sure which you want to convert

但您也可以使用重塑功能:

reshape(img_resized, [], 1) %// Note that the second parameter specifies how many rows you want. You can be specific if you want, i.e. numel(img_resized), but by passing an empty vector, reshape calculates that dimension for you.