全栈工程师带你开发 ,node开发人脸识别门禁系统
效果图:
知识点: 人脸识别SKD部署, webRTC视频流处理,URL构建blob对象,Canvas映射截图,ajax数据交互,Node图像处理,跨域与413处理,base64解码,post响应,JavaScript开发经验分享等
人脸识别系统的源码项目和视频文末有领取地址
人脸识别系统开发的部分源码示意图:
<!doctype html>
<html lang="en">
<head>
<!--声明当前页面的编码格式 国际编码 UTF-8 中文编码 GBK-->
<meta charset="UTF-8">
<!--声明当前页面的三要素-->
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>please enter your title</title>
<!--样式css 修饰 衣服 化妆品-->
<style>
*{
margin:0;
padding:0;
}
body{
background:#aaa;
}
#video{
width:610px;
height:450px;
border-radius:10px;
margin:50px auto;
background:#fff;
overflow:hidden;
}
.video_top{
height:50px;
line-height:50px;
}
.video_top a{
text-decoration:none;
float:left;
color:#000;
}
.video_top p{
float:left;
margin-left:200px;
}
.video_con{
width:610px;
height:350px;
background:#787878;
}
.video_footer{
height:50px;
line-height:50px;
}
.video_footer a{
color:#000;
text-decoration:none;
}
#canvas{
display:block;
margin:auto;
border:2px solid red;
}
</style>
</head>
<body>
<div id="video">
<div class="video_top">
<a href="javascript:;" onclick ="getPhoto()">截图</a>
<p>在线直播系统开发</p>
</div>
<div class="video_con">
<video id="myVideo" width="610" height="350" autoplay></video>
</div>
<div class="video_footer">
<a href='javascript:;' onclick="getMedia()">打开摄像头</a>
</div>
</div>
<canvas id="canvas" width="610" height="350"></canvas>
<script>
var myVideo = document.getElementById("myVideo");
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
//getUseMedia兼容处理
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;
function getMedia(){
//判断浏览器是否支持摄像头功能
if (navigator.getUserMedia)
{
navigator.getUserMedia({
'video' : true,//打开视频
'audio' : true //打开音频
},sucessFn,errorFn);//获取摄像头成功就执行sucessFn方法,获取失败的话就执行errorFn
}else{
alert("您当前的浏览器不支持摄像头功能!!");
}
}
//获取摄像头里面的视频流给video的src路径
//解析视频流路径
window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;
function sucessFn(stream){
//若果是火狐浏览器
//myVideo.mozSrcObject 视频标签video的src路径对象
if (myVideo.mozSrcObject !== undefined)
{
myVideo.mozSrcObject = stream;
}else{
myVideo.src = window.URL && window.URL.createObjectURL(stream)||stream;
/*if (window.URL)
{
myVideo.src = window.URL.createObjectURL(stream)||stream;
}*/
}
}
function errorFn(ev){
alert("出错了"+ev);
} //截图功能
function getPhoto(){
ctx.drawImage(myVideo,0,0,467,350);
}
</script>
</body>
</html>
这个项目的讲解也有视频,需要项目源码和视频练练手的可以加群:733581373
这个项目需要node坏境下才能开发,更重要的是原生javascript能力!希望大家能重视原生。
如果想看到更加系统的文章和学习方法经验可以关注的微信号:‘web前端技术圈’或者‘webxh6’关注后回复‘2018’可以领取一套完整的学习视频
全栈工程师带你开发 ,node开发人脸识别门禁系统的更多相关文章
- 全栈工程师-史上最强VSCODE插件-提高开发效率
当你点进来的时候 ,你可能是被标题吸引进来的,也有可能是 偶然间,看到的,首先恭喜你,已经准备好向全栈开发工程师靠近 ,那我们不说废话,直接开始,咱们先从安装步骤开始讲起 ,因为有些人连插件在哪都不知 ...
- 《Web全栈工程师的自我修养》读书笔记(转载)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/5 ...
- 全栈工程师眼中的HTTP
HTTP,是Web工程师每天打交道最多的一个基本协议.很多工作流程.性能优化都围绕HTTP协议来进行,但是我们对HTTP的理解是否全面呢?如果前端工程师和后台工程师坐在一起玩捉鬼游戏,他们对HTTP的 ...
- C蛮的全栈之路-序章 技术栈选择与全栈工程师
目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 博主背景 985院校毕业,至今十年C++开发工作经验, ...
- 通往全栈工程师的捷径 —— react
腾讯Bugly特约作者: 左明 首先,我们来看看 React 在世界范围的热度趋势,下图是关键词“房价”和 “React” 在 Google Trends 上的搜索量对比,蓝色的是 React,红色的 ...
- JavaScript 全栈工程师培训教程(来自阮一峰)
来源于:https://twitter.com/ruanyf http://www.ruanyifeng.com/blog/2016/11/javascript.html 全栈工程师培训材料,帮助学习 ...
- 《web全栈工程师的自我修养》阅读笔记
在买之前以为这本书是教你怎么去做一个web全栈工程师,以及介绍需要掌握的哪些技术的书,然而看的过程中才发现,是一本方法论的书.读起来的感觉有点像红衣教主的<我的互联网方法论>,以一些自己的 ...
- JavaScript 全栈工程师培训教程 - 阮一峰
http://www.ruanyifeng.com/blog/2016/11/javascript.html https://github.com/ruanyf/jstraining 我现在的技术方向 ...
- 术语-IT术语-全栈工程师:全栈工程师
ylbtech-术语-IT术语-全栈工程师:全栈工程师 全栈工程师是指掌握多种技能,并能利用多种技能独立完成产品的人. 1.返回顶部 1. 中文名:全栈工程师 外文名:Full Stack engin ...
随机推荐
- VS2015 'utf-8' codec can't decode byte
近日装好Visual Studio 2015 和PTVS准备练习Python开发,遇到一个棘手的问题,编码错误,提示如下: SyntaxError: (unicode error) 'utf-8' c ...
- 如何为ubuntu server 版本 安装图形界面
强烈建议使用命令行的交互方式,就算你在server上装了图形界面,但是在Linux上,大部分重要的操作还是要通过命令行的方式进行操作. 如何为ubuntu server 版本 安装图形界面 Ubunt ...
- Why I donot give up cnblogs for Jianshu
我为什么不放弃博客园使用简书 Why I donot give up cnblogs for Jianshu Chapter0 从2016年8月开始接触简书开始,就有些喜欢上简书了,因为简书支持 ma ...
- [2017-09-04]Abp系列——为什么值对象必须设计成不可变的
本系列目录:Abp介绍和经验分享-目录 这篇是之前翻备忘录发现漏了的,前阵子刚好同事又提及过这个问题,这里补上. 本文重点在于理解什么是值对象的不可变性. Abp的ValueObject以及EF的Co ...
- Kosaraju算法详解
Kosaraju算法是干什么的? Kosaraju算法可以计算出一个有向图的强连通分量 什么是强连通分量? 在一个有向图中如果两个结点(结点v与结点w)在同一个环中(等价于v可通过有向路径到达w,w也 ...
- js学习--变量作用域和作用域链
作为一名菜鸟的我,每天学点的感觉还是不错的.今天学习闭包的过程中看到作用域与作用域链这两个概念,我觉得作为一名有追求的小白,有必要详细了解下. 变量的作用域 就js变量而言,有全局变量和局部变量.这里 ...
- 面向对象五大原则(SRP、OCP、LSP、DIP、ISP)
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt173 OO的五大原则是指 1. SRP(Single Responsibil ...
- new和newInstance区别
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp55 在初始化一个类,生成一个实例的时候:newInstance() ...
- 从概念到业务来看 To B 和 To C 产品区别在哪?
自从互联网火了以后,一大堆 o2o,b2b,c2c 的产品出现,这些名词也渐渐为人熟知,但很多人对这些产品的理解也是停留在概念上,实际上绝大部分人用的都是 To C(也写作2c)产品,比如微信,qq ...
- 1~N任意三个数最大的最小公倍数(Java版)
最大最小公倍数 如题 话不多说,直接上代码 public class MaxCommonMultiple{ public static void main(String[] args) { Scann ...