本文主要展示如何利用DoG算子和双边滤波来实现图片的动漫效果。由于是转载于网上的,没有对这些效果进行验证,但是Opencv中已经包含了本文中使用的所有技术,并且在新的版本中已经添加了对双边滤波的支持,有兴趣的朋友可以自己实现,要是愿意,欢迎共享实现的工程。废话少说,先来看看下面两张图,并进行简单的对比。
通过对比,可以发现漫画有3个特点:
1)边缘清晰,内部模糊(同色)2)颜色少。
3)描边(桌沿,袋口,腿)
下面将逐一介绍对下图做漫画处理的过步骤:
将图像边缘保留的情况下内部模糊有几种方法,中值滤波,双边滤波。测试中值滤波后有麻点感,效果一般。双边滤波原理如下:
对图片做多次双边滤波,把沟壑两边的色彩抹平,一次双边滤波:
四次滤波后的效果:
八次滤波后的效果:
多做几次,同区域颜色基本趋同,不过双边滤波速度太慢。8次差不多就可以进行量化减少颜色了。RGB空间不适合做色差分析,转LAB空间在L上对色彩处理。锯齿量化效果很差,如下,
做下图的量化处理,中间弯曲部分是tanh函数。
效果如下:
微分描边效果如下:
canny算子处理的结果如下:
DoG算子处理的结果如下:
将以上3步处理合起来的效果如下:
文章转载自:http://hi.baidu.com/cwyalpha/item/a8445726a411e64647996251