直播美颜SDK贴纸功能实现流程、贴纸代码分析

news2025/1/18 20:58:16

时下,直播美颜SDK已经成了大家日常拍摄以及专业美颜的必备工具。另外它也接入到了各种社交平台、短视频平台、直播平台中,此类平台中大部分用户都熟练掌握了美颜SDK的拍摄技巧,特别是短视频平台中,几乎每个用户都曾经使用过。根据使用报告来看,用户们主要使用美颜、滤镜、贴纸、面具、特效等功能。今天小编就为大家讲解直播美颜SDK中一个热门功能的实现流程以及代码。
直播美颜SDK

一、贴纸功能的实现流程
刷短视频时我们最常看到的功能就是人脸贴纸。它的出现打破了传统视频、图片的拍摄形式,改变了一成不变的视图样式,给使用者带来了丰富的趣味性。那么关于人脸贴纸的背后的短时频美颜算法您了解吗?其实,人脸贴纸功能是基于人脸关键点识别而实现的,首先在目标内识别人脸,再捕捉到用户的脸部五官,从中获取并回馈关键点。过程中不但要将位置信息经行记录,还需要将贴纸放到图像或者视频前端展现,最后再将用户人像信息映射至人脸贴纸模板中,将人像与贴纸进行完美贴合,以此实现趣味贴纸功能。
直播美颜SDK
二、代码分析
//
// MHOpenDemoTests.m
// MHOpenDemoTests
//
// Created by Apple on 2021/5/31.
//
//
//

#import <XCTest/XCTest.h>

@interface MHOpenDemoTests : XCTestCase

@end

@implementation MHOpenDemoTests

  • (void)setUp {
    // Put setup code here. This method is called before the invocation of each test method in the class.
    }

  • (void)tearDown {
    // Put teardown code here. This method is called after the invocation of each test method in the class.
    }

  • (void)testExample {
    // This is an example of a functional test case.
    // Use XCTAssert and related functions to verify your tests produce the correct results.
    }

  • (void)testPerformanceExample {
    // This is an example of a performance test case.
    [self measureBlock:^{
    // Put the code you want to measure the time of here.
    }];
    }

@end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/155477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

极光笔记 | 如何为 iOS 16 创建一个实时活动

01、iOS 16 中的 Live Activity &#xff08;实时活动&#xff09;是什么&#xff1f;根据 Apple 官方描述&#xff0c;“实时活动是一项新功能&#xff0c;可帮助用户直接从锁定屏幕实时获知各种事情的进展&#xff0c;例如体育比赛、锻炼、拼车或送餐订单进度等等” 。例如&a…

Revit中基线的作用和【类型可见性】功能

一、Revit中基线的作用 Revit中基线是一个重要但又容易被忽视的内容&#xff0c;本文就简单介绍一下基线的一些常用功能&#xff0c;基线的作用&#xff1a; 1、参照底图 基线调整为其他层时&#xff0c;可以在当前视图中半色调显示&#xff0c;方便参照。 2、定位 3、基线还可…

【UE4 第一人称射击游戏】35-击中目标时添加准心提示

上一篇&#xff1a;【UE4 第一人称射击游戏】34-制作一个简易计时器本篇效果&#xff1a;可以看到击中目标后有了一个红色准心的提示效果步骤&#xff1a;新建一个控件蓝图&#xff0c;命名为“Hitmarker”双击打开“Hitmarker”&#xff0c;拖入一个图像控件&#xff0c;锚点设…

前端性能优化(七):前沿优化解决方案

目录 一&#xff1a;拯救移动端图标 - SVG 1.1.从 PNG 到 IconFont 1.2.从 IconFont 到 SVG 二&#xff1a;使用 Flexbox 优化布局 三&#xff1a;优化资源的加载顺序 3.1.Preload 3.2.Prefetch 四&#xff1a;预渲染页面 五&#xff1a;Windowing&#xff08;窗口化&…

Tomcat集群应用同步 —— 源码分析

文章目录前言一、应用同步的配置与实现原理二、应用同步源码分析三、如何获取集群的节点列表四、通讯模块Tribe五、集群的Session同步六、集群的Session共享总结前言 相信大家对Tomcat的集群部署都不陌生&#xff0c;以往&#xff0c;我们手动搭建一个Tomcat的集群环境&#x…

2023年运动耳机最新排行榜公布、公认最好用的五款运动耳机推荐

建议大家不要轻易尝试那些低价运动耳机&#xff0c;因为这些耳机大多数&#xff0c;只能满足基本听个响&#xff0c;舒适度和蓝牙稳定性都有代提高。通勤使用还勉强&#xff0c;运动强度一大&#xff0c;耳机容易掉落不说&#xff0c;蓝牙连接也很容易掉线&#xff0c;体验感受…

【自学Python】Python算术运算符

Python算术运算符 Python算术运算符教程 Python 中算术运算符是对 数值类型 的 变量 进行运算的&#xff0c;比如&#xff1a;加、减、乘、除、取模、整除和乘方运算等。 Python算数运算符语法 运算符说明实例结果加12.34 43.2155.55-减43.21 - 12.3430.87*乘2 * 3.141596…

springdata个人学习笔记

​ 入门 初始化springboot 依赖引入 <!-- springdata--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId&g…

node与node-sass版本对应

node&#xff1a;14.0.0 npm install sass-loader7.3.1 node-sass4.14.1 --savenode-sass对应node https://github.com/sass/node-sass/releases node-sass 和 sass-loader 的对应关系一般的情况下4.XX.YY&#xff0c;XX就是对应Node XX 版本 参考

Java常用工具类方法(下)

8. IOUtilsIO流在我们日常工作中也用得比较多&#xff0c;尽管java已经给我们提供了丰富的API。但我们不得不每次读取文件&#xff0c;或者写入文件之后&#xff0c;写一些重复的的代码。手动在finally代码块中关闭流&#xff0c;不然可能会造成内存溢出。有个好消息是&#xf…

一文搞懂Linux 环境变量

一文搞懂Linux 环境变量1.环境变量分类2.读取环境变量3.环境变量修改在 Linux 系统中&#xff0c;环境变量是用来定义系统运行环境的一些参数&#xff0c;比如每个用户不同的主目录&#xff08;HOME&#xff09;。 1.环境变量分类 按照作用域来分&#xff0c;环境变量可以简单…

【阶段三】Python机器学习13篇:机器学习项目实战:支持向量机分类的算法原理

本篇的思维导图: 支持向量机分类的算法原理 支持向量机分类算法的基本思路 1.最大间隔 支持向量机说到底就是一种“线性分类器”,它以“间隔”作为损失的度量,目标通过不断调整多维的“直线”——超平面,使得间隔最大化。所谓“支持向量”,就是所有数据点中直接参…

Lichee_RV学习系列---移植dhrystone

系列文章目录 Lichee_RV学习系列—认识Lichee_RV、环境搭建和编译第一个程序 文章目录系列文章目录一、dhrystone简介二、dhrystone源码下载三、dhrystone移植1、移植官方源码2、移植GitHub开源代码a&#xff1a;修改Makefile文件b&#xff1a;编译3、执行dhrstone代码总结一、…

Flink源码解析一之RPC原理解析

在阅读 Flink 源码过程中,如果你见到有这种类型的代码,其实就是在发送 RPC 请求 // resourceManagerGateway 就可以理解成: 当前节点中,对于 ResourceManager 代理对象的封 装 resourceManagerGateway.requestSlot(); // 代码跳转到:resourceManager.requestSlot()…

C++20标准下的左值与右值

C20标准下的左值与右值一、什么是左值与右值二、左值引用三、右值引用四、值类别五、标准库 move 函数5.1 用 static_cast将左值转换为右值5.2 使用 std::move 将左值转换为右值一、什么是左值与右值 左值&#xff1a;左值可以出现在赋值语句的左边或者右边右值&#xff1a;右…

Java设计模式-装饰者模式Decorator

介绍 装饰者模式的核心思想是通过创建一个装饰对象&#xff08;即装饰者&#xff09;&#xff0c;动态扩展目标对象的功能&#xff0c;并且不会改变目标对象的结构&#xff0c;提供了一种比继承更灵活的替代方案。需要注意的是&#xff0c;装饰对象要与目标对象实现相同的接口&…

VisualBox解决CentOS中yum安装失败的问题

怎么说呢&#xff0c;花了一个下午一个上午的时间&#xff0c;总算把这条命令运行成功了&#xff1a; yum install wget -y 打怪兽途中遇到了几个问题&#xff0c;总结一下&#xff1a; 1.ping 啥ip都是unkown&#xff0c;还有一种情况&#xff0c;就是ping之后就一直卡在那…

C++计算机课程设计 学生成绩管理系统 研究报告

课程设计内容 2.1 学生成绩管理系统 2.1.1 内容 主菜单模块 该模块主要用来实现整个系统的流程。主界面提供用户选择并调用各个子模块。 输入模块 当初次使用系统时&#xff0c;学生信息需要从键盘逐个输入。学生信息由学生的学号、姓名、性别、高等数学、英语、计算机和平均…

Qt基于CTK Plugin Framework搭建插件框架--CTK服务工厂

一、前言 注册服务的时候能够用服务工厂来注册&#xff1b; 访问服务getServeice中的plugin参数是执行ctkPluginContext::getService(const ctkServiceReference&)的插件&#xff0c;从而工厂根据执行的不同插件名称返回不同的服务实现 服务工厂的作用 在服务中可以知道…

达摩院2023十大科技趋势发布,生成式AI将进入应用爆发期

1月11日&#xff0c;达摩院2023十大科技趋势发布&#xff0c;生成式AI、Chiplet模块化设计封装、全新云计算体系架构等技术入选。达摩院认为&#xff0c;全球科技日趋显现出交叉融合发展的新态势&#xff0c;尤其在信息与通信技术&#xff08;ICT&#xff09;领域酝酿的新裂变&…