图像视频滤镜与人像美颜美妆算法详解
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.6 “美图秀秀”中的阿宝色滤镜算法与实现

本节属于本章内容的实战,也是本书第一场实战练习。在早期的“美图秀秀”软件中,有一款阿宝色滤镜,效果很受大家喜爱,如图2.24所示。

图2.24 阿宝色滤镜的效果

本节就针对这一款滤镜,使用我们前面所学内容进行实战演练。

· 效果分析

首先,我们分析这款滤镜的效果特点:

(1)绿色转换为了蓝色。

(2)淡红色或者浅红色转换为了玫瑰红色。

(3)画面没有发生几何形变或者像素位置的偏移。

然后,我们对上述三个特点进行分析,得到如下结论:

(1)该滤镜做了颜色变换,也就是使用了颜色滤镜。

(2)该滤镜没有使用任何几何滤镜叠加。

最后,我们总结可知,这个效果仅仅属于一款颜色滤镜。

· 算法实现

有了上面的分析与总结,我们首先使用PS来进行滤镜效果的模拟,具体操作步骤如下:

(1)在 PS中打开测试图,复制图层,选择“图像”→“模式”→“Lab颜色”命令,进入Lab颜色模式,如图2.25(a)所示。

(2)选中a通道,进行曲线调节,如图2.25(b)所示。

图2.25 阿宝色效果制作步骤1和步骤2

图2.25 阿宝色效果制作步骤1和步骤2(续)

(3)复制a通道,粘贴到b通道,然后转换为RGB颜色模式,如图2.26所示。

图2.26 阿宝色效果制作步骤3

(4)调节曲线,得到最终效果图,如图2.27所示。

图2.27 阿宝色效果制作步骤4

经过上述几步操作,我们最后得到的阿宝色效果如图 2.27 下方图所示。这种滤镜对于风景或者人像远景照片,都有着较好的效果,因此深受摄影爱好者的欢迎。有了上述实现步骤,我们就可以进行图像算法的开发了。

在算法开发环节,由于上述阿宝色效果是单纯的颜色滤镜,而且使用了曲线调节等操作,如果我们没有PS的曲线调节代码,那么可以直接选择LUT颜色滤镜来实现,步骤如下:

(1)将经典LUT导入PS。

(2)按照在PS中制作阿宝色效果的步骤对LUT进行调节,得到如图2.28所示的阿宝色LUT。

图2.28 阿宝色LUT(左图为原表,右图为阿宝色LUT)

(3)使用LUT滤镜代码实现阿宝色滤镜效果,如图2.29所示。

图2.29 阿宝色效果图

· 代码编程

我们使用C#上层调用C算法API的模式来实现,C代码如下:

上层C#工程代码如下:

这就是整个阿宝色滤镜的开发过程,如果想把算法移植到手机端,那么只需把 C 代码编译成 iOS或者 Android对应的库即可。阿宝色滤镜无论是以前还是现在,都比较受大家的欢迎,因为它总能给人一种红蓝相间的独特风格,让我们看到一个不一样的世界。

本节所有代码工程及DEMO见代码包中2.6文件夹中的文件。