-
Notifications
You must be signed in to change notification settings - Fork 1
/
llc_coding.m
50 lines (35 loc) · 1.62 KB
/
llc_coding.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
function [] = llc_coding(dataset,datasetDir,params,dictDir)
dictFname = sprintf('dictionary_%d.mat',params.dictionarySize);
load(fullfile(dictDir,dictFname)); % Load variable "dictionary"
featSuffix = params.feat;
for cat = 1:length(dataset)
numImgs = length(dataset(cat).files);
catPath = fullfile(datasetDir,dataset(cat).className);
LLC_all = [];
for img = 1:numImgs
% Load image
[~,imgFname,~] = fileparts(dataset(cat).files{img});
featFname = fullfile(catPath,[imgFname '.' featSuffix]);
load(featFname,'features','-mat'); % Load features
% Output file names
llcFname = sprintf('%s_LLC_encoded_%d.mat', imgFname, params.dictionarySize);
savePath = fullfile(catPath,llcFname);
if (exist(savePath,'file'))
fprintf('File exists! Skipping %s \n',llcFname);
load(savePath);
LLC_all = [LLC_all ; LLCimg];
continue
end
llc = max(LLC_coding_appr(dictionary,features.data)); %max-pooling
llc = llc/norm(llc); %L2 norm
% Save the data for each image
LLCimg = llc;
LLC_all = [LLC_all ; LLCimg];
save(savePath,'LLCimg');
fprintf('LLC coding applied to descriptors of image %s\n',dataset(cat).files{img});
end % end for numImgs
fprintf('LLC coding finished for category %s\n',dataset(cat).className);
savePathAll = fullfile(catPath, sprintf('llc_%d.mat', params.dictionarySize));
save(savePathAll, 'LLC_all');
end % end for categories
end %end llc_coding