-
Notifications
You must be signed in to change notification settings - Fork 3
/
locmaxacc.m
74 lines (63 loc) · 1.37 KB
/
locmaxacc.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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
function [angle,displ,iangle,idispl] = locmaxacc(A,outerangles,accwidth,nlocmax,angproxthr,dispproxthr)
% ag = [];
% dp = [];
% ia = [];
% id = [];
% pk = [];
%
% for i = 1:size(A,1)
% r = A(i,:);
% [pks,lcs] = findpeaks(r);
%
% % plot(r), hold on
% % plot(lcs,pks,'o'), hold off
% % pause
%
% a = outerangles(i)+pi/2;
% if a > pi
% a = a-pi;
% end
% for j = 1:length(lcs)
% d = lcs(j)-accwidth/2;
% ag = [ag a];
% dp = [dp d];
% ia = [ia i];
% id = [id lcs(j)];
% pk = [pk pks(j)];
% end
% end
%
% [~,i] = sort(pk,'descend');
% ag = ag(i);
% dp = dp(i);
% ia = ia(i);
% id = id(i);
% angle = ag(1:nlocmax);
% displ = dp(1:nlocmax);
% iangle = ia(1:nlocmax);
% idispl = id(1:nlocmax);
angle = zeros(1,nlocmax);
displ = zeros(1,nlocmax);
iangle = zeros(1,nlocmax);
idispl = zeros(1,nlocmax);
A0 = A;
for i = 1:nlocmax
[m,im] = max(A0,[],2);
[~,im2] = max(m);
a = outerangles(im2)+pi/2;
if a > pi
a = a-pi;
end
d = im(im2)-accwidth/2;
angle(i) = a;
displ(i) = d;
iangle(i) = im2;
idispl(i) = im(im2);
% A0(im2,im(im2)-proxthr:im(im2)+proxthr) = 0;
a0 = max(im2-angproxthr,1);
a1 = min(im2+angproxthr,size(A0,1));
A0(a0:a1,im(im2)-dispproxthr:im(im2)+dispproxthr) = 0;
% imshow(A0)
% pause
end
end