我们在使用抖音拍摄短视频的时候,经常会在美颜滤镜中用到哈哈镜、怀旧等效果,那么这两种效果是如何实现的呢?下面就来分别为大家介绍下原理。
一、哈哈镜效果
现实生活中的哈哈镜,是指一种表面凹凸不平的镜子,可以反映出人像及物件的扭曲面貌。而在美颜滤镜的图像处理过程中,哈哈镜效果是通过图像坐标变换来模拟真实的哈哈镜效果。具体算法过程如下:
输入图像f(x,y),宽高分别为width和height,设置图像中心坐标Center(cx,xy)为缩放中心点,图像上任意一点到中心点的相对坐标tx=x-cx,ty=y-cy。哈哈镜效果分为图像拉伸放大和图像缩小。
对于图像拉伸放大,设置图像变换的半径为radius,哈哈镜变换后的图像为p(x,y)。

x=(tx/2)(sqrt(txtx+tyty)/radius)+cx
y=(ty/2)
(sqrt(txtx+tyty)/radius)+cy
对于图像缩小,设置图像变换的半径为radius,哈哈镜变换后的图像为p(x,y)。
x=cos(atan2(ty,tx))12(sqrt(txtx+tyty)+cx
y=sin(atan2(ty,tx))12(sqrt(txtx+tyty)+cy
然后将这些公式编排到哈哈镜的程序上,实现图形变换。
从以上的公式中可以看出,图像变形的原理其实很简单,就是求解变换后坐标(tx,ty)和变换前坐标的坐标方程。可以直接给xy赋值,也可以采取插值的方法得到输出图像,逻辑并不复杂。另外,需要注意的一点是,实际开发中可以更换radius的大小,甚至可以做一个进度条动态调节Radius的大小,以获得不同值下哈哈镜的效果。

二、怀旧效果
怀旧风格的设计主要是在图像的颜色空间进行处理,以GRB空间为例,以GRB空间位列,对R、G、B这3个通道的颜色数值进行处理,让图像有一种泛黄的老照片效果。设计的转换公式如下:
R=0.393xr+0.769xg+0.189xb
G=0.349xr+0.686xg+0.168xb
B=0.272xr+0.534xg+0.131xb
其中,r、g、b分别代表输入的原图某一点图像像素的RGB值,R、G、B
代表了该点变换后的RGB值,注意编后的RGB值要约束在0~255之间。将以上公式编排到相关程序中,通过变换r、g、b对图像的颜色空间做处理,起到怀旧泛黄的效果,而图像的细节纹理依旧保留。

以上,就是美颜滤镜中的哈哈镜、怀旧效果的实现原理,如果您对美颜sdk开发感兴趣,欢迎咨询官方客服。

                              声明:本文由美狐原创,未经允许禁止转载,谢谢合作。

美狐美颜SDK滤镜、哈哈镜功能算法分析相关推荐

  1. 美狐美颜SDK趣拍功能的算法代码解析

    经常使用美颜相机拍摄的小伙伴应该比较清楚,有些相机中会加入"趣拍功能",什么是趣拍功能呢?所谓趣拍功能,就是趣味拍摄,最常见的几个趣拍功能为:素描肖像风格.油画风格.二次元风格.卡 ...

  2. 美狐美颜SDK最常用功能代码解析

    当下,平台方接入美颜工具包甚至已经成为刚需,没有美颜SDK甚至都会极大程度影响到用户体验,对于主播则更为重要,这甚至会影响到平台的发展.如今,直播美颜工具在广大直播平台中时时刻刻发挥着重要的作用.那么 ...

  3. 美狐美颜SDK开源代码浅析

    美狐直播美颜sdk作为辅助性的软件开发工具包,深受开发者和运营商的喜爱,而直播APP中美颜的效果是现在大多数运营商都十分重视的.随着美颜技术的不断成熟,用户对直播所实现的美颜需求也越来越强. 下文小编 ...

  4. 开源美狐美颜SDK功能代码分析

    当代,美颜技术愈加强大,比如美白.瘦脸.磨皮等功能应有尽有,还有各种特效,比如哈哈镜.抖动效果等,在直播类和短视频类的平台中,美颜功能已经成为了不可缺少的一部分,美颜sdk应运而生,那么美颜sdk的多 ...

  5. 美狐美颜SDK动态贴纸代码浅析

    如今,在美颜的刚需下,各大平台开始接入美颜SDK,接入美颜SDK是因为该平台希望能在竞争中脱颖而出并吸引更多用户,而现如今基本的美容和美容功能已无法满足用户的需求,还需要各种趣味功能,例如动态贴纸的帮 ...

  6. 美狐美颜SDK中的人脸贴纸有何妙用?

    相信大家在日常生活中会看到各式各样的美颜工具,从一开始只有一小部分人才能使用的技术,发展到如今全民美颜的时代,美颜仅仅用了十年左右,可见美颜的传播度和普及度.初期的美颜一般都是先通过原相机拍摄再进行P ...

  7. 美颜SDK中磨皮功能的算法实现

    美颜SDK发展至今已经有了将近十个年头,从一开始的"无人问津"到时下的"人尽皆知",这期间经过了一次又一次的更新迭代,无论是算法功能方面.当下,美颜SDK被广泛 ...

  8. android直播sdk+美颜,直播美颜sdk的三大功能及注意事项

    直播平台日渐增加,平台之间的竞争力也是很大的,想要吸引更多的用户,保障平台的稳定运行,是少不了美颜SDK的接入的,绝大多数社交平台都需要借助美颜特效实现更好的直播效果.美颜SDK可以根据用户不同的需求 ...

  9. 直播中常用的美颜sdk动态贴纸功能是什么?技术怎么实现的?

    大家在刷短视频和观看直播时应该有发现很多用户都在使用面部或者身体上的"贴纸功能",虽然有见过或者使用过,但是对它是如何实现的并不清楚.下文小编就以"大白话"的方 ...

最新文章

  1. 对于C#里面的this与base
  2. 在ListCtrl控件中插入图标
  3. 编写彩色空间转换程序:YUVtoRGB
  4. django链接数据库报错Error loading MySQLdb module:No module named MySQLdb
  5. python3 输入输出_Python3基础之输入和输出实例分析
  6. 循环buffer的实现_Go并发编程-Channel的设计实现
  7. 成功通过PMP认证考试的七大要点
  8. 微信小程序使用阿里巴巴矢量库图标
  9. 实景三维的基石-osgb
  10. 百度竞价文章怎么写?
  11. saver.save和saver.restore
  12. Codeforces Round #645 (Div. 2)
  13. 微信小程序最简单的轮播图
  14. 【学生党视角】CSDN问答功能测评以及改进建议
  15. 让自己不烦心的心理暗示
  16. 修改git 所有历史记录
  17. 2018.8.4T2(贪心,dp,线段树,优先队列)
  18. vscode开发小程序 去掉无用多余的代码片段
  19. 防火墙登录web页面(ensp)
  20. 激光切割机,激光切割机的几种导入方式

热门文章

  1. Mysql组复制(MGR)——常问的问题
  2. 股票市场量化分析matlab,(特价书)MATLAB金融算法分析实战:基于机器学习的股票量化分析...
  3. 前端谷歌浏览器基本介绍及前后端分离原理分析
  4. 【FFmpeg编码】了解速率控制模式(x264、x265、vpx)
  5. 书店销售系统java代码,VC书店销售管理系统源代码(源码大小6M)
  6. python录入数据至ppt_利用Python进行数据分析之 数据加载.ppt
  7. Anaconda下载simpleITK包和pytorch包
  8. php投影,ppt投影怎么显示备注
  9. git不能push文件
  10. Uva1665岛屿——并查集