在近期项目中有一个奇怪的需求,就是要求页面调取摄像头进行人脸识别,虽然感觉在PC端网站调取摄像头不符合常识,但需求都提了,那就稍微满足(敷衍)一下吧!

前端人脸识别中所需的东西有哪一些:

1.电脑(没有你就别干了);

2.摄像头(没有就去买);

3.插件包(在我资源里面找找,我上传了);

4.人脸(这个人人都有);

进入主题:

<template><div><template><Row :gutter="16"><Col span="12"><div class="camera_outer" style="position: relative;"><video id="videoCamera" width="480" height="560" autoplay></video><canvas style="display: block;position: absolute;top: 0;" width="480" height="560" id="canvasCamera"></canvas><div class="button"><Button @click="getCompetence()">打开摄像头</Button><Button @click="stopNavigator()">关闭摄像头</Button><Button @click="setImage()">拍照</Button></div></div></Col><Col span="12"><div v-if="imgSrc" class="img_bg_camera"><p>效果预览</p><img :src="imgSrc" alt class="tx_img" /></div></Col></Row></template></div>
</template>
<script>
export default {data() {return {videoWidth: 450,videoHeight: 650,imgSrc: "",thisCancas: null,thisContext: null,thisVideo: null,openVideo:false};},mounted(){//this.getCompetence()//进入页面就调用摄像头},methods: {// 调用权限(打开摄像头功能)getCompetence() {var _this = this;var a = document.getElementById("canvasCamera");var b = a.getContext("2d");this.thisVideo = document.getElementById("videoCamera");this.thisVideo.style.display = 'block';var tracker = new tracking.ObjectTracker('face');tracker.setInitialScale(4);tracker.setStepSize(2);tracker.setEdgesDensity(0.1);this.trackerTask = tracking.track('#videoCamera', tracker, { camera: true });tracker.on('track', function(event) {b.clearRect(0, 0, a.width, a.height);event.data.forEach(function(rect){b.font = '18px Helvetica';b.fillText("已识别到人脸,请静止等待拍照",100,40);b.strokeStyle = 'lawngreen';b.strokeRect(rect.x, rect.y, rect.width, rect.height);// setTimeout(_this.setImage(),60000);});});// 获取媒体属性,旧版本浏览器可能不支持mediaDevices,我们首先设置一个空对象if (navigator.mediaDevices === undefined) {navigator.mediaDevices = {};}// 一些浏览器实现了部分mediaDevices,我们不能只分配一个对象// 使用getUserMedia,因为它会覆盖现有的属性。// 这里,如果缺少getUserMedia属性,就添加它。if (navigator.mediaDevices.getUserMedia === undefined) {navigator.mediaDevices.getUserMedia = function(constraints) {// 首先获取现存的getUserMedia(如果存在)var getUserMedia =navigator.webkitGetUserMedia ||navigator.mozGetUserMedia ||navigator.getUserMedia;// 有些浏览器不支持,会返回错误信息// 保持接口一致if (!getUserMedia) {//不存在则报错return Promise.reject(new Error("getUserMedia is not implemented in this browser"));}// 否则,使用Promise将调用包装到旧的navigator.getUserMediareturn new Promise(function(resolve, reject) {getUserMedia.call(navigator, constraints, resolve, reject);});};}var constraints = {audio: false,video: {width: this.videoWidth,height: this.videoHeight,transform: "scaleX(-1)"}};navigator.mediaDevices.getUserMedia(constraints).then(function(stream) {// 旧的浏览器可能没有srcObjectif ("srcObject" in _this.thisVideo) {_this.thisVideo.srcObject = stream;} else {// 避免在新的浏览器中使用它,因为它正在被弃用。_this.thisVideo.src = window.URL.createObjectURL(stream);}_this.thisVideo.onloadedmetadata = function(e) {_this.thisVideo.play();};}).catch(err => {console.log(err);});},//  绘制图片(拍照功能)setImage() {var _this = this;// canvas画图var a = document.getElementById("canvasCamera");var b = a.getContext("2d");b.drawImage(_this.thisVideo,0,0,_this.videoWidth,_this.videoHeight);// 获取图片base64链接var image = a.toDataURL("image/png");_this.imgSrc = image;//赋值并预览图片_this.stopNavigator();return;},// 关闭摄像头stopNavigator() {this.thisVideo.srcObject.getTracks()[0].stop();}// base64转文件,此处没用到// dataURLtoFile(dataurl, filename) {//   var arr = dataurl.split(",");//   var mime = arr[0].match(/:(.*?);/)[1];//   var bstr = atob(arr[1]);//   var n = bstr.length;//   var u8arr = new Uint8Array(n);//   while (n--) {//     u8arr[n] = bstr.charCodeAt(n);//   }//   return new File([u8arr], filename, { type: mime });// }}
};
</script>

上方这是我写好的的demo代码;

对于人脸识别使用的js插件包在我博客资源里面就有,想要自己去下就好。
js插件包原网址:https://trackingjs.com/ 。

下好以后在index.html页面引入),然后贴上上方的代码,你也可以按照项目需求改成你需要的样子,里面有很多没有用的代码,可以自己进行删减。

前端实现调取摄像头实现人脸识别相关推荐

  1. FPGA驱动摄像头实现人脸识别(基于肤色)

    FPGA驱动摄像头实现人脸识别(基于肤色) 验证平台:黑金AX309 OV5640 时至今日图像处理已经得到了广泛应用,今天我们来讲一讲利用FPGA结合摄像头来实现一个简单的人脸识别(当然误检率很高, ...

  2. 基于python调用摄像头进行人脸识别,支持多张人脸同时识别

    介绍 调用摄像头进行人脸识别, 支持多张人脸同时识别; 摄像头人脸录入 请不要离摄像头过近, 人脸超出摄像头范围时会有 "OUT OF RANGE" 提醒 提取特征建立人脸数据库 ...

  3. python鱼眼图像识别_一种基于鱼眼摄像头的人脸识别锁以及识别方法与流程

    本发明涉及人脸识别领域,特别涉及一种基于鱼眼摄像头的人脸识别锁. 背景技术: 人脸识别具有用在门锁上存在一些不足.例如,门锁一般装在门上,其高度在安装时已经固定,针对不同身高的用户来说可能造成人脸图像 ...

  4. Java + opencv 实现人脸识别,图片人脸识别、视频人脸识别、摄像头实时人脸识别

    搭建环境 opencv官网下载windows安装包 https://opencv.org/releases/ 选择最新版4.1.1 下载完成后是一个opencv-4.1.1-vc14_vc15.exe ...

  5. VUE+faceApi.js实现摄像头拍摄人脸识别

    需求:前端获取到摄像头信息,通过模型来进行判断人像是否在镜头中,镜头是否有被遮挡. 实现步骤: 1.通过video标签来展示摄像头中的内容 2.通过canvas来绘制视频中信息进行展示 3.在拍照时候 ...

  6. python人脸识别毕业设计-用python3.6在电脑上实现用摄像头来人脸识别源程序

    # -*- coding: UTF-8 -*- import face_recognition import cv2 import os # 这是一个超级简单(但很慢)的例子,在你的网络摄像头上实时运 ...

  7. 调用远程摄像头进行人脸识别_人脸识别技术植入手机APP

    随着物联网技术的日益成熟,我们看到已经有很多APP用到了人脸识别技术,特别是金融和互联网领域的应用纷纷加入了人脸识别.表示,人脸识别技术基于人的脸部特征信息进行身份识别,为互联网金融等行业解决在线多维 ...

  8. python调用摄像头人脸识别代码_利用face_recognition,dlib与OpenCV调用摄像头进行人脸识别...

    用已经搭建好 face_recognition,dlib 环境来进行人脸识别 未搭建好环境请参考: 使用opencv 调用摄像头 import face_recognition import cv2 ...

  9. csi python 摄像头 树莓派_树莓派之摄像头和人脸识别

    安装好Python与树莓派外置硬件GPIO库文件 sudo apt-get install python-rpi.gpio 在python中使用GPIO示例: import RPi.GPIO as G ...

  10. 调用远程摄像头进行人脸识别_工地安全:AI如何实现安全帽检测与人脸识别?...

    安全生产一直是施工生产中很重要的一部分,只有保障了员工的安全,才能保证企业的利益.安全帽作为保护.防护的重要防范手段,一直是各大企业要求员工佩戴的,可还是发生了各种由于未佩戴安全帽导致的安全事故. 通 ...

最新文章

  1. Eigen C++开源矩阵计算工具——Eigen的简单用法
  2. LeetCode 680 验证回文字符串 Ⅱ
  3. 删除git所有历史记录 仅保留当前文件
  4. Tcl与Design Compiler (八)——DC的逻辑综合与优化
  5. HTML入门学习 -- HTML5 视频与音频
  6. 发现一个HTML Form提交的小问题,不知道大家是不是都注意到了
  7. 凌晨!腾讯紧急宣布再度延期复工时间到24号;上班感染肺炎算工伤;小米VIVO完成统一推送适配...
  8. 最近租房有点烦!技术人如何用Python找到称心如意的“小窝”?
  9. P1441 砝码称重
  10. mysql5.5默认引擎,在MySQL5.5以上系统中,默认的存储引擎是( )。
  11. 基于springboot房产在线租房管理系统
  12. 2015-2018节假日表
  13. 黑苹果之联想Y430P亮度记忆功能
  14. 音乐专业如何利用计算机思维,利用信息技术培养学生音乐创造思维能力
  15. [电脑]电脑面前的自我保护
  16. Oracle ORA-01031:权限不足
  17. 硬件设计—数字电路常用设计准则
  18. 【数据结构复习自用】树的性质
  19. 小程序离屏canvas(createOffscreenCanvas)生成推广海报
  20. 华硕vm510l拆电池图解_华硕vm510l的拆机教程详解 参数报价

热门文章

  1. Msql 主从原理介绍-通俗易懂
  2. C#实现微信自动发送消息
  3. 夜天之书 #34 企业如何实践开源协同
  4. 怎么用计算机求正切值的角度,在excel中如何使用正切函数计算,excel函数tan怎么反算角度...
  5. html5跳转页面接收参数,HTML页面跳转及参数传递问题
  6. Robo 3T(Studio 3T)最新版安装教程
  7. SpringBoot java串口操作(rxtx)
  8. 问题:找不到该项目,该项目不在指定目录下.......请确认位置......
  9. js对象定义的几种方法
  10. 山西省行政村边界数据/乡镇街道边界数据/行政区划边界分布