在前面的文章中,小编介绍了美颜滤镜在直播和短视频平台是如何发挥作用的,以及它的基本算法是怎样实现的,下面,小编再和大家依次介绍下,美颜滤镜中的柔化算法、光照算法、放大镜算法和哈哈镜算法是如何实现的。
一、柔化算法
柔化算法的效果是让图片中的每一个点与周围点的颜色更平滑,算法原理很简单,就是针对每一个像素,将其颜色值置为周围8个点加上自身的RGB的平均值。不过这样处理后的效果不是很明显,可以采用高斯模糊算法,能获取更好的效果。
二、光照算法
有时候在进行滤镜处理时,要在图片中增加一个光源的效果,如何实现呢?首先,先设定一个光源中心坐标和光照强度,然后以此光源和图片边缘的最短距离为半径,依次为每个点的RGB增加一个同样的值,当然,图片上的点距离光源中心越远,则增加的颜色值越小,通过这样的方法,就能够实现光照的效果了。
三、放大镜算法
关于放大镜算法,通常采用坐标变换矩阵来缩放、旋转图片的方法来实现,但是还有一种方法可以实现,即通过直接操作图像数据来实现图像局部放大功能。
假如定义放大镜的坐标为(X,Y),半径为R,而放大倍数为M=2,那么其实就是将原图中得坐标为(X,Y)、半径为R/M的区域的图像放大到放大镜覆盖的区域即可,算法其实很简单,对图片上的每一个点(X,Y)的距离,若距离<半径,则取原图中作为(X/M,Y/M)的像素的颜色值作为新的颜色值。
四、哈哈镜算法
哈哈镜的直观体现就是各种千奇百怪的图片扭曲效果,拿上面的放大镜算法为例,其实并不是真正的放大镜效果,大家可能有这种体验,在使用凹凸镜时看到的图像其实是有扭曲效果的,因为放大镜并不是一个平滑的镜面,而是越靠近中心的点,放大倍数越大,靠近边缘的点放大倍数越小,这样就形成了扭曲的效果,这个效果和哈哈镜比较类似。只需要改进上面放大镜算法中的某些参数,就能实现简单的哈哈镜算法。
以上,就是美颜滤镜中柔化、光照、放大镜、哈哈镜算法的实现过程,如果您对美颜sdk开发感兴趣,欢迎咨询官方客服。
声明:本文由美狐原创,未经允许禁止转载,谢谢合作。