微信小程序实现人脸识别

  

本文为大家分享了微信小程序人脸识别的具体代码,供大家参考,具体内容如下

  

首先,我们要有开发者工具,今天所说的是后端和前端联合起来实现的。

  

在PHP的控制器中写一个上传方法,代码如下:

        公共函数上传($ id=") {   如果(空($ id)) {   返回错误;   }      没有=美元(“学生”)→地方(" id={$ id} ")→getField(“不”);   $ dir=啊?上传/studentface/?   如果(! file_exists (dir美元)){   mkdir (dir 0777美元,真);   }   上传美元=new \认为\上传();//实例化上传类   上传→美元最大尺寸=3145728;//设置附件上传大小   上传→美元ext=阵列(jpg, gif, png, jpeg);//设置附件上传类型   上传→美元rootPath=dir美元;//设置附件上传根目录   上传→美元savePath=";//设置附件上传(子)目录   上传→美元saveName=美元没有;   上传→美元取代=true;   上传→美元autoSub=false;//上传文件   信息=上传→美元uploadOne(带有_file美元['文件']);   如果(! $ info){//上传错误提示错误信息//返回$ this→ajaxReturn(数组('错误'=祝辞没错,‘味精’=祝辞上传→美元getError ()));   返回json_encode(数组('错误'=祝辞;的确,‘味精’=祝辞上传→美元getError ()), JSON_UNESCAPED_UNICODE);   其他}{//上传成功获取上传文件信息//返回$ this→ajaxReturn(数组('错误'=祝辞假,“味精”=祝辞信息(“savepath”)。美元信息(“savename”),“id”=祝辞;$ id));   文件=dir美元。美元的信息(“savepath”)。美元的信息(“savename”);   形象=美元base64_encode (file_get_contents(文件)美元);   $ this→facevalid(不,形象美元);      m=美元(头);   data=https://www.yisu.com/zixun/m美元->,(“没有={$没有}”)→找到();      如果(元数据){//有数据,则更新   m→美元,(“没有={$没有}”)→保存(数组(“base64”=祝辞$形象,“路径”=祝辞文件)美元);   其他}{   m美元→添加(数组(“不”=祝辞;不,美元的base64=祝辞形象,美元“路径”=祝辞文件)美元);   }      返回“采集照片成功”;   }   }            公共函数facevalid(不,形象,美元$文件){      $=选项数组();      选项(“max_face_num”)=2美元;//选择美元(“face_type”)=盎睢?//图像=美元file_get_contents($文件);//图像=美元base64_encode($形象);//echo $形象;   $ imageType=癇ASE64”;//带参数调用人脸检测   客户=这→美元init_face ();   ret=美元客户→检测(形象,imageType美元,美元选项);//arr=美元受潮湿腐烂;//print_r (ret);//退出;   如果(美元ret的error_code==0){//有人的脸   结果=ret美元(的结果);   face_num=结果美元(“face_num”);      如果(1美元==face_num){//人脸数量为1   face_probability=结果美元[' face_list '] [0] [' face_probability '];   如果(1美元==face_probability){//可靠性为1   组=这→美元face_group ();//echo $组;//退出;   面临=客户→美元faceGetlist(不,美元集团);   如果(面临美元(“error_code”)在0){   客户→美元addUser($形象,BASE64,美元集团没有美元);   其他}{   客户→美元updateUser($形象,BASE64,美元集团没有美元);   }//echo '人脸检测完成,并已入库”;//返回true;//$ arr=数组('错误'=祝辞假,“味精”=祝辞的上传成功”);      其他}{   死亡(“图片质量”);//死亡(“图片质量仅为:“face_probability美元。”,上传失败”);   }   其他}{   死亡(“人脸数量大于1 ');//死亡(“人脸数量大于1,失败”);   }   其他}{   死('没有人脸”);//死亡(“没有人脸,失败”);   }   }      

在前端我们需要在开发者工具里写js和wxml。

  

js代码如下:

        const应用=getApp ()   页面({   数据:{   性别:女,   空:真   },   取消:函数(){   wx.redirectTo ({   url:“. ./脸/脸”,   })   },      switch2Change:函数(e) {   如果(e.detail.value) {   这一点。setData({性:'男'})   其他}{   这一点。setData({性:'女'})   }   },   formSubmit:函数(e) {//console.log (e);   wx.request ({   url: http://直* * * * *上/ppp/服务器/index . php/home/索引/指数”,   数据:e.detail.value,   方法:“文章”,   标题:{   “内容类型”:“应用程序/x-www-form-urlencoded”   },   成功:(res)=比;{   控制台.log(重新数据);      如果(res.data.error) {   wx.showToast ({   标题:res.data.msg,   图标:“没有”,   持续时间:2000   })   其他}{   wx.showToast ({   标题:res.data.msg,   图标:“成功”,   持续时间:2000   })      setTimeout(函数(){   wx.navigateTo ({   url:“. ./headimg/headimg& # 63; id=" + res.data.id,   })   }, 2000)      }      }      })      }      })

微信小程序实现人脸识别