summaryrefslogtreecommitdiffstats
path: root/SD-VBS/benchmarks/stitch/src/matlab/ransac.m
diff options
context:
space:
mode:
Diffstat (limited to 'SD-VBS/benchmarks/stitch/src/matlab/ransac.m')
-rwxr-xr-xSD-VBS/benchmarks/stitch/src/matlab/ransac.m19
1 files changed, 19 insertions, 0 deletions
diff --git a/SD-VBS/benchmarks/stitch/src/matlab/ransac.m b/SD-VBS/benchmarks/stitch/src/matlab/ransac.m
new file mode 100755
index 0000000..4a3c364
--- /dev/null
+++ b/SD-VBS/benchmarks/stitch/src/matlab/ransac.m
@@ -0,0 +1,19 @@
1function [retH retPntsIdx]=ransac(pntsPrev, pntsCur, k, epsilon)
2[n temp]=size(pntsPrev);
3pntsPrev=[pntsPrev(:,1:2) ones(n,1)];
4pntsCur=[pntsCur(:,1:2) ones(n,1)];
5
6inlierIdx=cell(k,1);
7inlierNum=zeros(k,1);
8for i=1:k
9 seed=randperm(n);
10 H=calculateH(pntsPrev(seed(1:4),:), pntsCur(seed(1:4),:));
11 err=(pntsCur-transformH(H,pntsPrev));
12 inlierIdx{i}=find(sum(err(:,1:2).^2,2) < epsilon);
13 inlierNum=length(inlierIdx{i});
14end
15
16[v maxIdx]=max(inlierNum);
17retPntsIdx=inlierIdx{maxIdx};
18retH=calculateH(pntsPrev(retPntsIdx,:), pntsCur(retPntsIdx,:));
19