summaryrefslogtreecommitdiffstats
path: root/SD-VBS/common/toolbox/ikkjin/getANMS.m
diff options
context:
space:
mode:
authorLeo Chan <leochanj@live.unc.edu>2020-10-22 01:53:21 -0400
committerJoshua Bakita <jbakita@cs.unc.edu>2020-10-22 01:56:35 -0400
commitd17b33131c14864bd1eae275f49a3f148e21cf29 (patch)
tree0d8f77922e8d193cb0f6edab83018f057aad64a0 /SD-VBS/common/toolbox/ikkjin/getANMS.m
parent601ed25a4c5b66cb75315832c15613a727db2c26 (diff)
Squashed commit of the sb-vbs branch.
Includes the SD-VBS benchmarks modified to: - Use libextra to loop as realtime jobs - Preallocate memory before starting their main computation - Accept input via stdin instead of via argc Does not include the SD-VBS matlab code. Fixes libextra execution in LITMUS^RT.
Diffstat (limited to 'SD-VBS/common/toolbox/ikkjin/getANMS.m')
-rwxr-xr-xSD-VBS/common/toolbox/ikkjin/getANMS.m30
1 files changed, 30 insertions, 0 deletions
diff --git a/SD-VBS/common/toolbox/ikkjin/getANMS.m b/SD-VBS/common/toolbox/ikkjin/getANMS.m
new file mode 100755
index 0000000..a40d50c
--- /dev/null
+++ b/SD-VBS/common/toolbox/ikkjin/getANMS.m
@@ -0,0 +1,30 @@
1function [interestPnts]=getANMS(x, y, v, r, dataDir)
2MAX_LIMIT=100000;
3C_ROBUST=1;
4r_sq=r^2;
5points=[x y v];
6[n temp]=size(v);
7[srtdV srtdVIdx]=sort(v,'descend');
8srtdPnts=points(srtdVIdx,:);
9
10interestPnts=zeros(0,3);
11
12suppressR=ones(n,1)*MAX_LIMIT;
13supId=find(suppressR>r_sq);
14
15iter = 0;
16while length(supId)>0
17
18 interestPnts=[interestPnts; srtdPnts(supId(1),:)];
19 srtdPnts=srtdPnts(supId(2:end),:);
20 suppressR=suppressR(supId(2:end),:);
21
22 suppressR=min(suppressR,...
23 (C_ROBUST*interestPnts(end,3)>=srtdPnts(:,3)).*...
24 ((srtdPnts(:,1)-interestPnts(end,1)).^2 + (srtdPnts(:,2)-interestPnts(end,2)).^2)...
25 +(C_ROBUST*interestPnts(end,3)<srtdPnts(:,3))*...
26 MAX_LIMIT);
27
28 iter = iter + 1;
29 supId=find(suppressR>r_sq);
30end