任意图像转素描:Python分分钟实现( 二 )


 
梳理一下梳理一下上面的流程 , 相当于是 , 对于灰度图像中的每一个像素值x , 用255 - x取反之后得到inv_x , 再对此点进行高斯滤波得到blur_inv_x , 然后用执行一下运算进行混合:
x / (255 - blur_inv_x) * 255从上图可以看到 , 已经得到了效果不错的素描化图片了 。对于有的图片可能素描化之后显得颜色有点淡 , 没关系 , 加个伽马变换调节一下就行了 。
问题来了上面是根据PS的流程转化的Python实现流程 , 感觉实际上起作用的就是这个公式x / (255 - blur_inv_x) * 255 。
上面的流程是:
灰度图->取反->高斯滤波->再取反(除法里面)->除法运算(divide) 。
我们看到 , 里面有两次取反操作 , 中间只是多了一个高斯滤波而已 。众所周知 , 负负得正 , 取反两次相当于没有取反(我真是逻辑鬼才!)
那么问题来了 , 不取反行不行?行不行?试一下就知道了!
实验流程是下面这样的:
灰度图->高斯滤波->除法运算(divide) 。
公式是:x / blur_x * 255 。
最终的结果是下面这样的:

任意图像转素描:Python分分钟实现

文章插图
 
与取反的差别在哪里呢?仔细看的话 , 取反的背景会更清晰一些 , 前景倒没有太大差别 。
开始玩上面已经介绍了素描化的完整实现 , 接下来就要开始各种玩了 。我实现了几种基本的玩法 , 你看看有多基本:
  • 支持动态图
  • 素全图
  • 素左边
  • 素右边
  • 素上边
  • 素下边

任意图像转素描:Python分分钟实现

文章插图
 

任意图像转素描:Python分分钟实现

文章插图
【任意图像转素描:Python分分钟实现】 
参数可调 , 效果不好的话 , 可能需要你亲自动手调节一下:
任意图像转素描:Python分分钟实现

文章插图
 




推荐阅读