-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathcreateAffMatrix.m
More file actions
52 lines (45 loc) · 2.09 KB
/
Copy pathcreateAffMatrix.m
File metadata and controls
52 lines (45 loc) · 2.09 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
function [ W, W1,S, index_mat,IDX_vote,S_tan,Data_PCA ] = createAffMatrix( feats,params,affinity_type )
%% W1 affinity matrix using Euclidean distances and RBF.
switch affinity_type
case 'local_PCA'
% [W1,index_mat, S] = RBF_affnity(feats,params);
[W1,index_mat, S,IDX_vote,S_tan] = RBF_affnity_knn_fast(feats,params);
%% W2 affinity using local tangent space with local PCA
[Data_PCA,W2,theta] = locPCA_affnity_fast(feats, IDX_vote, params);
%index_mat=IDX_vote;
%% Connecting all the points
Wc = W1.*W2;
W = Wc.*Wc';
%W_large=W_large.*W2;
%W_large=W_large.*W_large;
case 'Hillinger_affinity'
%params.affinity_type='cosine';
% [W1, index_mat, S] = affinity.RBF_affnity(feats,params);
[W1,index_mat, S,IDX_vote,S_tan] = RBF_affnity_knn(feats,params);
params.affinity_type= 'Hillinger_affinity';
[W2, W_l]= Hillinger_affinity( feats, IDX_vote,params);
Wc = W1.*W2;
W = Wc.*Wc';
case 'sqeuclidean'
% [W1,index_mat, S] = affinity.RBF_affnity(feats,params);
% [W1,index_mat, S,IDX_vote,S_tan] = affinity.RBF_affnity_knn(feats,params);
[W1,index_mat, S,IDX_vote,S_tan] = RBF_affnity_knn_fast(feats,params);
W=W1;
case 'outliers'
[W1,index_mat, S,IDX_vote,S_tan] = RBF_affnity_knn_fast(feats,params);
W=W1;
case 'cosine'
% [W1,index_mat, S] = affinity.RBF_affnity(feats,params);
% [W1,index_mat, S,IDX_vote,S_tan] = affinity.RBF_affnity_knn(feats,params);
[W1,index_mat, S,IDX_vote,S_tan] = RBF_affnity_knn_fast(feats,params);
W = W1;
case 'Tensor_Voting'
%[W1,index_mat, S] = affinity.RBF_affnity(feats,params);
[W1,index_mat, S,IDX_vote,S_tan] = RBF_affnity_knn(feats,params);
%% W2 affinity using the Tensor Voting Graph
[Normal_Space,W2,theta] = TVG_affinity_knn(feats, IDX_vote, params,S_tan);
%% Connecting all the points
Wc = W1.*W2;
%W=(Wc + Wc')./2;
W = Wc.*Wc';
end