作者:闫霄龙_ImagePy






ImagePy白描工笔画的狗狗_计算机视觉

时空变换开始:

再过一个小时就要跨年了,感谢过去一年大家的支持与陪伴,在狗年即将到来之际,闲来无事,做一个小玩具,送给大家,也祝愿大家狗年万事如意,心想事成。

线描转GIF动画

ImagePy白描工笔画的狗狗_人工智能_02

狗年大吉


这是一张线描图,我们试着将其转为gif动画,模拟一笔一笔绘制出来的过程。

思路:

其实这里比较难的是如何模拟一笔一笔的绘制过程,我们用骨​架与拓扑重建​得到笔画关系,然后得到一笔一笔的笔画。

ImagePy白描工笔画的狗狗_计算机视觉_03

这样一来我们得到了笔画,但是骨架并不能体现笔触,也就是没有​粗细​,为了解决这个问题,我们对原图进行距离变换,用​骨架对应距离图的值​,当作该处的半径,这样我们就有了笔触。

ImagePy白描工笔画的狗狗_python_04


ImagePy操作

ImagePy白描工笔画的狗狗_slam_05



  1. File > Open ​打开图像
  2. Image > Type > 8-bit​ 转8位
  3. Image > Duplicate​ 复制图像
  4. Image > Adjust > Threshold​ 阈值为二值图像
  5. Edit > Invert​ 图像求反

ImagePy白描工笔画的狗狗_计算机视觉_06

接下来是非常重要的一步操作,​Plugins > Games > Stroke Step​,我们得到了一个​图像栈​。

ImagePy白描工笔画的狗狗_人工智能_07

一笔一笔,带有笔画与笔触的图像栈

Edit > Invert​ 将笔画图像栈求反,然后 ​Process > Image Caculater​,与原图求​min​。

这样以来,我们得到了用​笔画掩膜出的原图​,所有的质感,笔触都保留了原图的风格。

ImagePy白描工笔画的狗狗_计算机视觉_08

File > GIF > GIF Animate Save​ 将序列保存成GIF动画。

ImagePy白描工笔画的狗狗_计算机视觉_09

     好了,这是我们的美术作品


其他事项:

这个方法的适用范围,线描图都适用,尤其是中国画风的​白描作品​,允许带有粗细变化,但是不能有大块的色调(主要是​大面积色调无法拓扑重建​,拆分笔画)

但也存在一些问题,比如笔顺基本是从上到下,对于一些简单的图,似乎看起来比较合理,图像一旦复杂,或者分多个物体,从上到下的绘制顺序不是很符合​绘画习惯​。

         ImagePy白描工笔画的狗狗_python_10

中国画,人物白描

算法还有很多可改进的空间,比如笔顺可以根据​连接关系,线条粗细,深浅做综合排序​,而不是简单的从上到下。好了,毕竟只是作为一个玩具,以后有时间再继续完善。最后祝大家新年快乐,新的一年会再接再厉,完善ImagePy软件,规范相关的文档,也请大家继续支持。

纪念过去,展望未来

ImagePy软件渐渐成熟,2018重点将会渐渐转移到文档的规范化。同时图像处理入门书籍的编写也进入到最后阶段,解释请大家多多拍砖。

ImagePy白描工笔画的狗狗_计算机视觉_11

记录一下,过去一年得到的认可

Image-Py/imagepygithub.com

ImagePy白描工笔画的狗狗_slam_12


祝大家新年快乐!狗年万事如意,心想事成!!!

以上是狗年的故事。

时空变换到猪年了,ImagePy也成长了很多,如图:

ImagePy白描工笔画的狗狗_java_13