iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >web前端怎么实现图片选择题特效
  • 506
分享到

web前端怎么实现图片选择题特效

2023-07-05 00:07:19 506人浏览 八月长安
摘要

这篇文章主要介绍“web前端怎么实现图片选择题特效”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“WEB前端怎么实现图片选择题特效”文章能帮助大家解决问题。架构和概念抽象整体的实现思路如下Mediap

这篇文章主要介绍“web前端怎么实现图片选择题特效”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“WEB前端怎么实现图片选择题特效”文章能帮助大家解决问题。

架构和概念

抽象整体的实现思路如下

web前端怎么实现图片选择题特效

Mediapipe Face Mesh是一个解决方案,即使在移动设备上也能实时估计468个3D面部地标。它使用机器学习(ML)来推断3D面部表面,只需要一个摄像头输入,而无需专用的深度传感器。该解决方案利用轻量级模型架构以及整个管道中的GPU加速,为实时体验提供了至关重要的实时性能。

引入

import '@mediapipe/face_mesh';import '@Tensorflow/tfjs-core';import '@tensorflow/tfjs-backend-webGL';import * as faceLandmarksDetection from '@tensorflow-models/face-landmarks-detection';

创建人脸模型

引入tensorflow训练好的人脸特征点检测模型,预测 486 个 3D 人脸特征点,推断出人脸的近似面部几何图形。

  • maxFaces 默认为1。模型将检测到的最大人脸数量。返回的面孔数量可以小于最大值(例如,当输入中没有人脸时)。强烈建议将此值设置为预期的最大人脸数量,否则模型将继续搜索缺失的面孔,这可能会减慢性能。

  • refineLandmarks 默认为false。如果设置为真,则细化眼睛和嘴唇周围的地标坐标,并在虹膜周围输出其他地标。(这里我可以设置false,因为我们没有用到眼部坐标)

  • solutionPath 通往am二进制文件和模型文件所在位置的路径。(强烈建议将模型放到国内的对象存储里面,首次加载可以节省大量时间,大小大概10M)

async createDetector(){    const model = faceLandmarksDetection.SupportedModels.MediaPipeFaceMesh;    const detectorConfig = {        maxFaces:1, //检测到的最大面部数量        refineLandmarks:false, //可以完善眼睛和嘴唇周围的地标坐标,并在虹膜周围输出其他地标        runtime: 'mediapipe',        solutionPath: 'https://cdn.jsdelivr.net/npm/@mediapipe/face_mesh', //WASM二进制文件和模型文件所在的路径    };    this.detector = await faceLandmarksDetection.createDetector(model, detectorConfig);}

web前端怎么实现图片选择题特效

人脸识别

返回的面孔列表包含图像中每个面孔的检测面。如果模型无法检测到任何面孔,列表将是空的。对于每个面,它包含一个检测到的面孔的边界框,以及一个关键点数组。MediaPipeFaceMesh返回468个关键点。每个关键点都包含x和y,以及一个名称。

现在,您可以使用探测器来检测人脸。estimateFaces方法接受多种格式的图像和视频,包括:htmlVideoElementHTMLImageElementHTMLcanvasElementTensor3D

  • flipHorizontal 可选。默认为false。当图像数据来自相机时,结果必须水平翻转。

async renderPrediction() {    var video = this.$refs['video'];    var canvas = this.$refs['canvas'];    var context = canvas.getContext('2d');    context.clearRect(0, 0, canvas.width, canvas.height);    const Faces = await this.detector.estimateFaces(video, {        flipHorizontal:false, //镜像    });    if (Faces.length > 0) {        this.log(`检测到人脸`);    } else {        this.log(`没有检测到人脸`);    }}

web前端怎么实现图片选择题特效

该框表示图像像素空间中面部的边界框,xMin、xMax表示x-bounds、yMin、yMax表示y-bounds,宽度、高度表示边界框的尺寸。对于关键点,x和y表示图像像素空间中的实际关键点位置。z表示头部中心为原点的深度,值越小,键点离相机越近。Z的大小使用与x大致相同的比例。这个名字为一些关键点提供了一个标签,例如“嘴唇”、“左眼”等。请注意,并非每个关键点都有标签。

如何判断

找到人脸上的两个两个点

第一个点 额头中心位置第二个点 下巴中心位置

const place1 = (face.keypoints || []).find((e,i)=>i===10); //额头位置const place2 = (face.keypoints || []).find((e,i)=>i===152); //下巴位置 const [x1,y1,x2,y2,x3,y3,x4,y4] = [      place1.x,place1.y,      0,place2.y,      place2.x,place2.y,      this.canvas.width, place2.y ];

通过canvas.width 额头中心位置下巴中心位置计算出 x1,y1,x2,y2,x3,y3,x4,y4

web前端怎么实现图片选择题特效

getAngle({ x: x1, y: y1 }, { x: x2, y: y2 }){    const dot = x1 * x2 + y1 * y2    const det = x1 * y2 - y1 * x2    const angle = Math.atan2(det, dot) / Math.PI * 180    return Math.round(angle + 360) % 360}const angle = this.getAngle({        x: x1 - x3,        y: y1 - y3,    }, {        x: x2 - x3,        y: y2 - y3,    });console.log('角度',angle)

web前端怎么实现图片选择题特效

通过获取角度,通过角度的大小来判断左右摆头。

关于“web前端怎么实现图片选择题特效”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: web前端怎么实现图片选择题特效

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

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

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

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

下载Word文档
猜你喜欢
  • web前端怎么实现图片选择题特效
    这篇文章主要介绍“web前端怎么实现图片选择题特效”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“web前端怎么实现图片选择题特效”文章能帮助大家解决问题。架构和概念抽象整体的实现思路如下MediaP...
    99+
    2023-07-05
  • web前端怎么实现撩人的按钮特效
    本篇内容主要讲解“web前端怎么实现撩人的按钮特效”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web前端怎么实现撩人的按钮特效”...
    99+
    2024-04-02
  • web前端字体特效的实现方法是什么
    本篇内容主要讲解“web前端字体特效的实现方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web前端字体特效的实现方法是什么”吧!特效一览划线动态:背景...
    99+
    2024-04-02
  • Android实现QQ图片说说照片选择效果
    本文实例为大家分享了Android实现QQ图片说说照片选择的具体代码,供大家参考,具体内容如下效果展示布局文件布局是很简单的,一个GridView,直接上布局:layout/activity_add_photo.xml<?xm...
    99+
    2023-05-30
    android 照片选择
  • Andoroid实现底部图片选择Dialog效果
    1.效果图如下点击选择照相后,弹出如下选择对话框:2. Dialog实现布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" androi...
    99+
    2023-05-30
    android 底部图片 dialog
  • css3图片翻转特效怎么实现
    本篇内容介绍了“css3图片翻转特效怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • python怎么实现图片特效处理
    这篇文章主要介绍了python怎么实现图片特效处理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python怎么实现图片特效处理文章都会有所收获,下面我们一起来看看吧。前言:对于 图片处理,在日常生活中我们常常...
    99+
    2023-06-29
  • web前端图片跳转小圆点怎么实现(方法浅析)
    随着互联网的迅猛发展以及用户需求的不断增加,web前端也正逐步成为人们工作和生活中不可或缺的重要组成部分。在web前端开发过程中,图片跳转是常见的需求之一,而小圆点则可以实现更为美观、易用的页面效果。本文将从web前端图片跳转小圆点的基本原...
    99+
    2023-05-14
  • 前端vue cropperjs怎么实现图片裁剪
    这篇文章主要介绍“前端vue cropperjs怎么实现图片裁剪”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“前端vue cropperjs怎么实现图片裁剪”文章能帮助大家解决问题。图片裁剪图片裁剪...
    99+
    2023-07-02
  • css3中怎么实现图片翻牌特效
    这篇文章给大家介绍css3中怎么实现图片翻牌特效,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。代码如下:<!doctype html><html><hea...
    99+
    2024-04-02
  • 怎么用html5 canvas实现图片玻璃碎片特效
    本篇内容主要讲解“怎么用html5 canvas实现图片玻璃碎片特效”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用html5 canvas实现图片玻璃碎片...
    99+
    2024-04-02
  • css3中怎么实现图片放大镜特效效果
    这篇文章将为大家详细讲解有关css3中怎么实现图片放大镜特效效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。代码如下:<ul class="...
    99+
    2024-04-02
  • 【前端】 Layui点击图片实现放大、关闭效果
    实现效果:点击图片实现放大,点击空白处关闭效果。下图。 实现逻辑:二维码是使用JQ插件生成的,点击二维码,获取图片路径,通过Layui的弹窗显示放大后的图片。 Html 签到二维码(放大) js代码,获取点击图片的路径,修改样式  $("...
    99+
    2023-09-03
    前端 layui javascript
  • 怎么选择一款适合web前端的编辑器
    今天小编给大家分享一下怎么选择一款适合web前端的编辑器的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一.Webstorm使...
    99+
    2023-06-27
  • css3怎么实现图片的自动轮播特效
    这篇文章主要介绍css3怎么实现图片的自动轮播特效,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!     使用css3实现轮播特效的主体思想   &...
    99+
    2024-04-02
  • android中怎么实现在相册中选择图片
    这期内容当中小编将会给大家带来有关android中怎么实现在相册中选择图片,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先在 activity_main.xml 文件中增加一个 Button,用来触发从...
    99+
    2023-05-30
  • 前端elementUI select选择器怎么实现远程搜索
    这篇文章主要介绍“前端elementUI select选择器怎么实现远程搜索”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“前端elementUI select选择器怎么实现远程搜...
    99+
    2023-06-30
  • 使用Opencv怎么实现一个图片油画特效
    这期内容当中小编将会给大家带来有关使用Opencv怎么实现一个图片油画特效,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。代码实现首先导入包:import numpy as n...
    99+
    2023-06-06
  • 使用CSS怎么实现一个图片动画特效
    本篇文章给大家分享的是有关使用CSS怎么实现一个图片动画特效,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。HTML代码<!-- 主容器 -->&...
    99+
    2023-06-08
  • web前端图片懒加载的原理与实现方式有哪些
    这篇文章主要讲解了“web前端图片懒加载的原理与实现方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web前端图片懒加载的原理与实现方式有哪些”吧!一. 图片懒加载的目的大型网站如常...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作