首页 > 作文

Html5调用手机摄像头并实现人脸识别的实现

更新时间:2023-04-03 03:49:12 阅读: 评论:0

需求

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

技术栈

vue、html5、video肖申克救赎经典台词标签、android、ios、百度ai

分析

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

核心代码

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

      <video        id="webcam"        :style="videostyle"        :width="videowidth"        :height="videoheight"        loop        preload      >      </video>

javascript:

 initvideo() {      let that便捷的近义词 = this;      this.video = document.getelementbyid("webcam");      ttimeout(() => {        if (          navigator.mediadevices.geturmedia ||          navigator.geturmedia ||          navigator.webkitgeturmedia ||          navigator.mozgeturmedia        ) {          //调用用户媒体设备, 访问摄像头          this.geturmedia(            {              video: {                width: {                  ideal: that.videowidth,                  max: that.videowidth                },                height: {                  ideal: that.videoheight,                  max: that.videoheight                },                facingmode: "ur",    //前置摄像头                framerate: {                  ideal: 30,                  min: 10                }              }            },            this.videosuccess,            this.videoerror          );        } el {          this.$toast.center("摄像头打开失败,请检查权限设置!");        }      }, 300);    },     geturmedia(constraints, success, error) {      if (navigator.mediadevices.geturmedia) {        //最新的标准api        navigator.mediadevices          .geturmedia(constraints)          .then(success)          .catch(error);      } el if (navigator.webkitgeturmedia) {        //webkit核心浏览器        navigator.webkitgeturmedia(constraints, success, error);      } el if (navigator.mozgeturmedia) {        //firfox浏览器        navigator.mozgeturmedia(constraints, success, error);      } el if (navigator.geturmedia) {        //旧版api        navigator.geturmedia(constraints, success, error);      }    },    videosuccess(stream) {      this.mediastreamtrack = str秋天的早晨eam;      this.video.srcobject = stream;      this.video.play();    },    videoerror(error) {      console.error(error);      this.$toast.center("摄像头打开失败,请检查权限设置!");    },

2、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");

3、调用百度ai识别图片

javascript:

        let that = this;        let ba64data = this.canvas.todataurl();        let blob = this.datauritoblob(ba64data);           //        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(respon) {            if ((respon.status = 200)) {                .....识别成功,显示结果            } el {            富翁排行榜    ......识别失败            }          })          .catch(function(error) {            console.error(error);          });              //ba64转换为blob    datauritoblob(ba64data) {      var bytestring;      if (ba64data.split(",")[0].indexof("ba64") >= 0)        bytestring = atob(ba64data.split(",")[1]);      el bytestring = unescape(ba64data.split(",")[1]);      var mimestring = ba64data        .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 });    },

关于柳的古诗手机适配

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

mywebview.twebchromeclient(new webchromeclient() {         @targetapi(build.version_codes.lollipop)         @override         public void onpermissionrequest(final permissionrequest request) {                   request.grant(request.getresources());        }});

2、ios系统,safari11之后可用

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。

本文发布于:2023-04-03 03:49:10,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/69525b8d12b3cbb36a05971a0a074227.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Html5调用手机摄像头并实现人脸识别的实现.doc

本文 PDF 下载地址:Html5调用手机摄像头并实现人脸识别的实现.pdf

标签:摄像头   标签   壳子   图片
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图