[1422d3]: / functions / functions_FeatExtr / Gabor_FeaExt.m

Download this file

86 lines (69 with data), 2.6 kB

 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
function [f, BlkIdx] = Gabor_FeaExt(InImg, V, PCANet, bestWavelets, param)
% =======INPUT=============
% InImg Input images (cell)
% V given PCA filter banks (cell)
% PCANet PCANet parameters (struct)
% .PCANet.NumStages
% the number of stages in PCANet; e.g., 2
% .PatchSize
% the patch size (filter size) for square patches; e.g., [5 3]
% means patch size equalt to 5 and 3 in the first stage and second stage, respectively
% .NumFilters
% the number of filters in each stage; e.g., [16 8] means 16 and
% 8 filters in the first stage and second stage, respectively
% .HistBlockSize
% the size of each block for local histogram; e.g., [10 10]
% .BlkOverLapRatio
% overlapped block region ratio; e.g., 0 means no overlapped
% between blocks, and 0.3 means 30% of blocksize is overlapped
% .Pyramid
% spatial pyramid matching; e.g., [1 2 4], and [] if no Pyramid
% is applied
% =======OUTPUT============
% f PCANet features (each column corresponds to feature of each image)
% BlkIdx index of local block from which the histogram is compuated
% =========================
% addpath('./Utils')
if length(PCANet.NumFilters)~= PCANet.NumStages
fprintf('Length(PCANet.NumFilters)~=PCANet.NumStages\n')
return
end
NumImg = length(InImg);
OutImg = InImg;
ImgIdx = (1:NumImg)';
clear InImg;
%
% for stage = 1:PCANet.NumStages
%
% if stage == 1
%
% %pca output
% [OutImg, ImgIdx] = PCA_output(OutImg, ImgIdx, PCANet.PatchSize(stage), PCANet.NumFilters(stage), V{stage});
%
% % whos ImgIdx
%
% else %if stage == 1
%
% %gabor output
% %[OutImg, ImgIdx] = PCA_output(OutImg, ImgIdx, PCANet.PatchSize(stage), PCANet.NumFilters(stage), V{stage});
% OutImg = Gabor_output(OutImg, bestWavelets, PCANet.NumFilters(stage));
%
% end %if stage == 1
%
% end %for stage
%
% OutImgIdx = kron(ImgIdx, ones(PCANet.NumFilters(end),1));
%
% % whos OutImgIdx
%
% [f, BlkIdx] = HashingHist(PCANet, OutImgIdx, OutImg);
%original PCANet
for stage = 1:PCANet.NumStages
[OutImg, ImgIdx] = PCA_output(OutImg, ImgIdx, PCANet.PatchSize(stage), PCANet.NumFilters(stage), V{stage});
end %for stage
[f, BlkIdx] = HashingHist(PCANet, ImgIdx, OutImg);
% assignin('base', 'OutImg', OutImg);
% assignin('base', 'OutImgIdx', OutImgIdx);
% assignin('base', 'PCANet', PCANet);
% assignin('base', 'ImgIdx', ImgIdx);
% pause