forked from zenorocha/tracking.js
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbrief.html
More file actions
51 lines (40 loc) · 1.76 KB
/
Copy pathbrief.html
File metadata and controls
51 lines (40 loc) · 1.76 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
<!doctype html>
<html>
<head>
<title>tracking.js - brief algorithm</title>
<meta charset="utf-8">
<script src="../build/tracking.js"></script>
</head>
<body>
<canvas id="canvas1"></canvas>
<canvas id="canvas2"></canvas>
<script>
var width = 256;
var height = 192;
var canvas1 = tracking.one('#canvas1');
var canvas2 = tracking.one('#canvas2');
var context1 = canvas1.getContext('2d');
var context2 = canvas2.getContext('2d');
tracking.Canvas.loadImage(canvas1, 'assets/box1.png', 0, 0, width, height, function() {
tracking.Canvas.loadImage(canvas2, 'assets/box2.png', 0, 0, width, height, function() {
var imageData1 = context1.getImageData(0, 0, width, height);
var imageData2 = context2.getImageData(0, 0, width, height);
var gray1 = tracking.Image.grayscale(imageData1.data, width, height);
var gray2 = tracking.Image.grayscale(imageData2.data, width, height);
var corners1 = tracking.Fast.findCorners(gray1, width, height);
var corners2 = tracking.Fast.findCorners(gray2, width, height);
var descriptors1 = tracking.Brief.getDescriptors(gray1, width, corners1);
var descriptors2 = tracking.Brief.getDescriptors(gray2, width, corners2);
var matches = tracking.Brief.match(corners1, descriptors1, corners2, descriptors2);
for (var i = 0; i < matches.length; i++) {
var color = '#' + Math.floor(Math.random()*16777215).toString(16);
context1.fillStyle = color;
context1.fillRect(corners1[2*i], corners1[2*i+1], 4, 4);
context2.fillStyle = color;
context2.fillRect(corners2[2*matches[i]], corners2[2*matches[i]+1], 4, 4);
}
});
});
</script>
</body>
</html>