fast.html 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>tracking.js - feature detection</title>
  6. <link rel="stylesheet" href="assets/demo.css">
  7. <script src="../build/tracking-min.js"></script>
  8. <script src="../node_modules/dat.gui/build/dat.gui.min.js"></script>
  9. <style>
  10. .demo-container {
  11. background: #131112;
  12. }
  13. #image {
  14. position: absolute;
  15. left: -1000px;
  16. top: -1000px;
  17. }
  18. #canvas {
  19. position: absolute;
  20. left: 50%;
  21. top: 50%;
  22. margin: -200px 0 0 -200px;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div class="demo-title">
  28. <p><a href="http://trackingjs.com" target="_parent">tracking.js</a> - detect feature points on a image</p>
  29. </div>
  30. <div class="demo-frame">
  31. <div class="demo-container">
  32. <img id="image" src="assets/fast.png" />
  33. <canvas id="canvas" width="400" height="400"></canvas>
  34. </div>
  35. </div>
  36. <script>
  37. window.onload = function() {
  38. var width = 400;
  39. var height = 400;
  40. var canvas = document.getElementById('canvas');
  41. var context = canvas.getContext('2d');
  42. var image = document.getElementById('image');
  43. window.fastThreshold = 10;
  44. var doFindFeatures = function() {
  45. tracking.Fast.THRESHOLD = window.fastThreshold;
  46. context.drawImage(image, 0, 0, width, height);
  47. var imageData = context.getImageData(0, 0, width, height);
  48. var gray = tracking.Image.grayscale(imageData.data, width, height);
  49. var corners = tracking.Fast.findCorners(gray, width, height);
  50. for (var i = 0; i < corners.length; i += 2) {
  51. context.fillStyle = '#f00';
  52. context.fillRect(corners[i], corners[i + 1], 3, 3);
  53. }
  54. };
  55. doFindFeatures();
  56. var gui = new dat.GUI();
  57. gui.add(window, 'fastThreshold', 0, 100).onChange(doFindFeatures);
  58. }
  59. </script>
  60. </body>
  61. </html>