对文件夹中的每个图像运行SIFT并存储描述符

时间:2016-05-25 15:22:45

标签: matlab image-processing sift vlfeat

我正在尝试为文件夹中的每个图像获取描述符并存储它们。我希望能够将它们与vl_kmeans一起使用,这样我就可以对它们进行聚类,然后根据每个图像的可视单词数构建直方图。 这是我到目前为止的代码,但是descrs给了我一个空矩阵。

conf.dataDir = 'data\Samples' ;
N_WORDS = 400;

images = {} ;
filelist = dir(fullfile(conf.dataDir, '*.jpg'));
descrs = {} ;
parfor i=1:(size(filelist,1)-100)
    fname = filelist(i).name;
    images=imread(fname);
    [F, descrs{i}] = vl_dsift(single(images(i)),'Step', 10, 'Fast'); 
    descrs{i} = single(descrs{i});
end

1 个答案:

答案 0 :(得分:0)

我犯了很多错误,发现它们并修复它们。这是代码:

conf.dataDir = 'data\Samples' ;
N_WORDS = 400;

images = {};
filelist = dir(fullfile(conf.dataDir, '*.jpg'));
descrs = {};
parfor i=1:(size(filelist,1)-100)
    fname = filelist(i).name;
    images{i} = single(rgb2gray(imread(fname))) ;
    [f{i}, d{i}] = vl_dsift(images{i},'Step', 10, 'Fast'); 
end