本文主要是介绍图片漫画效果(DoG算子和双边滤波),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
http://hi.baidu.com/zyqhi2010/blog/item/ac400a2988d70537d52af102.html对比下面两张图(从 http://hi.baidu.com/cwyalpha/blog/item/647745a9f33570f61e17a235.html 里翻出来的。。),漫画有3个特点:
1.边缘清晰,内部模糊(同色)
2.颜色少。
3.描边(桌沿,袋口,腿)
对下图做漫画处理。
将图像边缘保留的情况下内部模糊有几种方法,中值滤波,双边滤波。
测试中值滤波后有麻点感,效果一般。
双边滤波原理如下:
左边的高斯函数,给距离较近的点的像素值给了较高的权值,右边的高斯函数,给梯度较近的点的像素值给了较高的权值。这样在沟壑处不会出现模糊。而且高斯函数的沟壑高度参数合适的话,沟壑两边会越来越模糊,沟壑会越来越清晰。
对图片做多次双边滤波,把沟壑两边的色彩抹平
一次双边滤波:
四次:
八次:
多做几次,同区域颜色基本趋同,不过双边滤波速度太慢。8次差不多就可以进行量化减少颜色了。
RGB空间不适合做色差分析,转LAB空间在L上对色彩处理。
锯齿量化效果很差,如下,
做下图的量化处理
中间弯曲部分是tanh函数。
效果如下。
微分描边如下
canny如下
DoG如下
只有DoG能可调的保留连续边缘。
3步合起来如下
跳过量化操作的话是这种效果。
matlab, opencv, android-opencv都弄了遍。。就是双边滤波太慢了。有加速算法。有空找来看看。
这篇关于图片漫画效果(DoG算子和双边滤波)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!