广告
返回顶部
首页 > 资讯 > 精选 >Html5中如何调用手机摄像头并实现人脸识别
  • 237
分享到

Html5中如何调用手机摄像头并实现人脸识别

2023-06-09 13:06:55 237人浏览 独家记忆
摘要

这篇文章主要介绍了HTML5中如何调用手机摄像头并实现人脸识别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求混合App开发,原生壳子+WEBApp,在web部分调用原生摄

这篇文章主要介绍了HTML5中如何调用手机摄像头并实现人脸识别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

需求

混合App开发,原生壳子+WEBApp,在web部分调用原生摄像头功能并且在网页指定区域显示摄像头内容,同时可以手动拍照并进行人脸识别,将识别结果显示在网页上。

技术栈

Vuehtml5、video标签、AndroidiOS、百度ai

分析

使用navigator.mediaDevices.getUserMedia调用系统原生摄像头功能
2、video标签显示摄像头内容
3、canvas标签获取图片
4、将图像上传服务器,通过百度AI识别图片
5、web显示识别结果

核心代码

调用系统原生摄像头功能并使用video标签显示html:

  <video        id="webcam"        :style="videoStyle"        :width="videoWidth"        :height="videoHeight"        loop        preload      >      </video>

javascript

 initVideo() {      let that = this;      this.video = document.getElementById("webcam");      setTimeout(() => {        if (          navigator.mediaDevices.getUserMedia ||          navigator.getUserMedia ||          navigator.webkitGetUserMedia ||          navigator.mozGetUserMedia        ) {          //调用用户媒体设备, 访问摄像头          this.getUserMedia(            {              video: {                width: {                  ideal: that.videoWidth,                  max: that.videoWidth                },                height: {                  ideal: that.videoHeight,                  max: that.videoHeight                },                facingMode: "user",    //前置摄像头                frameRate: {                  ideal: 30,                  min: 10                }              }            },            this.videoSuccess,            this.videoError          );        } else {          this.$toast.center("摄像头打开失败,请检查权限设置!");        }      }, 300);    },     getUserMedia(constraints, success, error) {      if (navigator.mediaDevices.getUserMedia) {        //最新的标准api        navigator.mediaDevices          .getUserMedia(constraints)          .then(success)          .catch(error);      } else if (navigator.webkitGetUserMedia) {        //webkit核心浏览器        navigator.webkitGetUserMedia(constraints, success, error);      } else if (navigator.mozGetUserMedia) {        //firfox浏览器        navigator.mozGetUserMedia(constraints, success, error);      } else if (navigator.getUserMedia) {        //旧版API        navigator.getUserMedia(constraints, success, error);      }    },    videoSuccess(stream) {      this.mediaStreamTrack = stream;      this.video.srcObject = stream;      this.video.play();    },    videoError(error) {      console.error(error);      this.$toast.center("摄像头打开失败,请检查权限设置!");    },

canvas获取摄像头图片

JavaScript:

 this.canvas = document.createElement("canvas");  .... let context = this.canvas.getContext("2d"); context.drawImage(this.video, 0, 0, this.videoWidth, this.videoHeight); this.imgSrc = this.canvas.toDataURL("image/png");

调用百度AI识别图片

JavaScript:

let that = this;        let base64Data = this.canvas.toDataURL();        let blob = this.dataURItoBlob(base64Data);           //        var file = new FORMData();        file.append("file", blob);        file.append("key", that.uuid);        util.ajax          .post("XXXXXXXXXX", file, {            headers: {              "Content-Type": "multipart/form-data"            }          })          .then(function(response) {            if ((response.status = 200)) {                .....识别成功,显示结果            } else {                ......识别失败            }          })          .catch(function(error) {            console.error(error);          });              //base64转换为Blob    dataURItoBlob(base64Data) {      var byteString;      if (base64Data.split(",")[0].indexOf("base64") >= 0)        byteString = atob(base64Data.split(",")[1]);      else byteString = unescape(base64Data.split(",")[1]);      var mimeString = base64Data        .split(",")[0]        .split(":")[1]        .split(";")[0];      var ia = new Uint8Array(byteString.length);      for (var i = 0; i < byteString.length; i++) {        ia[i] = byteString.charCodeAt(i);      }      return new Blob([ia], { type: mimeString });    },

手机适配

由于Android6之后,Android的权限管理出现变化,Android原生的壳子,需要做如下处理:

myWebView.setWebChromeClient(new WebChromeClient() {         @TargetApi(Build.VERSION_CODES.LOLLIPOP)         @Override         public void onPermissionRequest(final PermissionRequest request) {                   request.grant(request.getResources());        }});

IOS系统,Safari11之后可用

OverconstrainedError错误,部分Android手机会报OverconstrainedError错误,原因是摄像头参数设置不合理,找不到指定设置。

感谢你能够认真阅读完这篇文章,希望小编分享的“Html5中如何调用手机摄像头并实现人脸识别”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: Html5中如何调用手机摄像头并实现人脸识别

本文链接: https://www.lsjlt.com/news/256153.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Html5中如何调用手机摄像头并实现人脸识别
    这篇文章主要介绍了Html5中如何调用手机摄像头并实现人脸识别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求混合App开发,原生壳子+webApp,在web部分调用原生摄...
    99+
    2023-06-09
  • 如何使用VUE+faceApi.js实现摄像头拍摄人脸识别
    目录需求:实现步骤:第一步:下载引入必要包下载依赖下载model将项目中的model放入VUE中的public文件加下第二步:先把HTML写上去 第三步 可以开始...
    99+
    2023-05-18
    face api.js 人脸识别 vue实现人脸识别 人脸识别 js
  • HTML5如何通过navigator.mediaDevices.getUserMedia调用手机摄像头
    这篇文章主要介绍了HTML5如何通过navigator.mediaDevices.getUserMedia调用手机摄像头,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。navi...
    99+
    2023-06-09
  • html5如何实现调用摄像头
    小编给大家分享一下html5如何实现调用摄像头,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!html是什么html的全称为超文本标记语言,它是一种标记语言,包含了...
    99+
    2023-06-09
  • 基于python+opencv调用电脑摄像头实现实时人脸眼睛以及微笑识别
    本文教大家调用电脑摄像头进行实时人脸+眼睛识别+微笑识别,供大家参考,具体内容如下 一、调用电脑摄像头进行实时人脸+眼睛识别 # 调用电脑摄像头进行实时人脸+眼睛识别,可直接复制...
    99+
    2022-11-12
  • 怎么用HTML5实现调用手机摄像头拍照功能
    本篇内容介绍了“怎么用HTML5实现调用手机摄像头拍照功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • Android如何实现调用手机摄像头录像限制录像时长
    小编给大家分享一下Android如何实现调用手机摄像头录像限制录像时长,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下因为服务器空间有限,所以视频时长必须有所限制。在xml中先布局一个按钮,点击开始录频。布局一个...
    99+
    2023-06-29
  • 如何使用HTML5实现人脸识别活体认证
    这篇文章主要为大家展示了“如何使用HTML5实现人脸识别活体认证”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用HTML5实现人脸识别活体认证”这篇文章吧...
    99+
    2022-10-19
  • Qt6如何实现调用摄像头并显示画面
    这篇文章主要讲解了“Qt6如何实现调用摄像头并显示画面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Qt6如何实现调用摄像头并显示画面”吧!1、Cmake环境CmakeLists.txt添加...
    99+
    2023-07-05
  • 如何实现HTML5 Canvas+JS控制电脑或手机上的摄像头
    这篇文章主要介绍“如何实现HTML5 Canvas+JS控制电脑或手机上的摄像头”,在日常操作中,相信很多人在如何实现HTML5 Canvas+JS控制电脑或手机上的摄像头问题上存在疑惑,小编查阅了各式资料...
    99+
    2022-10-19
  • 【Android入门到项目实战-- 7.3】—— 如何调用手机摄像头和相册
    目录 一、调用摄像头拍照 二、打开相册选择照片         学完本篇文章可以收获如何调用手机的摄像头和打开手机相册选择图片功能。 一、调用摄像头拍照 先新建一个CameraAlbumTest项目。 修改activity_main.x...
    99+
    2023-08-31
    智能手机 android android studio 开发语言
  • 如何使用Python实现识别图像中人物
    小编给大家分享一下如何使用Python实现识别图像中人物,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!环境部署按照上一篇的安装部署就可以了。代码不废话,直接上代码...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作