tracking.js示例 - 浏览器中检测图像中的人脸_tracking.js中文文档-程序员宅基地

技术标签: html5  html  javascript  

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="./build/tracking-min.js"></script>
  <script src="./build/data/face-min.js"></script>
  <script src="./build/data/mouth-min.js"></script>
  <script src="./build/data/eye-min.js"></script>
  <style>
    .rect {
      border: 2px solid #a64ceb;
      left: -1000px;
      position: absolute;
      top: -1000px;
    }

    .demo-container {
      width: 100%;
      height: 530px;
      position: relative;
      background: #eee;
      overflow: hidden;
      border-bottom-right-radius: 10px;
      border-bottom-left-radius: 10px;
    }

  </style>
</head>

<body>
  <div class="demo-container">
    <img src="./imgs/2.png" alt="" id="img">
  </div>

  <script>
    window.onload = function () {

      // 创建追踪识别对象
      var tracker = new tracking.ObjectTracker(['face', 'eye', 'mouth']);
      // 设置 追踪识别的图片
      tracking.track('#img', tracker);
      // 监听追踪事件
      tracker.on('track', function (event) {
        console.log(event.data);
        // 获取追踪数据
        event.data.forEach(function (rect) {
          window.plot(rect.x, rect.y, rect.width, rect.height);
        });
      });

      window.plot = function (x, y, w, h) {
        var img = document.querySelector('#img')
        var rect = document.createElement('div');
        document.querySelector('.demo-container').appendChild(rect);
        rect.classList.add('rect');
        rect.style.width = w + 'px';
        rect.style.height = h + 'px';
        rect.style.left = (img.offsetLeft + x) + 'px';
        rect.style.top = (img.offsetTop + y) + 'px';
      };
    }

  </script>

</body>

</html>

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/allway2/article/details/120725669

智能推荐

MPAndroidChart数据异常NegativeArraySizeException: -2_java.lang.negativearraysizeexception: -2-程序员宅基地

文章浏览阅读1.3k次。今天用折线图出现了这个异常,信息如下:java.lang.NegativeArraySizeException: -2 at com.github.mikephil.charting.utils.Transformer.generateTransformedValuesLine(Transformer.java:178) at com.github.mikephil.charting.renderer.LineChartRenderer.drawValues(LineChart..._java.lang.negativearraysizeexception: -2

2 通信信号特征参数及调制方式分类器_瞬时信号的特征参数-程序员宅基地

文章浏览阅读2.9k次,点赞2次,收藏12次。文章目录2.1统计量特征2.1.1信号瞬时特征2.1.1.1 瞬时幅度、相位、频率直接从原始样本进行分类是无目的的,对分类,重要的不是一个模式的完整描述而是导致区别不同类别模式的那些“选择性”信息的提取,特征提取的目的尽可能集中表征显著类别差异的模式信息另一目的尽可能缩小数据集,提高识别效率、减少计算量对通信信号来讲,用不同的调制方式时,特征参数的取值特点不同。可通过..._瞬时信号的特征参数

go利用monkey框架的动态代理实现AOP_go 使用动态代理实现aop-程序员宅基地

文章浏览阅读5.7k次。前言从java转go以来一直在寻找动态代理的实现方案,几经波折,终于找到了位牛人写的框架monkey,简单喵了下其源码,貌似是通过替换底层函数字节码来达到动态替换效果,后续再仔细拜读。这里我利用monkey框架实现了一个简单的AOP框架monkey项目地址:https://github.com/bouk/monkeyaop码云地址:https://gitee.com/sqxwww/ao..._go 使用动态代理实现aop

canvas动画requestNextAnimationFrame兼容性写法-程序员宅基地

文章浏览阅读2.7k次。,采用window.requestAnimationFrame()实现动画效果。这个方法提供了更加平缓并更加有效率的方式来执行动画,当系统准备好了重绘条件的时候,才调用绘制动画帧。一般每秒钟回调函数执行60次,也有可能会被降低。想要了解更多关于动画循环的信息,尤其是游戏,// #FFEAAAwindow.requestNextAnimationFrame = (function() { var originalWebkitRequestAnimationFrame = undefined, .._requestnextanimationframe

Android富文本编辑器总结(五)_android html.tohtml-程序员宅基地

文章浏览阅读4.1k次。一: EditText文本转HTML Android中有Html.toHtml()的方法,可以将颜色、加粗等转化为html标签,简化了我们标签的插入算法,但是也存在一些问题。 1. @XXX 和 $123456 的问题 @XXX是作为一个整体,创建了一张Bitmap然后使用ImageSpan插入到文本中的,这样就可以实现光标只能定位在@XXX之前或之后,要删除就整体删除。但是通过Html.to_android html.tohtml

super关键字的三种用法_cmake __super关键字-程序员宅基地

文章浏览阅读136次。1、在子类的成员方法中,访问父类的成员变量。2、在子类的成员方法中,访问父类的成员方法。3、在子类的构造方法中,访问父类的构造方法。_cmake __super关键字

随便推点

(Entity Framework)当 IDENTITY_INSERT 设置为 OFF 时,不能为表‘XXX’中的标识列插入显式值。_entityframework 当 identity_insert 设置为 off 时-程序员宅基地

文章浏览阅读3.7k次。最近使用EF框架在向数据库中插入数据时,运行到db.SaveChanges()处出现错误(BookID是表Book的id,且数据库中设置的是自增), 代码如下:try{ Model.Book info = new Model.Book(); info.BookName = bookName; info.Summary = summary; info.OpDate = Da_entityframework 当 identity_insert 设置为 off 时

Atcode 2334 dfs_给定一个长度为n的由 o、x、? 组成的字符串-程序员宅基地

文章浏览阅读160次。题意:给定一个长度为n的字符串,字符串由‘o’和‘x’组成, ‘o’对于羊,那么他左右两边的动物种类相同),‘x’对于羊来说就是左右两边的动物种类相反,而对于狼两者意义相反,(‘o’不同,‘x’相同);要求出任意一种动物序列(序列是循环的,也就是1的前一个是n,n的后一个是1),S代表羊W代表狼符合给定的字符串。 题解:如果第一个位置和第二个位置的动物确定,那么就可以由已知字符串推导出序列..._给定一个长度为n的由 o、x、? 组成的字符串

基于EasyNVR摄像机无插件直播方案二次开发实现自己的摄像机IPC-NVR无插件化直播解决方案_nvr 支持 web无插件开发包-程序员宅基地

文章浏览阅读437次。我们通常在构架一套视频SaaS应用的过程中,将平台设计为3层:视频硬件层(视频源)、视频能力平台(vPaaS)、视频应用平台(vSaaS),视频硬件包括各种IPC、NVR、编码器等视频生成设备,vPaaS视频能力平台部分主要就是对这些不同的硬件进行整合,输出统一接口、统一标准的视频流,vSaaS视频应用层主要就是对视频的增值服务了,这个是跑业务的部分;_nvr 支持 web无插件开发包

2021-10-28_tiktok红人视频爬虫-程序员宅基地

文章浏览阅读912次。Tiktok爬虫github地址:https://github.com/carcabot/tiktok-signature.git,亲测有效Installationnpm i tiktok-signatureUsage[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s0WNkkl8-1635413604581)(examples/howto.gif)]Generating signatures on high performance levelBuildd_tiktok红人视频爬虫

如何写出优秀的程序? _怎样写出优秀的博客-程序员宅基地

文章浏览阅读860次。上一篇文章得到很多朋友的关注,无论是褒是贬,都由衷地开心,其中有好几位朋友都提到了好的源码难求,其实从我的观点来说,阅读程序并不分好坏,好的源码确实让人易读易懂,甚至心旷神怡,而不好的源码让人百思不得其解,甚至心烦意乱,但作为学习者,应保持冷静的头脑,善于从别人的错误或混乱之中得到乐趣,毕竟能看得出别人的错误也可以证明自已的水平要高,阅读程序与发现错误本身也是一个学习的过程。 _怎样写出优秀的博客

【Lua】windows下使用Cygwin+NDK编译Android平台的LuaJIT库_android luajit windows-程序员宅基地

文章浏览阅读3k次。1.准备安装Cygwin和NDK下载LuaJIT源代码3.创建编译脚本在LuaJIT源代码目录里新建文件,考进以下内容:export NDK=D:/tools/android_sdk/android-ndk-r8eexport NDKABI=14export NDKVER=$NDK/toolchains/arm-linux-androideabi-4.7export_android luajit windows

推荐文章

热门文章

相关标签