知行编程网知行编程网  2022-03-28 09:00 知行编程网 隐藏边栏 |   抢沙发  63 
文章评分 0 次,平均分 0.0

随着深度学习技术的不断发展,越来越多的新科技被人们所探索,深度学习能做到的事情让我们都感到惊讶,今天,小编就带领大家来利用深度学习的技术实现为图片自动上色。通过通俗易懂的语言,为大家讲解其中的原理。


语言:Python

框架:tensorflow

技术:cGAN(基于条件生成对抗网络)



4.实战图片上色


介绍完基本原理之后,接下来便是实战啦!源码中我们在实际运行中用到的有main.py,download_images.py。如果大家想要训练模型的话,确保自己电脑配置足够高。


1).首先在源文件下新建名字为img的文件夹,然后运行download_images.py,程序便会下载数据集到img文件夹下,download_images.py源码非常的简单,涉及到前面所讲到的爬虫的知识点。

  • 首先是循环获取网页的信息,然后利用untangle函数库将XML文档映射为一个Python 对象

  • 然后找到图像的地址后,将图像下载并将图片大小的调整至合适的大小,部分代码如下图所示:

玩点高级的|用Python来给图片上色


2).接着生成灰色图,如何拿到灰色的线条图呢,其实也很简单,只需要运用opencv就可以实现,而且仅仅需要两句代码就可以实现,首先是读取图片,然后是利用opencv的自适应阈值函数,来提取线条图。小编特地将这部分代码进行集成,并写成两行代码,代码及效果图如下图所示:

玩点高级的|用Python来给图片上色

上述的两行代码中:

  • 第一行代码是读取图片,并将图片保存为numpy的数组类型

  • 第二行代码的核心内容便是利用cv2的adaptiveThreshold函数

  • 这个函数可以自动的适应阈值,也就是根据图片一小块区域的值来计算对应区域的阈值,将图片划分为黑白两种颜色。


如果大家不想训练的话,大家可以直接下载预训练后的模型,放置在“checkpoint/tr/”文件下:

玩点高级的|用Python来给图片上色

然后运行“python main.py sample”即可得到我们的结果,下图是运行的结果展示。

玩点高级的|用Python来给图片上色


  • 首先上图中左边的图是网页爬取下来的图片,是几张美少女图片,猜猜是什么动漫里面的

  • 接着中间的图片是经过处理后的仅剩线条的图片,也就是我们需要上色的图片,

  • 右边的图是自动上色后的图片,由图可以看出,得到的效果已经非常的不错了。


这是我训练12轮后得到的结果,如果大家不想训练自己的模型的话,可以向小助教询问模型。有了模型之后,大家可以直接运行模型,来为自己的图片上色,还等啥,拿到源码来玩一下,后台输入:【上色】


 

玩点高级的|用Python来给图片上色

另外上次中奖名单出炉



玩点高级的|用Python来给图片上色


目前还有2位同学没有给我快递地址,截止时间4/10下午17:00.


本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享